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