[RS6000] CONST_DOUBLE tidy

Segher Boessenkool segher@kernel.crashing.org
Wed Nov 28 18:15:00 GMT 2018


Hi!

On Sun, Nov 25, 2018 at 10:46:28PM +1030, Alan Modra wrote:
> Once upon a time CONST_DOUBLE was used to hold large integer constants
> that didn't fit into a CONST_INT.  Now that CONST_INT is always at
> least 64 bits, and the rs6000 backend uses CONST_WIDE_INT for larger
> integers, there is no need for old code dealing with integers in
> CONST_DOUBLE.  The rs6000 backend also doesn't create DImode subregs
> of TFmode CONST_DOUBLE, as once we did.  This patch cleans up a few
> leftovers from the past.
> 
> Bootstrapped etc. powerpc64le-linux, and powerpc64-linux testing
> both -m32 and -m64.
> 
> 	* config/rs6000/predicates.md (easy_fp_constant): Remove code
> 	dealing with integers in const_double.  Assert on unexpected
> 	modes.
> 	* config/rs6000/rs6000.c (rs6000_emit_move): Comment fixes.
> 	Don't call easy_fp_constant for Pmode.
> 	(rs6000_hash_constant): Remove code dealing with integers in
> 	const_double.
> 	(rs6000_legitimate_constant_p): Likewise.
> 	(output_toc): Formatting, use CONST_DOUBLE_P.


> diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md
> index afe1b286833..9fbeb928fe6 100644
> --- a/gcc/config/rs6000/predicates.md
> +++ b/gcc/config/rs6000/predicates.md
> @@ -562,12 +562,11 @@ (define_predicate "vsx_reg_or_cint_operand"
>  (define_predicate "easy_fp_constant"
>    (match_code "const_double")
>  {
> -  if (GET_MODE (op) != mode
> -      || (!SCALAR_FLOAT_MODE_P (mode) && mode != DImode))
> -    return 0;
> +  gcc_assert (GET_MODE (op) == mode
> +	      && SCALAR_FLOAT_MODE_P (mode));

Just put it on one line then?

> -  /* If we are using V.4 style PIC, consider all constants to be hard.  */
> -  if (flag_pic && DEFAULT_ABI == ABI_V4)
> -    return 0;

Did you remove this part by accident?  It isn't mentioned in the changelog.

Okay for trunk if you restore this last part; otherwise, it needs mentioning.
Thanks,


Segher



More information about the Gcc-patches mailing list