This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Problems in IPA passes
- From: Jan Hubicka <jh at suse dot de>
- To: Jeff Law <law at redhat dot com>, kuganv at linaro dot org, rguenther at suse dot de
- Cc: Jan Hubicka <jh at suse dot cz>, GCC <gcc at gcc dot gnu dot org>
- Date: Sat, 28 Oct 2017 13:57:19 +0200
- Subject: Re: Problems in IPA passes
- Authentication-results: sourceware.org; auth=none
- References: <efc0a48d-d4ae-62e7-33a6-8cba5b126c09@redhat.com>
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