[LLVMdev] Calling Conventions Cont'd
Jon Sargeant
delta17 at cox.net
Sat Apr 12 13:22:24 PDT 2008
What is the correct procedure for translating a function signature from
a high-order language to LLVM? It looks like I replace each
struct/array parameter with a 'byval' pointer parameter, and I replace a
result struct/array with an 'sret' pointer parameter. The reason I ask
is that each calling convention has subtle variations for each
architecture and platform. For example, cdecl in Win32 returns small (8
bytes or less) structures in EAX or EAX:EDX; whereas, cdecl in Linux
always returns structures "in memory" (Source:
http://www.programmersheaven.com/2/Calling-conventions). Does LLVM
handle all of these nuances for me?
Thanks,
Jon
More information about the llvm-dev
mailing list