origBlock.getNumber())
_origBlock.getNumber())
  OPT_BasicBlock upto(OPT_Instruction earlyPos, OPT_BasicBlock lateBlock,                      OPT_Instruction inst) {        OPT_BasicBlock origBlock = getOrigBlock(inst);    OPT_BasicBlock actBlock = lateBlock;    OPT_BasicBlock bestBlock = lateBlock;    OPT_BasicBlock earlyBlock = getBlock(earlyPos);    if (VM.VerifyAssertions) {      if (!dominator.dominates (earlyBlock.getNumber(),                                 origBlock.getNumber())          || !dominator.dominates (earlyBlock.getNumber(),                                    lateBlock.getNumber())) {        OPT_SSA.printInstructions (ir);        VM.sysWrite ("> "+earlyBlock.getNumber()+", "+origBlock.getNumber()                     + ", "+lateBlock.getNumber()+"\n");        VM.sysWrite (""+inst+"\n");      }      VM._assert (dominator.dominates (earlyBlock.getNumber(),                                       origBlock.getNumber()));      VM._assert (dominator.dominates (earlyBlock.getNumber(),                                       lateBlock.getNumber()));    }    for (;;) {      /* is the actual block better (less frequent)         than the so far best block? */      if (frequency (actBlock) < frequency (bestBlock)) {        if (DEBUG) VM.sysWrite ("going from "+frequency (origBlock)+" to "                                +frequency (actBlock)+"\n");        bestBlock = actBlock;      }      /* all candidates checked? */      if (actBlock == earlyBlock)        break;            /* walk up the dominator tree for next candidate*/      actBlock = dominator.getParent(actBlock);    }    if (bestBlock == origBlock) return  null;    if (DEBUG) VM.sysWrite ("best Block: "+bestBlock+"\n");    return bestBlock;  }