changeset 23241:6186cfd47d3c

Further simplifications of node predicates.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 01 Jan 2016 19:09:36 +0100
parents 6b75e88713cc
children 706aa729f311
files graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodePredicates.java
diffstat 3 files changed, 8 insertions(+), 56 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java	Fri Jan 01 18:50:05 2016 +0100
+++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java	Fri Jan 01 19:09:36 2016 +0100
@@ -220,11 +220,6 @@
     }
 
     @Override
-    public NodeIterable<Node> distinct() {
-        return this;
-    }
-
-    @Override
     public int count() {
         int count = 0;
         for (long l : bits) {
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java	Fri Jan 01 18:50:05 2016 +0100
+++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java	Fri Jan 01 19:09:36 2016 +0100
@@ -40,10 +40,6 @@
         return new FilteredNodeIterable<>(this).and(predicate);
     }
 
-    default NodeIterable<T> distinct() {
-        return new FilteredNodeIterable<>(this).distinct();
-    }
-
     default List<T> snapshot() {
         ArrayList<T> list = new ArrayList<>();
         snapshotTo(list);
@@ -83,6 +79,13 @@
     }
 
     default boolean contains(T node) {
-        return this.filter(NodePredicates.equals(node)).isNotEmpty();
+        Iterator<T> iterator = iterator();
+        while (iterator.hasNext()) {
+            T next = iterator.next();
+            if (next == node) {
+                return true;
+            }
+        }
+        return false;
     }
 }
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodePredicates.java	Fri Jan 01 18:50:05 2016 +0100
+++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodePredicates.java	Fri Jan 01 19:09:36 2016 +0100
@@ -42,10 +42,6 @@
         return IS_NULL;
     }
 
-    public static NodePredicate equals(Node n) {
-        return new EqualsPredicate(n);
-    }
-
     public static NegativeTypePredicate isNotA(Class<? extends Node> clazz) {
         return new NegativeTypePredicate(clazz);
     }
@@ -54,16 +50,6 @@
         return new PositiveTypePredicate(clazz);
     }
 
-    public static NodePredicate isAInterface(Class<?> iface) {
-        assert iface.isInterface();
-        return new PositiveTypePredicate(iface);
-    }
-
-    public static NodePredicate isNotAInterface(Class<?> iface) {
-        assert iface.isInterface();
-        return new NegativeTypePredicate(iface);
-    }
-
     static final class TautologyPredicate implements NodePredicate {
 
         @Override
@@ -130,38 +116,6 @@
         }
     }
 
-    static final class EqualsPredicate implements NodePredicate {
-
-        private final Node u;
-
-        EqualsPredicate(Node u) {
-            this.u = u;
-        }
-
-        @Override
-        public boolean apply(Node n) {
-            return u == n;
-        }
-    }
-
-    static final class NotEqualsPredicate implements NodePredicate {
-
-        private final Node u;
-
-        NotEqualsPredicate(Node u) {
-            this.u = u;
-        }
-
-        @Override
-        public boolean apply(Node n) {
-            return u != n;
-        }
-
-        public NodePredicate negate() {
-            return new EqualsPredicate(u);
-        }
-    }
-
     public static final class PositiveTypePredicate implements NodePredicate {
 
         private final Class<?> type;