if (nloop.get(inst.getBasicBlock().getNumber())) {
if (Move.conforms (inst) && Move.getVal (inst) instanceof OPT_ConstantOperand) return true; } if (inst.operator.opcode == ARRAYLENGTH_opcode) inst = definingInstruction (GuardedUnary.getVal(inst)); if (OPT_CFGTransformations.inLoop (inst.getBasicBlock(), nloop)) {
  private static boolean loopInvariant (OPT_Operand op, OPT_BitVector nloop) {    if (op instanceof OPT_ConstantOperand) return true;    if (op instanceof OPT_RegisterOperand) {      boolean variant = false;      OPT_Register reg = ((OPT_RegisterOperand)op).register;      OPT_RegisterOperandEnumeration defs = OPT_DefUse.defs(reg);      while (defs.hasMoreElements()) {	OPT_Instruction inst = defs.next().instruction;	if (Move.conforms (inst))	  inst = definingInstruction (follow (Move.getVal(inst)));	if (nloop.get(inst.getBasicBlock().getNumber())) {	  variant = true;	  break;	}      }      if (variant) {	defs = OPT_DefUse.defs(reg);	while (defs.hasMoreElements()) {	  OPT_Instruction inst = defs.next().instruction;	  if (Move.conforms (inst))	    inst = definingInstruction (follow (Move.getVal(inst)));	  //VM.sysWrite ("- "+inst.getBasicBlock()+": "+inst+"\n");	}      }      return !variant;    }    //VM.sysWrite("other: "+op+"\n");    return false;  }