[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