Mercurial > hg > truffle
changeset 5694:493e8d932148
Make a copy of the probability array when cloning ControlSplitNodes
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Tue, 26 Jun 2012 16:50:43 +0200 |
parents | 0356d95f01ba |
children | a63ed5993987 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSplitNode.java |
diffstat | 1 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSplitNode.java Tue Jun 26 16:43:51 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSplitNode.java Tue Jun 26 16:50:43 2012 +0200 @@ -31,8 +31,8 @@ * The {@code ControlSplitNode} is a base class for all instructions that split the control flow (ie. have more than one successor). */ public abstract class ControlSplitNode extends FixedNode { - @Successor private final NodeSuccessorList<BeginNode> blockSuccessors; + protected double[] branchProbability; public BeginNode blockSuccessor(int index) { return blockSuccessors.get(index); @@ -46,8 +46,6 @@ return blockSuccessors.size(); } - protected final double[] branchProbability; - public ControlSplitNode(Stamp stamp, BeginNode[] blockSuccessors, double[] branchProbability) { super(stamp); assert branchProbability.length == blockSuccessors.length; @@ -113,4 +111,11 @@ } return idx; } + + @Override + public ControlSplitNode clone(Graph into) { + ControlSplitNode csn = (ControlSplitNode) super.clone(into); + csn.branchProbability = Arrays.copyOf(branchProbability, branchProbability.length); + return csn; + } }