This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Proposed doc update for Explicit Reg Vars 3/3
- From: Andrew Haley <aph at redhat dot com>
- To: Jeff Law <law 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 17:15:49 +0100
- 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> <562667FF dot 5000003 at redhat dot com>
On 10/20/2015 05:12 PM, Jeff Law wrote:
> 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.
OK, but this usage did work in the past: that it now doesn't is a
regression. GCC was quite useful (unique, really) in that it provided
a way to write a decent bytecode interpreter in a HLL. The world has
lost something significant if this no longer works.
Andrew.