[LLVMdev] Strategy to compile for LLVM IR
Chris Lattner
sabre at nondot.org
Fri Jun 15 12:25:30 PDT 2007
On Fri, 15 Jun 2007, [ISO-8859-1] Stéphane Letz wrote:
> We have a compiler for the Faust language (faust.grame.fr) that
> currently compiles a C++ class which implements a DSP plug-in with
> several methods.
BTW, since you are fast becoming a guru in code specialization with LLVM,
it would be really nice if you could write a little document that captures
some of this wisdom for the next person :)
-Chris
> Our strategy to compile LLVM IR instead is the following:
>
> - use the current Faust ==> C++ compiler to compile a "empty" plug-in
> that we use as a template C++ class.
>
> - compile this template C++ class using "llvm-g++ -emit-llvm -c "
> to get a bytecode file template.bc
>
> - use "llvm2cpp template.bc" to get a template.bc.cpp of C++ code
> the Faust ==> LLVM IR new backend will have to execute to produce
> the correct bytecode.
>
> - take this template.bc.cpp code as the "constant" part of the Faust
> ==> LLVM IR backend and add everything needed to produce the
> "variable" part (that one corresponding to what the real Faust plug-
> in will do)
>
> This method should work but is a bit complex, since we have to look
> at the template.bc.cpp code, find the "entry points" (Function* or
> BadsicBlock* objects) we will have to enrich with additional code.
>
> Is there any more common and simple method to achieve the same
> result? or any other advice?
>
> Thanks
>
> Stephane Letz
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-Chris
--
http://nondot.org/sabre/
http://llvm.org/
More information about the llvm-dev
mailing list