Revert "Try really hard for JIT in test 916"
This reverts commit a64fa43345124eb7891b9d6a6258f6ed0cbd1504.
Reason for revert: makes test-art-host-run-test-debug-prebuild-interpreter-relocate-trace-cms-checkjni-picimage-npictest-ndebuggable-916-obsolete-jit fail
Test: Treehugger
Change-Id: Idce6fc9310fe85ae62dd19da1e978299951c19ee
diff --git a/test/916-obsolete-jit/src/Main.java b/test/916-obsolete-jit/src/Main.java
index 1e43f7e..74eb003 100644
--- a/test/916-obsolete-jit/src/Main.java
+++ b/test/916-obsolete-jit/src/Main.java
@@ -157,13 +157,38 @@
doCommonClassRedefinition(Transform.class, CLASS_BYTES, DEX_BYTES);
}
};
+ // This does nothing.
+ Runnable noop = () -> {};
// This just prints something out to show we are running the Runnable.
Runnable say_nothing = () -> { w.accept("Not doing anything here"); };
+ // This checks to see if we have jitted the methods we are testing.
+ Runnable check_interpreting = () -> {
+ // TODO remove the second check when we remove the doCall function. We need to check that
+ // both of these functions aren't being interpreted because if sayHi is the test doesn't do
+ // anything and if doCall is then there will be a runtime call right above the sayHi
+ // function preventing sayHi from being deoptimized.
+ interpreting = has_jit && (Main.isInterpretedFunction(say_hi_method, true) ||
+ Main.isInterpretedFunction(do_call_method, false));
+ };
do {
- // Run ensureJitCompiled here since it might get GCd
- ensureJitCompiled(Transform.class, "sayHi");
- ensureJitCompiled(Main.class, "doCall");
- // Clear output.
+ w.clear();
+ // Wait for the methods to be jitted
+ long j = 0;
+ do {
+ for (int i = 0; i < 10000; i++) {
+ t.sayHi(noop, w);
+ j++;
+ // Clear so that we won't OOM if we go around a few times.
+ w.clear();
+ }
+ t.sayHi(check_interpreting, w);
+ if (j >= 1000000) {
+ System.out.println("FAIL: Could not make sayHi be Jitted!");
+ return;
+ }
+ j++;
+ } while(interpreting);
+ // Clear output. Now we try for real.
w.clear();
// Try and redefine.
t.sayHi(say_nothing, w);
@@ -178,8 +203,6 @@
private static native boolean isInterpretedFunction(Method m, boolean require_deoptimizable);
- private static native void ensureJitCompiled(Class c, String name);
-
// Transforms the class
private static native void doCommonClassRedefinition(Class<?> target,
byte[] classfile,
diff --git a/test/common/runtime_state.cc b/test/common/runtime_state.cc
index 271657f..7451cf9 100644
--- a/test/common/runtime_state.cc
+++ b/test/common/runtime_state.cc
@@ -152,12 +152,7 @@
jclass,
jclass cls,
jstring method_name) {
- Runtime* runtime = Runtime::Current();
- if (runtime == nullptr) {
- // We must be on the RI. We will just roll with it.
- return;
- }
- jit::Jit* jit = runtime->GetJit();
+ jit::Jit* jit = Runtime::Current()->GetJit();
if (jit == nullptr) {
return;
}
@@ -171,11 +166,6 @@
CHECK(chars.c_str() != nullptr);
method = soa.Decode<mirror::Class>(cls)->FindDeclaredDirectMethodByName(
chars.c_str(), kRuntimePointerSize);
- if (method == nullptr) {
- method = soa.Decode<mirror::Class>(cls)->FindDeclaredVirtualMethodByName(
- chars.c_str(), kRuntimePointerSize);
- }
- DCHECK(method != nullptr) << "Unable to find method called " << chars.c_str();
}
jit::JitCodeCache* code_cache = jit->GetCodeCache();