Mercurial > hg > graal-compiler
changeset 15144:76695509b2fd
Avoid precessing unused phis during peeling
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Mon, 14 Apr 2014 15:16:59 +0200 |
parents | c68064651847 |
children | df2ef5204f2b |
files | graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java |
diffstat | 1 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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<PhiNode> 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);