[Bug c/93781] Optimizer produces suboptimal code related to -ftree-vrp
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Feb 17 09:59:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93781
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
Status|UNCONFIRMED |NEW
Last reconfirmed| |2020-02-17
Ever confirmed|0 |1
Severity|normal |enhancement
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Adding assert for C00000400_5 from C00000400_5 < 0
Adding assert for _1 from _1 + 2147483648 <= 2147483647
But _1 is defined as:
_1 = arg_4(D) + 4294967293;
and arg_4 is used in the BB were we would have added the above asserts.
The second assert comes from:
/* Add asserts for NAME cmp CST and NAME being defined
as NAME = (int) NAME2. */
We need one more for NAME cmp CST, and NAME = (int)NAME2 and NAME2 = NAME3 +
CST.
The question becomes how recusive/adding extra cases to do we want to add to
register_edge_assert_for_2.
More information about the Gcc-bugs
mailing list