diff options
author | 2015-12-09 16:38:30 -0800 | |
---|---|---|
committer | 2016-02-26 11:35:59 -0800 | |
commit | 8913fc1a27df8cf3b37fd99e94d87f290591328e (patch) | |
tree | 103dae9d86a153e8520dfa9f733c3208bcadd06d /compiler/driver/compiler_driver.cc | |
parent | 167e638ffd46186ef4fa26d1c0b6c7e00ed51ccb (diff) |
Add and use loaded class profiling
Class profiling is a way to keep track of which classes are resolved.
From here the compiler can use this information to generate a smaller
app image.
TODO: Add tests for profile stuff.
Bug: 22858531
Change-Id: I91ccd686394cc2517512f66abb0e277f3d26d4da
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
-rw-r--r-- | compiler/driver/compiler_driver.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index 8ef1f28130..d13800be14 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -382,7 +382,9 @@ CompilerDriver::CompilerDriver( compiler_->Init(); - CHECK_EQ(boot_image_, image_classes_.get() != nullptr); + if (boot_image_) { + CHECK(image_classes_.get() != nullptr) << "Expected image classes for boot image"; + } } CompilerDriver::~CompilerDriver() { @@ -866,12 +868,13 @@ void CompilerDriver::PreCompile(jobject class_loader, } bool CompilerDriver::IsImageClass(const char* descriptor) const { - if (!IsBootImage()) { - // NOTE: Currently only reachable from InitImageMethodVisitor for the app image case. - return true; - } else { + if (image_classes_ != nullptr) { + // If we have a set of image classes, use those. return image_classes_->find(descriptor) != image_classes_->end(); } + // No set of image classes, assume we include all the classes. + // NOTE: Currently only reachable from InitImageMethodVisitor for the app image case. + return !IsBootImage(); } bool CompilerDriver::IsClassToCompile(const char* descriptor) const { |