diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-16 13:55:40 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-16 17:03:33 +0000 |
commit | a3d90fb449e2fba87211a7de323faff63cba41fc (patch) | |
tree | b78d4ac59c95d5cc8d26f6c27a800af2125807b3 /compiler/optimizing/optimizing_compiler.cc | |
parent | 24ce79ebb11b7ea2947a35d447e0df1ab39b24bf (diff) | |
download | art-a3d90fb449e2fba87211a7de323faff63cba41fc.tar.gz art-a3d90fb449e2fba87211a7de323faff63cba41fc.tar.bz2 art-a3d90fb449e2fba87211a7de323faff63cba41fc.zip |
[optimizing] Use baseline when debuggable is set.
SSA form conflicts with JDWP's SetValue functionality. Because
we do not deopt all the call stack, we may call SetValue on a
compiled frame, which doesn't work with optimizing. Simplest
solution for now is to just use baseline.
Change-Id: I91738b363eec8fef145486bd96681aea73a1baa8
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r-- | compiler/optimizing/optimizing_compiler.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 475d98ce57..e47b4f61b2 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -222,7 +222,8 @@ static const int kMaximumCompilationTimeBeforeWarning = 100; /* ms */ OptimizingCompiler::OptimizingCompiler(CompilerDriver* driver) : Compiler(driver, kMaximumCompilationTimeBeforeWarning), run_optimizations_( - driver->GetCompilerOptions().GetCompilerFilter() != CompilerOptions::kTime), + (driver->GetCompilerOptions().GetCompilerFilter() != CompilerOptions::kTime) + && !driver->GetCompilerOptions().GetDebuggable()), compilation_stats_() {} void OptimizingCompiler::Init() { @@ -463,7 +464,7 @@ CompiledMethod* OptimizingCompiler::Compile(const DexFile::CodeItem* code_item, // For testing purposes, we put a special marker on method names that should be compiled // with this compiler. This makes sure we're not regressing. bool shouldCompile = method_name.find("$opt$") != std::string::npos; - bool shouldOptimize = method_name.find("$opt$reg$") != std::string::npos; + bool shouldOptimize = method_name.find("$opt$reg$") != std::string::npos && run_optimizations_; std::unique_ptr<CodeGenerator> codegen( CodeGenerator::Create(graph, |