Jeff Clites <[EMAIL PROTECTED]> wrote:
> On Nov 8, 2004, at 1:34 AM, Leopold Toetsch wrote:

>> If frames aren't adjacent, normal argument copying can be done anyway.

> This would seem to require the same types of runtime checks that you
> are objecting to below,

Not runtime. The register allocator knows the amount of needed
non-volatiles and volatile registers. Depending on that a call can place
arguments directly into the incoming regs of the caller or not. Then if
at runtime copying is needed (because e.g. frames aren't adjacent), the
function arguments are copyied. This is fully transparent.

> I discussed that in item (1) under "Further notes".

Yep, saw that then ;)

>> It's not needed. I've a better scheme in mind, which addressess
>> efficieny as well as argument passing.

> And spilling?

Well, I'm proposing a variable-sized register frame. With very little
additions we could run with more then 32 registers per kind (there are a
few bitmasks currently that would need adaptions, but not much).

But basically, spilling should not be needed at all, if the register
allocator isn't as broken as it now is. Dan got some really evil
subroutines, so we have RL test cases. We'll see.

> JEff

leo

Reply via email to