# HG changeset patch # User Roland Schatz # Date 1377259389 -7200 # Node ID c8a9914b36e8441ac1c7084dd319452ecff15694 # Parent 8747d6af5b581b5b4c493111d6ab79950b368fd9 Use an EPSILON where 1. / EPSILON is finite. diff -r 8747d6af5b58 -r c8a9914b36e8 graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/ComputeProbabilityClosure.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/ComputeProbabilityClosure.java Thu Aug 22 20:05:34 2013 +0200 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/ComputeProbabilityClosure.java Fri Aug 23 14:03:09 2013 +0200 @@ -48,7 +48,7 @@ */ public class ComputeProbabilityClosure { - private static final double EPSILON = Math.nextUp(0); + private static final double EPSILON = Double.MIN_NORMAL; private final StructuredGraph graph; private final NodesToDoubles nodeProbabilities; @@ -237,6 +237,7 @@ return false; } probability *= loopFrequency; + assert probability >= 0; } } for (Probability other : withStates) { @@ -248,9 +249,11 @@ return false; } prob *= loopFrequency; + assert prob >= 0; } } probability += prob; + assert probability >= 0; } loops = intersection; mergeLoops.put(merge, new HashSet<>(intersection));