Mercurial > hg > graal-jvmci-8
changeset 5224:e706b132f580
Merge
author | Andreas Woess <andreas.woess@jku.at> |
---|---|
date | Tue, 10 Apr 2012 18:52:21 +0200 |
parents | c4381dacfca6 (diff) 155f8ca28f11 (current diff) |
children | a693408f737c |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopTransformUtil.java |
diffstat | 1 files changed, 6 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopTransformUtil.java Tue Apr 10 15:48:54 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopTransformUtil.java Tue Apr 10 18:52:21 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();