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

--- Comment #12 from amker at gcc dot gnu.org ---
(In reply to amker from comment #10)
> (In reply to amker from comment #9)
> > Root cause should be in VRP, looks like the iterative algorithm depends on
> > order of ssa operands and computes different range.
> 
> Testing a patch, though is kind of a workaround.

Turns out a real fix in VRP is possible, and straightforward.  Testing.(In
reply to Richard Biener from comment #11)
> Yes, VRP doesn't thread a jump because of improved iteration order (and
> improved ranges).  And due to the fact that we can't register multiple
> ranges from a single assert expression (both the trivial symbolic one and
> one using ranges from the operands).

Turns out a real fix in VRP is possible, and straightforward.  It's not a case
we have to make decision between useful numeric and symbolic range, it's a case
we wrongly discard symbolic range info and drop to VARYING.  Testing new fix.

Thanks.

Reply via email to