changeset 21228:48762c9bfca4

SSADestructionPhase: use removePhiOut/removePhiIn/phiOutIndex.
author Josef Eisl <josef.eisl@jku.at>
date Wed, 29 Apr 2015 13:31:37 +0200
parents f85711ac631c
children 485ed7778c97
files graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSADestructionPhase.java
diffstat 1 files changed, 4 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSADestructionPhase.java	Thu Apr 23 17:38:44 2015 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSADestructionPhase.java	Wed Apr 29 13:31:37 2015 +0200
@@ -27,8 +27,6 @@
 import com.oracle.graal.api.code.*;
 import com.oracle.graal.compiler.common.cfg.*;
 import com.oracle.graal.lir.*;
-import com.oracle.graal.lir.StandardOp.JumpOp;
-import com.oracle.graal.lir.StandardOp.LabelOp;
 import com.oracle.graal.lir.gen.*;
 import com.oracle.graal.lir.phases.*;
 import com.oracle.graal.options.*;
@@ -53,20 +51,19 @@
 
     private static void doBlock(AbstractBlockBase<?> block, LIR lir, LIRGeneratorTool lirGen) {
         if (block.getPredecessorCount() > 1) {
-            LabelOp label = (LabelOp) lir.getLIRforBlock(block).get(0);
             for (AbstractBlockBase<?> pred : block.getPredecessors()) {
 
                 List<LIRInstruction> instructions = lir.getLIRforBlock(pred);
-                int insertBefore = instructions.size() - 1;
-                JumpOp jump = (JumpOp) instructions.get(insertBefore);
+
+                int insertBefore = SSAUtils.phiOutIndex(lir, pred);
 
                 PhiResolver resolver = PhiResolver.create(lirGen, new LIRInsertionBuffer(), instructions, insertBefore);
                 SSAUtils.forEachPhiValuePair(lir, block, pred, resolver::move);
                 resolver.dispose();
 
-                jump.clearOutgoingValues();
+                SSAUtils.removePhiOut(lir, pred);
             }
-            label.clearIncomingValues();
+            SSAUtils.removePhiIn(lir, block);
         }
     }