src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/GraphScheduleTest.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/GraphScheduleTest.java Fri Feb 02 10:37:48 2018 -0500
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/GraphScheduleTest.java Fri Feb 02 17:28:17 2018 -0800
@@ -24,20 +24,29 @@
import java.util.List;
-import org.junit.Assert;
-
import org.graalvm.compiler.graph.Node;
import org.graalvm.compiler.graph.NodeMap;
import org.graalvm.compiler.nodes.StructuredGraph;
import org.graalvm.compiler.nodes.StructuredGraph.ScheduleResult;
import org.graalvm.compiler.nodes.cfg.Block;
import org.graalvm.compiler.phases.schedule.SchedulePhase;
+import org.junit.Assert;
+
+import jdk.vm.ci.meta.SpeculationLog;
public class GraphScheduleTest extends GraalCompilerTest {
protected void assertOrderedAfterSchedule(StructuredGraph graph, Node a, Node b) {
- SchedulePhase ibp = new SchedulePhase(SchedulePhase.SchedulingStrategy.LATEST);
+ assertOrderedAfterSchedule(graph, SchedulePhase.SchedulingStrategy.LATEST, a, b);
+ }
+
+ protected void assertOrderedAfterSchedule(StructuredGraph graph, SchedulePhase.SchedulingStrategy strategy, Node a, Node b) {
+ SchedulePhase ibp = new SchedulePhase(strategy);
ibp.apply(graph);
+ assertOrderedAfterLastSchedule(graph, a, b);
+ }
+
+ protected void assertOrderedAfterLastSchedule(StructuredGraph graph, Node a, Node b) {
assertOrderedAfterSchedule(graph.getLastSchedule(), a, b);
}
@@ -48,7 +57,7 @@
if (bBlock == aBlock) {
List<Node> instructions = ibp.nodesFor(bBlock);
- Assert.assertTrue(instructions.indexOf(b) > instructions.indexOf(a));
+ Assert.assertTrue(a + " should be before " + b, instructions.indexOf(b) > instructions.indexOf(a));
} else {
Block block = bBlock;
while (block != null) {
@@ -60,4 +69,9 @@
Assert.fail("block of A doesn't dominate the block of B");
}
}
+
+ @Override
+ protected SpeculationLog getSpeculationLog() {
+ return getCodeCache().createSpeculationLog();
+ }
}