< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/EffectsClosure.java

Print this page

        

*** 293,303 **** @Override @SuppressWarnings("try") protected final List<BlockT> processLoop(Loop<Block> loop, BlockT initialState) { if (initialState.isDead()) { ArrayList<BlockT> states = new ArrayList<>(); ! for (int i = 0; i < loop.getExits().size(); i++) { states.add(initialState); } return states; } /* --- 293,303 ---- @Override @SuppressWarnings("try") protected final List<BlockT> processLoop(Loop<Block> loop, BlockT initialState) { if (initialState.isDead()) { ArrayList<BlockT> states = new ArrayList<>(); ! for (int i = 0; i < loop.getLoopExits().size(); i++) { states.add(initialState); } return states; } /*
*** 345,355 **** if (mergeProcessor.newState.equivalentTo(lastMergedState)) { blockEffects.get(loop.getHeader()).insertAll(mergeProcessor.mergeEffects, 0); loopMergeEffects.put(loop, mergeProcessor.afterMergeEffects); ! assert info.exitStates.size() == loop.getExits().size(); loopEntryStates.put((LoopBeginNode) loop.getHeader().getBeginNode(), loopEntryState); assert assertExitStatesNonEmpty(loop, info); processKilledLoopLocations(loop, initialStateRemovedKilledLocations, mergeProcessor.newState); return info.exitStates; --- 345,355 ---- if (mergeProcessor.newState.equivalentTo(lastMergedState)) { blockEffects.get(loop.getHeader()).insertAll(mergeProcessor.mergeEffects, 0); loopMergeEffects.put(loop, mergeProcessor.afterMergeEffects); ! assert info.exitStates.size() == loop.getLoopExits().size(); loopEntryStates.put((LoopBeginNode) loop.getHeader().getBeginNode(), loopEntryState); assert assertExitStatesNonEmpty(loop, info); processKilledLoopLocations(loop, initialStateRemovedKilledLocations, mergeProcessor.newState); return info.exitStates;
*** 410,421 **** mergeProcessor.merge(aliveStates); } } private boolean assertExitStatesNonEmpty(Loop<Block> loop, LoopInfo<BlockT> info) { ! for (int i = 0; i < loop.getExits().size(); i++) { ! assert info.exitStates.get(i) != null : "no loop exit state at " + loop.getExits().get(i) + " / " + loop.getHeader(); } return true; } protected abstract void processLoopExit(LoopExitNode exitNode, BlockT initialState, BlockT exitState, GraphEffectList effects); --- 410,421 ---- mergeProcessor.merge(aliveStates); } } private boolean assertExitStatesNonEmpty(Loop<Block> loop, LoopInfo<BlockT> info) { ! for (int i = 0; i < loop.getLoopExits().size(); i++) { ! assert info.exitStates.get(i) != null : "no loop exit state at " + loop.getLoopExits().get(i) + " / " + loop.getHeader(); } return true; } protected abstract void processLoopExit(LoopExitNode exitNode, BlockT initialState, BlockT exitState, GraphEffectList effects);
< prev index next >