diff options
-rw-r--r-- | vm/compiler/Frontend.cpp | 8 | ||||
-rw-r--r-- | vm/compiler/codegen/arm/CodegenDriver.cpp | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/vm/compiler/Frontend.cpp b/vm/compiler/Frontend.cpp index 65ef1ebd9..3cebe8238 100644 --- a/vm/compiler/Frontend.cpp +++ b/vm/compiler/Frontend.cpp @@ -1484,6 +1484,11 @@ static bool exhaustTrace(CompilationUnit *cUnit, BasicBlock *curBlock) return true; } +/* placeholder of future passes */ +__attribute__((weak)) void dvmExtraPass(CompilationUnit *cUnit) +{ +} + /* Compile a loop */ static bool compileLoop(CompilationUnit *cUnit, unsigned int startOffset, JitTraceDescription *desc, int numMaxInsts, @@ -1574,12 +1579,15 @@ static bool compileLoop(CompilationUnit *cUnit, unsigned int startOffset, dvmCompilerLoopOpt(cUnit); + /* * Change the backward branch to the backward chaining cell after dataflow * analsys/optimizations are done. */ dvmCompilerInsertBackwardChaining(cUnit); + dvmExtraPass(cUnit); + #if defined(ARCH_IA32) /* Convert MIR to LIR, etc. */ dvmCompilerMIR2LIR(cUnit, info); diff --git a/vm/compiler/codegen/arm/CodegenDriver.cpp b/vm/compiler/codegen/arm/CodegenDriver.cpp index 93ea6133a..fde74efbb 100644 --- a/vm/compiler/codegen/arm/CodegenDriver.cpp +++ b/vm/compiler/codegen/arm/CodegenDriver.cpp @@ -4417,7 +4417,8 @@ void dvmCompilerMIR2LIR(CompilationUnit *cUnit) * Append the label pseudo LIR first. Chaining cells will be handled * separately afterwards. */ - dvmCompilerAppendLIR(cUnit, (LIR *) &labelList[i]); + if(bb->blockType != kDalvikByteCode || !bb->hidden) + dvmCompilerAppendLIR(cUnit, (LIR *) &labelList[i]); } if (bb->blockType == kEntryBlock) { |