[LLVMdev] How to represent __attribute__((fastcall)) functions in the IL

Krzysztof Parzyszek kparzysz at codeaurora.org
Fri Oct 19 09:07:11 PDT 2012


On 10/19/2012 10:40 AM, Chandler Carruth wrote:
>
> Don't get me wrong, I don't have any good ideas about how to do this,
> I'm just hoping someone does. End result might allow something like:
>
> declare void @foo(double inreg <eax,edx> %x)
>

Could we have some sort of metadata input for the front-end, where 
"fastcall" would be explicitly defined, together with the required 
targets that implement it?
This way users could provide their own calling convention definitions, 
and use them in a similar fashion to fastcall, i.e. 
__attribute__((my_convention)).

The bitcode could only specify which calling convention is being used, 
and each target lowering would need to translate it properly.

-Krzysztof

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, 
hosted by The Linux Foundation



More information about the llvm-dev mailing list