OpenJDK / graal / graal-jvmci-8
changeset 2970:fe44e684f1cb
Removed all usages of "setAndClear" => big code simplification.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Wed, 15 Jun 2011 17:09:25 +0200 |
parents | 8102d939f4f3 |
children | 8f1e2c8815b4 |
files | graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/GraphBuilderPhase.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/InliningPhase.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/LoweringPhase.java graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/NodeArray.java |
diffstat | 4 files changed, 19 insertions(+), 57 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/GraphBuilderPhase.java Wed Jun 15 16:57:59 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/GraphBuilderPhase.java Wed Jun 15 17:09:25 2011 +0200 @@ -193,11 +193,7 @@ for (Node n : graph.getNodes()) { if (n instanceof Placeholder) { Placeholder p = (Placeholder) n; - assert p.predecessors().size() == 1; - Node pred = p.predecessors().get(0); - int predIndex = p.predecessorsIndex().get(0); - pred.successors().setAndClear(predIndex, p, 0); - p.delete(); + p.replace(p.next()); } } @@ -1213,7 +1209,8 @@ } else { end.delete(); Merge merge = new Merge(graph); - merge.successors().setAndClear(merge.nextIndex(), begin, begin.nextIndex()); + merge.setNext(begin.next()); + begin.setNext(null); begin.replace(merge); } }
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/InliningPhase.java Wed Jun 15 16:57:59 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/InliningPhase.java Wed Jun 15 17:09:25 2011 +0200 @@ -277,19 +277,8 @@ } Node returnDuplicate = duplicates.get(returnNode); returnDuplicate.inputs().clearAll(); - - assert returnDuplicate.predecessors().size() == 1; - Node returnPred = returnDuplicate.predecessors().get(0); - -// Merge mergeAfter = new Merge(compilation.graph); -// mergeAfter.setStateBefore(stateAfter); -// int index = returnDuplicate.predecessorsIndex().get(0); -// mergeAfter.successors().setAndClear(0, invoke, 0); -// returnPred.successors().set(index, mergeAfter); - - int index = returnDuplicate.predecessorsIndex().get(0); - returnPred.successors().setAndClear(index, invoke, 0); - returnDuplicate.delete(); + returnDuplicate.replace(invoke.next()); + invoke.setNext(null); } if (exceptionEdge != null) { @@ -304,14 +293,7 @@ usage.inputs().replace(obj, unwindDuplicate.exception()); } unwindDuplicate.inputs().clearAll(); - - assert unwindDuplicate.predecessors().size() == 1; - Node unwindPred = unwindDuplicate.predecessors().get(0); - int index = unwindDuplicate.predecessorsIndex().get(0); - unwindPred.successors().setAndClear(index, obj, 0); - - obj.inputs().clearAll(); - unwindDuplicate.delete(); + unwindDuplicate.replace(obj.next()); } }
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/LoweringPhase.java Wed Jun 15 16:57:59 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/LoweringPhase.java Wed Jun 15 17:09:25 2011 +0200 @@ -24,6 +24,7 @@ import com.oracle.max.graal.compiler.ir.*; import com.oracle.max.graal.compiler.schedule.*; +import com.oracle.max.graal.compiler.util.*; import com.oracle.max.graal.graph.*; public class LoweringPhase extends Phase { @@ -33,21 +34,22 @@ s.apply(graph); for (Block b : s.getBlocks()) { - final Node firstNode = b.firstNode(); + //final Node firstNode = b.firstNode(); final LoweringTool loweringTool = new LoweringTool() { @Override public Node createStructuredBlockAnchor() { - if (!(firstNode instanceof Anchor) && !(firstNode instanceof Merge)) { - Anchor a = new Anchor(graph); - assert firstNode.predecessors().size() == 1; - Node pred = firstNode.predecessors().get(0); - int predIndex = firstNode.predecessorsIndex().get(0); - a.successors().setAndClear(Instruction.SUCCESSOR_NEXT, pred, predIndex); - pred.successors().set(predIndex, a); - return a; - } - return firstNode; + throw Util.unimplemented(); +// if (!(firstNode instanceof Anchor) && !(firstNode instanceof Merge)) { +// Anchor a = new Anchor(graph); +// assert firstNode.predecessors().size() == 1; +// Node pred = firstNode.predecessors().get(0); +// int predIndex = firstNode.predecessorsIndex().get(0); +// a.successors().setAndClear(Instruction.SUCCESSOR_NEXT, pred, predIndex); +// pred.successors().set(predIndex, a); +// return a; +// } +// return firstNode; } };
--- a/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/NodeArray.java Wed Jun 15 16:57:59 2011 +0200 +++ b/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/NodeArray.java Wed Jun 15 17:09:25 2011 +0200 @@ -225,25 +225,6 @@ return result; } - public void setAndClear(int index, Node clearedNode, int clearedIndex) { - assert !self().isDeleted() : "trying to setAndClear successor of deleted node: " + self().shortName(); - assert self().successors == this; - Node value = clearedNode.successors.get(clearedIndex); - assert value != Node.Null : "cannot clear null value"; - clearedNode.successors.nodes[clearedIndex] = Node.Null; - set(index, Node.Null); - nodes[index] = value; - - for (int i = 0; i < value.predecessors.size(); ++i) { - if (value.predecessors.get(i) == clearedNode && value.predecessorsIndex.get(i) == clearedIndex) { - value.predecessors.set(i, self()); - value.predecessorsIndex.set(i, index); - return; - } - } - assert false; - } - @Override public int size() { return fixedLength + variableLength;