On Tue, Jul 19, 2016 at 02:46:46PM +0200, Uros Bizjak wrote:
> The result of exercises with sed in gcc/ directory.
>
> 2016-07-19 Uros Bizjak <[email protected]>
>
> * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
> HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
> HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
> HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
> * combine.c: Ditto.
> * cse.c: Ditto.
> * dojump.c: Ditto.
> * double-int.c: Ditto.
> * dse.c: Ditto.
> * dwarf2out.c: Ditto.
> * expmed.c: Ditto.
> * expr.c: Ditto.
> * fold-const.c: Ditto.
> * function.c: Ditto.
> * fwprop.c: Ditto.
> * genmodes.c: Ditto.
> * hwint.c: Ditto.
> * hwint.h: Ditto.
> * ifcvt.c: Ditto.
> * loop-doloop.c: Ditto.
> * loop-invariant.c: Ditto.
> * loop-iv.c: Ditto.
> * match.pd: Ditto.
> * optabs.c: Ditto.
> * real.c: Ditto.
> * reload.c: Ditto.
> * rtlanal.c: Ditto.
> * simplify-rtx.c: Ditto.
> * stor-layout.c: Ditto.
> * toplev.c: Ditto.
> * tree-ssa-loop-ivopts.c: Ditto.
> * tree-vect-generic.c: Ditto.
> * tree-vect-patterns.c: Ditto.
> * tree.c: Ditto.
> * tree.h: Ditto.
> * ubsan.c: Ditto.
> * varasm.c: Ditto.
> * wide-int-print.cc: Ditto.
> * wide-int.cc: Ditto.
> * wide-int.h: Ditto.
>
> Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.
>
> OK for mainline?
> @@ -546,7 +546,7 @@ div_and_round_double (unsigned code, int uns,
> if (quo_neg && (*lrem != 0 || *hrem != 0)) /* ratio < 0 && rem != 0
> */
> {
> /* quo = quo - 1; */
> - add_double (*lquo, *hquo, (HOST_WIDE_INT) -1, (HOST_WIDE_INT) -1,
> + add_double (*lquo, *hquo, HOST_WIDE_INT_M1, (HOST_WIDE_INT) -1,
> lquo, hquo);
> }
> else
This surely should be
add_double (*lquo, *hquo, HOST_WIDE_INT_M1, HOST_WIDE_INT_M1,
lquo, hquo);
> @@ -557,7 +557,7 @@ div_and_round_double (unsigned code, int uns,
> case CEIL_MOD_EXPR: /* round toward positive infinity */
> if (!quo_neg && (*lrem != 0 || *hrem != 0)) /* ratio > 0 && rem != 0
> */
> {
> - add_double (*lquo, *hquo, (HOST_WIDE_INT) 1, (HOST_WIDE_INT) 0,
> + add_double (*lquo, *hquo, HOST_WIDE_INT_1, (HOST_WIDE_INT) 0,
> lquo, hquo);
> }
> else
Dunno here, either just use 0 instead of (HOST_WIDE_INT) 0, or define
HOST_WIDE_INT_0 macro and use that? Though as add_double is a macro
that in the end calls a function with UHWI or HWI arguments, I wonder what is
the
point in all these casts, whether just using -1, -1, or 1, 0, etc. wouldn't
be better.
> @@ -590,10 +590,10 @@ div_and_round_double (unsigned code, int uns,
> if (quo_neg)
> /* quo = quo - 1; */
> add_double (*lquo, *hquo,
> - (HOST_WIDE_INT) -1, (HOST_WIDE_INT) -1, lquo, hquo);
> + HOST_WIDE_INT_M1, HOST_WIDE_INT_M1, lquo, hquo);
> else
> /* quo = quo + 1; */
> - add_double (*lquo, *hquo, (HOST_WIDE_INT) 1, (HOST_WIDE_INT) 0,
> + add_double (*lquo, *hquo, HOST_WIDE_INT_1, (HOST_WIDE_INT) 0,
> lquo, hquo);
> }
> else
> diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
> index f5c530a..4354b5b 100644
> --- a/gcc/simplify-rtx.c
> +++ b/gcc/simplify-rtx.c
> @@ -40,7 +40,7 @@ along with GCC; see the file COPYING3. If not see
> occasionally need to sign extend from low to high as if low were a
> signed wide int. */
> #define HWI_SIGN_EXTEND(low) \
> - ((((HOST_WIDE_INT) low) < 0) ? ((HOST_WIDE_INT) -1) : ((HOST_WIDE_INT) 0))
> + ((((HOST_WIDE_INT) low) < 0) ? HOST_WIDE_INT_M1 : ((HOST_WIDE_INT) 0))
>
> static rtx neg_const_int (machine_mode, const_rtx);
> static bool plus_minus_operand_p (const_rtx);
But then here we have yet another (HOST_WIDE_INT) 0 - HOST_WIDE_INT_0
candidate.
Otherwise LGTM.
Jakub