http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59014
--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Tue Nov 26 21:29:30 2013
New Revision: 205417
URL: http://gcc.gnu.org/viewcvs?rev=205417root=gccview=rev
Log:
PR tree-optimization/59014
* tree-vrp.c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59014
Jakub Jelinek jakub at gcc dot gnu.org changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59014
Marek Polacek mpolacek at gcc dot gnu.org changed:
What|Removed |Added
Keywords||wrong-code
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59014
Marek Polacek mpolacek at gcc dot gnu.org changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59014
--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
I'd say this is .vrp1. In .mergephi2, we have
bb 4:
a.1_11 = a.1_5;
d = a.1_11;
return 0;
but in .vrp1:
bb 4:
a.1_13 = 0;
a.1_11 = 0;
d = 0;
return 0;
And
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59014
--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
And, it's not related to -Os; the bug triggers exactly when VRP is run.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59014
Richard Biener rguenth at gcc dot gnu.org changed:
What|Removed |Added
Priority|P3 |P1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59014
--- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org ---
It seems we create wrong ASSERT_EXPR:
a.1_5 = a;
_7 = (_Bool) a.1_5;
_8 = _4 | _7;
if (_8 != 0)
goto bb 5;
else
goto bb 6;
bb 6:
a.1_15 = ASSERT_EXPR
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59014
--- Comment #5 from Marek Polacek mpolacek at gcc dot gnu.org ---
(In reply to Marek Polacek from comment #4)
Why does it think that a.1_5 must be 0?
That's because VRP is innocent here after all, it's the forwprop1 what does
- _6 = a.1_5 1;