[Bug tree-optimization/91775] Can eliminate compare from loop with known number of iterations
amker at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Oct 8 08:12:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91775
--- Comment #6 from bin cheng <amker at gcc dot gnu.org> ---
The address type iv_use has pointer type and 64-bit precision, while iv_cands
added (by ivcanon pass) has unsigned int type. So decremental candidates are
skipped because of following code:
4620│ /* Check if we have enough precision to express the values of use. */
4621│ if (TYPE_PRECISION (utype) > TYPE_PRECISION (ctype))
4622├───> return infinite_cost;
Looks like better overflow-ness analysis is required here:
Candidate 6:
Incr POS: orig biv
IV struct:
Type: unsigned int
Base: 1024
Step: 4294967295
Biv: N
Overflowness wrto loop niter: Overflow <------- here.
More information about the Gcc-bugs
mailing list