This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: extra machine-dependent passes
- To: apl at alum dot mit dot edu
- Subject: Re: PATCH: extra machine-dependent passes
- From: DJ Delorie <dj at redhat dot com>
- Date: Fri, 15 Jun 2001 19:53:16 -0400
- CC: gcc at gcc dot gnu dot org
- References: <32548.992637245@localhost.localdomain><200106152108.RAA22241@greed.delorie.com> <jmhexh4csv.fsf@geoffk.org> <p0433010ab7503db17ff9@[192.168.1.254]>
> Alternately, isn't this just "prologue" code emitted as RTL?
> I've never done a port that used that feature, but wouldn't that
> allow the moves to be subject to the full force of the optimization
> and register allocation passes?
Effectively, except that inlined functions don't have their own
prologues. If we did pre-alloc prologues and epilogues, the whole
"call saved" concept would dissappear, because you could just emit the
appropriate moves to/from pseudos and let gcc sort it out in the
optimizer. That is, if the optimizer was tuned for that purpose.
If there were a way to add prologue/epilogue code before register
allocation (granted, you couldn't do the save/restores with it) that
would be useful also. I'd much rather "return" by jumping indirect
through a pseudo register that happens to have the return address in
it, than to waste a stack slot when it's not needed.