Mercurial > hg > graal-compiler
diff graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java @ 5541:b4c406861c33
More renamings to drop Ri* prefix completely. Deleted graph.BitMap class and replaced with java.util.BitSet.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sat, 09 Jun 2012 16:52:12 +0200 |
parents | c89a69ca8dbb |
children | 3bc48971a1bf |
line wrap: on
line diff
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java Fri Jun 08 23:47:42 2012 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java Sat Jun 09 16:52:12 2012 +0200 @@ -30,20 +30,22 @@ public final class NodeBitMap extends NodeIterable<Node>{ private final boolean autoGrow; - private final BitMap bitMap; + private final BitSet bitMap; private final Graph graph; + private int nodeCount; public NodeBitMap(Graph graph) { this(graph, false); } public NodeBitMap(Graph graph, boolean autoGrow) { - this(graph, autoGrow, new BitMap(graph.nodeIdCount())); + this(graph, autoGrow, graph.nodeIdCount(), new BitSet(graph.nodeIdCount())); } - private NodeBitMap(Graph graph, boolean autoGrow, BitMap bits) { + private NodeBitMap(Graph graph, boolean autoGrow, int nodeCount, BitSet bits) { this.graph = graph; this.autoGrow = autoGrow; + this.nodeCount = nodeCount; bitMap = bits; } @@ -51,17 +53,13 @@ return graph; } - public boolean setIntersect(NodeBitMap other) { - return bitMap.setIntersect(other.bitMap); - } - public void setUnion(NodeBitMap other) { - bitMap.setUnion(other.bitMap); + bitMap.or(other.bitMap); } public void negate() { grow(); - bitMap.negate(); + bitMap.flip(0, nodeCount); } public boolean isNotNewMarked(Node node) { @@ -73,15 +71,11 @@ } public boolean isMarked(Node node) { - if (autoGrow && isNew(node)) { - return false; - } - assert check(node); return bitMap.get(node.id()); } public boolean isNew(Node node) { - return node.id() >= bitMap.size(); + return node.id() >= nodeCount; } public void mark(Node node) { @@ -101,15 +95,15 @@ } public void clearAll() { - bitMap.clearAll(); + bitMap.clear(); } public void grow(Node node) { - bitMap.grow(node.id() + 1); + nodeCount = Math.max(nodeCount, node.id() + 1); } public void grow() { - bitMap.grow(graph.nodeIdCount()); + nodeCount = Math.max(nodeCount, graph.nodeIdCount()); } private boolean check(Node node) { @@ -119,11 +113,6 @@ return true; } - @Override - public String toString() { - return bitMap.toBinaryString(); - } - public <T extends Node> void markAll(Iterable<T> nodes) { for (Node node : nodes) { mark(node); @@ -186,7 +175,7 @@ } public NodeBitMap copy() { - return new NodeBitMap(graph, autoGrow, bitMap.copy()); + return new NodeBitMap(graph, autoGrow, nodeCount, (BitSet) bitMap.clone()); } @Override