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
Change-Id: I19bcb2a2928207fcae0badd466cdc52945bd37c4
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc
index efc5bb7..a208b51 100644
--- a/compiler/driver/compiler_driver.cc
+++ b/compiler/driver/compiler_driver.cc
@@ -1491,7 +1491,13 @@
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