summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/optimizing_compiler.cc
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2015-03-16 13:55:40 +0000
committerNicolas Geoffray <ngeoffray@google.com>2015-03-16 17:03:33 +0000
commita3d90fb449e2fba87211a7de323faff63cba41fc (patch)
treeb78d4ac59c95d5cc8d26f6c27a800af2125807b3 /compiler/optimizing/optimizing_compiler.cc
parent24ce79ebb11b7ea2947a35d447e0df1ab39b24bf (diff)
downloadart-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.cc5
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,