diff graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopPolicies.java @ 7257:b1ebd583be14

Remove @Successor private final NodeSuccessorList<BeginNode> blockSuccessors from ControlSplitNode Use normal successor fields in IfNode and InvokeWithException MergeableState.afterSplit(FixedNode) is now MergeableState.afterSplit(BeginNode)
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 18 Dec 2012 11:27:12 +0100
parents 2e96dc4eb8e2
children 3964f3d4eb18
line wrap: on
line diff
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopPolicies.java	Mon Dec 17 18:36:31 2012 +0100
+++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopPolicies.java	Tue Dec 18 11:27:12 2012 +0100
@@ -63,7 +63,7 @@
         int inFalseBranch = loop.nodesInLoopFrom(ifNode.falseSuccessor(), postDom).cardinality();
         int loopTotal = loop.size();
         int netDiff = loopTotal - (inTrueBranch + inFalseBranch);
-        double uncertainty = (0.5 - Math.abs(ifNode.probability(IfNode.TRUE_EDGE) - 0.5)) * 2;
+        double uncertainty = (0.5 - Math.abs(ifNode.probability(ifNode.trueSuccessor()) - 0.5)) * 2;
         int maxDiff = GraalOptions.LoopUnswitchMaxIncrease + (int) (GraalOptions.LoopUnswitchUncertaintyBoost * loop.loopBegin().loopFrequency() * uncertainty);
         Debug.log("shouldUnswitch(%s, %s) : delta=%d, max=%d, %.2f%% inside of if", loop, ifNode, netDiff, maxDiff, (double) (inTrueBranch + inFalseBranch) / loopTotal * 100);
         return netDiff <= maxDiff;