Make the JIT the default in ART.

Also don't dex2oat an application by default when the JIT is enabled.

Change-Id: I32673e80b966f24ca0f153a3e5b9aacaa1931107
diff --git a/runtime/oat_file_manager.cc b/runtime/oat_file_manager.cc
index ea6d3ff..f26d431 100644
--- a/runtime/oat_file_manager.cc
+++ b/runtime/oat_file_manager.cc
@@ -298,10 +298,12 @@
 
   const OatFile* source_oat_file = nullptr;
 
-  // Update the oat file on disk if we can. This may fail, but that's okay.
-  // Best effort is all that matters here.
-  if (!oat_file_assistant.MakeUpToDate(/*out*/&error_msg)) {
-    LOG(WARNING) << error_msg;
+  if (Runtime::Current()->IsDex2OatEnabled()) {
+    // Update the oat file on disk if we can. This may fail, but that's okay.
+    // Best effort is all that matters here.
+    if (!oat_file_assistant.MakeUpToDate(/*out*/&error_msg)) {
+      LOG(WARNING) << error_msg;
+    }
   }
 
   // Get the oat file on disk.
diff --git a/runtime/parsed_options.cc b/runtime/parsed_options.cc
index 5b10610..65efca6 100644
--- a/runtime/parsed_options.cc
+++ b/runtime/parsed_options.cc
@@ -577,6 +577,9 @@
                  << "Do not attempt to write shipping code against these opcodes.";
   }
 
+  // If -Xdex2oat is not passed, make it dependent on whether the JIT is enabled.
+  args.SetIfMissing(M::Dex2Oat, !args.GetOrDefault(M::UseJIT));
+
   *runtime_options = std::move(args);
   return true;
 }
diff --git a/runtime/runtime_options.def b/runtime/runtime_options.def
index 5624285..cced31c 100644
--- a/runtime/runtime_options.def
+++ b/runtime/runtime_options.def
@@ -66,7 +66,7 @@
 RUNTIME_OPTIONS_KEY (Unit,                LowMemoryMode)
 RUNTIME_OPTIONS_KEY (bool,                UseTLAB,                        (kUseTlab || kUseReadBarrier))
 RUNTIME_OPTIONS_KEY (bool,                EnableHSpaceCompactForOOM,      true)
-RUNTIME_OPTIONS_KEY (bool,                UseJIT,                         false)
+RUNTIME_OPTIONS_KEY (bool,                UseJIT,                         true)
 RUNTIME_OPTIONS_KEY (unsigned int,        JITCompileThreshold,            jit::Jit::kDefaultCompileThreshold)
 RUNTIME_OPTIONS_KEY (unsigned int,        JITWarmupThreshold,             jit::Jit::kDefaultWarmupThreshold)
 RUNTIME_OPTIONS_KEY (MemoryKiB,           JITCodeCacheInitialCapacity,    jit::JitCodeCache::kInitialCapacity)
@@ -80,7 +80,7 @@
 RUNTIME_OPTIONS_KEY (std::string,         JniTrace)
 RUNTIME_OPTIONS_KEY (std::string,         PatchOat)
 RUNTIME_OPTIONS_KEY (bool,                Relocate,                       kDefaultMustRelocate)
-RUNTIME_OPTIONS_KEY (bool,                Dex2Oat,                        true)
+RUNTIME_OPTIONS_KEY (bool,                Dex2Oat,                        false)
 RUNTIME_OPTIONS_KEY (bool,                ImageDex2Oat,                   true)
 RUNTIME_OPTIONS_KEY (bool,                Interpret,                      false) // -Xint
                                                         // Disable the compiler for CC (for now).
diff --git a/test/etc/run-test-jar b/test/etc/run-test-jar
index 3efa6ff..8d9db49 100755
--- a/test/etc/run-test-jar
+++ b/test/etc/run-test-jar
@@ -305,7 +305,7 @@
 fi
 
 if [ "$INTERPRETER" = "y" ]; then
-    INT_OPTS="-Xint"
+    INT_OPTS="$INT_OPTS -Xint"
     if [ "$VERIFY" = "y" ] ; then
       COMPILE_FLAGS="${COMPILE_FLAGS} --compiler-filter=interpret-only"
     elif [ "$VERIFY" = "s" ]; then
@@ -318,13 +318,15 @@
 fi
 
 if [ "$JIT" = "y" ]; then
-    INT_OPTS="-Xusejit:true"
+    INT_OPTS="$INT_OPTS -Xusejit:true"
     if [ "$VERIFY" = "y" ] ; then
       COMPILE_FLAGS="${COMPILE_FLAGS} --compiler-filter=verify-at-runtime"
     else
       COMPILE_FLAGS="${COMPILE_FLAGS} --compiler-filter=verify-none"
       DEX_VERIFY="${DEX_VERIFY} -Xverify:none"
     fi
+else
+    INT_OPTS="$INT_OPTS -Xusejit:false"
 fi
 
 JNI_OPTS="-Xjnigreflimit:512 -Xcheck:jni"