branchOpts.perform(ir);
  public void perform(OPT_IR ir) {    // 1. collecting OsrPoint instructions    LinkedList osrs = collectOsrPoints(ir);    //    new OPT_IRPrinter("before renovating osrs").perform(ir);    // 2. trace OsrBarrier for each OsrPoint, and rebuild OsrPoint        renovateOsrPoints(osrs, ir);    //    new OPT_IRPrinter("before removing barriers").perform(ir);    // 3. remove OsrBarriers    removeOsrBarriers(ir);    //    new OPT_IRPrinter("after removing barriers").perform(ir);    // 4. reconstruct CFG, cut off pieces after OsrPoint.        fixupCFGForOsr(osrs, ir);/*        if (VM.TraceOnStackReplacement && (0 != osrs.size())) {      new OPT_IRPrinter("After OsrPointConstructor").perform(ir);    }*//*    if (VM.TraceOnStackReplacement && (0 != osrs.size())) {      verifyNoOsrBarriers(ir);    }*/  }