# HG changeset patch # User Gilles Duboscq # Date 1309683905 -7200 # Node ID f5c607fb850d7c7d98cc0c2040ab795634921192 # Parent 4b63eb1197ca2abe578a9574112e518e577a9020 Fix bug in peeling in updating the parent loops after peeling. Added verify to If diff -r 4b63eb1197ca -r f5c607fb850d graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/If.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/If.java Sat Jul 02 02:46:04 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/If.java Sun Jul 03 11:05:05 2011 +0200 @@ -96,6 +96,14 @@ } @Override + public boolean verify() { + assertTrue(compare() != null); + assertTrue(trueSuccessor() != null); + assertTrue(falseSuccessor() != null); + return true; + } + + @Override public void print(LogStream out) { out.print("if "). print(compare()). diff -r 4b63eb1197ca -r f5c607fb850d graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/LoopUtil.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/LoopUtil.java Sat Jul 02 02:46:04 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/LoopUtil.java Sun Jul 03 11:05:05 2011 +0200 @@ -264,7 +264,7 @@ System.out.println(" - " + entry.getKey() + " -> " + entry.getValue()); } System.out.println(" Exits :"); - for (Entry entry : peeling.exits.entries()) { + for (Entry entry : peeling.exits.entries()) { System.out.println(" - " + entry.getKey() + " -> " + entry.getValue()); } System.out.println(" PhiInits :"); @@ -282,7 +282,7 @@ // update parents Loop parent = loop.parent(); while (parent != null) { - parent.nodes = computeLoopNodes(loop.loopBegin); + parent.nodes = computeLoopNodes(parent.loopBegin); parent.exits = computeLoopExits(parent.loopBegin, parent.nodes); parent = parent.parent; }