[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
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index 475d98c..e47b4f6 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -222,7 +222,8 @@
 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 @@
   // 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,
diff --git a/test/Android.run-test.mk b/test/Android.run-test.mk
index f84e0fb..9755efb 100644
--- a/test/Android.run-test.mk
+++ b/test/Android.run-test.mk
@@ -382,9 +382,6 @@
 
 # Tests that should fail when the optimizing compiler compiles them debuggable.
 TEST_ART_BROKEN_OPTIMIZING_DEBUGGABLE_RUN_TESTS := \
-  441-checker-inliner \
-  446-checker-inliner2 \
-  447-checker-inliner3 \
 
 ifneq (,$(filter optimizing,$(COMPILER_TYPES)))
   ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
diff --git a/test/run-test b/test/run-test
index 2950af1..2f7a5ac 100755
--- a/test/run-test
+++ b/test/run-test
@@ -80,6 +80,7 @@
 run_args="--quiet"
 build_args=""
 
+debuggable="no"
 prebuild_mode="yes"
 target_mode="yes"
 dev_mode="no"
@@ -149,6 +150,7 @@
         shift;
     elif [ "x$1" = "x--debuggable" ]; then
         run_args="${run_args} -Xcompiler-option --debuggable"
+        debuggable="yes"
         shift;
     elif [ "x$1" = "x--no-prebuild" ]; then
         run_args="${run_args} --no-prebuild"
@@ -523,7 +525,7 @@
   # if Checker is not invoked and the test only runs the program.
   build_args="${build_args} --dx-option --no-optimize"
 
-  if [ "$runtime" = "art" -a "$image_suffix" = "-optimizing" -a "$target_mode" = "no" ]; then
+  if [ "$runtime" = "art" -a "$image_suffix" = "-optimizing" -a "$target_mode" = "no" -a "$debuggable" = "no"]; then
     run_checker="yes"
     run_args="${run_args} -Xcompiler-option --dump-cfg=$tmp_dir/$cfg_output \
                           -Xcompiler-option -j1"