summaryrefslogtreecommitdiff
path: root/compiler/driver/compiler_driver.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2017-11-10 12:48:14 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2017-11-23 16:16:34 +0000
commitb4c6acbf281c1cf960444e35bcac254a1f77c3ed (patch)
tree18f3548e69c0641e220a36012d23b08a4954d0e4 /compiler/driver/compiler_driver.cc
parent67ab1c5517c7f6ac485f218c903db8da59f40ed7 (diff)
Optimize lookup of quickening data.
Use the debug_info_off_ of CodeItem to store the quickening offset in the vdex. Impact: - Code size almost unchanged (1 word saved per dex file in a vdex) - GetQuickenedInfoOf doesn't show up in simpleperf during app startup Test: test.py, run-libcore-tests, run-jdwp-tests Test: 628-vdex Change-Id: I15c3151feb58980a4c4d7469ca02728e94d36c07
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
-rw-r--r--compiler/driver/compiler_driver.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc
index e4dd544890..fd7ae9f570 100644
--- a/compiler/driver/compiler_driver.cc
+++ b/compiler/driver/compiler_driver.cc
@@ -429,6 +429,10 @@ static optimizer::DexToDexCompilationLevel GetDexToDexCompilationLevel(
// optimizations that could break that.
max_level = optimizer::DexToDexCompilationLevel::kDontDexToDexCompile;
}
+ if (!VdexFile::CanEncodeQuickenedData(dex_file)) {
+ // Don't do any dex level optimizations if we cannot encode the quickening.
+ return optimizer::DexToDexCompilationLevel::kDontDexToDexCompile;
+ }
if (klass->IsVerified()) {
// Class is verified so we can enable DEX-to-DEX compilation for performance.
return max_level;