Rakudo *Needs* Register Allocation

chromatic 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 
doesn't.
 
> 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.

-- c


More information about the parrot-dev mailing list