changeset 11399:c8a9914b36e8

Use an EPSILON where 1. / EPSILON is finite.
author Roland Schatz <roland.schatz@oracle.com>
date Fri, 23 Aug 2013 14:03:09 +0200
parents 8747d6af5b58
children 37446655527c
files graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/ComputeProbabilityClosure.java
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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));