From 85d8c1ef43adec4f57c5ce372ef7816d13c98420 Mon Sep 17 00:00:00 2001 From: buzbee Date: Fri, 27 Jan 2012 15:52:35 -0800 Subject: 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 --- src/compiler/codegen/arm/MethodCodegenDriver.cc | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/compiler/codegen/arm/MethodCodegenDriver.cc') 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; -- cgit v1.2.3-59-g8ed1b