This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Recent IPA regression with internal functions
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: Martin Jambor <mjambor at suse dot cz>, Jan Hubicka <jh at suse dot cz>, gcc-patches at gcc dot gnu dot org
- Date: Mon, 16 Sep 2013 09:56:45 +0200
- Subject: Re: Recent IPA regression with internal functions
- Authentication-results: sourceware.org; auth=none
- References: <20130913153123 dot GF1817 at tucnak dot redhat dot com> <20130915190759 dot GA19676 at atrey dot karlin dot mff dot cuni dot cz>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Sun, Sep 15, 2013 at 09:08:00PM +0200, Jan Hubicka wrote:
> > 2013-09-13 Jakub Jelinek <jakub@redhat.com>
> >
> > * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
> > for internal calls.
>
> That seems resonable. I wonder if we want to consider internal calls to form
> callgarph edges at all: perhaps we can just modify cgraph builder+verifier
> to skip them and consider them to be normal instruction....
I'd wonder how many spots would need to be changed for that though, to check
for is_gimple_call && !gimple_call_internal_p instead of just
is_gimple_call. In cgraph*, inliner, sra, IPA, whatever else assumes that a
GIMPLE_CALL should have a cgraph_edge associated with it.
The internal functions for the time being should be pretty rare,
right now they are used just for some ARM vectorization stuff (during/after
vectorizations only, so no IPA) and newly for the OpenMP/Cilk+ SIMD loops,
so if it is just about avoiding memory waste because of them, I think it
isn't a big deal.
Jakub