> On Sun, Sep 15, 2013 at 09:08:00PM +0200, Jan Hubicka wrote: > > > 2013-09-13 Jakub Jelinek <ja...@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
We can have something like is_real_gimpl_call_p predicate. We already special case is_inexpensive_builtin in ipa-inline. > 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. I am more concerned about the heuristic special casing function call, such as num_calls in ipa-inline.c. None of these are too important at this point, but perhaps from longer term maintanibility it would be better to not lie to the compiler and make the callgraph to not contain fake call sites.... Honza > > Jakub