[LAD] Project proposition: llvm based dsp engine

Maurizio De Cecco jmax at dececco.name
Wed Dec 8 11:19:09 UTC 2010

On Tuesday12/7/10 2:58 PM, Stéphane Letz wrote:

> I'm quite dubious of any real optimization you would achieve with this kind of approach, using LLVM.
 >AFAIKS LLVM link time optimization allows some kind of inter module 
inlining or possibly constant
 > propagation

Well, optimizations can be added :->.
Anyway, in my case (jMax, but it valid for other patch based langauges), 
things like inlining and loop fusion and software pipelining would help 
a lot for patches with simple objects like add and multiply.

> Again staying in the imperative world makes things much more complicated... go functional!

I was born as LISP programmer, so, nothing against, just tell me what to 
do with existing code bases :->

> PS: BTW LLVM is a really nice tool and very interesting things can be done with it, like using LLVM bitcode format as an interchange format for different architectures and using the JIT for dynamic compilation. We can already do that with Faust LLVM backend where we can generate a bitcode binary, then load it and JIT with a generic "LLVM faust plug-in" loader. This would allow the same bitcode object to be produced by the Faust online compiler for instance and be executed on any target machine.

Great: now image to use a common framework and standard to make Faust 
generate bitcode interoperable with LLVM plugins generated with other 
code, and to have an execution framework for these plugin that can be 
shared between multiple applications.

That would solve quite a number of boring engineering problems, like 
having wrapper for faust (for jMax, for Pd etc etc) objects for a dozen 
or so of applications.

OK, may be it is just a dream, but LLVM seems to be an interesting 
framework to use for this purpose.


More information about the Linux-audio-dev mailing list