[gcc(refs/users/marxin/heads/marxin-gcc-benchmark-branch)] rs6000: Add back some w* constraints (PR91886)

Martin Liska marxin@gcc.gnu.org
Mon Mar 30 10:57:23 GMT 2020


https://gcc.gnu.org/g:07fe4af4d51d74b63a76ea632d4db01d1f69f037

commit 07fe4af4d51d74b63a76ea632d4db01d1f69f037
Author: Segher Boessenkool <segher@kernel.crashing.org>
Date:   Wed Mar 18 21:58:45 2020 +0000

    rs6000: Add back some w* constraints (PR91886)
    
    In May and June last year I deleted many of our (vector) constraints.
    We can now just use "wa" for those, together with some other
    conditions, which can be per alternative using the "enabled" attribute
    (which in turn primarily uses the "isa" attribute).
    
    But, it turns out that Clang implements some of those constraints as
    well, and at least musl uses some of them.  It is easy for us to add
    those contraints back (as undocumented aliases to "wa", which always
    did mean the same thing for valid inline assembler code), so do that.
    
    gcc/
            * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented
            aliases for "wa".

Diff:
---
 gcc/ChangeLog                    |  5 +++++
 gcc/config/rs6000/constraints.md | 11 +++++++++++
 2 files changed, 16 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3a2e491113e..66202f0253f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2020-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
+
+	* config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented
+	aliases for "wa".
+
 2020-03-12  Richard Sandiford  <richard.sandiford@arm.com>
 
 	PR rtl-optimization/90275
diff --git a/gcc/config/rs6000/constraints.md b/gcc/config/rs6000/constraints.md
index 4074a11da23..c600535e3ea 100644
--- a/gcc/config/rs6000/constraints.md
+++ b/gcc/config/rs6000/constraints.md
@@ -45,6 +45,17 @@
   FPR (@code{vs0}@dots{}@code{vs31} are @code{f0}@dots{}@code{f31}) or a VR
   (@code{vs32}@dots{}@code{vs63} are @code{v0}@dots{}@code{v31}).")
 
+(define_register_constraint "wd" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+  "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "wf" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+  "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "wi" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+  "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "ws" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+  "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "ww" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+  "@internal A compatibility alias for @code{wa}.")
+
 (define_register_constraint "h" "SPECIAL_REGS"
   "@internal A special register (@code{vrsave}, @code{ctr}, or @code{lr}).")


More information about the Gcc-cvs mailing list