Hi All, Maybe my question will be naive, but has anyone an idea/opinion about using llvm as a medium to get multiple native architecture support in SF? I mean produce optimized (from high level) llvm byte code and let the already existing llvm JIT compilation tools produce the optimal native code for the target platform. As far as I can see, pros are : - platform specific low level optimizations and code generation already done, - performance vs "hand generated" assembly? - support for many platforms - no more need of a complex (to design) ABI in SF to support architectural differences of target platforms - can focus on high level optimizations only, - maintenance? - fill with your own ideas... cons may be (many "?" because I actually only know concepts of llvm, and never really played with it yet!) : - security, maturity, etc? - support for new architectures harder (need to develop new llvm backends, or do like today, losing the advantages of llvm) - support for different OS? - licensing? embedding code from external project? - time to compile? - is it possible to bridge generated code with already running code, in both directions to keep using precompiled generic routine? - performance vs "hand generated" assembly? - maintenance? - fill with your own ideas again... As I started to work on the basis of a ppc jit compiler, I realize it won't be an easy task to write and maintain good compilers for multiple (and very different) hw architectures... -Guillaume In case it was a good question, credits to a friend for the idea :)