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

--- Comment #18 from Andrew Macleod <amacleod at redhat dot com> ---
(In reply to Jakub Jelinek from comment #17)
> (In reply to Martin Liška from comment #16)

> > 
> > EVRP knows the proper range:
> > 2->4  (F) x_6(D) :  unsigned int [0, 1][4, 4]
> 
> EVRP ATM invokes both the old code and ranger and only ranger knows the
> above.
> There is a param to adjust the behavior.
> Anyway, if something isn't able to work with the detailed ranges (up to 255
> subranges), type conversions will ensure that one gets a single summary
> range ([0, 4] in this case likely) and possibly the switch opts still do
> that.
>

Indeed.  Ranger knows, but at this point most of the client consumers such as
folding and simplification still only deal with value_range, which means they
will revert to using the best approximation using only a pair, which would be
[0,4] in this case as you observe.

One of the work items for the next release is to multi-range enable all these
consumers that can make use of the information.

Reply via email to