this.ir = ir;
  public void perform (OPT_IR ir) {    this.ir = ir;    unrollFactor = (1 << ir.options.UNROLL_LOG);        if (ir.hasReachableExceptionHandlers()) return;    OPT_DefUse.computeDU (ir);    new OPT_Simple().perform(ir);    new OPT_BranchOptimizations(-1, true, true).perform(ir, true);    //new OPT_CFGTransformations().perform(ir);    // Note: the following unfactors the CFG    new OPT_DominatorsPhase(true).perform(ir);    OPT_DefUse.computeDU (ir);    ir.setInstructionScratchWord(0);    unrollLoops(ir);    OPT_CFGTransformations.splitCriticalEdges(ir);    ir.cfg.compactNodeNumbering();  }