summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrint E. Kriebel <bekit@cyngn.com>2014-09-30 23:02:06 -0700
committerBrint E. Kriebel <bekit@cyngn.com>2014-09-30 23:02:06 -0700
commit36070aeadace25455f7ce9dc0de57107fc831a24 (patch)
tree3b57b92695f137f5c662ebc090082a3323973eb0
parentde89ea1804ef39456b4440aec3c48146e562f10f (diff)
parent3aba1fe46a39b86b439d9f491149cde5e07b9e81 (diff)
downloadandroid_dalvik-stable/cm-11.0-XNF8Y.tar.gz
android_dalvik-stable/cm-11.0-XNF8Y.tar.bz2
android_dalvik-stable/cm-11.0-XNF8Y.zip
-rw-r--r--vm/Dvm.mk2
-rw-r--r--vm/analysis/DexPrepare.cpp2
-rw-r--r--vm/compiler/Frontend.cpp8
-rw-r--r--vm/compiler/codegen/arm/CodegenDriver.cpp3
4 files changed, 12 insertions, 3 deletions
diff --git a/vm/Dvm.mk b/vm/Dvm.mk
index 7c99255bc..e779d2560 100644
--- a/vm/Dvm.mk
+++ b/vm/Dvm.mk
@@ -264,7 +264,7 @@ ifeq ($(dvm_arch),arm)
compiler/template/out/CompilerTemplateAsm-$(dvm_arch_variant).S
endif
ifeq ($(call is-vendor-board-platform,QCOM),true)
- ifeq ($(WITH_QC_PERF),true)
+ ifeq ($(TARGET_HAVE_QC_PERF),true)
LOCAL_WHOLE_STATIC_LIBRARIES += libqc-dalvik
LOCAL_SHARED_LIBRARIES += libqc-opt
LOCAL_CFLAGS += -DWITH_QC_PERF
diff --git a/vm/analysis/DexPrepare.cpp b/vm/analysis/DexPrepare.cpp
index 753b6fee0..0130389f5 100644
--- a/vm/analysis/DexPrepare.cpp
+++ b/vm/analysis/DexPrepare.cpp
@@ -1153,7 +1153,7 @@ static const u1* getSignature(const ClassPathEntry* cpe)
* If this changes, update DEX_OPT_MAGIC_VERS.
*/
static const size_t kMinDepSize = 4 * 4;
-static const size_t kMaxDepSize = 4 * 4 + 3200; // sanity check
+static const size_t kMaxDepSize = 4 * 4 + 3344; // sanity check
/*
* Read the "opt" header, verify it, then read the dependencies section
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) {