Dan Sugalski <[EMAIL PROTECTED]> wrote:

> ... It *could* spill the used registers, or it could
> just push the whole set onto the register stack and start fresh,
> popping off the old set when the code's done.

Or probably much simpler: given a fairly big linear register frame, just
advance the base pointer by a small increment, which makes the first x
registers unusable, existing regs are at (n-x) and fresh regs are at
(32-x). This is my preferred idea, when we really need extending the
register range.

Anyway, both schemes are rather complicated when it comes to register
coloring. FWIW, when AMD designed the x86-64 chip, they found that
(IIRC) 99.8% of the tested C programs fits into 16 regs (which aren't
all allocatable). We should therefore have no problem with 32, if
register allocation is fixed eventually.

leo

Reply via email to