changeset 16350:6055f84e41d7

LoopFragmentInside: make sure no dead phi are left after phis have been rewritten
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Jul 2014 18:10:27 +0200
parents 5a3351bb88a8
children 3e341c30e5c0
files graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java
diffstat 1 files changed, 7 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java	Tue Jul 01 18:08:19 2014 +0200
+++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java	Tue Jul 01 18:10:27 2014 +0200
@@ -32,6 +32,7 @@
 import com.oracle.graal.graph.iterators.*;
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.nodes.VirtualState.NodeClosure;
+import com.oracle.graal.nodes.util.*;
 
 public class LoopFragmentInside extends LoopFragment {
 
@@ -250,6 +251,12 @@
                 }
             }
         }
+
+        for (PhiNode deadPhi : loopBegin.phis().filter(n -> n.usages().isEmpty()).snapshot()) {
+            if (deadPhi.isAlive()) {
+                GraphUtil.killWithUnusedFloatingInputs(deadPhi);
+            }
+        }
     }
 
     /**