Mercurial > hg > truffle
diff graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopFragment.java @ 5639:d1d649d2f97c
set correct probabilities on MergeNodes
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Fri, 15 Jun 2012 15:59:22 +0200 |
parents | cf630991cb1d |
children | 3405794d135c |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopFragment.java Fri Jun 15 14:42:11 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopFragment.java Fri Jun 15 15:59:22 2012 +0200 @@ -212,20 +212,22 @@ assert isDuplicate(); StructuredGraph graph = graph(); for (BeginNode earlyExit : toHirBlocks(original().loop().lirLoop().exits)) { + FixedNode next = earlyExit.next(); if (!this.contains(earlyExit)) { continue; } BeginNode newEarlyExit = getDuplicatedNode(earlyExit); assert newEarlyExit != null; MergeNode merge = graph.add(new MergeNode()); + merge.setProbability(next.probability()); EndNode originalEnd = graph.add(new EndNode()); EndNode newEnd = graph.add(new EndNode()); merge.addForwardEnd(originalEnd); merge.addForwardEnd(newEnd); - FixedNode next = earlyExit.next(); earlyExit.setNext(originalEnd); newEarlyExit.setNext(newEnd); merge.setNext(next); + FrameState exitState = earlyExit.stateAfter(); FrameState state = null; if (exitState != null) {