https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91886

--- Comment #7 from Segher Boessenkool <segher at gcc dot gnu.org> ---
Then (In reply to nsz from comment #6)
> (In reply to Segher Boessenkool from comment #5)
> > -- LLVM should support "wa", since that is *the* constraint for VSX
> > registers.
> > -- musl should use the "wa" constraint in its inline asm.
> > -- If after those two you still want "ws" (for compiling legacy code, say), 
> > I
> >    can add that back to GCC 10 (it will do just the same as "wa").
> > 
> > Is that a plan?
> 
> llvm only accepts vector types for wa, not scalar types, so there is
> a difference between wa and ws in llvm.

Then LLVM has more to fix.  Constraints never look at types.  A register
constraint (like "wa") simply says what registers are valid.

> but i would prefer if ws and ww were kept as alias to wa in gcc to
> avoid breaking existing code (this should not have huge maintenance
> cost).

Using "ww" in inline asm is wrong, you cannot provide an alternative for
when you only can get FPR regs.

For many w* using it in inline asm is plain wrong; for the rest of the
register constraints it is useless, plain "wa" should be used; and there
are some special ones that are so far GCC implementation detail that you
probably wouldn't even consider using them.

The maintenance cost for all the constraints we keep around because some
important projects used them is considerable, fwiw.

Reply via email to