37 import org.graalvm.compiler.nodes.calc.IntegerEqualsNode; |
37 import org.graalvm.compiler.nodes.calc.IntegerEqualsNode; |
38 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext; |
38 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext; |
39 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin; |
39 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin; |
40 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins; |
40 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins; |
41 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.Registration; |
41 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.Registration; |
|
42 import org.graalvm.compiler.nodes.spi.CoreProviders; |
42 import org.graalvm.compiler.nodes.spi.LoweringTool; |
43 import org.graalvm.compiler.nodes.spi.LoweringTool; |
43 import org.graalvm.compiler.phases.common.CanonicalizerPhase; |
44 import org.graalvm.compiler.phases.common.CanonicalizerPhase; |
44 import org.graalvm.compiler.phases.common.FloatingReadPhase; |
45 import org.graalvm.compiler.phases.common.FloatingReadPhase; |
45 import org.graalvm.compiler.phases.common.IncrementalCanonicalizerPhase; |
46 import org.graalvm.compiler.phases.common.IncrementalCanonicalizerPhase; |
46 import org.graalvm.compiler.phases.common.LoweringPhase; |
47 import org.graalvm.compiler.phases.common.LoweringPhase; |
47 import org.graalvm.compiler.phases.tiers.PhaseContext; |
|
48 import org.junit.Assert; |
48 import org.junit.Assert; |
49 import org.junit.Test; |
49 import org.junit.Test; |
50 |
50 |
51 import jdk.vm.ci.meta.JavaKind; |
51 import jdk.vm.ci.meta.JavaKind; |
52 import jdk.vm.ci.meta.ResolvedJavaMethod; |
52 import jdk.vm.ci.meta.ResolvedJavaMethod; |
375 @Test |
375 @Test |
376 public void testCascade() { |
376 public void testCascade() { |
377 for (int i = 1; i <= 64; ++i) { |
377 for (int i = 1; i <= 64; ++i) { |
378 String snippet = "testCascadeSnippet" + i; |
378 String snippet = "testCascadeSnippet" + i; |
379 StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES); |
379 StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES); |
380 PhaseContext context = new PhaseContext(getProviders()); |
380 CoreProviders context = getProviders(); |
381 CanonicalizerPhase canonicalizer = new CanonicalizerPhase(); |
381 CanonicalizerPhase canonicalizer = new CanonicalizerPhase(); |
382 canonicalizer.apply(graph, context); |
382 canonicalizer.apply(graph, context); |
383 new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context); |
383 new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context); |
384 new IncrementalCanonicalizerPhase<>(canonicalizer, new FloatingReadPhase()).apply(graph, context); |
384 new IncrementalCanonicalizerPhase<>(canonicalizer, new FloatingReadPhase()).apply(graph, context); |
385 int shortCircuitCount = graph.getNodes(ShortCircuitOrNode.TYPE).count(); |
385 int shortCircuitCount = graph.getNodes(ShortCircuitOrNode.TYPE).count(); |