Mercurial > hg > truffle
changeset 15948:6abfac153606
Ensure values stay finite in block probability computation.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Wed, 28 May 2014 12:17:00 +0200 |
parents | 3eedf7a653ea |
children | 4243a6b8dd19 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java |
diffstat | 2 files changed, 4 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java Wed May 28 12:16:44 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java Wed May 28 12:17:00 2014 +0200 @@ -186,6 +186,7 @@ } public void setProbability(double probability) { + assert probability >= 0 && Double.isFinite(probability); this.probability = probability; } }
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java Wed May 28 12:16:44 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java Wed May 28 12:17:00 2014 +0200 @@ -221,6 +221,9 @@ } } } + if (probability > 1. / Double.MIN_NORMAL) { + probability = 1. / Double.MIN_NORMAL; + } block.setPredecessors(predecessors); block.setProbability(probability);