Support for promoting Method* and compiler temps
This CL completes the support for allowing compiler-generated
data to be treated as a Dalvik register and become subject to
the normal register promotion and live temp tracking machinery.
Also:
o Removes some vestigal and useless Method* loads from
range argument setup.
o Changes the Method* pseudo vReg number from -1 to -2 to
avoid a conflict with the 0xffff marker in the register map.
o Removes some experimental code for CSE at the basic block
level.
Change-Id: I112a8bbe20f95a8d789f63908c84e5fa167c74ac
diff --git a/src/compiler/Dataflow.h b/src/compiler/Dataflow.h
index 77bf756..a51173f 100644
--- a/src/compiler/Dataflow.h
+++ b/src/compiler/Dataflow.h
@@ -47,14 +47,14 @@
kNullTransferSrcN, // Phi null check state transfer
kRangeCheckSrc1, // Range check of uses[1]
kRangeCheckSrc2, // Range check of uses[2]
+ kRangeCheckSrc3, // Range check of uses[3]
kFPA,
kFPB,
kFPC,
kCoreA,
kCoreB,
kCoreC,
- kGetter,
- kSetter,
+ kUsesMethodStar, // Implicit use of Method*
};
#define DF_NOP 0
@@ -82,14 +82,14 @@
#define DF_NULL_TRANSFER_N (1 << kNullTransferSrcN)
#define DF_RANGE_CHK_1 (1 << kRangeCheckSrc1)
#define DF_RANGE_CHK_2 (1 << kRangeCheckSrc2)
+#define DF_RANGE_CHK_3 (1 << kRangeCheckSrc3)
#define DF_FP_A (1 << kFPA)
#define DF_FP_B (1 << kFPB)
#define DF_FP_C (1 << kFPC)
#define DF_CORE_A (1 << kCoreA)
#define DF_CORE_B (1 << kCoreB)
#define DF_CORE_C (1 << kCoreC)
-#define DF_IS_GETTER (1 << kGetter)
-#define DF_IS_SETTER (1 << kSetter)
+#define DF_UMS (1 << kUsesMethodStar)
#define DF_HAS_USES (DF_UA | DF_UB | DF_UC | DF_UA_WIDE | \
DF_UB_WIDE | DF_UC_WIDE)