changeset 19586:5b24a15988fe

Fix scheduling of value proxy nodes.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 24 Feb 2015 21:02:22 +0100
parents d28482893f28
children 884188ccc9d8 3349fe56e6e9
files graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SchedulingTest.java graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java
diffstat 2 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SchedulingTest.java	Tue Feb 24 20:23:42 2015 +0100
+++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SchedulingTest.java	Tue Feb 24 21:02:22 2015 +0100
@@ -66,7 +66,7 @@
         for (BinaryArithmeticNode<?> node : graph.getNodes().filter(BinaryArithmeticNode.class)) {
             if (!(node instanceof AddNode)) {
                 assertTrue(nodeToBlock.get(node) == nodeToBlock.get(loopExit));
-                assertTrue(list.indexOf(node) < list.indexOf(loopExit));
+                assertTrue(list.indexOf(node) + " < " + list.indexOf(loopExit) + ", " + node + ", " + loopExit, list.indexOf(node) < list.indexOf(loopExit));
             }
         }
     }
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java	Tue Feb 24 20:23:42 2015 +0100
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java	Tue Feb 24 21:02:22 2015 +0100
@@ -1048,6 +1048,13 @@
             return;
         }
 
+        if (i instanceof LoopExitNode) {
+            LoopExitNode loopExitNode = (LoopExitNode) i;
+            for (ProxyNode proxy : loopExitNode.proxies()) {
+                addToLatestSorting(proxy, state);
+            }
+        }
+
         addToLatestSortingHelper(i, state);
     }