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. Jakub