On Wed, 11 Sep 2013, Jakub Jelinek wrote: > On Wed, Sep 11, 2013 at 11:02:30AM +0200, Richard Biener wrote: > > Make sure to add a predicate that can tell whether its an anti-range > > then. > > Or perhaps extraction routine, that given an SSA_NAME will give you > a triplet, > { enum value_range_type vr_type; double_int min, max; } > For non-integral SSA_NAMEs, or SSA_NAMEs with NULL RANGE_INFO > (should include integral types with > 2 * HOST_BITS_PER_WIDE_INT > precision) will give you VR_VARYING, for the case where > min <= max VR_RANGE and otherwise decode the max > min range > into VR_ANTI_RANGE with adjusted min/max? > > Then the min/max encoding of anti range would be just a more compact > way of encoding it to lower memory usage.
Yeah, that also works. Richard.