# HG changeset patch # User Josef Eisl # Date 1430307097 -7200 # Node ID 48762c9bfca4ab91847b2d8b33326b32c27a23d5 # Parent f85711ac631c8324893f10d223a046fddb3bce15 SSADestructionPhase: use removePhiOut/removePhiIn/phiOutIndex. diff -r f85711ac631c -r 48762c9bfca4 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ssa/SSADestructionPhase.java --- 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 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); } }