29 import org.graalvm.compiler.debug.DebugDumpScope; |
29 import org.graalvm.compiler.debug.DebugDumpScope; |
30 import org.graalvm.compiler.nodes.DeoptimizeNode; |
30 import org.graalvm.compiler.nodes.DeoptimizeNode; |
31 import org.graalvm.compiler.nodes.StructuredGraph; |
31 import org.graalvm.compiler.nodes.StructuredGraph; |
32 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions; |
32 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions; |
33 import org.graalvm.compiler.nodes.memory.ReadNode; |
33 import org.graalvm.compiler.nodes.memory.ReadNode; |
|
34 import org.graalvm.compiler.nodes.spi.CoreProviders; |
34 import org.graalvm.compiler.nodes.spi.LoweringTool; |
35 import org.graalvm.compiler.nodes.spi.LoweringTool; |
35 import org.graalvm.compiler.phases.OptimisticOptimizations; |
36 import org.graalvm.compiler.phases.OptimisticOptimizations; |
36 import org.graalvm.compiler.phases.common.CanonicalizerPhase; |
37 import org.graalvm.compiler.phases.common.CanonicalizerPhase; |
37 import org.graalvm.compiler.phases.common.FloatingReadPhase; |
38 import org.graalvm.compiler.phases.common.FloatingReadPhase; |
38 import org.graalvm.compiler.phases.common.GuardLoweringPhase; |
39 import org.graalvm.compiler.phases.common.GuardLoweringPhase; |
39 import org.graalvm.compiler.phases.common.LoweringPhase; |
40 import org.graalvm.compiler.phases.common.LoweringPhase; |
40 import org.graalvm.compiler.phases.tiers.MidTierContext; |
41 import org.graalvm.compiler.phases.tiers.MidTierContext; |
41 import org.graalvm.compiler.phases.tiers.PhaseContext; |
|
42 import org.junit.Assert; |
42 import org.junit.Assert; |
43 import org.junit.Ignore; |
43 import org.junit.Ignore; |
44 import org.junit.Test; |
44 import org.junit.Test; |
45 |
45 |
46 /** |
46 /** |
69 @SuppressWarnings("try") |
69 @SuppressWarnings("try") |
70 private void test(final String snippet) { |
70 private void test(final String snippet) { |
71 DebugContext debug = getDebugContext(); |
71 DebugContext debug = getDebugContext(); |
72 try (DebugContext.Scope s = debug.scope("FloatingReadTest", new DebugDumpScope(snippet))) { |
72 try (DebugContext.Scope s = debug.scope("FloatingReadTest", new DebugDumpScope(snippet))) { |
73 StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES, debug); |
73 StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES, debug); |
74 PhaseContext context = new PhaseContext(getProviders()); |
74 CoreProviders context = getProviders(); |
75 new LoweringPhase(new CanonicalizerPhase(), LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context); |
75 new LoweringPhase(new CanonicalizerPhase(), LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context); |
76 new FloatingReadPhase().apply(graph); |
76 new FloatingReadPhase().apply(graph); |
77 MidTierContext midTierContext = new MidTierContext(getProviders(), getTargetProvider(), OptimisticOptimizations.ALL, graph.getProfilingInfo()); |
77 MidTierContext midTierContext = new MidTierContext(getProviders(), getTargetProvider(), OptimisticOptimizations.ALL, graph.getProfilingInfo()); |
78 new GuardLoweringPhase().apply(graph, midTierContext); |
78 new GuardLoweringPhase().apply(graph, midTierContext); |
79 |
79 |