src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/DeoptimizeDirectiveTest.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/DeoptimizeDirectiveTest.java

Print this page




  53         return GraalDirectives.inCompiledCode(); // should always return false
  54     }
  55 
  56     public static boolean deoptimizeAndInvalidateSnippet() {
  57         GraalDirectives.deoptimizeAndInvalidate();
  58         return GraalDirectives.inCompiledCode(); // should always return false
  59     }
  60 
  61     @Test
  62     public void testDeoptimize() {
  63         test("deoptimizeSnippet");
  64     }
  65 
  66     private boolean testDeoptimizeCheckValid(ResolvedJavaMethod method) {
  67         Result expected = executeExpected(method, null);
  68 
  69         InstalledCode code = getCode(method);
  70         Result actual;
  71         try {
  72             actual = new Result(code.executeVarargs(), null);
  73         } catch (Throwable e) {
  74             actual = new Result(null, e);
  75         }
  76 
  77         assertEquals(expected, actual);
  78         return code.isValid();
  79     }
  80 
  81     @Test
  82     public void testDeoptimizeAndInvalidate() {
  83         ResolvedJavaMethod method = getResolvedJavaMethod("deoptimizeAndInvalidateSnippet");
  84         boolean valid = testDeoptimizeCheckValid(method);
  85         Assert.assertFalse("code should be invalidated", valid);
  86     }
  87 
  88     @Test
  89     public void testDeoptimizeDontInvalidate() {
  90         ResolvedJavaMethod method = getResolvedJavaMethod("deoptimizeSnippet");
  91         boolean valid = testDeoptimizeCheckValid(method);
  92         Assert.assertTrue("code should still be valid", valid);
  93     }


  53         return GraalDirectives.inCompiledCode(); // should always return false
  54     }
  55 
  56     public static boolean deoptimizeAndInvalidateSnippet() {
  57         GraalDirectives.deoptimizeAndInvalidate();
  58         return GraalDirectives.inCompiledCode(); // should always return false
  59     }
  60 
  61     @Test
  62     public void testDeoptimize() {
  63         test("deoptimizeSnippet");
  64     }
  65 
  66     private boolean testDeoptimizeCheckValid(ResolvedJavaMethod method) {
  67         Result expected = executeExpected(method, null);
  68 
  69         InstalledCode code = getCode(method);
  70         Result actual;
  71         try {
  72             actual = new Result(code.executeVarargs(), null);
  73         } catch (Exception e) {
  74             actual = new Result(null, e);
  75         }
  76 
  77         assertEquals(expected, actual);
  78         return code.isValid();
  79     }
  80 
  81     @Test
  82     public void testDeoptimizeAndInvalidate() {
  83         ResolvedJavaMethod method = getResolvedJavaMethod("deoptimizeAndInvalidateSnippet");
  84         boolean valid = testDeoptimizeCheckValid(method);
  85         Assert.assertFalse("code should be invalidated", valid);
  86     }
  87 
  88     @Test
  89     public void testDeoptimizeDontInvalidate() {
  90         ResolvedJavaMethod method = getResolvedJavaMethod("deoptimizeSnippet");
  91         boolean valid = testDeoptimizeCheckValid(method);
  92         Assert.assertTrue("code should still be valid", valid);
  93     }
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/DeoptimizeDirectiveTest.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File