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 <dnovi...@google.com>: > On Fri, Apr 3, 2009 at 10:54, Kirill Kononenko > <kirill.konone...@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. >