# HG changeset patch # User Gilles Duboscq # Date 1367838217 -7200 # Node ID c9e9ce8ce16ad4bdc12a5fb3e6486b6ae50f3dd4 # Parent 9e77e858b6eba64f3246c736ea335b42bc39a2a4 Fix overflow guard condition for down counted loops Add assert in expand logic phase diff -r 9e77e858b6eb -r c9e9ce8ce16a graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java --- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java Sat May 04 01:43:42 2013 +0200 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java Mon May 06 13:03:37 2013 +0200 @@ -140,7 +140,7 @@ cond = graph.unique(new IntegerLessThanNode(v1, end)); } else { assert iv.direction() == Direction.Down; - IntegerArithmeticNode v1 = add(ConstantNode.forIntegerKind(kind, kind.getMinValue(), graph), add(iv.strideNode(), one)); + IntegerArithmeticNode v1 = add(ConstantNode.forIntegerKind(kind, kind.getMinValue(), graph), sub(one, iv.strideNode())); if (oneOff) { v1 = add(v1, one); } diff -r 9e77e858b6eb -r c9e9ce8ce16a graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ExpandLogicPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ExpandLogicPhase.java Sat May 04 01:43:42 2013 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ExpandLogicPhase.java Mon May 06 13:03:37 2013 +0200 @@ -34,6 +34,7 @@ for (LogicBinaryNode logic : graph.getNodes(LogicBinaryNode.class)) { processBinary(logic); } + assert graph.getNodes(LogicBinaryNode.class).isEmpty(); } private static void processBinary(LogicBinaryNode binary) {