[LLVMdev] Accessing arguments in a caller

Carlo Alberto Ferraris cafxx at strayorange.com
Sun Aug 21 06:23:36 PDT 2011


Nella citazione giovedì 18 agosto 2011 09:11:36, Carlo Alberto Ferraris 
ha scritto:
> I need some advice on "forwarding" arguments to a callee. Suppose I have 
> a function F that is called at the beginning of all other functions in 
> the module. From F I need to access (read) the arguments passed to its 
> immediate caller. Right now I do something like boxing all arguments in 
> the caller inside a struct and passing a pointer to the struct to F, 
> alongside an identifier telling which caller F is being called from. F 
> has then a giant switch that branches to the appropriate unboxing code. 
> This is obviously suboptimal because I need to allocate the struct on 
> the stack, copy the arguments inside of it and then passing an 
> additional pointer to F.
> I was wondering if there's a better way to do this, e.g. a way to access 
> the stack frame of the caller (knowing, thanks to the identifier, which 
> caller F was called from) or, more in general, arbitrary values d
efined 
> in the caller. Any suggestions?

Are there really no better ways of doing this?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cafxx.vcf
Type: text/x-vcard
Size: 230 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110821/ab01c6a7/attachment.vcf>


More information about the llvm-dev mailing list