And no this is not a 1st April joke :-)


Thanks,
Kirill

2009/4/1 Kirill Kononenko <kirill.konone...@gmail.com>:
> Hello Dear GCC Developers,
>
>
>
> I would like to ask your opinion about possibility for integration of
> the libJIT Just-In-Time compilation library and GCC. For example, the
> same way as libffi is integrated within gcc source tree. It seems to
> me that LLVM solves many goals that are already complete and solved in
> GCC. So I think libJIT potentially is more useful for GCC and software
> developers.
>
>
> What is your opinion about this idea? How this should be done and what
> improvements could be made to both libJIT and GCC for this kind of
> integration?
>
>
> I was also very surprised to read this interesting discussion by Rhys
> Weatherley (libJIT) and Chris Lattner (LLVM) (libJIT vs LLVM):
> http://lists.gnu.org/archive/html/dotgnu-libjit/2004-05/index.html
>
>
> It talks more about differences in design and goals between libJIT and LLVM.
>
>
> Please let me know your ideas and thoughts. No flaming please. I think
> everyone benefits if we can gather enough thoughts about JITing in
> GCC.
>
>
> I also would like to point to my personal project about improvement of
> libJIT: http://code.google.com/p/libjit-linear-scan-register-allocator/
> . It studies how to make efficient code generation for Common
> Intermediate Language and JIT compilers, and implements a full linear
> scan register allocator and bin packing register allocator within
> libJIT. It also has support of XMM registers for floating point
> operations. The experimental target is the Microsoft Common
> Intermediate Language. There is various data-flow and control-flow
> analysis, including various liveness analysis(fast and full),
> dead-code elimination etc with various optimization level. For
> example, this code generator gives the following benchmark on my pc
> for pnetmark at the moment, with Portable.NET Just-In-Time compiler
> 0.8.0:
>
> LibJIT Linear Scan Register Allocator
> Current  libJIT 0.1.2
>
> Sieve      20439      17499
> Loop       28311      24976
> Logic      57311      55647
> String     16586      16651
> Float       2642       1940
> Method   32426      30401
>
> PnetMark(Average Score) 19005    16970
>
> The average improvement is 12% or so in pnetmark comparing to a global
> register allocator in libJIT which uses number of usage of a variable
> as an euristic.  With dead-code analysis enabled it jumps another 12%
> or so. For example, the logic benchmark jumps over 70%. Other
> optimizations enabled can give more improvement. It was remarkably
> easy to add dead-code elimination in libJIT for example I spent less
> than a week for this. But I am rather interested in the code
> generation and linear scan register allocation at the moment and
> Common Intermediate Language. I think GCC could benefit a lot if an
> integration of both libJIT and GCC could be considered, and there was
> cooperation about this.
>
>
>
> Thanks,
> Kirill
>

Reply via email to