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: 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:00:25 -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>
On 10/20/2015 09:13 AM, Segher Boessenkool wrote:
I'm still trying to figure out why I'm not comfortable with dropping all
the other stuff and explicitly stating that the only legitimate use is
in extended asms. I guess I'm gun-shy given the grief we've taken
through the years when we've tightened down other extensions.
On Mon, Oct 19, 2015 at 11:22:06PM -0600, Jeff Law wrote:
WRT your hope to limit this to only uses in extended asms. That'd be
nice, but that's never been an explicit limitation. I would strongly
hesitate to add that limitation at this point in time.
r88265 (from 2004) made explicit that local register asm only has a
guaranteed effect on asm operands. Since no other effect is guaranteed
we may as well not document those at all. Bug reports do still come in
But the technical reality is I can't see a use outside the extended asm.
In the past we waffled a bit and said things like "if the object it
not live, then the register might be re-used for another purpose". But
even at a point where the object is live, it could as you mentioned be
on the stack. It could also be shuffled into a different register by
way of range splitting, or inheritance, copy propagation, etc.
Maybe it *is* time to bite the bullet and greatly simplify the local
case, dealing with any blow-back we get along the way.