[llvm-commits] [ARM] Extra frame for non-VA byval parameter

Stepan Dyatkovskiy stpworld at narod.ru
Tue Oct 9 12:24:39 PDT 2012


Hi Manman,

> The stack object created in VarArgStyleRegisters is for the first part of the struct,
> the stack object created in LowerFormalArguments is for the remainder part and these two parts do not overlap.
> So I do not think we need dependencies between these two frames.
>
> Can you attach a testing case with this patch so I can take a deeper look at this?

"byval" registers are stored in FixedStack "A". As I found FixedStack 
"B" is assigned to the *entire* parameter but with size of remained 
part. Just look at ARMTargetLowering::LowerFormalArguments, string 
"InVals.push_back(DAG.getFrameIndex(FI, getPointerTy()));"
Stack object for byval registers stay alone, no farther references to it.

I try to present testcase tomorrow.

-Stepan.



More information about the llvm-commits mailing list