# HG changeset patch # User Andreas Woess # Date 1334076664 -7200 # Node ID c4381dacfca6b4c466eb26643000ca4356ed3404 # Parent b64933dc4830c6ead7638025af6e5cb12203e852 Add peel method overload with SuperBlock parameter. Don't call normalizeLoopBegin. diff -r b64933dc4830 -r c4381dacfca6 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopTransformUtil.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopTransformUtil.java Mon Apr 09 20:43:30 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopTransformUtil.java Tue Apr 10 18:51:04 2012 +0200 @@ -26,20 +26,21 @@ import com.oracle.graal.lir.cfg.*; import com.oracle.graal.nodes.*; -import com.oracle.graal.nodes.util.*; public class LoopTransformUtil { public static void peel(Loop loop) { - GraphUtil.normalizeLoopBegin(loop.loopBegin()); - SuperBlock block = wholeLoop(loop); - SuperBlock peel = block.duplicate(); // duplicates the nodes, merges early exits + peel(loop, wholeLoop(loop)); + } + + public static void peel(Loop loop, SuperBlock wholeLoop) { + SuperBlock peel = wholeLoop.duplicate(); // duplicates the nodes, merges early exits peel.insertBefore(loop.loopBegin().forwardEnd()); // connects peeled part's CFG LoopTransformDataResolver resolver = new LoopTransformDataResolver(); - resolver.wholeLoop(block).peeled(peel); // block (comming from the loop) was peeled into peel + resolver.wholeLoop(wholeLoop).peeled(peel); // block (comming from the loop) was peeled into peel resolver.resolve(); peel.finish();