[middle-end, patch 5/9] Rewritten jump functions computation

Jan Hubicka jh@suse.cz
Tue Jul 15 09:41:00 GMT 2008


> Martin Jambor <mjambor@suse.cz> wrote on 04/07/2008 23:38:52:
> 
> > This patch  is a  rewrite of jump  function computation.  It  uses SSA
> > form in a  substantially cleaner way and is  capable of finding member
> > pointer constant  and pass through  functions in the  following simple
> > circumstances:
> >   - A pass-through function is generated when a formal member pointer
> >     parameter is passed as an actual argument and modification
> >     analysis (from the previous patch) determined it is not modified
> >     anywhere in the caller function.
> >   - A constant jump function for member pointers is generated if the
> >     member pointer is initialized with constant pointers to a method
> > 
> 
> >    and a constant delta in the same BB which the call is in
> >     (obviously in statements preceeding the call).
> >   - Otherwise a bottom jump functions is assumed.
> > 
> 
> I'm not sure I understand why you need to consider the delta.
> Could you please ellaborate 
> and perhaps show a simple example?
> A comment explaining it may be useful.
> 
> 
> >  /* Reallocate the array of node param infos so that there's one for 
> every
> > Index: iinln/gcc/ipa-prop.h
> > ===================================================================
> > --- iinln.orig/gcc/ipa-prop.h
> > +++ iinln/gcc/ipa-prop.h
> > @@ -31,21 +31,23 @@ along with GCC; see the file COPYING3. 
> >     Constant - a constant is passed as an actual argument.
> >     Unknown - neither of the above.
> >     Integer and real constants are represented as IPA_CONST and Fortran
> > -   constants are represented as IPA_CONST_REF.  */
> > +   constants are represented as IPA_CONST_REF.  Finally, 
> IPA_CONST_MEMBER_PTR
> > +   stands for C++ member pointers constants.  */
> 
> Are you hadling only C++ member pointers? 
> What about indirect C functions?

C function pointers are SSA registers and thus easier to analyze.

Honza
> 



More information about the Gcc-patches mailing list