Resend to gcc-patches I have addressed the comments by fixing all the minor issues, bootstrapped and tested on x86_64. I did the recommended reshuffling by moving non-tree code from tree-dump.c into a new file dumpfile.c.
I committed two successive revisions r191883 Main patch with the dump infrastructure changes. However, I accidentally left out a new file, dumpfile.c. r191884 Added dumpfile.c, and did the renaming of dump_* functions from gimple_pretty_print.[ch]. As things stand right now, r191883 is broken because of the missing file 'dumpfile.c', which the very next commit fixes. Anyone who got broken revision r191883, please svn update. I am really very sorry about that. I have a couple more minor patches which deal with renaming; I plan to address those later. Thanks, Sharad > On Thu, Sep 27, 2012 at 9:10 AM, Xinliang David Li <davi...@google.com> > wrote: >> >> On Thu, Sep 27, 2012 at 4:35 AM, Sharad Singhai <sing...@google.com> >> wrote: >> > Thanks for the review. A couple of comments inline: >> > >> >> Some minor issues: >> >> >> >> * c/c-decl.c (c_write_global_declarations): Use different >> >> method to >> >> determine if the dump has ben initialized. >> >> * cp/decl2.c (cp_write_global_declarations): Ditto. >> >> * testsuite/gcc.target/i386/vect-double-1.c: Fix test. >> >> >> >> these subdirs all have their separate ChangeLog entry from where the >> >> directory name is omitted. >> >> >> >> Index: tree-dump.c >> >> =================================================================== >> >> --- tree-dump.c (revision 191490) >> >> +++ tree-dump.c (working copy) >> >> @@ -24,9 +24,11 @@ along with GCC; see the file COPYING3. If not see >> >> #include "coretypes.h" >> >> #include "tm.h" >> >> #include "tree.h" >> >> +#include "gimple-pretty-print.h" >> >> #include "splay-tree.h" >> >> #include "filenames.h" >> >> #include "diagnostic-core.h" >> >> +#include "rtl.h" >> >> >> >> what do you need gimple-pretty-print.h and rtl.h for? >> >> >> >> + >> >> +extern void dump_bb (FILE *, basic_block, int, int); >> >> + >> >> >> >> that should be declared in some header >> >> >> >> +/* Dump gimple statement GS with SPC indentation spaces and >> >> + EXTRA_DUMP_FLAGS on the dump streams if DUMP_KIND is enabled. */ >> >> + >> >> +void >> >> +dump_gimple_stmt (int dump_kind, int extra_dump_flags, gimple gs, int >> >> spc) >> >> +{ >> >> >> >> the gimple stuff really belongs in to gimple-pretty-print.c >> > >> > This dump_gimple_stmt () is just a dispatcher, which uses internal >> > data structure such as dump streams/flags. If I move it into >> > gimple-pretty-print.c, then I would have to export those >> > streams/flags. I was hoping to avoid it by keeping all dump_* () >> > methods together in dumpfile.c (earlier in tree-dump.c). Thus, later >> > one could just make dump_file/dump_flags static when all the passes >> > have converted to this scheme. >> > >> >> You can make the flags/streams global but only expose them via inline >> accessors in the header file. >> >> David >> >> >> >> >> (parts of tree-dump.c should be moved to a new file dumpfile.c) >> >> >> >> +/* Dump tree T using EXTRA_DUMP_FLAGS on dump streams if DUMP_KIND is >> >> + enabled. */ >> >> + >> >> +void >> >> +dump_generic_expr (int dump_kind, int extra_dump_flags, tree t) >> >> +{ >> >> >> >> belongs to tree-pretty-print.c (to where the routines are it calls) >> > >> > This is again a dispatcher for dump_generic_expr () which writes to >> > the appropriate stream depending upon dump_kind. >> > >> >> >> >> +int >> >> +dump_start (int phase, int *flag_ptr) >> >> +{ >> >> >> >> perfect candidate for dumpfile.c >> >> >> >> You can do this re-shuffling as followup, but please try to not include >> >> rtl.h >> >> or gimple-pretty-print.h from tree-dump.c. Thus re-shuffling required >> >> by that >> >> do now. tree-dump.c should only know about dumping 'tree'. >> > >> > Okay, I have moved relevant methods into dumpfile.c. >> > >> >> >> >> Index: tree-dump.h >> >> =================================================================== >> >> --- tree-dump.h (revision 191490) >> >> +++ tree-dump.h (working copy) >> >> @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see >> >> #ifndef GCC_TREE_DUMP_H >> >> #define GCC_TREE_DUMP_H >> >> >> >> +#include "input.h" >> >> >> >> probably no longer required. >> >> >> >> Index: dumpfile.h >> >> =================================================================== >> >> --- dumpfile.h (revision 191490) >> >> +++ dumpfile.h (working copy) >> >> @@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see >> >> #ifndef GCC_DUMPFILE_H >> >> #define GCC_DUMPFILE_H 1 >> >> >> >> +#include "coretypes.h" >> >> +#include "input.h" >> >> >> >> likewise for input.h. >> >> >> >> Index: testsuite/gcc.target/i386/vect-double-1.c >> >> =================================================================== >> >> --- testsuite/gcc.target/i386/vect-double-1.c (revision 191490) >> >> +++ testsuite/gcc.target/i386/vect-double-1.c (working copy) >> >> @@ -32,5 +32,5 @@ sse2_test (void) >> >> } >> >> } >> >> >> >> -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } >> >> */ >> >> +/* { dg-final { scan-tree-dump-times "Vectorized loops: 1" 1 "vect" } >> >> } */ >> >> /* { dg-final { cleanup-tree-dump "vect" } } */ >> >> >> >> I am sure you need a gazillion more testsuite adjustments? Thus, did >> >> you >> >> really test the patch by a bootstrap and a toplevel make -k check for >> >> regressions? >> >> >> >> Index: opts.c >> >> =================================================================== >> >> --- opts.c (revision 191490) >> >> +++ opts.c (working copy) >> >> @@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see >> >> #include "system.h" >> >> #include "intl.h" >> >> #include "coretypes.h" >> >> +#include "dumpfile.h" >> >> >> >> I don't see that you add a use for this. Please double-check all your >> >> include >> >> file changes. >> >> >> >> Index: gimple-pretty-print.c >> >> =================================================================== >> >> --- gimple-pretty-print.c (revision 191490) >> >> +++ gimple-pretty-print.c (working copy) >> >> @@ -69,7 +69,7 @@ maybe_init_pretty_print (FILE *file) >> >> } >> >> ... >> >> Index: gimple-pretty-print.h >> >> =================================================================== >> >> --- gimple-pretty-print.h (revision 191490) >> >> +++ gimple-pretty-print.h (working copy) >> >> @@ -31,6 +31,6 @@ extern void debug_gimple_seq (gimple_seq); >> >> extern void print_gimple_seq (FILE *, gimple_seq, int, int); >> >> extern void print_gimple_stmt (FILE *, gimple, int, int); >> >> extern void print_gimple_expr (FILE *, gimple, int, int); >> >> -extern void dump_gimple_stmt (pretty_printer *, gimple, int, int); >> >> +extern void pp_gimple_stmt_1 (pretty_printer *, gimple, int, int); >> >> >> >> it looks like changes to these files are only renaming of existing >> >> dump_ functions >> >> to print_ functions. Consider testing and applying those separately >> >> (hereby >> >> pre-approved). >> >> >> >> Index: profile.c >> >> =================================================================== >> >> --- profile.c (revision 191490) >> >> +++ profile.c (working copy) >> >> @@ -52,6 +52,7 @@ along with GCC; see the file COPYING3. If not see >> >> >> >> please leave further changes to passes as followup, thus omit changes >> >> to this >> >> file for the initial commit and submit it separately. >> > >> > Okay. >> > >> >> >> >> >> >> Index: rtl.h >> >> =================================================================== >> >> --- rtl.h (revision 191490) >> >> +++ rtl.h (working copy) >> >> @@ -2482,8 +2482,8 @@ extern bool validate_subreg (enum machine_mode, >> >> en >> >> /* In combine.c */ >> >> extern unsigned int extended_count (const_rtx, enum machine_mode, >> >> int); >> >> extern rtx remove_death (unsigned int, rtx); >> >> -extern void dump_combine_stats (FILE *); >> >> -extern void dump_combine_total_stats (FILE *); >> >> +extern void debug_combine_stats (FILE *); >> >> +extern void print_combine_total_stats (FILE *); >> >> extern rtx make_compound_operation (rtx, enum rtx_code); >> >> Index: combine.c >> >> =================================================================== >> >> --- combine.c (revision 191490) >> >> +++ combine.c (working copy) >> >> ... >> >> >> >> Likewise a patch just doing this re-name is pre-approved and should be >> >> checked >> >> in separately. >> >> >> >> @@ -410,6 +419,10 @@ handle_common_deferred_options (void) >> >> stack_limit_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup >> >> (opt->arg)); >> >> break; >> >> >> >> + case OPT_ftree_vectorizer_verbose_: >> >> + dump_remap_tree_vectorizer_verbose (opt->arg); >> >> + break; >> >> + >> >> >> >> can you please move that function here (opts-global.c) and make it >> >> static? >> > >> > Done. >> > >> >> >> >> Index: Makefile.in >> >> =================================================================== >> >> --- Makefile.in (revision 191490) >> >> +++ Makefile.in (working copy) >> >> >> >> remember to adjust for any changes you do above >> >> >> >> Otherwise the patch looks ok to me. >> >> >> >> Thanks, >> >> Richard. >> > >> > Thanks, >> > Sharad > >