# HG changeset patch # User Gilles Duboscq # Date 1397235642 -7200 # Node ID 220dd370ef9b946ee501fc3b2e4bc86fb8633427 # Parent 48145633717c53328a93360d541374a7a43a8a1a Some simplifications around filter usages and node predicates diff -r 48145633717c -r 220dd370ef9b graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Fri Apr 11 18:17:21 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Fri Apr 11 19:00:42 2014 +0200 @@ -124,24 +124,12 @@ } public NodeIterable phis() { - return this.usages().filter(PhiNode.class).filter(new NodePredicate() { - - @Override - public boolean apply(Node n) { - return ((PhiNode) n).merge() == MergeNode.this; - } - }); + return this.usages().filter(PhiNode.class).filter(this::isPhiAtMerge); } @Override public NodeIterable anchored() { - return super.anchored().filter(isNotA(PhiNode.class).or(new NodePredicate() { - - @Override - public boolean apply(Node n) { - return ((PhiNode) n).merge() != MergeNode.this; - } - })); + return super.anchored().filter(n -> !isPhiAtMerge(n)); } @Override @@ -163,10 +151,8 @@ return; } for (PhiNode phi : phis()) { - for (Node usage : phi.usages().filter(isNotA(FrameState.class))) { - if (!merge.isPhiAtMerge(usage)) { - return; - } + if (phi.usages().filter(isNotA(FrameState.class)).and(node -> !merge.isPhiAtMerge(node)).isNotEmpty()) { + return; } } Debug.log("Split %s into ends for %s.", this, merge); diff -r 48145633717c -r 220dd370ef9b graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueNode.java Fri Apr 11 18:17:21 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueNode.java Fri Apr 11 19:00:42 2014 +0200 @@ -92,13 +92,7 @@ return this instanceof ConstantNode; } - private static final NodePredicate IS_CONSTANT = new NodePredicate() { - - @Override - public boolean apply(Node n) { - return n instanceof ValueNode && ((ValueNode) n).isConstant(); - } - }; + private static final NodePredicate IS_CONSTANT = node -> node instanceof ConstantNode; public static NodePredicate isConstantPredicate() { return IS_CONSTANT; diff -r 48145633717c -r 220dd370ef9b graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadFieldNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadFieldNode.java Fri Apr 11 18:17:21 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadFieldNode.java Fri Apr 11 19:00:42 2014 +0200 @@ -22,11 +22,12 @@ */ package com.oracle.graal.nodes.java; +import static com.oracle.graal.graph.iterators.NodePredicates.*; + import java.lang.reflect.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.graph.*; -import com.oracle.graal.graph.iterators.*; import com.oracle.graal.graph.spi.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.spi.*; @@ -97,7 +98,7 @@ } private PhiNode asPhi(MetaAccessProvider metaAccess) { - if (!isStatic() && Modifier.isFinal(field.getModifiers()) && object() instanceof ValuePhiNode && ((ValuePhiNode) object()).values().filter(NodePredicates.isNotA(ConstantNode.class)).isEmpty()) { + if (!isStatic() && Modifier.isFinal(field.getModifiers()) && object() instanceof ValuePhiNode && ((ValuePhiNode) object()).values().filter(isNotA(ConstantNode.class)).isEmpty()) { PhiNode phi = (PhiNode) object(); Constant[] constants = new Constant[phi.valueCount()]; for (int i = 0; i < phi.valueCount(); i++) { diff -r 48145633717c -r 220dd370ef9b graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Fri Apr 11 18:17:21 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Fri Apr 11 19:00:42 2014 +0200 @@ -38,7 +38,6 @@ @Override public final boolean apply(Node n) { - // isA(FloatingNode.class).or(VirtualState.class).or(CallTargetNode.class) return n instanceof FloatingNode || n instanceof VirtualState || n instanceof CallTargetNode; } };