src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CountedLoopTest.java
changeset 48861 47f19ff9903c
parent 48398 79afa4c434f6
child 49451 e06f9607f370
equal deleted inserted replaced
48860:5bce1b7e7800 48861:47f19ff9903c
    23 package org.graalvm.compiler.core.test;
    23 package org.graalvm.compiler.core.test;
    24 
    24 
    25 import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_IGNORED;
    25 import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_IGNORED;
    26 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_IGNORED;
    26 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_IGNORED;
    27 
    27 
    28 import org.graalvm.compiler.nodes.NodeView;
       
    29 import org.junit.Test;
       
    30 
       
    31 import org.graalvm.compiler.api.directives.GraalDirectives;
    28 import org.graalvm.compiler.api.directives.GraalDirectives;
    32 import org.graalvm.compiler.graph.NodeClass;
    29 import org.graalvm.compiler.graph.NodeClass;
    33 import org.graalvm.compiler.loop.InductionVariable;
    30 import org.graalvm.compiler.loop.InductionVariable;
    34 import org.graalvm.compiler.loop.LoopsData;
    31 import org.graalvm.compiler.loop.LoopsData;
    35 import org.graalvm.compiler.nodeinfo.NodeInfo;
    32 import org.graalvm.compiler.nodeinfo.NodeInfo;
       
    33 import org.graalvm.compiler.nodes.NodeView;
    36 import org.graalvm.compiler.nodes.StructuredGraph;
    34 import org.graalvm.compiler.nodes.StructuredGraph;
    37 import org.graalvm.compiler.nodes.ValueNode;
    35 import org.graalvm.compiler.nodes.ValueNode;
    38 import org.graalvm.compiler.nodes.calc.FloatingNode;
    36 import org.graalvm.compiler.nodes.calc.FloatingNode;
    39 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext;
    37 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext;
    40 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin;
    38 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin;
    41 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins;
    39 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins;
    42 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.Registration;
    40 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.Registration;
    43 import org.graalvm.compiler.nodes.spi.LIRLowerable;
    41 import org.graalvm.compiler.nodes.spi.LIRLowerable;
    44 import org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool;
    42 import org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool;
       
    43 import org.junit.Test;
    45 
    44 
    46 import jdk.vm.ci.meta.JavaKind;
    45 import jdk.vm.ci.meta.JavaKind;
    47 import jdk.vm.ci.meta.ResolvedJavaMethod;
    46 import jdk.vm.ci.meta.ResolvedJavaMethod;
    48 
    47 
    49 public class CountedLoopTest extends GraalCompilerTest {
    48 public class CountedLoopTest extends GraalCompilerTest {
   115     @Test
   114     @Test
   116     public void increment3() {
   115     public void increment3() {
   117         test("incrementSnippet", 0, 256, 3);
   116         test("incrementSnippet", 0, 256, 3);
   118     }
   117     }
   119 
   118 
       
   119     @Test
       
   120     public void increment4() {
       
   121         test("incrementSnippet", -10, Integer.MAX_VALUE, 1);
       
   122     }
       
   123 
       
   124     @Test
       
   125     public void increment5() {
       
   126         test("incrementSnippet", 256, 256, 1);
       
   127     }
       
   128 
       
   129     @Test
       
   130     public void increment6() {
       
   131         test("incrementSnippet", 257, 256, 1);
       
   132     }
       
   133 
   120     public static Result incrementEqSnippet(int start, int limit, int step) {
   134     public static Result incrementEqSnippet(int start, int limit, int step) {
   121         int i;
   135         int i;
   122         int inc = ((step - 1) & 0xFFFF) + 1; // make sure this value is always strictly positive
   136         int inc = ((step - 1) & 0xFFFF) + 1; // make sure this value is always strictly positive
   123         Result ret = new Result();
   137         Result ret = new Result();
   124         for (i = start; i <= limit; i += inc) {
   138         for (i = start; i <= limit; i += inc) {
   142     @Test
   156     @Test
   143     public void incrementEq3() {
   157     public void incrementEq3() {
   144         test("incrementEqSnippet", 0, 256, 3);
   158         test("incrementEqSnippet", 0, 256, 3);
   145     }
   159     }
   146 
   160 
       
   161     @Test
       
   162     public void incrementEq4() {
       
   163         test("incrementEqSnippet", -10, 0, Integer.MAX_VALUE);
       
   164     }
       
   165 
       
   166     @Test
       
   167     public void incrementEq5() {
       
   168         test("incrementEqSnippet", 256, 256, 1);
       
   169     }
       
   170 
       
   171     @Test
       
   172     public void incrementEq6() {
       
   173         test("incrementEqSnippet", 257, 256, 1);
       
   174     }
       
   175 
   147     public static Result decrementSnippet(int start, int limit, int step) {
   176     public static Result decrementSnippet(int start, int limit, int step) {
   148         int i;
   177         int i;
   149         int dec = ((step - 1) & 0xFFFF) + 1; // make sure this value is always strictly positive
   178         int dec = ((step - 1) & 0xFFFF) + 1; // make sure this value is always strictly positive
   150         Result ret = new Result();
   179         Result ret = new Result();
   151         for (i = start; i > limit; i -= dec) {
   180         for (i = start; i > limit; i -= dec) {
   194     }
   223     }
   195 
   224 
   196     @Test
   225     @Test
   197     public void decrementEq3() {
   226     public void decrementEq3() {
   198         test("decrementEqSnippet", 256, 0, 3);
   227         test("decrementEqSnippet", 256, 0, 3);
       
   228     }
       
   229 
       
   230     @Test
       
   231     public void decrementEq4() {
       
   232         test("decrementEqSnippet", -10, 0, Integer.MAX_VALUE);
   199     }
   233     }
   200 
   234 
   201     public static Result twoVariablesSnippet() {
   235     public static Result twoVariablesSnippet() {
   202         Result ret = new Result();
   236         Result ret = new Result();
   203         int j = 0;
   237         int j = 0;