Slow ART.

Run ART with the interpreter for all but boot.oat code.

Change-Id: I1654ecff6769a6c754f713be7580717d5ce07dc1
diff --git a/src/compiler/driver/compiler_driver.cc b/src/compiler/driver/compiler_driver.cc
index cc17031..169790f 100644
--- a/src/compiler/driver/compiler_driver.cc
+++ b/src/compiler/driver/compiler_driver.cc
@@ -1655,9 +1655,18 @@
     CHECK(compiled_method != NULL);
   } else if ((access_flags & kAccAbstract) != 0) {
   } else {
-    compiled_method = (*compiler_)(*this, code_item, access_flags, invoke_type, class_def_idx,
-                                   method_idx, class_loader, dex_file);
-    CHECK(compiled_method != NULL) << PrettyMethod(method_idx, dex_file);
+    bool dont_compile = false;
+#if ART_SLOW_MODE
+    dont_compile = (image_classes_ == NULL) || (image_classes_->size() == 0);
+    if (dont_compile) {
+      LOG(INFO) << "Not compiling code as ART_SLOW_MODE is enabled";
+    }
+#endif // ART_SLOW_MODE
+    if (!dont_compile) {
+      compiled_method = (*compiler_)(*this, code_item, access_flags, invoke_type, class_def_idx,
+          method_idx, class_loader, dex_file);
+      CHECK(compiled_method != NULL) << PrettyMethod(method_idx, dex_file);
+    }
   }
   uint64_t duration_ns = NanoTime() - start_ns;
 #ifdef ART_USE_PORTABLE_COMPILER