This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: record_ranges_from_incoming_edge: use value_range API for creating new range




On 11/8/18 9:24 AM, Richard Biener wrote:
On Thu, Nov 8, 2018 at 1:17 PM Aldy Hernandez <aldyh@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]