# HG changeset patch # User Christian Wimmer # Date 1428736503 25200 # Node ID 231597f3bbbe3b85647f2522344b428092a36be7 # Parent d689979bf9567bc89d49dc158a68e03b1709c766 Replace iterator with lambda to avoid iterator allocation diff -r d689979bf956 -r 231597f3bbbe graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Sat Apr 11 00:14:29 2015 -0700 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Sat Apr 11 00:15:03 2015 -0700 @@ -433,7 +433,7 @@ this.movUsageFromEndTo(1); return true; } - for (int i = 0; i < this.extraUsagesCount; ++i) { + for (int i = this.extraUsagesCount - 1; i >= 0; i--) { if (extraUsages[i] == node) { this.movUsageFromEndTo(i + INLINE_USAGE_COUNT); return true; @@ -683,12 +683,12 @@ } private void unregisterInputs() { - for (Node input : inputs()) { - removeThisFromUsages(input); + acceptInputs((node, input) -> { + node.removeThisFromUsages(input); if (input.hasNoUsages()) { - maybeNotifyZeroUsages(input); + node.maybeNotifyZeroUsages(input); } - } + }); } public void clearInputs() { diff -r d689979bf956 -r 231597f3bbbe 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 Sat Apr 11 00:14:29 2015 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Sat Apr 11 00:15:03 2015 -0700 @@ -150,11 +150,11 @@ public static void killWithUnusedFloatingInputs(Node node) { node.safeDelete(); - for (Node in : node.inputs()) { + node.acceptInputs((n, in) -> { if (in.isAlive() && in.hasNoUsages() && !(in instanceof FixedNode)) { killWithUnusedFloatingInputs(in); } - } + }); } public static void removeFixedWithUnusedInputs(FixedWithNextNode fixed) {