[LLVMdev] Calling Conventions Cont'd

Chris Lattner sabre at nondot.org
Mon Apr 14 12:35:02 PDT 2008


On Mon, 14 Apr 2008, Jon Sargeant wrote:
> Ugh, this isn't what I wanted to hear.  Passing "complex" differently
> than a structure containing two doubles is a bad design, but alas,
> calling conventions are beyond our control.  How many special cases like
> this are there?  If "complex" is the only special case, LLVM could

There are a huge number of special cases.  Take a look at the craziness in 
the x86-64 ABI structure passing rules for an example.

> entirely in the back end.  Apart from calling conventions, the front end
> doesn't need to know the specific target, only the data layout and which
> intrinsics the target supports.  This approach makes a clean division
> between the front end and back end.

If you want to map from a C type/calling convetion to LLVM IR, clang is a 
good way to go.  It isn't fully up to snuff with all the ABIs out there, 
but will be doing much better over the next few months.

-Chris

-- 
http://nondot.org/sabre/
http://llvm.org/



More information about the llvm-dev mailing list