summaryrefslogtreecommitdiff
path: root/src/jit/valuenum.h
diff options
context:
space:
mode:
authorJoseph Tremoulet <jotrem@microsoft.com>2016-12-29 17:02:18 -0500
committerJoseph Tremoulet <jotrem@microsoft.com>2017-02-08 09:32:46 -0500
commit463502f9e70e39cd460091298b338a065b8631f2 (patch)
tree6ed7e8bf9a720e23b48c89ec8a8c1ce204f1506b /src/jit/valuenum.h
parent5501ecb0855f295c0c60c3743c440badd5d67d61 (diff)
downloadcoreclr-463502f9e70e39cd460091298b338a065b8631f2.tar.gz
coreclr-463502f9e70e39cd460091298b338a065b8631f2.tar.bz2
coreclr-463502f9e70e39cd460091298b338a065b8631f2.zip
Introduce `MemoryKind` abstraction
Re-cast the notion of "heap" (in liveness, SSA, and value-numbering) as one of potentially many `MemoryKind`s, called `GcHeap`. Update names, comments, data structures, and signatures as appropriate to parameterize relevant data/methods over `MemoryKind`. This change is a no-diff refactoring, and currently `GcHeap` is the only `MemoryKind`. Generally, codepaths which will generically need to process all `MemoryKinds`s (initializing, dumping, dataflow propagation) now iterate over all `MemoryKinds`, and codepaths which are sensitive to the semantics of the specific `MemoryKind` (def/use identification in liveness and value numbering) are changed to specifically operate on `MemoryKind::GcHeap`. One notable exception is that `lvMemoryPerSsaData` and `CountForMemoryDef` are *not* parameterized over `MemoryKind`; there's a single "space" of SSA defnums for memory defs (though the same tree can incur different defs for different memory kinds [in which case their defnums will differ]), to facilitate subsequently sharing SSA nodes across memory kinds when appropriate.
Diffstat (limited to 'src/jit/valuenum.h')
-rw-r--r--src/jit/valuenum.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/jit/valuenum.h b/src/jit/valuenum.h
index c8a57ff210..e0443dc18c 100644
--- a/src/jit/valuenum.h
+++ b/src/jit/valuenum.h
@@ -217,7 +217,7 @@ private:
#ifdef DEBUG
// This helps test some performance pathologies related to "evaluation" of VNF_MapSelect terms,
- // especially relating to the heap. We count the number of applications of such terms we consider,
+ // especially relating to the GcHeap. We count the number of applications of such terms we consider,
// and if this exceeds a limit, indicated by a COMPlus_ variable, we assert.
unsigned m_numMapSels;
#endif
@@ -762,7 +762,7 @@ public:
// the function application it represents; otherwise, return "false."
bool GetVNFunc(ValueNum vn, VNFuncApp* funcApp);
- // Requires that "vn" represents a "heap address" the sum of a "TYP_REF" value and some integer
+ // Requires that "vn" represents a "GC heap address" the sum of a "TYP_REF" value and some integer
// value. Returns the TYP_REF value.
ValueNum VNForRefInAddr(ValueNum vn);