On 29 May 2018 at 22:33, Hrishikesh Kulkarni <hrishikeshpa...@gmail.com> wrote: > 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. 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. Instead of making separate options -fdump and -fdump-lto-list, would it be a good idea to make it a "sub option" to -fdump like lto1 -fdump,-l which would list all symbols within the LTO object file ? 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 Formatting nit - Add comments for the newly added functions. 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(); + } + Formatting nit - Avoid braces for single statement within if. Shouldn't fdump-lto-list be enabled only if fdump is enabled ? Thanks, Prathamesh timevar_stop (TV_PHASE_STREAM_IN); if (!seen_error ()) > > Regards, > Hrishikesh