[LLVMdev] Request for merge: GHC/ARM calling convention.
baldrick at free.fr
Sat Oct 15 00:31:38 PDT 2011
> The code above is needed as the GHC calling convention redefines what
> registers are considered callee save. No one else rummages in to the
> original function as all the other calling conventions use the same
> set of callee and caller save registers, so GHC is the only one that
> needs to differentiate.
shouldn't the caller also know what registers are callee saved so that it
can avoid saving the contents of those registers to the stack?
>>> Based on knowledge of calling convention we return different set of callee saved
>>> registers. For example on ARM and when GHC CC is used, we return empty set.
>> yeah, but here MF is (presumably) the callee. The callee shouldn't be relevant
>> to how arguments are marshalled at the call-site. Especially as there might not
>> even be a callee function (case of an indirect call). Since calls themselves
>> are annotated with the calling convention to use, I guess the calling convention
>> should be grabbed from the call instruction itself somehow.
> This isn't about the call-site.
I see, thanks for explaining. But then can the MachineFunction really be null?
More information about the llvm-dev