Mercurial > hg > graal-jvmci-8
changeset 17022:9364a47125ef
Eliminating the lambda expression, as in the recursive call it creates unnecessary stack frames which causes StackOverflowErros sooner
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Tue, 02 Sep 2014 11:49:12 -0700 |
parents | c2437c80c253 |
children | 586c1bdd73b8 |
files | graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/FixedNodeProbabilityCache.java |
diffstat | 1 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/FixedNodeProbabilityCache.java Fri Aug 29 21:00:14 2014 -0700 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/FixedNodeProbabilityCache.java Tue Sep 02 11:49:12 2014 -0700 @@ -99,10 +99,16 @@ return cachedValue; } - double probability; + double probability = 0.0; if (current.predecessor() == null) { if (current instanceof MergeNode) { - probability = ((MergeNode) current).forwardEnds().stream().mapToDouble(this::applyAsDouble).sum(); + MergeNode currentMerge = (MergeNode) current; + NodeInputList<AbstractEndNode> currentForwardEnds = currentMerge.forwardEnds(); + for (AbstractEndNode endNode : currentForwardEnds) { + probability += applyAsDouble(endNode); + } + // probability = ((MergeNode) +// current).forwardEnds().stream().mapToDouble(this::applyAsDouble).sum(); if (current instanceof LoopBeginNode) { probability *= ((LoopBeginNode) current).loopFrequency(); }