if (returnType != VM_Type.VoidType) {
try { Class.forName("OPT_ClassLoaderProxy"); } catch (Throwable e) { } if (returnType != OPT_ClassLoaderProxy.VoidType) {
  OPT_GenerationContext(VM_Method meth, 			int cmid, 			OPT_Options opts, 			OPT_InlineOracle ip) {    original_method = meth;    original_cmid = cmid;    method = meth;    options = opts;    inlinePlan = ip;    inlineSequence = new OPT_InlineSequence(meth);    // Create the CFG. Initially contains prologue, epilogue, and exit.    cfg = new OPT_ControlFlowGraph(0);    prologue = new OPT_BasicBlock(PROLOGUE_BCI, inlineSequence, cfg);    epilogue = new OPT_BasicBlock(EPILOGUE_BCI, inlineSequence, cfg);    cfg.addLastInCodeOrder(prologue);    cfg.addLastInCodeOrder(epilogue);    exit = cfg.exit();    epilogue.insertOut(exit);    // Create register pool, initialize arguments, resultReg.    temps = new OPT_RegisterPool(meth);    _ncGuards = new java.util.HashMap();    initLocalPool();    VM_Type[] params = meth.getParameterTypes();    int numParams = params.length;    int argIdx = 0;    int localNum = 0;    arguments = new OPT_Operand[method.isStatic()?numParams:numParams+1];    // Insert IR_PROLOGUE instruction.  Loop below will fill in its operands    OPT_Instruction prologueInstr =       Prologue.create(IR_PROLOGUE, arguments.length);    appendInstruction(prologue, prologueInstr, PROLOGUE_BCI);    if (!method.isStatic()) {      VM_Type thisType = meth.getDeclaringClass();      OPT_RegisterOperand thisOp = makeLocal(localNum, thisType);      // The this param of a virtual method is by definition non null      OPT_RegisterOperand guard = makeNullCheckGuard(thisOp.register);      OPT_BC2IR.setGuard(thisOp, guard);      appendInstruction(prologue,			Move.create(GUARD_MOVE, guard.copyRO(), 				    new OPT_TrueGuardOperand()),			PROLOGUE_BCI);      thisOp.setDeclaredType();      thisOp.setExtant();      arguments[0] = thisOp;      Prologue.setFormal(prologueInstr, 0, thisOp.copyU2D());      argIdx++; localNum++;    }    for (int paramIdx = 0; paramIdx < numParams; paramIdx++) {      VM_Type argType = params[paramIdx];      OPT_RegisterOperand argOp = makeLocal(localNum, argType);      argOp.setDeclaredType();      if (argType.isClassType()) {	argOp.setExtant();      }      arguments[argIdx] = argOp;      Prologue.setFormal(prologueInstr, argIdx, argOp.copyU2D());      argIdx++; localNum++;      if (argType.isLongType() || argType.isDoubleType()) {	localNum++; // longs & doubles take two words of local space      }    }    VM_Type returnType = meth.getReturnType();    if (returnType != VM_Type.VoidType) {      resultReg = temps.makeTemp(returnType).register;    }        enclosingHandlers = null;    localMCSizeEstimate = VM_OptMethodSummary.inlinedSizeEstimate(method);    completePrologue(true);    completeEpilogue(true);    completeExceptionHandlers(true);  }