# HG changeset patch # User Thomas Wuerthinger # Date 1367078540 -7200 # Node ID 2026d0a1dd19a5cc82fe593bf782b969aca3d631 # Parent 3c441e8c9e7fdb91978954832598bf6a7442bdd2 Cap probability to 1.0. diff -r 3c441e8c9e7f -r 2026d0a1dd19 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Sat Apr 27 17:22:54 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Sat Apr 27 18:02:20 2013 +0200 @@ -219,7 +219,7 @@ if (instanceOfB.type().isAssignableFrom(type.getType())) { // Do not add to profile. } else { - ProfiledType newType = new ProfiledType(type.getType(), type.getProbability() * (1.0 - probabilityA) / (1.0 - probabilityB)); + ProfiledType newType = new ProfiledType(type.getType(), Math.max(1.0, type.getProbability() * (1.0 - probabilityA) / (1.0 - probabilityB))); profiledTypes.add(newType); remainder -= newType.getProbability(); } @@ -227,7 +227,7 @@ for (ProfiledType type : profileA.getTypes()) { if (instanceOfA.type().isAssignableFrom(type.getType())) { - ProfiledType newType = new ProfiledType(type.getType(), type.getProbability() / (1.0 - probabilityB)); + ProfiledType newType = new ProfiledType(type.getType(), Math.max(1.0, type.getProbability() / (1.0 - probabilityB))); profiledTypes.add(newType); remainder -= newType.getProbability(); }