https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83239

--- Comment #4 from Marc Glisse <glisse at gcc dot gnu.org> ---
(In reply to Marc Glisse from comment #1)
> In the mean time, we fail to find some VRP optimizations that might help
> with the warning.
> 
>   _1 = _186 + 18446744073709551614;
>   if (_1 > _186)
> 
> _186: [3, +INF]
> 
> Possibly because we haven't turned it into ADD_OVERFLOW yet (or because we
> are missing a specific transform, or because we have one in match.pd but
> don't call it, or because !single_use, I didn't check), we don't fold that
> to false.

Ah, at some point I wanted to have match.pd optimize _1 > _186 to _186 < 2
(which would then be optimized easily in VRP), but that was breaking Jakub's
code to detect ADD_OVERFLOW. Improving that code would be nice. We could also
generate ADD_OVERFLOW from match.pd when we see x+n>x, but then I don't think
we have code to CSE that with a plain addition, so it wouldn't help.

Reply via email to