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



Reply via email to