Rakudo *Needs* Register Allocation
chromatic at wgz.org
Mon Jun 28 06:50:54 UTC 2010
On Sunday 27 June 2010 at 23:05, Peter Lobsinger wrote:
> The problem with doing register allocation before IMCC is that IMCC
> creates temporary registers and does so in a very simple, inefficient
> way (every temporary in a function consumes an independant register).
This wouldn't be a problem if the generated PIR reused temporaries. POST->PIR
> I'm not saying that we should keep register allocation in IMCC, but
> rather that it should occur in a phase *after* IMCC has finished
> allocating its temproraries.
I'm not sure we have enough information available at that point; IMCC has
already thrown away what it needs to know by then. We *could* modify IMCC to
keep that around, but that means modifying IMCC.
For historical reference, the point at which I decided that IMCC wasn't worth
my own time to revise heavily was fixing its register allocator. We'd have to
tease out the various uses of its SymReg struct into multiple separate types--
that's the source of the O(n^4) and O(n^8) algorithms now.
More information about the parrot-dev