This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, rs6000] Remove TARGET_VSX_TIMODE and -mno-vsx-timode usage


On Mon, Aug 14, 2017 at 06:02:51PM -0500, Peter Bergner wrote:
> The undocumented option -mvsx-timode was added because there were reload
> bugs we couldn't fix when we tried allowing TImode values in VSX registers.
> We used the option to allow TImode values in VSX registers when LRA was
> being used, but not when reload was being used.  Now that GCC 8 has removed
> the option of using reload, the TARGET_VSX_TIMODE flag is now logically the
> same as TARGET_VSX.  This patch replaces the TARGET_VSX_TIMODE flag with
> uses of TARGET_VSX and removes the ability of using -mno-vsx-timode.
> The option -mvsx-timode is now just a dummy stub similar to what we did
> with -mlra.

> Index: gcc/config/rs6000/altivec.md
> ===================================================================
> --- gcc/config/rs6000/altivec.md	(revision 251056)
> +++ gcc/config/rs6000/altivec.md	(working copy)
> @@ -218,7 +218,7 @@ (define_mode_attr VS_sxwsp [(V4SI "sxw")
>  (define_mode_iterator VParity [V4SI
>  			       V2DI
>  			       V1TI
> -			       (TI "TARGET_VSX_TIMODE")])
> +			       (TI "TARGET_VSX")])

You can completely remove the condition here as far as I see.

> --- gcc/config/rs6000/rs6000.md	(revision 251056)
> +++ gcc/config/rs6000/rs6000.md	(working copy)
> @@ -399,7 +399,7 @@ (define_mode_iterator FMOVE128_FPR [(TF
>  				    (TD "TARGET_HARD_FLOAT")])
>  
>  ; Iterators for 128 bit types for direct move
> -(define_mode_iterator FMOVE128_GPR [(TI    "TARGET_VSX_TIMODE")
> +(define_mode_iterator FMOVE128_GPR [(TI    "TARGET_VSX")
>  				    (V16QI "")
>  				    (V8HI  "")
>  				    (V4SI  "")

Same here I think (less sure).

> --- gcc/config/rs6000/vector.md	(revision 251056)
> +++ gcc/config/rs6000/vector.md	(working copy)
> @@ -31,7 +31,7 @@ (define_mode_iterator VEC_IP [V8HI
>  			      V4SI
>  			      V2DI
>  			      V1TI
> -			      (TI "TARGET_VSX_TIMODE")])
> +			      (TI "TARGET_VSX")])

This one, too.

> --- gcc/config/rs6000/vsx.md	(revision 251056)
> +++ gcc/config/rs6000/vsx.md	(working copy)
> @@ -34,11 +34,11 @@ (define_mode_iterator VSX_D [V2DF V2DI])
>  ;; types that goes in a single vector register.
>  (define_mode_iterator VSX_LE_128 [(KF   "FLOAT128_VECTOR_P (KFmode)")
>  				  (TF   "FLOAT128_VECTOR_P (TFmode)")
> -				  (TI	"TARGET_VSX_TIMODE")
> +				  (TI	"TARGET_VSX")
>  				  V1TI])

And this.

>  ;; Iterator for 128-bit integer types that go in a single vector register.
> -(define_mode_iterator VSX_TI [(TI "TARGET_VSX_TIMODE") V1TI])
> +(define_mode_iterator VSX_TI [(TI "TARGET_VSX") V1TI])

More :-)

> @@ -71,7 +71,7 @@ (define_mode_iterator VSX_M [V16QI
>  			     V1TI
>  			     (KF	"FLOAT128_VECTOR_P (KFmode)")
>  			     (TF	"FLOAT128_VECTOR_P (TFmode)")
> -			     (TI	"TARGET_VSX_TIMODE")])
> +			     (TI	"TARGET_VSX")])

And the last.

(In most of those cases we have V1TI without condition already).

Okay for trunk with that simplification.  Thanks!


Segher


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]