This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED
- From: Michael S. Zick <mszick at goquest dot com>
- To: Alexandre Oliva <aoliva at redhat dot com>,Michael Matz <matz at suse dot de>
- Cc: Joern Rennecke <joern dot rennecke at superh dot com>,Daniel Berlin <dberlin at dberlin dot org>,Herman ten Brugge <hermantenbrugge at home dot nl>,Dale Johannesen <dalej at apple dot com>,<gcc at gcc dot gnu dot org>
- Date: Thu, 15 May 2003 07:47:05 -0500
- Subject: Re: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED
- References: <Pine.LNX.4.44.0305141359190.15564-100000@wotan.suse.de> <or8yt9rnlb.fsf@free.redhat.lsd.ic.unicamp.br>
On Wednesday 14 May 2003 08:43 pm, Alexandre Oliva wrote:
> On May 14, 2003, Michael Matz <matz@suse.de> wrote:
> > Sure sure. I just wanted to know if the set of forbidden regs could
> > possibly also depend on the call in question. Looking at the definition
> > of HARD_REGNO_CALL_PART_CLOBBERED() this is not possible.
>
> But it may soon be. There are plans to support different calling
> conventions for different functions. Consider changing the
> clobber/save patterns of static functions never used outside the
> current translation unit by extending or limiting the set of registers
> it can clobber. It would be ideal if the new register allocator
> didn't make the assumption that calling-conventions are fixed for all
> functions.
There could be a number of big wins if you can manage to do only
caller/callee agreement for calling-conventions on internal functions.
Not only in register allocations but also in the "do we inline this or
call it" decisions.