This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: inline asm and multi-alternative constraints
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: Jeff Law <law at redhat dot com>
- Cc: David Wohlferd <dw at LimeGreenSocks dot com>, Sandra Loosemore <sandra at codesourcery dot com>, Richard Henderson <rth at redhat dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, pinskia at gcc dot gnu dot org, rearnsha at gcc dot gnu dot org
- Date: Fri, 6 Nov 2015 18:46:39 -0600
- Subject: Re: inline asm and multi-alternative constraints
- Authentication-results: sourceware.org; auth=none
- References: <562DA0E2 dot 1040405 at LimeGreenSocks dot com> <562FE71E dot 7010309 at redhat dot com> <563285D8 dot 6020001 at redhat dot com> <563430F8 dot 7020406 at LimeGreenSocks dot com> <5637EC6F dot 7020505 at redhat dot com> <5637F50A dot 1090002 at codesourcery dot com> <56385495 dot 1050507 at LimeGreenSocks dot com> <563D29D7 dot 9000707 at redhat dot com>
On Fri, Nov 06, 2015 at 03:29:43PM -0700, Jeff Law wrote:
> It's never easy to predict whether or not something like this will be
> contentious. Worst case is you post, it's contentious, we iterate a bit
> and reach some kind of resolution (ok, worst case is no resolution is
> reached, but that doesn't happen to often).
>
> In this case I simply don't see a way to sensibly document those
> modifiers without bringing in the implementation details of register
> class preferencing, reload, IRA & LRA. And once those details are
> brought into the picture, everyone loses.
>
> I'm sure there's someone out there using '?' and '!' in a
> multi-alternative asm constraint. They may even read the docs and
> complain and we can try to educate them why those modifiers are no
> longer documented.
Another reason why we shouldn't document such things is that it makes
it harder to change (anything about) those things later, although they
really are implementation details. The same goes for some constraints
and almost all output modifiers.
Segher