question: public void process ( ) { block . forEachInsn ( this ) ; updateSuccessorPhis ( ) ; ArrayList < SsaInsn > insns = block . getInsns ( ) ; int szInsns = insns . size ( ) ; for ( int i = szInsns - 1 ; i >= 0 ; i -- ) { SsaInsn insn = insns . get ( i ) ; SsaInsn replaceInsn ; replaceInsn = insnsToReplace . get ( insn ) ; if ( replaceInsn != null ) { insns . set ( i , replaceInsn ) ; } else if ( insn . isNormalMoveInsn ( ) && ! movesToKeep . contains ( insn ) ) { insns . remove ( i ) ; } } boolean first = true ; for ( SsaBasicBlock child : block . getDomChildren ( ) ) { if ( child != block ) { RegisterSpec [ ] childStart = first ? currentMapping : dupArray ( currentMapping ) ; startsForBlocks [ child . getIndex ( ) ] = childStart ; first = false ; } } }
target:  Renames all the variables in this block and inserts appriopriate phis in successor blocks.