# HG changeset patch # User Gilles Duboscq # Date 1404230899 -7200 # Node ID 5a3351bb88a82c1107b2d6028780972a2ff2e4f5 # Parent fefb82b01d6f34efaed3ec56a27aea4565ee2ce5 Minor refactoring in LoopFragment.mergeEarlyExits to improve readability diff -r fefb82b01d6f -r 5a3351bb88a8 graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java --- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java Fri Jun 27 11:50:07 2014 +0200 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java Tue Jul 01 18:08:19 2014 +0200 @@ -322,21 +322,20 @@ merge.setNext(next); FrameState exitState = loopEarlyExit.stateAfter(); - FrameState state = null; if (exitState != null) { - state = exitState; + FrameState originalExitState = exitState; exitState = exitState.duplicateWithVirtualState(); loopEarlyExit.setStateAfter(exitState); - merge.setStateAfter(state); + merge.setStateAfter(originalExitState); /* * Using the old exit's state as the merge's state is necessary because some of the * VirtualState nodes contained in the old exit's state may be shared by other * dominated VirtualStates. Those dominated virtual states need to see the * proxy->phi update that are applied below. - * + * * We now update the original fragment's nodes accordingly: */ - state.applyToVirtual(node -> original.nodes.clearAndGrow(node)); + originalExitState.applyToVirtual(node -> original.nodes.clearAndGrow(node)); exitState.applyToVirtual(node -> original.nodes.markAndGrow(node)); } FrameState finalExitState = exitState;