https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91886
--- Comment #15 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #12) > (In reply to Segher Boessenkool from comment #10) > > No, they are not. The constraints are an implementation detail. And > > they *have* to be, or we could never again improve anything. > > > > Unfortunately we currently document most of them in the user manual as > > well. It's on my list of things to change, for GCC 10. Most targets > > still have this problem, fwiw. > > I disagree with that. We do have public and internal constraints, public > are roughly those that are documented in gcc.info (rather than gccint.info, > i.e. > things in md.texi not guarded with @ifset INTERNALS). We still do not have separate public documentation for this, for rs6000 (just like many other targets). > In constraints.md one can also use @internal to mark constraint as internal. Yes, and the ones marked like that for us are mostly the ones that *should* be public! > Limiting inline asm use to just what is in common.md is clearly insufficient. > > So, if "ws" has been documented in the user documentation, perhaps just > (define_register_constraint "ws" "rs6000_constraints[RS6000_CONSTRAINT_wa]" > "Compatibility alias to wa") > could be added? If it has not been documented, it is fine to remove it. Using "ws" in inline asm never made sense. It was always the same as "wa", for all cases where either could be used in inline asm at all.