[LLVMdev] languages, semantic trees, LLVM interfaces
sabre at nondot.org
Tue Sep 9 10:00:03 PDT 2003
> > VSA> For OCAML, for example, the front-end is quite sophisticated
> > VSA> and complex and the LLVM representation would not be suitable for
> > VSA> supporting all the checking and translation.
> > But I have just meant ocamlyacc, i.e. ocaml clone of the yacc.
> > And here my question was: what kind of interface is expected to use
> > from within ocml, CommonLisp implementations, Haskel and other nice
> > language implementations? What is the expected way of interfacing
> > LLVM for those non-C language implementations? shared libraries with
> > plain C-interface or what?
There are currently two options:
1. If you can, linking your front-end to the LLVM libraries and using the
C++ API is certainly the simplest and most stable way to do it.
2. Otherwise, you can build some form of LLVM representation in your
front-end, then output LLVM "assembly" language. This is not as nice
as option #1, because you have to reinvent a new representation for
LLVM, which, although not difficult, seems like a waste of time. :)
FWIW, the C/C++ front-end currently uses option #2. The reason for this
is that the C/C++ front-end is built into the GCC infrastructure, which is
not very friendly to C++. Also, this prevents the LLVM infrastructure
itself from having to be GPL'd.
More information about the llvm-dev