summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/arm/MethodCodegenDriver.cc
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2012-01-27 15:52:35 -0800
committer buzbee <buzbee@google.com> 2012-01-27 15:52:35 -0800
commit85d8c1ef43adec4f57c5ce372ef7816d13c98420 (patch)
tree049faf14d49353d39cfceb67183b4a0124318c2a /src/compiler/codegen/arm/MethodCodegenDriver.cc
parent748382f38dfe7a0d9a426a4b72fcfc399ba1a5da (diff)
Minor compiler tuning
Large switch statements were getting bogged down in a linear search. Added a map for fast lookup (which may also be useful for debug support). Change-Id: I00e5956ea7e98ff2c870fb2d3e299e8d4c88f598
Diffstat (limited to 'src/compiler/codegen/arm/MethodCodegenDriver.cc')
-rw-r--r--src/compiler/codegen/arm/MethodCodegenDriver.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/compiler/codegen/arm/MethodCodegenDriver.cc b/src/compiler/codegen/arm/MethodCodegenDriver.cc
index 77b58ff344..6f476f930f 100644
--- a/src/compiler/codegen/arm/MethodCodegenDriver.cc
+++ b/src/compiler/codegen/arm/MethodCodegenDriver.cc
@@ -2049,6 +2049,8 @@ STATIC bool methodBlockCodeGen(CompilationUnit* cUnit, BasicBlock* bb)
boundaryLIR = newLIR1(cUnit, kArmPseudoDalvikByteCodeBoundary,
(int) oatGetDalvikDisassembly(
&mir->dalvikInsn, ""));
+ cUnit->boundaryMap.insert(std::make_pair(mir->offset,
+ (LIR*)boundaryLIR));
/* Remember the first LIR for this block */
if (headLIR == NULL) {
headLIR = boundaryLIR;