This is the mail archive of the
mailing list for the GCC project.
Re: Proposed doc update for Explicit Reg Vars 3/3
- From: Jeff Law <law at redhat dot com>
- To: Andrew Haley <aph at redhat dot com>, Segher Boessenkool <segher at kernel dot crashing dot org>
- Cc: David Wohlferd <dw at LimeGreenSocks dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, Sandra Loosemore <sandra at codesourcery dot com>
- Date: Tue, 20 Oct 2015 10:12:47 -0600
- Subject: Re: Proposed doc update for Explicit Reg Vars 3/3
- Authentication-results: sourceware.org; auth=none
- References: <561C3DAE dot 8050505 at LimeGreenSocks dot com> <5625CF7E dot 5010003 at redhat dot com> <20151020151312 dot GB25514 at gate dot crashing dot org> <56266519 dot 8070104 at redhat dot com> <56266630 dot 2050800 at redhat dot com>
On 10/20/2015 10:05 AM, Andrew Haley wrote:
On 10/20/2015 05:00 PM, Jeff Law wrote:
But the technical reality is I can't see a use outside the extended asm.
I can. In the past (and probably still today) GCC did an awful job of
allocating registers in a large function. This was visible in a
bytecode interpreter, where the programmer knows that the virtual PC
and SP should live in a register. GCC does not know this and is
forever spilling them. Explicit local reg vars fixed this nicely.
But in that case, what do we guarantee.
We certainly don't guarantee that those objects will be in their
requested register at any point other than at the asm statements.
Essentially in this case these are working as hints to the allocator.