This is the mail archive of the gcc-help@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: GCC plugin not executing


Problem Resolved

On Sun, Jul 14, 2013 at 7:43 PM, Deepak Aggrawal
<deepakkansal1989@gmail.com> wrote:
> I am trying to add a gimple pass, after "pre"-partial redundancy
> elimination pass. But when I execute the code below, it does not
> create file "myfile" and so does not write anything in the file. It
> seems like the plugin is not executing.
>
> Please check where I am wrong in this. Thanks in advance.
>
>
>
> #include "gcc-plugin.h"
> #include "config.h"
> #include "system.h"
> #include "alloc-pool.h"
> #include "params.h"
> #include "ggc.h"
> #include "coretypes.h"
> #include "tm.h"
> #include "tree.h"
> #include "tree-flow.h"
> #include "diagnostic.h"
> #include "tree-pass.h"
> #include "timevar.h"
> #include "cgraph.h"
> #include "gimple.h"
>
> int plugin_is_GPL_compatible = 1;
>
> static unsigned int  execute_TV_plugin(void)
> {
> FILE *fp;
> FILE *cg;
> cg = fopen("cgdump","a");
> fp = fopen("myfile","a");
> fprintf(fp,"The plugin is executing !!\n");
> }
>
> struct gimple_opt_pass pass_TV =
> {
>   {
>     GIMPLE_PASS,
>     "TV",                                /* name */
>     NULL,                                   /* gate */
>     execute_TV_plugin,                   /* execute */
>     NULL,                                   /* sub */
>     NULL,                                   /* next */
>     0,                                      /* static_pass_number */
>     TV_INTEGRATION,            /*tv_id*/
>     0,                       /* properties_required */
>     0,                                      /* properties_provided */
>     0,                                      /* properties_destroyed */
>     0,                                      /* todo_flags_start */
>     0 /* todo_flags_finish */
>   }
> };
>
> struct register_pass_info pass_info =
> {
>         &(pass_TV.pass),
>         "pre",
>         0,
>         PASS_POS_INSERT_AFTER
> };
>
> int plugin_init(struct plugin_name_args *plugin_info, struct
> plugin_gcc_version *version)
> {
>         register_callback(
>                 plugin_info->base_name,
>                 PLUGIN_PASS_MANAGER_SETUP,
>                 NULL,
>                 &pass_info);
>
>         return 0;
>
> }


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