public final void perform(OPT_IR ir, boolean renumber) { maximizeBasicBlocks(ir); if (VM.BuildForIA32) {  OPT_DefUse.recomputeSpansBasicBlock(ir); } boolean didSomething = false; boolean didSomethingThisTime = true; while (didSomethingThisTime) { applyPeepholeBranchOpts(ir); didSomethingThisTime = removeUnreachableCode(ir); didSomething |= didSomethingThisTime; } if (didSomething) maximizeBasicBlocks(ir); if (renumber) ir.cfg.compactNodeNumbering();
public final void perform(OPT_IR ir) { perform(ir, true);
  public final void perform(OPT_IR ir, boolean renumber) {    maximizeBasicBlocks(ir);    if (VM.BuildForIA32) {      // spans-bb information is used for CMOV insertion      OPT_DefUse.recomputeSpansBasicBlock(ir);    }    boolean didSomething = false;    boolean didSomethingThisTime = true;    while (didSomethingThisTime) {      applyPeepholeBranchOpts(ir);      didSomethingThisTime = removeUnreachableCode(ir);      didSomething |= didSomethingThisTime;    }    if (didSomething)      maximizeBasicBlocks(ir);    if (renumber)      ir.cfg.compactNodeNumbering();  }