Mercurial > hg > graal-jvmci-8
diff graal/GraalCompiler/src/com/sun/c1x/alloc/LinearScan.java @ 2842:7596ae867a7b
basic inlining passes all tests, including optimistic inlining
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Wed, 01 Jun 2011 16:26:17 +0200 |
parents | 1cd59ca9ac86 |
children | 7f14e6b48a9c |
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/alloc/LinearScan.java Tue May 31 16:54:15 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/alloc/LinearScan.java Wed Jun 01 16:26:17 2011 +0200 @@ -1884,7 +1884,7 @@ } } - CiFrame computeFrameForState(int opId, FrameState state, CiBitMap frameRefMap) { + CiFrame computeFrameForState(FrameState state, int opId, CiBitMap frameRefMap) { CiValue[] values = new CiValue[state.valuesSize() + state.locksSize()]; int valueIndex = 0; @@ -1909,8 +1909,11 @@ } } } - - return new CiFrame(null, ir.compilation.method, state.bci, values, state.localsSize(), state.stackSize(), state.locksSize()); + CiFrame caller = null; + if (state.outerFrameState() != null) { + caller = computeFrameForState(state.outerFrameState(), opId, frameRefMap); + } + return new CiFrame(caller, state.method, state.bci, values, state.localsSize(), state.stackSize(), state.locksSize()); } private void computeDebugInfo(IntervalWalker iw, LIRInstruction op) { @@ -1946,7 +1949,7 @@ if (C1XOptions.TraceLinearScanLevel >= 3) { TTY.println("creating debug information at opId %d", opId); } - return computeFrameForState(opId, state, frameRefMap); + return computeFrameForState(state, opId, frameRefMap); } private void assignLocations(List<LIRInstruction> instructions, IntervalWalker iw) {