Mercurial > hg > truffle
comparison graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java @ 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 | 84bf57a0ddcb |
children | db390d92bb16 |
comparison
equal
deleted
inserted
replaced
19047:173bdcc85ab8 | 19048:b300d1f6e817 |
---|---|
1066 } | 1066 } |
1067 } | 1067 } |
1068 } | 1068 } |
1069 | 1069 |
1070 private void addToLatestSorting(ValueNode i, SortState state) { | 1070 private void addToLatestSorting(ValueNode i, SortState state) { |
1071 if (i == null || state.isVisited(i) || cfg.getNodeToBlock().get(i) != state.currentBlock() || i instanceof PhiNode || i instanceof ProxyNode) { | 1071 if (i == null || state.isVisited(i) || cfg.getNodeToBlock().get(i) != state.currentBlock() || i instanceof PhiNode) { |
1072 return; | 1072 return; |
1073 } | 1073 } |
1074 | 1074 |
1075 FrameState stateAfter = null; | 1075 FrameState stateAfter = null; |
1076 if (i instanceof StateSplit) { | 1076 if (i instanceof StateSplit) { |
1083 addUnscheduledToLatestSorting((FrameState) input, state); | 1083 addUnscheduledToLatestSorting((FrameState) input, state); |
1084 } | 1084 } |
1085 } else { | 1085 } else { |
1086 addToLatestSorting((ValueNode) input, state); | 1086 addToLatestSorting((ValueNode) input, state); |
1087 } | 1087 } |
1088 } | |
1089 | |
1090 if (i instanceof ProxyNode) { | |
1091 return; | |
1088 } | 1092 } |
1089 | 1093 |
1090 if (state.readsSize() != 0) { | 1094 if (state.readsSize() != 0) { |
1091 if (i instanceof MemoryCheckpoint.Single) { | 1095 if (i instanceof MemoryCheckpoint.Single) { |
1092 LocationIdentity identity = ((MemoryCheckpoint.Single) i).getLocationIdentity(); | 1096 LocationIdentity identity = ((MemoryCheckpoint.Single) i).getLocationIdentity(); |