Currently IMCC uses a Graph Coloring based Register allocation algorithm.
The implementation is a trimmed down version of Brigg's Allocator.
I came across this research paper that talks about the new register
allocation algorithm "Linear Scan Allocation"for dynamically compiled
languages. Parrot perfectly fits the mold of dynamically compiled language.
The Linear Scan Allocator is faster at register allocation process and seems
to have the same execution time for the code. For more information please
refer to the research paper from IBM on Liner Scan Allocation
http://www.research.ibm.com/jalapeno/papers/toplas99.pdf
Let me know what your thoughts are and would it be worth implementing this
algorithm to see how it performs compared to graph coloring algorithm.
Please share your thoughts accordingly
--
Thanks,
Vishal
> Let me know what your thoughts are and would it be worth implementing this
> algorithm to see how it performs compared to graph coloring algorithm.
>
> Please share your thoughts accordingly
It'd be very useful not only to have two implementations to compare with a
real benchmark on actual programs, but to do incidental IMCC cleanups while
implementing the other system. (Pluggable allocators is probably too much
work, but minor refactorings and documentations are always nice, if nothing
else.)
-- c