hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ConditionalEliminationTest2.java
changeset 46459 7d4e637d3f21
parent 46344 694c102fd8ed
equal deleted inserted replaced
46458:3c12af929e7d 46459:7d4e637d3f21
    20  * or visit www.oracle.com if you need additional information or have any
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 package org.graalvm.compiler.core.test;
    23 package org.graalvm.compiler.core.test;
    24 
    24 
    25 import org.junit.Test;
       
    26 
       
    27 import org.graalvm.compiler.nodes.GuardNode;
    25 import org.graalvm.compiler.nodes.GuardNode;
    28 import org.graalvm.compiler.nodes.StructuredGraph;
    26 import org.graalvm.compiler.nodes.StructuredGraph;
    29 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
    27 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
    30 import org.graalvm.compiler.nodes.spi.LoweringTool;
    28 import org.graalvm.compiler.nodes.spi.LoweringTool;
    31 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
    29 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
    32 import org.graalvm.compiler.phases.common.DominatorConditionalEliminationPhase;
       
    33 import org.graalvm.compiler.phases.common.FloatingReadPhase;
    30 import org.graalvm.compiler.phases.common.FloatingReadPhase;
    34 import org.graalvm.compiler.phases.common.LoweringPhase;
    31 import org.graalvm.compiler.phases.common.LoweringPhase;
       
    32 import org.graalvm.compiler.phases.common.ConditionalEliminationPhase;
    35 import org.graalvm.compiler.phases.tiers.PhaseContext;
    33 import org.graalvm.compiler.phases.tiers.PhaseContext;
       
    34 import org.junit.Test;
    36 
    35 
    37 /**
    36 /**
    38  * Collection of tests for
    37  * Collection of tests for {@link org.graalvm.compiler.phases.common.ConditionalEliminationPhase}
    39  * {@link org.graalvm.compiler.phases.common.DominatorConditionalEliminationPhase} including those
    38  * including those that triggered bugs in this phase.
    40  * that triggered bugs in this phase.
       
    41  */
    39  */
    42 public class ConditionalEliminationTest2 extends ConditionalEliminationTestBase {
    40 public class ConditionalEliminationTest2 extends ConditionalEliminationTestBase {
    43 
    41 
    44     public static Object field;
    42     public static Object field;
    45 
    43 
   101         PhaseContext context = new PhaseContext(getProviders());
    99         PhaseContext context = new PhaseContext(getProviders());
   102 
   100 
   103         new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
   101         new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
   104         canonicalizer.apply(graph, context);
   102         canonicalizer.apply(graph, context);
   105         new FloatingReadPhase().apply(graph);
   103         new FloatingReadPhase().apply(graph);
   106         DominatorConditionalEliminationPhase.create(true).apply(graph, context);
   104         new ConditionalEliminationPhase(true).apply(graph, context);
   107         canonicalizer.apply(graph, context);
   105         canonicalizer.apply(graph, context);
   108 
   106 
   109         assertDeepEquals(1, graph.getNodes().filter(GuardNode.class).count());
   107         assertDeepEquals(1, graph.getNodes().filter(GuardNode.class).count());
   110     }
   108     }
   111 
   109 
   123         CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
   121         CanonicalizerPhase canonicalizer = new CanonicalizerPhase();
   124         PhaseContext context = new PhaseContext(getProviders());
   122         PhaseContext context = new PhaseContext(getProviders());
   125 
   123 
   126         new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
   124         new LoweringPhase(canonicalizer, LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, context);
   127         canonicalizer.apply(graph, context);
   125         canonicalizer.apply(graph, context);
   128         DominatorConditionalEliminationPhase.create(true).apply(graph, context);
   126         new ConditionalEliminationPhase(true).apply(graph, context);
   129         canonicalizer.apply(graph, context);
   127         canonicalizer.apply(graph, context);
   130 
   128 
   131         assertDeepEquals(0, graph.getNodes().filter(GuardNode.class).count());
   129         assertDeepEquals(0, graph.getNodes().filter(GuardNode.class).count());
   132     }
   130     }
   133 
   131