question: private void fixUpPhiPredecessors ( ArrayList < Instruction > phiInstructions , BasicBlock unoptimizedLoopExit , BasicBlock optimizedLoopExit ) { if ( unoptimizedLoopExit != null ) { for ( Instruction instruction : phiInstructions ) { Phi . setPred ( instruction , OPTIMIZED_LOOP_OPERAND , new BasicBlockOperand ( optimizedLoopExit ) ) ; Phi . setPred ( instruction , UNOPTIMIZED_LOOP_OPERAND , new BasicBlockOperand ( unoptimizedLoopExit ) ) ; } } else { for ( Instruction instruction : phiInstructions ) { Operand operand = Phi . getValue ( instruction , OPTIMIZED_LOOP_OPERAND ) ; Phi . resizeNumberOfPreds ( instruction , 1 ) ; Phi . resizeNumberOfValues ( instruction , 1 ) ; Phi . setValue ( instruction , OPTIMIZED_LOOP_OPERAND , operand ) ; Phi . setPred ( instruction , OPTIMIZED_LOOP_OPERAND , new BasicBlockOperand ( optimizedLoopExit ) ) ; } } }
target:  When phi nodes were generated the basic blocks weren't known for the predecessors, fix this up now. (It may also not be possible to reach the unoptimized loop any more)