for (Enumeration e = enumerateReturnValues(ir); e.hasMoreElements();) { OPT_Operand op = (OPT_Operand)e.nextElement();
for (Iterator itr = iterateReturnValues(ir); itr.hasNext();) { OPT_Operand op = (OPT_Operand)itr.next();
  public OPT_FI_EscapeSummary simpleEscapeAnalysis (OPT_IR ir) {    if (DEBUG)      VM.sysWrite("ENTER Simple Escape Analysis " + ir.method + "\n");    if (DEBUG)      ir.printInstructions();    // create a method summary object for this method    VM_Method m = ir.method;    OPT_MethodSummary summ = OPT_SummaryDatabase.findOrCreateMethodSummary(m);    summ.setInProgress(true);    OPT_FI_EscapeSummary result = new OPT_FI_EscapeSummary();    // set up register lists, SSA flags    OPT_DefUse.computeDU(ir);    OPT_DefUse.recomputeSSA(ir);    // pass through registers, and mark escape information    for (OPT_Register reg = ir.regpool.getFirstSymbolicRegister();         reg != null; reg = reg.getNext()) {      // skip the following types of registers:      if (reg.isFloatingPoint())        continue;      if (reg.isInteger())        continue;      if (reg.isLong())        continue;      if (reg.isCondition())        continue;      if (reg.isValidation())        continue;      if (reg.isPhysical())        continue;      if (!reg.isSSA())        continue;      AnalysisResult escapes = checkAllAppearances(reg, ir);      if (escapes.threadLocal) {        result.setThreadLocal(reg, true);      }      if (escapes.methodLocal) {        result.setMethodLocal(reg, true);      }    }    // update the method summary database to note whether    // parameters may escape    int numParam = 0;    for (OPT_OperandEnumeration e = ir.getParameters();         e.hasMoreElements();         numParam++) {      OPT_Register p = ((OPT_RegisterOperand)e.next()).register;      if (result.isThreadLocal(p)) {        summ.setParameterMayEscapeThread(numParam, false);      }       else {        summ.setParameterMayEscapeThread(numParam, true);      }    }          // update the method summary to note whether the return value    // may escape    boolean foundEscapingReturn = false;    for (Enumeration e = enumerateReturnValues(ir); e.hasMoreElements();) {      OPT_Operand op = (OPT_Operand)e.nextElement();      if (op == null)        continue;      if (op.isRegister()) {        OPT_Register r = op.asRegister().register;        if (!result.isThreadLocal(r)) {          foundEscapingReturn = true;        }      }    }    if (!foundEscapingReturn)      summ.setResultMayEscapeThread(false);    // record that we're done with analysis    summ.setInProgress(false);    if (DEBUG)      VM.sysWrite("LEAVE Simple Escape Analysis " + ir.method + "\n");    return  result;  }