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