summaryrefslogtreecommitdiff
path: root/src/jit/lsra.h
diff options
context:
space:
mode:
authorPat Gavlin <pgavlin@gmail.com>2016-08-01 17:24:22 -0700
committerGitHub <noreply@github.com>2016-08-01 17:24:22 -0700
commitd7ca197675ef4e17ad3d7eaa4f14f364557fa2a3 (patch)
tree46d6eb4894a96c953e932770f9d387faa0a1a09a /src/jit/lsra.h
parente5dd7a7518460fbd80f1474c4b79b4c562dfbf2c (diff)
parent41a1d0a422c8c444479809ab9acd3854d8bf66cc (diff)
downloadcoreclr-d7ca197675ef4e17ad3d7eaa4f14f364557fa2a3.tar.gz
coreclr-d7ca197675ef4e17ad3d7eaa4f14f364557fa2a3.tar.bz2
coreclr-d7ca197675ef4e17ad3d7eaa4f14f364557fa2a3.zip
Merge pull request #6533 from pgavlin/LSRA
Replace the LSRA stack with a hash table.
Diffstat (limited to 'src/jit/lsra.h')
-rw-r--r--src/jit/lsra.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/jit/lsra.h b/src/jit/lsra.h
index f492e1ac39..7832f5ae45 100644
--- a/src/jit/lsra.h
+++ b/src/jit/lsra.h
@@ -7,6 +7,7 @@
#define _LSRA_H_
#include "arraylist.h"
+#include "smallhash.h"
#include "nodeinfo.h"
// Minor and forward-reference types
@@ -300,11 +301,15 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
// to the next RefPosition in code order
// THIS IS THE OPTION CURRENTLY BEING PURSUED
+class LocationInfoList;
+class LocationInfoListNodePool;
+
class LinearScan : public LinearScanInterface
{
friend class RefPosition;
friend class Interval;
friend class Lowering;
+ friend class TreeNodeInfo;
public:
@@ -610,7 +615,8 @@ private:
void resolveConflictingDefAndUse(Interval* interval, RefPosition* defRefPosition);
void buildRefPositionsForNode(GenTree *tree, BasicBlock *block,
- ArrayStack<LocationInfo> *stack,
+ LocationInfoListNodePool& listNodePool,
+ HashTableBase<GenTree*, LocationInfoList>& operandToLocationInfoMap,
LsraLocation loc);
#if FEATURE_PARTIAL_SIMD_CALLEE_SAVE