if (VM.VerifyAssertions) VM.assert (i >= 0);
if (VM.VerifyAssertions) VM._assert (i >= 0);
  OPT_BasicBlock useBlock (OPT_Instruction use, OPT_Operand op) {    //VM.sysWrite ("UseBlock: "+use+"\n");    OPT_BasicBlock res = scheduleLate (use);    if (res != null && Phi.conforms (use)) {      int i;      for (i = Phi.getNumberOfValues (use) - 1;  i >= 0;  --i) {	if (Phi.getValue (use, i) == op) {	  res = Phi.getPred (use, i).block;	  break;	}      }      if (VM.VerifyAssertions) VM.assert (i >= 0);    }    return res;  }  /**   * Schedule me as late as possible,   * but in front of my uses and before latePos   */  private OPT_BasicBlock scheduleScalarUsesLate (OPT_Instruction inst, 						 OPT_BasicBlock lateBlock) {    OPT_Operand resOp = getResult (inst);    if (resOp == null || !(resOp instanceof OPT_RegisterOperand))      return lateBlock;    OPT_Register res = ((OPT_RegisterOperand) resOp).register;    OPT_RegisterOperandEnumeration e = OPT_DefUse.uses (res);        while (e.hasMoreElements()) {      OPT_Operand op = e.next();      OPT_Instruction use = op.instruction;      OPT_BasicBlock block = useBlock (use, op);      lateBlock = commonDominator (block, lateBlock);    }    return  lateBlock;  }