Hi Mike,
On Mon, Jul 24, 2017 at 07:40:26PM -0400, Michael Meissner wrote:
> This patch eliminates the TARGET_UPPER_REGS_{DF,SF} macros. The next patch
> will eliminate TARGET_UPPER_REGS_DI.
>
> I had to tune the optimization that turned load into FPR register and then
> move
> to Altivec register (and the store equivalent) because it used
> TARGET_UPPER_REGS_<MODE> to protect SFmode on power7.
> --- gcc/config/rs6000/rs6000.md (revision 250485)
> +++ gcc/config/rs6000/rs6000.md (working copy)
> @@ -691,7 +691,7 @@ (define_code_attr SMINMAX [(smin "SM
> ;; D-form load to FPR register & move to Altivec register
> ;; Move Altivec register to FPR register and store
> (define_mode_iterator ALTIVEC_DFORM [DF
> - SF
> + (SF "TARGET_P8_VECTOR")
> (DI "TARGET_POWERPC64")])
Is that this part?
> --- gcc/config/rs6000/rs6000.c (revision 250485)
> +++ gcc/config/rs6000/rs6000.c (working copy)
> @@ -3216,22 +3216,12 @@ rs6000_init_hard_regno_mode_ok (bool glo
> rs6000_constraints[RS6000_CONSTRAINT_wa] = VSX_REGS;
> rs6000_constraints[RS6000_CONSTRAINT_wd] = VSX_REGS; /* V2DFmode */
> rs6000_constraints[RS6000_CONSTRAINT_wf] = VSX_REGS; /* V4SFmode */
> + rs6000_constraints[RS6000_CONSTRAINT_ws] = VSX_REGS; /* DFmode */
> + rs6000_constraints[RS6000_CONSTRAINT_wv] = ALTIVEC_REGS; /*
> DFmode */
> + rs6000_constraints[RS6000_CONSTRAINT_wi] = VSX_REGS; /* DImode */
After this all is done you can probably simplify the constraints a bit.
Looking forward to it :-)
> --- gcc/config/rs6000/rs6000.h (revision 250485)
> +++ gcc/config/rs6000/rs6000.h (working copy)
> @@ -575,9 +575,11 @@ extern int rs6000_vector_align[];
> and/or SFmode could go in the traditional Altivec registers. GCC 8.x
> deleted
> these options. In order to simplify the code, define the options in terms
> of the base option (vsx, power8-vector). */
> -#define TARGET_UPPER_REGS_DF TARGET_VSX
> +#if (GCC_VERSION >= 3000)
> +#pragma GCC poison TARGET_UPPER_REGS_DF TARGET_UPPER_REGS_SF
> +#endif
Why poison it? If someone accidentally slips in a new use it won't
compile anyway.
Okay for trunk with the poison removed. Thanks!
Segher