https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107972
--- Comment #5 from Andrew Macleod ---
(In reply to Jakub Jelinek from comment #3)
> The backwards propagation fixed, but neither:
<...>
> avoids the 4.2e+1 cases in the output, because in neither case we properly
> determine the ranges of res (
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107972
--- Comment #4 from Andrew Macleod ---
Its because we don't go back and re-propagate into previous basic block. Take
an integral vexample:
unsigned
foo (unsigned a, unsigned b)
{
unsigned res = a + b;
if (res > 100)
return 42
if (a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107972
Jakub Jelinek changed:
What|Removed |Added
CC||amacleod at redhat dot com
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107972
--- Comment #2 from CVS Commits ---
The master branch has been updated by Jakub Jelinek :
https://gcc.gnu.org/g:a0ee2e522523b35ac810bd31c9769b9906f87953
commit r13-4502-ga0ee2e522523b35ac810bd31c9769b9906f87953
Author: Jakub Jelinek
Date: T
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107972
Jakub Jelinek changed:
What|Removed |Added
CC||aldyh at gcc dot gnu.org,