cleanup of CONST_DOUBLE.
Richard Sandiford
rdsandiford@googlemail.com
Sun Jul 29 16:36:00 GMT 2012
Kenneth Zadeck <zadeck@naturalbridge.com> writes:
> Given that Richard Sandiford advised on all of the non trivial changes,
> I am going to check this patch in in the next few days unless i hear
> some comments otherwise.
TBH I'd only looked at the ones you flagged. This time...
> diff -puNr '--exclude=.git' '--exclude=.svn' gccBaseline/gcc/cfgexpand.c gccWide/gcc/cfgexpand.c
> --- gccBaseline/gcc/cfgexpand.c 2012-07-22 16:55:01.235983016 -0400
> +++ gccWide/gcc/cfgexpand.c 2012-07-25 19:42:16.456201001 -0400
> @@ -3634,7 +3634,7 @@ expand_debug_locations (void)
> || (GET_MODE (val) == VOIDmode
> && (CONST_INT_P (val)
> || GET_CODE (val) == CONST_FIXED
> - || GET_CODE (val) == CONST_DOUBLE
> + || CONST_DOUBLE_P (val)
> || GET_CODE (val) == LABEL_REF)));
should be CONST_DOUBLE_AS_INT_P (because we know it's VOIDmode already).
> - if ((CONSTANT_P (op) && !CONST_INT_P (op)
> - && (GET_CODE (op) != CONST_DOUBLE || GET_MODE (op) != VOIDmode))
> + if ((CONSTANT_P (op) && !CONST_INT_P (op) && !CONST_DOUBLE_AS_INT_P (op))
Long line (keep on two).
> +/* Predicate yielding true iff X is an rtx for a double-int. */
> +#define CONST_DOUBLE_AS_INT_P(X) (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) == VOIDmode)
> +
> +/* Predicate yielding true iff X is an rtx for a double-int. */
> +#define CONST_DOUBLE_AS_FLOAT_P(X) (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) != VOIDmode)
> +
Long lines. Should be:
#define CONST_DOUBLE_AS_INT_P(X) \
(GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) == VOIDmode)
etc.
> - && (CONST_INT_P (XEXP (op0, 1))
> - || GET_CODE (XEXP (op0, 1)) == CONST_DOUBLE)
> + && (CONST_INT_P (XEXP (op0, 1)) || CONST_DOUBLE_AS_INT_P (XEXP (op0, 1)))
Long line (keep on two).
> - && (CONST_INT_P (XEXP (op0, 1))
> - || GET_CODE (XEXP (op0, 1)) == CONST_DOUBLE)
> + && (CONST_INT_P (XEXP (op0, 1)) || CONST_DOUBLE_AS_INT_P (XEXP (op0, 1)))
Same.
> - && (CONST_INT_P (op1)
> - || GET_CODE (op1) == CONST_DOUBLE)
> - && (CONST_INT_P (XEXP (op0, 1))
> - || GET_CODE (XEXP (op0, 1)) == CONST_DOUBLE))
> + && (CONST_INT_P (op1) || CONST_DOUBLE_AS_INT_P (op1))
> + && (CONST_INT_P (XEXP (op0, 1)) || CONST_DOUBLE_AS_INT_P (XEXP (op0, 1))))
Same.
Looks good otherwise.
Richard
More information about the Gcc-patches
mailing list