changeset 19051:687479c0cd3e

Process inputs of ProxyNodes in the scheduler.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Wed, 28 Jan 2015 15:07:54 +0100
parents f1b9a421ebd8
children db390d92bb16
files graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java	Wed Jan 28 14:24:16 2015 +0100
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java	Wed Jan 28 15:07:54 2015 +0100
@@ -1068,7 +1068,13 @@
     }
 
     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;
+        }
+
+        if (i instanceof ProxyNode) {
+            ProxyNode proxyNode = (ProxyNode) i;
+            addToLatestSorting(proxyNode.value(), state);
             return;
         }