Mercurial > hg > truffle
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); } }