src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/LockEliminationTest.java
equal
deleted
inserted
replaced
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()); |