This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: plugin event for C frontend trees


On Sat, Dec 19, 2009 at 12:03 AM, Brian Hackett <bhackett1024@gmail.com> wrote:
> Hi, this adds a plugin event PLUGIN_C_PRE_GENERICIZE for accessing the
> C frontend trees, analogous to the existing
> PLUGIN_CXX_CP_PRE_GENERICIZE for the C++ frontend trees. ?There didn't
> seem to be any way previously to access the C trees from a plugin. ?(I
> don't have a copyright assignment with the FSF, is that necessary for
> this patch?). ?Thanks,

IMHO this should be a language independent hook.  Thus please
change it to PLUGIN_PRE_GENERICIZE and adjust the c++ frontend
to use that as well.

Richard.

> Brian Hackett
>
>
> 2009-12-18 ?Brian Hackett ?<bhackett1024@gmail.com>
>
> ? ? ? ?* plugin.def: Add plugin event for C frontend pre-genericize.
> ? ? ? ?* plugin.c (register_callback, invoke_plugin_callbacks): Same.
> ? ? ? ?* c-decl.c (finish_function): Invoke callbacks on above event.
>
>
> Index: gcc/plugin.def
> ===================================================================
> --- gcc/plugin.def ? ? ?(revision 155348)
> +++ gcc/plugin.def ? ? ?(working copy)
> @@ -30,6 +30,9 @@ DEFEVENT (PLUGIN_FINISH_UNIT)
> ?/* Allows to see low level AST in C++ FE. ?*/
> ?DEFEVENT (PLUGIN_CXX_CP_PRE_GENERICIZE)
>
> +/* Allows to see low level AST in C FE. */
> +DEFEVENT (PLUGIN_C_PRE_GENERICIZE)
> +
> ?/* Called before GCC exits. ?*/
> ?DEFEVENT (PLUGIN_FINISH)
>
> Index: gcc/c-decl.c
> ===================================================================
> --- gcc/c-decl.c ? ? ? ?(revision 155348)
> +++ gcc/c-decl.c ? ? ? ?(working copy)
> @@ -8052,6 +8052,7 @@ finish_function (void)
> ? ? {
> ? ? ? if (!decl_function_context (fndecl))
> ? ? ? ?{
> + ? ? ? ? invoke_plugin_callbacks (PLUGIN_C_PRE_GENERICIZE, fndecl);
> ? ? ? ? ?c_genericize (fndecl);
>
> ? ? ? ? ?/* ??? Objc emits functions after finalizing the compilation unit.
> Index: gcc/plugin.c
> ===================================================================
> --- gcc/plugin.c ? ? ? ?(revision 155348)
> +++ gcc/plugin.c ? ? ? ?(working copy)
> @@ -403,6 +403,7 @@ register_callback (const char *plugin_na
> ? ? ? case PLUGIN_START_UNIT:
> ? ? ? case PLUGIN_FINISH_UNIT:
> ? ? ? case PLUGIN_CXX_CP_PRE_GENERICIZE:
> + ? ? ?case PLUGIN_C_PRE_GENERICIZE:
> ? ? ? case PLUGIN_GGC_START:
> ? ? ? case PLUGIN_GGC_MARKING:
> ? ? ? case PLUGIN_GGC_END:
> @@ -484,6 +485,7 @@ invoke_plugin_callbacks (int event, void
> ? ? ? case PLUGIN_START_UNIT:
> ? ? ? case PLUGIN_FINISH_UNIT:
> ? ? ? case PLUGIN_CXX_CP_PRE_GENERICIZE:
> + ? ? ?case PLUGIN_C_PRE_GENERICIZE:
> ? ? ? case PLUGIN_ATTRIBUTES:
> ? ? ? case PLUGIN_PRAGMAS:
> ? ? ? case PLUGIN_FINISH:
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]