summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2014-05-08 01:10:35 -0700
committerSteve Kondik <shade@chemlab.org>2014-05-08 01:10:35 -0700
commite3422459524e20107b82be5cfdd6e55765ceac5a (patch)
tree5de1b91defcb028970475c639f68176324e9ec2b
parentcd2251b84a8c15d970267b77e8116ee0b26289e0 (diff)
downloadandroid_dalvik-e3422459524e20107b82be5cfdd6e55765ceac5a.tar.gz
android_dalvik-e3422459524e20107b82be5cfdd6e55765ceac5a.tar.bz2
android_dalvik-e3422459524e20107b82be5cfdd6e55765ceac5a.zip
dalvik: Disable loop hoisting optimization on perf builds
* Fixes VSCO Cam array traversal crash when perf is enabled. Change-Id: I57e59e407a538c4cc48972f4cf3167c505d7ded4
-rw-r--r--vm/compiler/codegen/arm/GlobalOptimizations.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/vm/compiler/codegen/arm/GlobalOptimizations.cpp b/vm/compiler/codegen/arm/GlobalOptimizations.cpp
index b6c81851a..b6f00fc64 100644
--- a/vm/compiler/codegen/arm/GlobalOptimizations.cpp
+++ b/vm/compiler/codegen/arm/GlobalOptimizations.cpp
@@ -69,6 +69,7 @@ static void applyRedundantBranchElimination(CompilationUnit *cUnit)
}
}
+#ifndef WITH_QC_PERF
/*
* Perform a pass to hoist all frame pointer load instructions that
* are independent, outside the loop.
@@ -262,12 +263,15 @@ static void applyLoopLoadHoisting(CompilationUnit *cUnit)
if (cUnit->printMe)
ALOGD("GlobalOpt LoopLoadHoist hoisted %d load ops.", hoistCount);
}
+#endif
void dvmCompilerApplyGlobalOptimizations(CompilationUnit *cUnit)
{
applyRedundantBranchElimination(cUnit);
+#ifndef WITH_QC_PERF
if (cUnit->jitMode == kJitLoop) {
applyLoopLoadHoisting(cUnit);
}
+#endif
}