The gccXllvm competition have been good for both parts, IMO.
[1]http://www.reddit.com/r/programming/comments/1nn6p3/libgccjitso_an_embeddable_jitcompiler_based_on_gcc/
Libgccjit.so: an embeddable JIT-compiler based on GCC
gcc.gnu.org
1–10 of 35 posts
The gccXllvm competition have been good for both parts, IMO.
[1]http://www.reddit.com/r/programming/comments/1nn6p3/libgccjitso_an_embeddable_jitcompiler_based_on_gcc/
Libgccjit.so: an embeddable JIT-compiler based on GCC
gcc.gnu.org
I wonder if this would have been easier to accomplish with LLVM given that gcc's api is so notorious to deal with?
I wonder if this would have been easier to accomplish with LLVM given that gcc's api is so notorious to deal with?
It looks like LLVM was designed for JIT compilation from the start.
I wonder if this would have been easier to accomplish with LLVM given that gcc's api is so notorious to deal with?
It looks like LLVM was designed for JIT compilation from the start.
LLVM and gcc are optimized for producing the fastest possible code and will do so at the expense of spending more time doing it. That's not to say that they can't become great JIT compilers in the future, but I don't think we're there yet.
Earlier quoted context omitted.
It looks like LLVM was designed for JIT compilation from the start.
LLVM doesn't make a great JIT compiler and I don't think gcc will either. The problem is that, most of the time, your JITed code won't be used very much and so the amount of time that it takes to generate it is a significant proportion of the total execution time. LLVM and gcc are optimized for producing the fastest possible code and will do so at the expense of spending more time doing it. That's not to say that the…
Earlier quoted context omitted.
LLVM doesn't make a great JIT compiler and I don't think gcc will either. The problem is that, most of the time, your JITed code won't be used very much and so the amount of time that it takes to generate it is a significant proportion of the total execution time. LLVM and gcc are optimized for producing the fastest possible code and will do so at the expense of spending more time doing it. That's not to say that the…
That's all relative, of course, to how long your application is going to run for and how much has to be JIT compiled.
A good example of where this is important is in a tracing JIT. Do you want to compile after 1000 iterations or 10,000 iterations? Faster JIT compilation means it can kick in much earlier.
I wonder if this would have been easier to accomplish with LLVM given that gcc's api is so notorious to deal with?
http://dmalcolm.fedorapeople.org/gcc/global-state/
He's seriously invested in cleaning up gcc and making it a competitive compiler.
You should also see the API he has for JITing, it's much higher-level than LLVM:
https://github.com/davidmalcolm/jittest/blob/master/regvm.cc...
Earlier quoted context omitted.
It looks like LLVM was designed for JIT compilation from the start.
LLVM doesn't make a great JIT compiler and I don't think gcc will either. The problem is that, most of the time, your JITed code won't be used very much and so the amount of time that it takes to generate it is a significant proportion of the total execution time. LLVM and gcc are optimized for producing the fastest possible code and will do so at the expense of spending more time doing it. That's not to say that the…