[LLVMdev] CABI project

John McCall rjmccall at apple.com
Tue Oct 16 12:00:51 PDT 2012


On Oct 16, 2012, at 11:45 AM, Dave Abrahams wrote:
> I'm working on a project to separate from Clang all the logic necessary
> to generate C/C++/ObjC-ABI-compatible code so that other front-ends,
> both C family (e.g. Dragonegg, and in BoostPro's case, EDG) and other
> languages/code generators, can interoperate with C family code.

So, specifically, this would be some sort of API where you give it a C
function type and it tells you how to pass those arguments in LLVM IR?
Seems commendable, but there's a lot of hidden complexity here.

Is there anything more to it than that?  Are you also going to try to
abstract, say, the sizes and alignments of fundamental types?
Struct layout?  Anything else?

> Eventually I want to put this work in a separate project that sits
> between Clang and LLVM, but for now, at Chandler's suggestion, I plan to
> make it a sub-library of Clang (I'll set up the CMakeLists.txt so the
> CABI library can't see the rest of clang).

Sounds reasonable.

> Suggestions, feedback, interaction welcomed.  Not my highest priority,
> but if anyone has a better name than CABI it would relieve one nagging
> source of discomfort ;-)

If it's just about the C ABI, that seems like a fine name for it.

John.



More information about the llvm-dev mailing list