# HG changeset patch # User Gilles Duboscq # Date 1397481419 -7200 # Node ID 76695509b2fd9b43b5468e97d0a8204a1d29a992 # Parent c680646518475170b60fa52d790938804ece0261 Avoid precessing unused phis during peeling diff -r c68064651847 -r 76695509b2fd graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java --- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java Mon Apr 14 15:13:17 2014 +0200 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java Mon Apr 14 15:16:59 2014 +0200 @@ -184,6 +184,9 @@ StructuredGraph graph = loopBegin.graph(); List newPhis = new LinkedList<>(); for (PhiNode phi : loopBegin.phis().snapshot()) { + if (phi.usages().isEmpty()) { + continue; + } ValueNode first; if (loopBegin.loopEnds().count() == 1) { ValueNode b = phi.valueAt(loopBegin.loopEnds().first()); // back edge value @@ -284,6 +287,9 @@ } for (final PhiNode phi : loopBegin.phis().snapshot()) { + if (phi.usages().isEmpty()) { + continue; + } final PhiNode firstPhi = patchPhi(graph, phi, newExitMerge); for (AbstractEndNode end : newExitMerge.forwardEnds()) { LoopEndNode loopEnd = reverseEnds.get(end);