if (!rop.register.isPhysical()) recordUse(rop);
recordUse(rop);
  static void computeDU(OPT_IR ir) {    // Clear old register list (if any)    clearDU(ir);    if (TRACE_DU_ACTIONS || DEBUG)      VM.sysWrite("Computing Register List\n");    // Create register defList and useList    for (OPT_Instruction instr = ir.firstInstructionInCodeOrder(); instr        != null; instr = instr.nextInstructionInCodeOrder()) {      for (OPT_OperandEnumeration defs = instr.getPureDefs();           defs.hasMoreElements();) {        OPT_Operand op = defs.next();        if (op instanceof OPT_RegisterOperand) {          OPT_RegisterOperand rop = (OPT_RegisterOperand)op;          if (!rop.register.isPhysical())            recordDef(rop);        }      }         // for ( defs = ... )      for (OPT_OperandEnumeration uses = instr.getUses();           uses.hasMoreElements();) {        OPT_Operand op = uses.next();        if (op instanceof OPT_RegisterOperand) {          OPT_RegisterOperand rop = (OPT_RegisterOperand)op;          if (!rop.register.isPhysical())            recordUse(rop);        }      }         // for ( uses = ... )    }           // for ( instr = ... )    // Remove any symbloic registers with no uses/defs from    // the register pool.  We'll waste analysis time keeping them around.    OPT_Register next;    for (OPT_Register reg = ir.regpool.getFirstRegister(); reg != null;         reg = next) {      next = reg.getNext();      if (reg.defList == null && reg.useList == null) {        if (DEBUG)          VM.sysWrite("Removing " + reg + " from the register pool\n");        ir.regpool.removeRegister(reg);      }    }    if (DEBUG)      printDU(ir);  }