< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/graph/ReentrantBlockIterator.java
Print this page
@@ -75,17 +75,17 @@
public static <StateT> LoopInfo<StateT> processLoop(BlockIteratorClosure<StateT> closure, Loop<Block> loop, StateT initialState) {
EconomicMap<FixedNode, StateT> blockEndStates = apply(closure, loop.getHeader(), initialState, block -> !(block.getLoop() == loop || block.isLoopHeader()));
Block[] predecessors = loop.getHeader().getPredecessors();
- LoopInfo<StateT> info = new LoopInfo<>(predecessors.length - 1, loop.getExits().size());
+ LoopInfo<StateT> info = new LoopInfo<>(predecessors.length - 1, loop.getLoopExits().size());
for (int i = 1; i < predecessors.length; i++) {
StateT endState = blockEndStates.get(predecessors[i].getEndNode());
// make sure all end states are unique objects
info.endStates.add(closure.cloneState(endState));
}
- for (Block loopExit : loop.getExits()) {
+ for (Block loopExit : loop.getLoopExits()) {
assert loopExit.getPredecessorCount() == 1;
assert blockEndStates.containsKey(loopExit.getBeginNode()) : loopExit.getBeginNode() + " " + blockEndStates;
StateT exitState = blockEndStates.get(loopExit.getBeginNode());
// make sure all exit states are unique objects
info.exitStates.add(closure.cloneState(exitState));
@@ -208,12 +208,12 @@
assert successor.getBeginNode() == loopBegin;
List<StateT> exitStates = closure.processLoop(loop, state);
int i = 0;
- assert loop.getExits().size() == exitStates.size();
- for (Block exit : loop.getExits()) {
+ assert loop.getLoopExits().size() == exitStates.size();
+ for (Block exit : loop.getLoopExits()) {
states.put(exit.getBeginNode(), exitStates.get(i++));
blockQueue.addFirst(exit);
}
}
}
< prev index next >