On 11/8/18 9:24 AM, Richard Biener wrote:
On Thu, Nov 8, 2018 at 1:17 PM Aldy Hernandez <al...@redhat.com> wrote:
This one's rather obvious and does not depend on any get_range_info API
change.
OK for trunk?
Hmm, no - that's broken. IIRC m_equiv are shared bitmaps if you
do tem = *old_vr so you modify it in place with equiv_clear().
Good point.
Thus, operator= should be really deleted or mapped to value_range::set()
in which case tem = *old_vr would do useless bitmap allocation and
copying that you then clear.
Actually, I was thinking that perhaps the assignment and equality
operators should disregard the equivalence bitmap. In this case, copy
everything EXCEPT the bitmap and set the resulting equivalence bitmap to
NULL.
It's also annoying to use ::ignore_equivs_equal_p(). Since that seems
to be the predominant way of comparing ranges, perhaps it should be the
default.
Aldy