src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/IfCanonicalizerTest.java
changeset 58877 aec7bf35d6f5
parent 58299 6df94ce3ab2f
equal deleted inserted replaced
58876:1a8d65e71a66 58877:aec7bf35d6f5
    33 import org.graalvm.compiler.nodes.StructuredGraph;
    33 import org.graalvm.compiler.nodes.StructuredGraph;
    34 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
    34 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
    35 import org.graalvm.compiler.nodes.spi.CoreProviders;
    35 import org.graalvm.compiler.nodes.spi.CoreProviders;
    36 import org.graalvm.compiler.nodes.spi.LoweringTool;
    36 import org.graalvm.compiler.nodes.spi.LoweringTool;
    37 import org.graalvm.compiler.phases.OptimisticOptimizations;
    37 import org.graalvm.compiler.phases.OptimisticOptimizations;
    38 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
       
    39 import org.graalvm.compiler.phases.common.FloatingReadPhase;
    38 import org.graalvm.compiler.phases.common.FloatingReadPhase;
    40 import org.graalvm.compiler.phases.common.GuardLoweringPhase;
    39 import org.graalvm.compiler.phases.common.GuardLoweringPhase;
    41 import org.graalvm.compiler.phases.common.LoweringPhase;
    40 import org.graalvm.compiler.phases.common.LoweringPhase;
    42 import org.graalvm.compiler.phases.tiers.MidTierContext;
    41 import org.graalvm.compiler.phases.tiers.MidTierContext;
    43 import org.junit.Test;
    42 import org.junit.Test;
   225     }
   224     }
   226 
   225 
   227     private void testCombinedIf(String snippet, int count) {
   226     private void testCombinedIf(String snippet, int count) {
   228         StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES);
   227         StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES);
   229         CoreProviders context = getProviders();
   228         CoreProviders context = getProviders();
   230         new LoweringPhase(new CanonicalizerPhase(), LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
   229         new LoweringPhase(createCanonicalizerPhase(), LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
   231         new FloatingReadPhase().apply(graph);
   230         new FloatingReadPhase().apply(graph);
   232         MidTierContext midContext = new MidTierContext(getProviders(), getTargetProvider(), OptimisticOptimizations.ALL, graph.getProfilingInfo());
   231         MidTierContext midContext = new MidTierContext(getProviders(), getTargetProvider(), OptimisticOptimizations.ALL, graph.getProfilingInfo());
   233         new GuardLoweringPhase().apply(graph, midContext);
   232         new GuardLoweringPhase().apply(graph, midContext);
   234         new LoweringPhase(new CanonicalizerPhase(), LoweringTool.StandardLoweringStage.MID_TIER).apply(graph, midContext);
   233         new LoweringPhase(createCanonicalizerPhase(), LoweringTool.StandardLoweringStage.MID_TIER).apply(graph, midContext);
   235         new CanonicalizerPhase().apply(graph, context);
   234         createCanonicalizerPhase().apply(graph, context);
   236         assertDeepEquals(count, graph.getNodes().filter(IfNode.class).count());
   235         assertDeepEquals(count, graph.getNodes().filter(IfNode.class).count());
   237     }
   236     }
   238 
   237 
   239     private void test(String snippet) {
   238     private void test(String snippet) {
   240         StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES);
   239         StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES);
   245             if (!(n instanceof FrameState)) {
   244             if (!(n instanceof FrameState)) {
   246                 n.replaceFirstInput(param, constant);
   245                 n.replaceFirstInput(param, constant);
   247             }
   246             }
   248         }
   247         }
   249         debug.dump(DebugContext.BASIC_LEVEL, graph, "Graph");
   248         debug.dump(DebugContext.BASIC_LEVEL, graph, "Graph");
   250         new CanonicalizerPhase().apply(graph, getProviders());
   249         createCanonicalizerPhase().apply(graph, getProviders());
   251         for (FrameState fs : param.usages().filter(FrameState.class).snapshot()) {
   250         for (FrameState fs : param.usages().filter(FrameState.class).snapshot()) {
   252             fs.replaceFirstInput(param, null);
   251             fs.replaceFirstInput(param, null);
   253             param.safeDelete();
   252             param.safeDelete();
   254         }
   253         }
   255         StructuredGraph referenceGraph = parseEager(REFERENCE_SNIPPET, AllowAssumptions.YES);
   254         StructuredGraph referenceGraph = parseEager(REFERENCE_SNIPPET, AllowAssumptions.YES);