summaryrefslogtreecommitdiff
path: root/compiler/driver/compiler_driver.cc
diff options
context:
space:
mode:
author Andreas Gampe <agampe@google.com> 2014-08-15 22:35:46 -0700
committer Andreas Gampe <agampe@google.com> 2014-08-18 09:38:39 -0700
commite98c8899ba2ae36d52aa7152a29469c314fdc20d (patch)
tree087cb6143c044fb8f32de770403ef07d99ae9dd0 /compiler/driver/compiler_driver.cc
parent078f4ea927b3259d698ca3dd542a096943e2cccd (diff)
ART: Avoid expensive class lookup in compiler driver
When we are not compiling multidex, avoid an expensive by-descriptor lookup for classes when deciding whether to skip compilation. Bug: 17072698 (cherry picked from commit d84f916d35bb0dc74d7daa075b883e5ee1ce1109) Change-Id: I19bcb2a2928207fcae0badd466cdc52945bd37c4
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
-rw-r--r--compiler/driver/compiler_driver.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc
index 645fc1c155..1dd98fefcf 100644
--- a/compiler/driver/compiler_driver.cc
+++ b/compiler/driver/compiler_driver.cc
@@ -1524,7 +1524,13 @@ static bool SkipClass(ClassLinker* class_linker, jobject class_loader, const Dex
return true;
}
- return SkipClassCheckClassPath(descriptor, dex_file, dex_files);
+ if (dex_files.size() > 1) {
+ // Multi-dex compilation, only take first class.
+ return SkipClassCheckClassPath(descriptor, dex_file, dex_files);
+ } else {
+ // Single dex, take everything.
+ return false;
+ }
}
// A fast version of SkipClass above if the class pointer is available