diff --git a/functions/pragma.c b/functions/pragma.c index 5ddb90ffc442b6a62d1c59da8fdb563e3cb8e0bc..9e039237787c9d9eec02ae95521b5a227b131c1d 100644 --- a/functions/pragma.c +++ b/functions/pragma.c @@ -15,7 +15,7 @@ static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy)) bool already_in; if (cfun){ - printf("!!Pragma placed inside function!!\n"); + printf("WARNING :Pragma placed inside function!!\n"); return; } @@ -64,7 +64,7 @@ static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy)) } else{ - printf("Missing closed parenthesis\n"); + printf("WARNING :Missing closed parenthesis\n"); return; } @@ -72,13 +72,13 @@ static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy)) } else{ - printf("Invalid pragma - not starting with name or open parenthesis\n"); + printf("WARNING :Invalid pragma - not starting with name or open parenthesis\n"); return; } if (token != CPP_EOF) { - printf("Error : arg read but EOL not reached"); + printf("Error :arg read but EOL not reached"); return; } @@ -96,6 +96,13 @@ static void register_my_pragma(void *event_data, void *data) c_register_pragma ("ProjetCA", "mpicoll_check", my_pragma_action); } +static void pass_summary(void *event_data, void *data) +{ + printf("\nIn PASS summary\n"); + compare_pragma_funcs_analyzed_funcs(); +} + + void compare_pragma_funcs_analyzed_funcs(){ const char *pragma_elt; diff --git a/functions/pragma.h b/functions/pragma.h index 1501a051dcc968bd1591b34ff43afb0c84d9dcaf..b652c195931eefe540bcc0d4181b53b409f54874 100644 --- a/functions/pragma.h +++ b/functions/pragma.h @@ -3,5 +3,7 @@ static void register_my_pragma(void *event_data, void *data); static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy)); +static void pass_summary(void *event_data, void *data); +void add_function_to_analyzed_funcs(function * fun); void compare_pragma_funcs_analyzed_funcs(); #endif diff --git a/plugin.cpp b/plugin.cpp index a825ce1f2d55b2b8153714abbe4676220a668da5..bdb17daadeaaf4afe0b6db6d91886899803c8e81 100755 --- a/plugin.cpp +++ b/plugin.cpp @@ -153,7 +153,7 @@ class cleanup_pass : public gimple_opt_pass for (int ix = 0; analyzed_functions.iterate (ix, &elt); ix++){ printf("- %s\n", elt); } - compare_pragma_funcs_analyzed_funcs(); + edit_all_aux_value(fun,(int*)NULL); return 0; } @@ -204,7 +204,7 @@ int plugin_init(struct plugin_name_args * plugin_info, struct plugin_gcc_version // REGISTER PRAGMA register_callback("plugin_name", PLUGIN_PRAGMAS, register_my_pragma, NULL ); - + register_callback("plugin_name", PLUGIN_FINISH_UNIT, pass_summary, NULL ); return 0; }