[PATCH] Fix MINUS_EXPR vect reduction handling (PR tree-optimization/54877)
Jakub Jelinek
jakub@redhat.com
Wed Oct 10 08:56:00 GMT 2012
On Wed, Oct 10, 2012 at 10:42:10AM +0200, Richard Biener wrote:
> Yeah, I meant we can negate all constants by doing
>
> tem = - CONSTANT;
Yeah, that is what I meant. tem = - INT_MIN; is undefined overflow.
>
> right? Or wait ... even if we have
>
> red = x - y;
>
> if y is INT_MIN then the code we just created may have introduced
> undefined overflow (of course you could argue that with x - y it
> is very likely that undefined overflow already happened) ...
Not for negative x.
x = -3;
y = -__INT_MAX__ - 1;
red = x - y;
is IMHO fine.
> > > The ICE simply means
> > > we should have used make_temp_ssa_name (TREE_TYPE (rhs), NULL, NULL)
> > > instead of copy_ssa_name.
> >
> > Is make_temp_ssa_name (TREE_TYPE (rhs), NULL, NULL) preferrable over just
> > make_ssa_name (TREE_TYPE (rhs), NULL); ?
>
> Ah, no, make_ssa_name (TREE_TYPE (rhs), NULL) is even better. On
> the 4.7 branch you need to create a new temp var ...
Sure.
Jakub
More information about the Gcc-patches
mailing list