OPT_PhysicalRegisterSet phys = ir.regpool.getPhysicalRegisterSet();
  void cleanUpAndInsertEpilogue() {    OPT_PhysicalRegisterSet phys = ir.regpool.getPhysicalRegisterSet();    OPT_Instruction inst = ir.firstInstructionInCodeOrder().nextInstructionInCodeOrder();    for (; inst != null; inst = inst.nextInstructionInCodeOrder()) {      switch (inst.getOpcode()) {        case IA32_MOV_opcode:          // remove frivolous moves          OPT_Operand result = MIR_Move.getResult(inst);          OPT_Operand val = MIR_Move.getValue(inst);          if (result.similar(val)) {            inst = inst.remove();          }          break;        case IA32_FMOV_opcode:          // remove frivolous moves          result = MIR_Move.getResult(inst);          val = MIR_Move.getValue(inst);          if (result.similar(val)) {            inst = inst.remove();          }          break;        case IA32_RET_opcode:          if (frameIsRequired()) {            insertEpilogue(inst);          }        default:          break;      }    }    // now that the frame size is fixed, fix up the spill location code    rewriteStackLocations();  }