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();
                 }