src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/LockEliminationTest.java
changeset 55509 d58442b8abc1
parent 52910 583fd71c47d6
child 58299 6df94ce3ab2f
equal deleted inserted replaced
55508:a6e2d06391d6 55509:d58442b8abc1
    34 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
    34 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
    35 import org.graalvm.compiler.phases.common.DeadCodeEliminationPhase;
    35 import org.graalvm.compiler.phases.common.DeadCodeEliminationPhase;
    36 import org.graalvm.compiler.phases.common.LockEliminationPhase;
    36 import org.graalvm.compiler.phases.common.LockEliminationPhase;
    37 import org.graalvm.compiler.phases.common.LoweringPhase;
    37 import org.graalvm.compiler.phases.common.LoweringPhase;
    38 import org.graalvm.compiler.phases.tiers.HighTierContext;
    38 import org.graalvm.compiler.phases.tiers.HighTierContext;
    39 import org.graalvm.compiler.phases.tiers.PhaseContext;
       
    40 import org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase;
    39 import org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase;
    41 import org.junit.Test;
    40 import org.junit.Test;
    42 
    41 
    43 import jdk.vm.ci.meta.ResolvedJavaMethod;
    42 import jdk.vm.ci.meta.ResolvedJavaMethod;
    44 
    43 
    68     @Test
    67     @Test
    69     public void testLock() {
    68     public void testLock() {
    70         test("testSynchronizedSnippet", new A(), new A());
    69         test("testSynchronizedSnippet", new A(), new A());
    71 
    70 
    72         StructuredGraph graph = getGraph("testSynchronizedSnippet", false);
    71         StructuredGraph graph = getGraph("testSynchronizedSnippet", false);
    73         new CanonicalizerPhase().apply(graph, new PhaseContext(getProviders()));
    72         new CanonicalizerPhase().apply(graph, getProviders());
    74         new LockEliminationPhase().apply(graph);
    73         new LockEliminationPhase().apply(graph);
    75         assertDeepEquals(1, graph.getNodes().filter(RawMonitorEnterNode.class).count());
    74         assertDeepEquals(1, graph.getNodes().filter(RawMonitorEnterNode.class).count());
    76         assertDeepEquals(1, graph.getNodes().filter(MonitorExitNode.class).count());
    75         assertDeepEquals(1, graph.getNodes().filter(MonitorExitNode.class).count());
    77     }
    76     }
    78 
    77 
    86     @Test
    85     @Test
    87     public void testSynchronizedMethod() {
    86     public void testSynchronizedMethod() {
    88         test("testSynchronizedMethodSnippet", new A());
    87         test("testSynchronizedMethodSnippet", new A());
    89 
    88 
    90         StructuredGraph graph = getGraph("testSynchronizedMethodSnippet", false);
    89         StructuredGraph graph = getGraph("testSynchronizedMethodSnippet", false);
    91         new CanonicalizerPhase().apply(graph, new PhaseContext(getProviders()));
    90         new CanonicalizerPhase().apply(graph, getProviders());
    92         new LockEliminationPhase().apply(graph);
    91         new LockEliminationPhase().apply(graph);
    93         assertDeepEquals(1, graph.getNodes().filter(RawMonitorEnterNode.class).count());
    92         assertDeepEquals(1, graph.getNodes().filter(RawMonitorEnterNode.class).count());
    94         assertDeepEquals(1, graph.getNodes().filter(MonitorExitNode.class).count());
    93         assertDeepEquals(1, graph.getNodes().filter(MonitorExitNode.class).count());
    95     }
    94     }
    96 
    95 
   104 
   103 
   105     @Test
   104     @Test
   106     public void testUnrolledSync() {
   105     public void testUnrolledSync() {
   107         StructuredGraph graph = getGraph("testUnrolledSyncSnippet", false);
   106         StructuredGraph graph = getGraph("testUnrolledSyncSnippet", false);
   108         CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
   107         CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
   109         canonicalizer.apply(graph, new PhaseContext(getProviders()));
   108         canonicalizer.apply(graph, getProviders());
   110         HighTierContext context = getDefaultHighTierContext();
   109         HighTierContext context = getDefaultHighTierContext();
   111         new LoopFullUnrollPhase(canonicalizer, new DefaultLoopPolicies()).apply(graph, context);
   110         new LoopFullUnrollPhase(canonicalizer, new DefaultLoopPolicies()).apply(graph, context);
   112         new LockEliminationPhase().apply(graph);
   111         new LockEliminationPhase().apply(graph);
   113         assertDeepEquals(1, graph.getNodes().filter(RawMonitorEnterNode.class).count());
   112         assertDeepEquals(1, graph.getNodes().filter(RawMonitorEnterNode.class).count());
   114         assertDeepEquals(1, graph.getNodes().filter(MonitorExitNode.class).count());
   113         assertDeepEquals(1, graph.getNodes().filter(MonitorExitNode.class).count());