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"