InlineGuard.setTarget(cb, Goto.getTarget(targetInst));
InlineGuard.setTarget(cb, (OPT_BranchOperand)Goto.getTarget(targetInst).copy());
  private boolean processInlineGuard(OPT_IR ir,                                      OPT_Instruction cb,                                      OPT_BasicBlock bb) {    OPT_BasicBlock targetBlock = cb.getBranchTarget();    OPT_Instruction targetLabel = targetBlock.firstInstruction();    // get the first real instruction at the branch target    // NOTE: this instruction is not necessarily in targetBlock,    // iff targetBlock has no real instructions    OPT_Instruction targetInst = firstRealInstructionFollowing(targetLabel);    if (targetInst == null || targetInst == cb) {      return false;    }    boolean endsBlock = cb.nextInstructionInCodeOrder().operator() == BBEND;    if (endsBlock) {      OPT_Instruction nextLabel = firstLabelFollowing(cb);      if (targetLabel == nextLabel) {        // found a conditional branch to the next instruction.  just remove it.        cb.remove();        return true;      }      OPT_Instruction nextI = firstRealInstructionFollowing(nextLabel);      if (nextI != null && Goto.conforms(nextI)) {        // replicate Goto        cb.insertAfter(nextI.copyWithoutLinks());        bb.recomputeNormalOut(ir); // fix the CFG         return true;      }    }    // do we fall through to a block that has only a goto?    OPT_BasicBlock fallThrough = bb.getFallThroughBlock();    if (fallThrough != null) {      OPT_Instruction        fallThroughInstruction = fallThrough.firstRealInstruction();      if ((  fallThroughInstruction != null)          && Goto.conforms (fallThroughInstruction)) {        // copy goto to bb        bb.appendInstruction (fallThroughInstruction.copyWithoutLinks());        bb.recomputeNormalOut(ir);      }                                                                      }        if (Goto.conforms(targetInst)) {      // conditional branch to unconditional branch.      // change conditional branch target to latter's target      InlineGuard.setTarget(cb, Goto.getTarget(targetInst));      bb.recomputeNormalOut(ir); // fix the CFG       return true;    }    if (targetBlock.isEmpty()) {      // branch to an empty block.  Change target to the next block.      OPT_BasicBlock nextBlock = targetBlock.getFallThroughBlock();      InlineGuard.setTarget(cb, nextBlock.makeJumpTarget());      bb.recomputeNormalOut(ir); // fix the CFG       return true;    }    return false;  }