changeset 19048:b300d1f6e817

schedule inputs of proxy nodes at the loop exit
author Lukas Stadler <lukas.stadler@oracle.com>
date Fri, 30 Jan 2015 20:52:39 +0100
parents 173bdcc85ab8
children c198e397bb59
files graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java	Fri Jan 30 10:54:09 2015 -0800
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java	Fri Jan 30 20:52:39 2015 +0100
@@ -1068,7 +1068,7 @@
     }
 
     private void addToLatestSorting(ValueNode i, SortState state) {
-        if (i == null || state.isVisited(i) || cfg.getNodeToBlock().get(i) != state.currentBlock() || i instanceof PhiNode || i instanceof ProxyNode) {
+        if (i == null || state.isVisited(i) || cfg.getNodeToBlock().get(i) != state.currentBlock() || i instanceof PhiNode) {
             return;
         }
 
@@ -1087,6 +1087,10 @@
             }
         }
 
+        if (i instanceof ProxyNode) {
+            return;
+        }
+
         if (state.readsSize() != 0) {
             if (i instanceof MemoryCheckpoint.Single) {
                 LocationIdentity identity = ((MemoryCheckpoint.Single) i).getLocationIdentity();