Add value_range_base::contains_p
Aldy Hernandez
aldyh@redhat.com
Tue Jun 11 15:05:00 GMT 2019
On 6/11/19 9:45 AM, Richard Biener wrote:
> On Tue, Jun 11, 2019 at 12:40 PM Aldy Hernandez <aldyh@redhat.com> wrote:
>>
>> This patch cleans up the various contains, may_contain, and
>> value_inside_range variants we have throughout, in favor of one--
>> contains_p. There should be no changes in functionality.
>>
>> I have added a note to range_includes_zero_p, perhaps as a personal
>> question than anything else. This function was/is returning true for
>> UNDEFINED. From a semantic sense, that doesn't make sense. UNDEFINED
>> is really the empty set. Is the functionality wrong, or should we call
>> this function something else? Either way, I'm fine removing the comment
>> but I'm genuinely curious.
>
> So this affects for example this hunk:
>
> - if (vr && !range_includes_p (vr, 1))
> + if (vr && (!vr->contains_p (build_one_cst (TREE_TYPE (name)))
> + && !vr->undefined_p ()))
> {
>
> I think it's arbitrary how we compute X in UNDEFINED and I'm fine
> with changing the affected predicates to return false. This means
> not testing for !vr->undefined_p here.
Excellent.
>
> Note I very much dislike the build_one_cst () call here so please
> provide an overload hiding this.
Good idea. I love it.
>
> Not sure why you keep range_includes_zero_p.
I wasn't sure if there was some subtle reason why we were including
undefined.
OK pending tests?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: curr.patch
Type: text/x-patch
Size: 10253 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20190611/1fe11fc2/attachment.bin>
More information about the Gcc-patches
mailing list