Mercurial > hg > graal-jvmci-8
changeset 18871:d493f179ef76
BranchProbabilityNode: branch probability value may evaluate to NaN in unreached code
author | Andreas Woess <andreas.woess@jku.at> |
---|---|
date | Thu, 15 Jan 2015 08:24:43 +0100 |
parents | c65f549c4015 |
children | 7735bac1f781 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BranchProbabilityNode.java |
diffstat | 1 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BranchProbabilityNode.java Thu Jan 15 06:34:53 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BranchProbabilityNode.java Thu Jan 15 08:24:43 2015 +0100 @@ -75,6 +75,12 @@ throw new GraalInternalError("A negative probability of " + probabilityValue + " is not allowed!"); } else if (probabilityValue > 1.0) { throw new GraalInternalError("A probability of more than 1.0 (" + probabilityValue + ") is not allowed!"); + } else if (Double.isNaN(probabilityValue)) { + /* + * We allow NaN if the node is in unreachable code that will eventually fall away, + * or else an error will be thrown during lowering since we keep the node around. + */ + return; } boolean couldSet = false; for (IntegerEqualsNode node : this.usages().filter(IntegerEqualsNode.class)) {