summaryrefslogtreecommitdiff
path: root/src/compiler/driver/compiler_driver.cc
diff options
context:
space:
mode:
author Anwar Ghuloum <anwarg@google.com> 2013-05-01 17:03:05 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2013-05-01 17:03:06 +0000
commitcf9773a7adff883012dbd519a66e85f1f7aaaa11 (patch)
tree2202662f22597850bf03c5dbbb0305bfe46816a5 /src/compiler/driver/compiler_driver.cc
parent654d91957edb4d1f7534ed5d743cf914db763448 (diff)
parent8447d84d847d4562d7a7bce62768c27e7d20a9aa (diff)
Merge "Compile filter for small applications and methods" into dalvik-dev
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 301d255bbe..bc34073020 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) {