summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2017-06-22 13:51:52 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2017-06-22 13:51:54 +0000
commit5154e2a89ab0a6e3a34ffcb315d65c3e12ed15e3 (patch)
tree2babb95a524cff21a395bafcfc7d48474f186fec
parent8979f71079ec18fa8d3c0915549ec03ee1fbadf5 (diff)
parentf48029f18bd0b5f574148d6f89da78ac8f67ff3b (diff)
Merge "More robust 652-deopt-intrinsic."
-rw-r--r--test/652-deopt-intrinsic/src/Main.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/test/652-deopt-intrinsic/src/Main.java b/test/652-deopt-intrinsic/src/Main.java
index a82580c8a1..8c583c0262 100644
--- a/test/652-deopt-intrinsic/src/Main.java
+++ b/test/652-deopt-intrinsic/src/Main.java
@@ -27,16 +27,22 @@ public class Main {
for (int i = 0; i < 5000; i++) {
$noinline$doCall("foo");
$noinline$doCall(m);
- if (numberOfDeoptimizations() != 0) {
- throw new Error("Unexpected deoptimizations");
- }
}
}
public static boolean $noinline$doCall(Object foo) {
- return foo.equals(Main.class);
+ boolean isCompiledAtEntry = !isInterpreted();
+ boolean result = foo.equals(Main.class);
+
+ // Test that the 'equals' above did not lead to a deoptimization.
+ if (isCompiledAtEntry) {
+ if (isInterpreted()) {
+ throw new Error("Unexpected deoptimization");
+ }
+ }
+ return result;
}
- public static native int numberOfDeoptimizations();
+ public static native boolean isInterpreted();
public static native void ensureJitCompiled(Class<?> cls, String methodName);
}