This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]