Mercurial > hg > truffle
comparison graal/com.oracle.graal.phases/src/com/oracle/graal/phases/util/GraphOrder.java @ 19006:c6b2677bcbef
Change verification of scheduled graph.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Wed, 28 Jan 2015 12:05:41 +0100 |
parents | a2cb19764970 |
children | 47fcd91a38c5 |
comparison
equal
deleted
inserted
replaced
19005:a64863622854 | 19006:c6b2677bcbef |
---|---|
178 if (node instanceof LoopBeginNode) { | 178 if (node instanceof LoopBeginNode) { |
179 // remember the state at the loop entry, it's restored at exits | 179 // remember the state at the loop entry, it's restored at exits |
180 loopEntryStates.put((LoopBeginNode) node, currentState.copy()); | 180 loopEntryStates.put((LoopBeginNode) node, currentState.copy()); |
181 } | 181 } |
182 } else if (node instanceof ProxyNode) { | 182 } else if (node instanceof ProxyNode) { |
183 for (Node input : node.inputs()) { | 183 assert false : "proxy nodes should not be in the schedule"; |
184 if (input != ((ProxyNode) node).proxyPoint()) { | |
185 assert currentState.isMarked(input) : input + " not available at " + node + " in block " + block + "\n" + list; | |
186 } | |
187 } | |
188 } else if (node instanceof LoopExitNode) { | 184 } else if (node instanceof LoopExitNode) { |
189 if (graph.hasValueProxies()) { | 185 if (graph.hasValueProxies()) { |
186 for (ProxyNode proxy : ((LoopExitNode) node).proxies()) { | |
187 for (Node input : proxy.inputs()) { | |
188 if (input != proxy.proxyPoint()) { | |
189 assert currentState.isMarked(input) : input + " not available at " + proxy + " in block " + block + "\n" + list; | |
190 } | |
191 } | |
192 } | |
193 | |
190 // loop contents are only accessible via proxies at the exit | 194 // loop contents are only accessible via proxies at the exit |
191 currentState.clearAll(); | 195 currentState.clearAll(); |
192 currentState.markAll(loopEntryStates.get(((LoopExitNode) node).loopBegin())); | 196 currentState.markAll(loopEntryStates.get(((LoopExitNode) node).loopBegin())); |
193 } | 197 } |
194 // Loop proxies aren't scheduled, so they need to be added explicitly | 198 // Loop proxies aren't scheduled, so they need to be added explicitly |