On 10/13/20 2:10 AM, Richard Biener wrote:
On Mon, Oct 12, 2020 at 6:57 PM Aldy Hernandez via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
Division by zero should return VARYING, otherwise we propagate undefine all
over the
ranger and cause bad things to happen :)
So we never should propagate UNDEFINED?
I added a comment in the PR.
the problem was that we were feeding an undefined into the branch at the
bottom, and the old ranger model was that undefined meant unreachable..
and it would therefore make BOTH sides of the branch unreachable, and
that was triggering some unpleasant side effects when interactive with
the subst-and-fold model and trying to calculate a range feeding into
the condition.
I had audited rangeops so that when we folded undefined values we used
varying as their value (as in we don't know what the value is) but
missed the mod code. I plan to make UNDEFINED more consistent, i just
need to find the time to sit down and audit it. I suspect there are
still a couple of lingering dark corners where undefined interactions
aren't quite right.
Andrew