aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWei Wang <wangw@codeaurora.org>2014-02-19 00:22:46 -0800
committerLorDClockaN <davor@losinj.com>2014-03-28 21:51:26 +0100
commitf3df3d8d19b832d03454812c3a2b05fc8906b69e (patch)
treed9e5d0a218701e669a0bcda63c2753a9665eec94
parent798643be51d789aec8f7ad6c7dfb1ee01774babb (diff)
dalvik: add placeholder for future changes
add placeholder for future changes Change-Id: I09dd704a60857de71cafd7e6b64ee750c5cb95b1
-rw-r--r--vm/compiler/Frontend.cpp8
-rw-r--r--vm/compiler/codegen/arm/CodegenDriver.cpp3
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) {