This is the mail archive of the
mailing list for the GCC project.
Re: Register Allocation
Ian Lance Taylor <email@example.com> writes:
> The current reload pass includes general heuristics to handle
> reloading memory addresses. This code knows things like "if stack
> pointer plus displacement is not a valid memory address, try loading
> the displacement into a register." Many targets currently rely on
> those heuristics to generate valid code. I haven't been able to quite
> pin down where this happens in your proposal. For example, it's easy
> for an address to use the frame pointer and be valid before reload,
> and then for reload to eliminate the frame pointer (in fact, in your
> scheme, what does frame pointer elimination?) and produce an offset
> from the stack pointer which is invalid. That is, spill code or frame
> pointer elimination can generate invalid address, and something needs
> to fix them up. Where does that happen, and how?
The rable.pdf completely miss description of registers elimination.
It's important and difficult part of RA.
(The "old new-ra" also havn't eliminatin)