/** * See Appel 19.6. To remove the phi instructions in an edge-split * SSA representation we know we can always insert a move in a * predecessor block. */ private void removePhiFunctions() { ArrayList<SsaBasicBlock> blocks = ssaMeth.getBlocks(); for (SsaBasicBlock block : blocks) { // Add moves in all the pred blocks for each phi insn. block.forEachPhiInsn(new PhiVisitor(blocks)); // Delete the phi insns. block.removeAllPhiInsns(); } /* * After all move insns have been added, sort them so they don't * destructively interfere. */ for (SsaBasicBlock block : blocks) { block.scheduleMovesFromPhis(); } }
/** * See Appel 19.6. To remove the phi instructions in an edge-split * SSA representation we know we can always insert a move in a * predecessor block. */ private void removePhiFunctions() { ArrayList<SsaBasicBlock> blocks = ssaMeth.getBlocks(); for (SsaBasicBlock block : blocks) { // Add moves in all the pred blocks for each phi insn. block.forEachPhiInsn(new PhiVisitor(blocks)); // Delete the phi insns. block.removeAllPhiInsns(); } /* * After all move insns have been added, sort them so they don't * destructively interfere. */ for (SsaBasicBlock block : blocks) { block.scheduleMovesFromPhis(); } }
/** * See Appel 19.6. To remove the phi instructions in an edge-split * SSA representation we know we can always insert a move in a * predecessor block. */ private void removePhiFunctions() { ArrayList<SsaBasicBlock> blocks = ssaMeth.getBlocks(); for (SsaBasicBlock block : blocks) { // Add moves in all the pred blocks for each phi insn. block.forEachPhiInsn(new PhiVisitor(blocks)); // Delete the phi insns. block.removeAllPhiInsns(); } /* * After all move insns have been added, sort them so they don't * destructively interfere. */ for (SsaBasicBlock block : blocks) { block.scheduleMovesFromPhis(); } }
/** * See Appel 19.6. To remove the phi instructions in an edge-split * SSA representation we know we can always insert a move in a * predecessor block. */ private void removePhiFunctions() { ArrayList<SsaBasicBlock> blocks = ssaMeth.getBlocks(); for (SsaBasicBlock block : blocks) { // Add moves in all the pred blocks for each phi insn. block.forEachPhiInsn(new PhiVisitor(blocks)); // Delete the phi insns. block.removeAllPhiInsns(); } /* * After all move insns have been added, sort them so they don't * destructively interfere. */ for (SsaBasicBlock block : blocks) { block.scheduleMovesFromPhis(); } }
/** * See Appel 19.6. To remove the phi instructions in an edge-split * SSA representation we know we can always insert a move in a * predecessor block. */ private void removePhiFunctions() { ArrayList<SsaBasicBlock> blocks = ssaMeth.getBlocks(); for (SsaBasicBlock block : blocks) { // Add moves in all the pred blocks for each phi insn. block.forEachPhiInsn(new PhiVisitor(blocks)); // Delete the phi insns. block.removeAllPhiInsns(); } /* * After all move insns have been added, sort them so they don't * destructively interfere. */ for (SsaBasicBlock block : blocks) { block.scheduleMovesFromPhis(); } }
/** * See Appel 19.6. To remove the phi instructions in an edge-split * SSA representation we know we can always insert a move in a * predecessor block. */ private void removePhiFunctions() { ArrayList<SsaBasicBlock> blocks = ssaMeth.getBlocks(); for (SsaBasicBlock block : blocks) { // Add moves in all the pred blocks for each phi insn. block.forEachPhiInsn(new PhiVisitor(blocks)); // Delete the phi insns. block.removeAllPhiInsns(); } /* * After all move insns have been added, sort them so they don't * destructively interfere. */ for (SsaBasicBlock block : blocks) { block.scheduleMovesFromPhis(); } }
/** * See Appel 19.6. To remove the phi instructions in an edge-split * SSA representation we know we can always insert a move in a * predecessor block. */ private void removePhiFunctions() { ArrayList<SsaBasicBlock> blocks = ssaMeth.getBlocks(); for (SsaBasicBlock block : blocks) { // Add moves in all the pred blocks for each phi insn. block.forEachPhiInsn(new PhiVisitor(blocks)); // Delete the phi insns. block.removeAllPhiInsns(); } /* * After all move insns have been added, sort them so they don't * destructively interfere. */ for (SsaBasicBlock block : blocks) { block.scheduleMovesFromPhis(); } }
/** * See Appel 19.6. To remove the phi instructions in an edge-split * SSA representation we know we can always insert a move in a * predecessor block. */ private void removePhiFunctions() { ArrayList<SsaBasicBlock> blocks = ssaMeth.getBlocks(); for (SsaBasicBlock block : blocks) { // Add moves in all the pred blocks for each phi insn. block.forEachPhiInsn(new PhiVisitor(blocks)); // Delete the phi insns. block.removeAllPhiInsns(); } /* * After all move insns have been added, sort them so they don't * destructively interfere. */ for (SsaBasicBlock block : blocks) { block.scheduleMovesFromPhis(); } }