This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Rewrite store-motion and invariant motion to use an alias-oracle
Hi,
> > it seems do you do not actually reapply the extension as you promise
> > in the comment above?
>
> The original expression is subtracted (comb->elts[i].val) and the
> expansion is applied to the leaf expressions via the following hunk.
>
> *************** tree_to_aff_combination (tree expr, tree
> *** 338,344 ****
> break;
> }
>
> ! aff_combination_elt (comb, type, expr);
> }
>
> /* Creates EXPR + ELT * SCALE in TYPE. EXPR is taken from affine
> --- 338,344 ----
> break;
> }
>
> ! aff_combination_elt (comb, type, fold_convert (type, expr));
> }
>
> /* Creates EXPR + ELT * SCALE in TYPE. EXPR is taken from affine
>
>
> (maybe there's a better place to do it, but it really needs to be
> done on the leaf of expanded expressions).
right... still, this seems to be equivalent to transforming
unsigned char a, b;
(unsigned long) (a + b) to (unsigned long) a + (unsigned long) b
which is incorrect when a + b overflows?
Zdenek