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