This is the mail archive of the gcc@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: Problems in IPA passes


Dne 2017-10-28 09:28, Jeff Law napsal:
Jan,

What's the purpose behind calling vrp_meet and
extract_range_from_unary_expr from within the IPA passes?

AFAICT that is not safe to do.  Various paths through those routines
will access static objects within tree-vrp.c which may not be
initialized when IPA runs (vrp_equiv_obstack, vr_value).

While this seems to be working today, it's a failure waiting to happen.

Is there any way you can avoid using those routines?  I can't believe
you really need all the complexity of those routines, particularly
extract_range_from_unary_expr.  Plus it's just downright fugly from a
modularity standpoint.

We now have three value range propagation passes. The original vrp, early vrp which is fater and ipa-cp which does IPA propagation. It seems sane to me for those three to share some infrastructure but I did not look in enough of detail into
these to know if what we have right now is sane thing to do :)

The VRP passes were introduced by Kugan and this part was mostly reviewed by
Richi, so I am adding them to CC.
The refactoring happened in https://gcc.gnu.org/ml/gcc-patches/2016-07/msg00891.html

Honza


?

Jeff


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