[Mono-dev] GCC + libJIT instead of LLVM
Kirill Kononenko
kirill.kononenko at gmail.com
Sun Apr 5 04:42:02 EDT 2009
Hello
After many considerations, I want to let everyone know about a release
of my work done in a package:
0.1.2.5 + / 0.1.2 1/2 version release (code name: "libJIT-ON-TESTOSTERONE")
* main branch + libJIT-linear-scan-register-allocator
* Add optimization levels for IA-32 from 0 to 4
* Add a new specialized ABI called INTERNAL
* Add brand new optimized object code generator (level 1, 2, 3, 4 of
optimization)
* Various low-level machine dependent optimizations and tricks
* Aggressive optimization of division by integer constants as
by Torbjorn Granlund and Peter L. Montgomery in "Division By
Invariant Integers using Multiplication"
* Add primitive code generators for MMX/Streaming SIMD
Extensions/SSE/SSE2/SSE3 and others
* Use SIMD SSE/SSE2/SSE3 for floating point values and operations
(level 1, 2, 3, 4 of optimization)
* Data-flow and control-flow based analysis (level 1, 2, 3, 4 of
optimization)
* Fast liveness analysis (level 2 of optimization)
* Dead-code elimination (level 4 of optimization)
* Full liveness analysis (level 3, 4 of optimization)
* Linear scan register allocator algorithm (level 2)
* Bin packing register allocator algorithm (level 3, 4)
* Tested on DotGNU Portable.NET Common Language Runtime
/ a Microsoft Common Intermediate Language Virtual Machine
(a special "unofficial" research release version
<http://code.google.com/p/libjit-linear-scan-register-allocator>
Download is at:
http://libjit-linear-scan-register-allocator.googlecode.com/files/libjit-0.1.2.5%2B.tar.gz
This work gives a lot of improvement and beats Mono in all benchmarks.
I want to also let know that this is a research project and there is
no target to compete with Novell, or Apple. Simply because it is not
possible. But I am rather looking for cooperation for benefits of all
sides. I will be honored if this work can be a base for a cooperation
with Mono for example.
Thanks,
Kirill
2009/4/3 Diego Novillo <dnovillo at google.com>:
> On Fri, Apr 3, 2009 at 10:54, Kirill Kononenko
> <kirill.kononenko at gmail.com> wrote:
>
>> What I want to identify is how both a VM engine(ILDJIT,
>> .NET for example, Mono, Portable.NET), gcc and libJIT could be
>> extended with minimal changes to both, for best user experience for
>> example, is it speed performance, benchmark, code size, or power
>> consumption.
>
> You still need to do the steps Ian outlined in his message. For GCC
> maintainers to accept changes (minimal as they may be), you have to
> justify those changes, propose a patch and submit for review.
>
> Whether the patch is approved or not will depend on whether you
> convinced the GCC maintainers that the feature is useful and that it
> complies with http://gcc.gnu.org/contribute.html.
>
> It seems like you are still early in your design cycle. You still
> need to complete steps 1-3 in Ian's list.
>
>
> Diego.
>
More information about the Mono-devel-list
mailing list