changeset 9371:2026d0a1dd19

Cap probability to 1.0.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sat, 27 Apr 2013 18:02:20 +0200
parents 3c441e8c9e7f
children 98603705e565
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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();
                             }