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
diff --git a/src/compiler/codegen/arm/MethodCodegenDriver.cc b/src/compiler/codegen/arm/MethodCodegenDriver.cc
index 77b58ff..6f476f9 100644
--- a/src/compiler/codegen/arm/MethodCodegenDriver.cc
+++ b/src/compiler/codegen/arm/MethodCodegenDriver.cc
@@ -2049,6 +2049,8 @@
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;