Mercurial > hg > graal-jvmci-8
changeset 2972:c7ce8d00c33f
Removed predecessorIndex array from the Node base class.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Wed, 15 Jun 2011 17:18:31 +0200 |
parents | 8f1e2c8815b4 |
children | ca2d8e027110 |
files | graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/gen/LIRGenerator.java graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/Graph.java graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/Node.java graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/NodeArray.java |
diffstat | 4 files changed, 8 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/gen/LIRGenerator.java Wed Jun 15 17:13:34 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/gen/LIRGenerator.java Wed Jun 15 17:18:31 2011 +0200 @@ -1438,7 +1438,7 @@ if (nextInstr instanceof Merge) { Merge merge = (Merge) nextInstr; - assert nextSuccIndex >= 0 : "nextSuccIndex=" + nextSuccIndex + ", lastNode=" + lastNode + ", nextInstr=" + nextInstr + "; preds=" + nextInstr.predecessors() + "; predIndex=" + nextInstr.predecessorsIndex(); + assert nextSuccIndex >= 0 : "nextSuccIndex=" + nextSuccIndex + ", lastNode=" + lastNode + ", nextInstr=" + nextInstr + "; preds=" + nextInstr.predecessors() + ";"; PhiResolver resolver = new PhiResolver(this); for (Node n : merge.usages()) {
--- a/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/Graph.java Wed Jun 15 17:13:34 2011 +0200 +++ b/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/Graph.java Wed Jun 15 17:18:31 2011 +0200 @@ -208,32 +208,6 @@ } } } - /* - // re-wire successors - for (Entry<Node, Node> entry : newNodes.entrySet()) { - Node oldNode = entry.getKey(); - Node node = entry.getValue(); - for (int i = 0; i < oldNode.predecessors().size(); i++) { - Node pred = oldNode.predecessors().get(i); - int predIndex = oldNode.predecessorsIndex().get(i); - Node source = replacements.get(pred); - if (source == null) { - source = newNodes.get(pred); - } - source.successors().set(predIndex, node); - } - } - for (Entry<Node, Node> entry : replacements.entrySet()) { - Node oldNode = entry.getKey(); - Node node = entry.getValue(); - for (int i = 0; i < oldNode.predecessors().size(); i++) { - Node pred = oldNode.predecessors().get(i); - int predIndex = oldNode.predecessorsIndex().get(i); - if (newNodes.containsKey(pred)) { - newNodes.get(pred).successors().set(predIndex, node); - } - } - }*/ return newNodes; } }
--- a/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/Node.java Wed Jun 15 17:13:34 2011 +0200 +++ b/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/Node.java Wed Jun 15 17:18:31 2011 +0200 @@ -39,7 +39,6 @@ final NodeArray successors; final ArrayList<Node> usages; final ArrayList<Node> predecessors; - final ArrayList<Integer> predecessorsIndex; public Node(int inputCount, int successorCount, Graph graph) { assert graph != null : "cannot create a node for a null graph"; @@ -49,17 +48,12 @@ this.successors = new NodeArray(this, successorCount); this.predecessors = new ArrayList<Node>(); this.usages = new ArrayList<Node>(); - this.predecessorsIndex = new ArrayList<Integer>(); } public List<Node> predecessors() { return Collections.unmodifiableList(predecessors); } - public List<Integer> predecessorsIndex() { - return Collections.unmodifiableList(predecessorsIndex); - } - public List<Node> usages() { return Collections.unmodifiableList(usages); } @@ -96,18 +90,19 @@ } int z = 0; for (Node predecessor : predecessors) { - int predIndex = predecessorsIndex.get(z); - predecessor.successors.silentSet(predIndex, other); + for (int i=0; i<predecessor.successors.size(); i++) { + if (predecessor.successors.get(i) == this) { + predecessor.successors.silentSet(i, other); + } + } ++z; } if (other != null) { other.usages.addAll(usages); other.predecessors.addAll(predecessors); - other.predecessorsIndex.addAll(predecessorsIndex); } usages.clear(); predecessors.clear(); - predecessorsIndex.clear(); delete(); return other; } @@ -125,13 +120,11 @@ } usages.clear(); predecessors.clear(); - predecessorsIndex.clear(); } public void delete() { assert !isDeleted(); assert checkDeletion() : "Could not delete " + this; - assert predecessorsIndex.size() == 0; for (int i = 0; i < inputs.size(); ++i) { inputs.set(i, Null); }
--- a/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/NodeArray.java Wed Jun 15 17:13:34 2011 +0200 +++ b/graal/com.oracle.max.graal.graph/src/com/oracle/max/graal/graph/NodeArray.java Wed Jun 15 17:18:31 2011 +0200 @@ -145,15 +145,14 @@ if (old != null) { for (int i = 0; i < old.predecessors.size(); ++i) { Node cur = old.predecessors.get(i); - if (cur == self() && old.predecessorsIndex.get(i) == index) { + if (cur == self()) { old.predecessors.remove(i); - old.predecessorsIndex.remove(i); + break; } } } if (node != null) { node.predecessors.add(self()); - node.predecessorsIndex.add(index); } } }