Hi, My exams have finally ended and I have started working on the GSOC project. I have forked GCC mirror (https://github.com/hrisearch/gcc) and created a option for dumping functions and variables used in IL. Please find the patch attached herewith.
Regards, Hrishikesh
diff --git a/gcc/lto/lang.opt b/gcc/lto/lang.opt index 1083f9b..ae66c06 100644 --- a/gcc/lto/lang.opt +++ b/gcc/lto/lang.opt @@ -66,7 +66,11 @@ Whole program analysis (WPA) mode with number of parallel jobs specified. fdump LTO Var(flag_lto_dump) -Call the dump function +Call the dump function. + +fdump-lto-list +LTO Var(flag_lto_dump_list) +Call the dump function for variables and function in IL. fresolution= LTO Joined diff --git a/gcc/lto/lto-dump.c b/gcc/lto/lto-dump.c index b6a8b45..5e4d069 100644 --- a/gcc/lto/lto-dump.c +++ b/gcc/lto/lto-dump.c @@ -38,4 +38,21 @@ along with GCC; see the file COPYING3. If not see void dump() { fprintf(stderr, "\nHello World!\n"); +} + +void dump_list() +{ + + fprintf (stderr, "Call Graph:\n\n"); + cgraph_node *cnode; + FOR_EACH_FUNCTION (cnode) + cnode->dump (stderr); + fprintf(stderr, "\n\n" ); + + fprintf (stderr, "Varpool:\n\n"); + varpool_node *vnode; + FOR_EACH_VARIABLE (vnode) + vnode->dump (stderr); + fprintf(stderr, "\n\n" ); + } \ No newline at end of file diff --git a/gcc/lto/lto-dump.h b/gcc/lto/lto-dump.h index 4a06217..5ee71c6 100644 --- a/gcc/lto/lto-dump.h +++ b/gcc/lto/lto-dump.h @@ -21,5 +21,6 @@ along with GCC; see the file COPYING3. If not see #define GCC_LTO_DUMP_H_ void dump(); +void dump_list(); #endif \ No newline at end of file diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index 9c79242..93ef52b 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -3360,6 +3360,11 @@ lto_main (void) dump(); } + if (flag_lto_dump_list) + { + dump_list(); + } + timevar_stop (TV_PHASE_STREAM_IN); if (!seen_error ())