18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24
25 package org.graalvm.compiler.core.test;
26
27 import static org.graalvm.compiler.graph.test.matchers.NodeIterableCount.hasCount;
28 import static org.graalvm.compiler.graph.test.matchers.NodeIterableIsEmpty.isNotEmpty;
29 import static org.junit.Assert.assertThat;
30 import static org.junit.Assume.assumeThat;
31 import static org.junit.Assume.assumeTrue;
32
33 import java.util.Iterator;
34
35 import org.graalvm.compiler.api.directives.GraalDirectives;
36 import org.graalvm.compiler.core.common.GraalOptions;
37 import org.graalvm.compiler.graph.iterators.NodeIterable;
38 import org.graalvm.compiler.nodes.GuardNode;
39 import org.graalvm.compiler.nodes.ParameterNode;
40 import org.graalvm.compiler.nodes.StructuredGraph;
41 import org.graalvm.compiler.nodes.calc.IntegerLowerThanNode;
42 import org.graalvm.compiler.nodes.calc.IsNullNode;
43 import org.graalvm.compiler.nodes.spi.LoweringTool;
44 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
45 import org.graalvm.compiler.phases.common.ConvertDeoptimizeToGuardPhase;
46 import org.graalvm.compiler.phases.common.FloatingReadPhase;
47 import org.graalvm.compiler.phases.common.LoweringPhase;
48 import org.graalvm.compiler.phases.schedule.SchedulePhase;
49 import org.graalvm.compiler.phases.tiers.HighTierContext;
50 import org.junit.Test;
51
52 import jdk.vm.ci.meta.SpeculationLog;
53
54 public class GuardPrioritiesTest extends GraphScheduleTest {
55 private int[] array;
56 private int size;
57
58 public void growing(int e) {
59 if (size >= array.length) {
60 // grow
61 GraalDirectives.deoptimizeAndInvalidateWithSpeculation();
62 }
63 array[size++] = e;
64 }
65
|
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24
25 package org.graalvm.compiler.core.test;
26
27 import static org.graalvm.compiler.graph.test.matchers.NodeIterableCount.hasCount;
28 import static org.graalvm.compiler.graph.test.matchers.NodeIterableIsEmpty.isNotEmpty;
29 import static org.junit.Assert.assertThat;
30 import static org.junit.Assume.assumeThat;
31 import static org.junit.Assume.assumeTrue;
32
33 import java.util.Iterator;
34
35 import org.graalvm.compiler.api.directives.GraalDirectives;
36 import org.graalvm.compiler.core.common.GraalOptions;
37 import org.graalvm.compiler.graph.iterators.NodeIterable;
38 import org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase;
39 import org.graalvm.compiler.nodes.GuardNode;
40 import org.graalvm.compiler.nodes.ParameterNode;
41 import org.graalvm.compiler.nodes.StructuredGraph;
42 import org.graalvm.compiler.nodes.calc.IntegerLowerThanNode;
43 import org.graalvm.compiler.nodes.calc.IsNullNode;
44 import org.graalvm.compiler.nodes.spi.LoweringTool;
45 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
46 import org.graalvm.compiler.phases.common.FloatingReadPhase;
47 import org.graalvm.compiler.phases.common.LoweringPhase;
48 import org.graalvm.compiler.phases.schedule.SchedulePhase;
49 import org.graalvm.compiler.phases.tiers.HighTierContext;
50 import org.junit.Test;
51
52 import jdk.vm.ci.meta.SpeculationLog;
53
54 public class GuardPrioritiesTest extends GraphScheduleTest {
55 private int[] array;
56 private int size;
57
58 public void growing(int e) {
59 if (size >= array.length) {
60 // grow
61 GraalDirectives.deoptimizeAndInvalidateWithSpeculation();
62 }
63 array[size++] = e;
64 }
65
|