This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [GSOC] LTO dump tool project
- From: Prathamesh Kulkarni <prathamesh dot kulkarni at linaro dot org>
- To: Hrishikesh Kulkarni <hrishikeshparag at gmail dot com>
- Cc: GCC Development <gcc at gcc dot gnu dot org>, Martin Liška <mliska at suse dot cz>, Jan Hubicka <jh at suse dot cz>, Richard Biener <richard dot guenther at gmail dot com>, Martin Jambor <mjambor at suse dot cz>
- Date: Tue, 29 May 2018 22:47:14 +0530
- Subject: Re: [GSOC] LTO dump tool project
- References: <CAL+0whRqd8c9ZTs9Q0OektMBYr6MhEDoKw+dtKt_JC8m3xjtBg@mail.gmail.com>
On 29 May 2018 at 22:33, Hrishikesh Kulkarni <hrishikeshparag@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