summaryrefslogtreecommitdiffstats
path: root/src/compiler/driver/compiler_driver.cc
diff options
context:
space:
mode:
authorAnwar Ghuloum <anwarg@google.com>2013-04-30 17:27:40 -0700
committerAnwar Ghuloum <anwarg@google.com>2013-04-30 20:32:59 -0700
commit8447d84d847d4562d7a7bce62768c27e7d20a9aa (patch)
tree46aad5bf1bc3d3ce28b24ef1fcc5463224083991 /src/compiler/driver/compiler_driver.cc
parent88fc036842eb3c48acd5d3b01e75b3012c996d90 (diff)
downloadandroid_art-8447d84d847d4562d7a7bce62768c27e7d20a9aa.tar.gz
android_art-8447d84d847d4562d7a7bce62768c27e7d20a9aa.tar.bz2
android_art-8447d84d847d4562d7a7bce62768c27e7d20a9aa.zip
Compile filter for small applications and methods
Adds a filter per method and program size (in method count). Right now, options are treated as runtime options...but we might want to change this and separate options for compilers and runtime. Change-Id: I8c3e925116119af8ffa95ff09f77bcfdd173767b
Diffstat (limited to 'src/compiler/driver/compiler_driver.cc')
-rw-r--r--src/compiler/driver/compiler_driver.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/compiler/driver/compiler_driver.cc b/src/compiler/driver/compiler_driver.cc
index 1660914ce3..3075a54988 100644
--- a/src/compiler/driver/compiler_driver.cc
+++ b/src/compiler/driver/compiler_driver.cc
@@ -283,7 +283,7 @@ static Fn FindFunction(const std::string& compiler_so_name, void* library, const
}
CompilerDriver::CompilerDriver(CompilerBackend compiler_backend, InstructionSet instruction_set,
- bool image, size_t thread_count, bool support_debugging, bool light_mode,
+ bool image, size_t thread_count, bool support_debugging,
const std::set<std::string>* image_classes,
bool dump_stats, bool dump_timings)
: compiler_backend_(compiler_backend),
@@ -294,7 +294,6 @@ CompilerDriver::CompilerDriver(CompilerBackend compiler_backend, InstructionSet
image_(image),
thread_count_(thread_count),
support_debugging_(support_debugging),
- light_mode_(light_mode),
start_ns_(0),
stats_(new AOTCompilationStats),
dump_stats_(dump_stats),
@@ -1566,12 +1565,15 @@ void CompilerDriver::CompileMethod(const DexFile::CodeItem* code_item, uint32_t
CHECK(compiled_method != NULL);
} else if ((access_flags & kAccAbstract) != 0) {
} else {
- // In light mode we only compile image classes.
- bool dont_compile = light_mode_ && ((image_classes_ == NULL) || (image_classes_->size() == 0));
+ // In small mode we only compile image classes.
+ bool dont_compile = Runtime::Current()->IsSmallMode() && ((image_classes_ == NULL) || (image_classes_->size() == 0));
// Don't compile class initializers, ever.
if (((access_flags & kAccConstructor) != 0) && ((access_flags & kAccStatic) != 0)) {
dont_compile = true;
+ } else if (code_item->insns_size_in_code_units_ < Runtime::Current()->GetSmallModeMethodDexSizeLimit()) {
+ // Do compile small methods.
+ dont_compile = false;
}
if (!dont_compile) {