public final void redirectOuts(BasicBlock b,BasicBlock bCopy,IR ir){
  BranchOperand copyTarget=bCopy.makeJumpTarget();
  BranchOperand bTarget=b.makeJumpTarget();
  for (Enumeration<Instruction> ie=enumerateBranchInstructions(); ie.hasMoreElements(); ) {
    Instruction s=ie.nextElement();
    s.replaceSimilarOperands(bTarget,copyTarget);
  }
  if (getFallThroughBlock() == b) {
    Instruction g=Goto.create(GOTO,copyTarget);
    appendInstruction(g);
  }
  recomputeNormalOut(ir);
}

public final void redirectOuts ( BasicBlock b , BasicBlock bCopy , IR ir ) { BranchOperand copyTarget = bCopy . makeJumpTarget ( ) ; BranchOperand bTarget = b . makeJumpTarget ( ) ; for ( Enumeration < Instruction > ie = enumerateBranchInstructions ( ) ; ie . hasMoreElements ( ) ; ) { Instruction s = ie . nextElement ( ) ; s . replaceSimilarOperands ( bTarget , copyTarget ) ; } if ( getFallThroughBlock ( ) == b ) { Instruction g = Goto . create ( GOTO , copyTarget ) ; appendInstruction ( g ) ; } recomputeNormalOut ( ir ) ; }
change all branches from this to b to branches that go to bcopy instead . this method also handles this . fallthrough , so ` this ' should still be in the code order when this method is called . < p > warning : use this method with caution . see comment on basicblock . recomputenormalout ( )
