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 ())

Reply via email to