diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2014-10-30 10:58:41 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2014-10-31 12:21:53 +0000 |
commit | b5f62b3dc5ac2731ba8ad53cdf3d9bdb14fbf86b (patch) | |
tree | fb2d33e43de1476af33112f263fd3c3a775917d0 /compiler/dex/frontend.cc | |
parent | 29ce77f654412dbb5fb3d5949da4053952917101 (diff) | |
download | android_art-b5f62b3dc5ac2731ba8ad53cdf3d9bdb14fbf86b.tar.gz android_art-b5f62b3dc5ac2731ba8ad53cdf3d9bdb14fbf86b.tar.bz2 android_art-b5f62b3dc5ac2731ba8ad53cdf3d9bdb14fbf86b.zip |
Support for CONST_STRING in optimizing compiler.
Change-Id: Iab8517bdadd1d15ffbe570010f093660be7c51aa
Diffstat (limited to 'compiler/dex/frontend.cc')
-rw-r--r-- | compiler/dex/frontend.cc | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/compiler/dex/frontend.cc b/compiler/dex/frontend.cc index 3dc5655919..a1e2caa651 100644 --- a/compiler/dex/frontend.cc +++ b/compiler/dex/frontend.cc @@ -84,21 +84,8 @@ static CompiledMethod* CompileMethod(CompilerDriver& driver, jobject class_loader, const DexFile& dex_file, void* llvm_compilation_unit) { VLOG(compiler) << "Compiling " << PrettyMethod(method_idx, dex_file) << "..."; - /* - * Skip compilation for pathologically large methods - either by instruction count or num vregs. - * Dalvik uses 16-bit uints for instruction and register counts. We'll limit to a quarter - * of that, which also guarantees we cannot overflow our 16-bit internal SSA name space. - */ - if (code_item->insns_size_in_code_units_ >= UINT16_MAX / 4) { - LOG(INFO) << "Method exceeds compiler instruction limit: " - << code_item->insns_size_in_code_units_ - << " in " << PrettyMethod(method_idx, dex_file); - return NULL; - } - if (code_item->registers_size_ >= UINT16_MAX / 4) { - LOG(INFO) << "Method exceeds compiler virtual register limit: " - << code_item->registers_size_ << " in " << PrettyMethod(method_idx, dex_file); - return NULL; + if (Compiler::IsPathologicalCase(*code_item, method_idx, dex_file)) { + return nullptr; } if (!driver.GetCompilerOptions().IsCompilationEnabled()) { |