summaryrefslogtreecommitdiff
path: root/src/compiler/Compiler.h
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2011-10-04 14:32:18 -0700
committer buzbee <buzbee@google.com> 2011-10-05 09:22:57 -0700
commitce30293d222c864fa281da98bc896dd1c98a9a16 (patch)
treeb56c3a7f8be3349aa50c78675e6959e51344938d /src/compiler/Compiler.h
parent20cde9033d51103f31e21436e88f80e1170c78ad (diff)
Compiler cleanup
o Added slow path for string resolution o Removed dead throw internal and runtime error o Restructured debug and optimization disable flags for make it easier for command-line option support. o Removed/converted #if 1/0 blocks Change-Id: I65fc561a55437b3f74d0dfff5af87f938008d70e
Diffstat (limited to 'src/compiler/Compiler.h')
-rw-r--r--src/compiler/Compiler.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/compiler/Compiler.h b/src/compiler/Compiler.h
index ba97aac6e7..f9e2478e47 100644
--- a/src/compiler/Compiler.h
+++ b/src/compiler/Compiler.h
@@ -26,6 +26,39 @@ typedef enum OatInstructionSetType {
DALVIK_OAT_THUMB2,
} OatInstructionSetType;
+/* Supress optimization if corresponding bit set */
+enum optControlVector {
+ kLoadStoreElimination = 0,
+ kLoadHoisting,
+ kSuppressLoads,
+ kNullCheckElimination,
+ kPromoteRegs,
+ kTrackLiveTemps,
+};
+
+extern uint32_t compilerOptimizerDisableFlags;
+
+/* Force code generation paths for testing */
+enum debugControlVector {
+ kDebugDisplayMissingTargets,
+ kDebugVerbose,
+ kDebugDumpCFG,
+ kDebugSlowFieldPath,
+ kDebugSlowInvokePath,
+ kDebugSlowStringPath,
+ kDebugSlowTypePath,
+ kDebugSlowestFieldPath,
+ kDebugSlowestStringPath,
+};
+
+extern uint32_t compilerDebugFlags;
+
+/* If non-empty, apply optimizer/debug flags only to matching methods */
+extern std::string compilerMethodMatch;
+
+/* Flips sense of compilerMethodMatch - apply flags if doesn't match */
+extern bool compilerFlipMatch;
+
typedef enum OatMethodAttributes {
kIsCallee = 0, /* Code is part of a callee (invoked by a hot trace) */
kIsHot, /* Code is part of a hot trace */