diff options
author | Richard Henderson <rth@redhat.com> | 2011-07-20 15:14:36 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2011-07-20 15:14:36 -0700 |
commit | 510a442a352a425d86dcd0995ceafd7a4e5dd3db (patch) | |
tree | 12e5ece87d8bf4aec813974464481c9479dc8ed6 /gcc | |
parent | 00b40d0da26a32c18f696c8f301b51f55960d155 (diff) | |
download | gcc-510a442a352a425d86dcd0995ceafd7a4e5dd3db.zip gcc-510a442a352a425d86dcd0995ceafd7a4e5dd3db.tar.gz gcc-510a442a352a425d86dcd0995ceafd7a4e5dd3db.tar.bz2 |
Dump basic_block flags.
From-SVN: r176537
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfg.c | 20 | ||||
-rw-r--r-- | gcc/cfgrtl.c | 50 |
3 files changed, 31 insertions, 44 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0451e1b..7e07cfd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-07-20 Richard Henderson <rth@redhat.com> + + * cfg.c (dump_bb_info): Dump basic_block->flags. + * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info. + 2011-07-20 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.c (ix86_decompose_address): Allow only subregs @@ -549,6 +549,26 @@ dump_bb_info (basic_block bb, bool header, bool footer, int flags, fputs (", maybe hot", file); if (cfun && probably_never_executed_bb_p (bb)) fputs (", probably never executed", file); + if (bb->flags) + { + static const char * const bits[] = { + "new", "reachable", "irr_loop", "superblock", "disable_sched", + "hot_partition", "cold_partition", "duplicated", + "non_local_goto_target", "rtl", "forwarder", "nonthreadable", + "modified" + }; + unsigned int flags; + + fputs (", flags:", file); + for (flags = bb->flags; flags ; flags &= flags - 1) + { + unsigned i = ctz_hwi (flags); + if (i < ARRAY_SIZE (bits)) + fprintf (file, " %s", bits[i]); + else + fprintf (file, " <%d>", i); + } + } fputs (".\n", file); fprintf (file, "%sPredecessors: ", prefix); diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 7eb4362..b8843cae 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -1664,28 +1664,10 @@ print_rtl_with_bb (FILE *outf, const_rtx rtx_first) for (tmp_rtx = rtx_first; NULL != tmp_rtx; tmp_rtx = NEXT_INSN (tmp_rtx)) { int did_output; - if ((bb = start[INSN_UID (tmp_rtx)]) != NULL) - { - edge e; - edge_iterator ei; - fprintf (outf, ";; Start of basic block ("); - FOR_EACH_EDGE (e, ei, bb->preds) - fprintf (outf, " %d", e->src->index); - fprintf (outf, ") -> %d\n", bb->index); - - if (df) - { - df_dump_top (bb, outf); - putc ('\n', outf); - } - FOR_EACH_EDGE (e, ei, bb->preds) - { - fputs (";; Pred edge ", outf); - dump_edge_info (outf, e, 0); - fputc ('\n', outf); - } - } + bb = start[INSN_UID (tmp_rtx)]; + if (bb != NULL) + dump_bb_info (bb, true, false, dump_flags, ";; ", outf); if (in_bb_p[INSN_UID (tmp_rtx)] == NOT_IN_BB && !NOTE_P (tmp_rtx) @@ -1696,29 +1678,9 @@ print_rtl_with_bb (FILE *outf, const_rtx rtx_first) did_output = print_rtl_single (outf, tmp_rtx); - if ((bb = end[INSN_UID (tmp_rtx)]) != NULL) - { - edge e; - edge_iterator ei; - - fprintf (outf, ";; End of basic block %d -> (", bb->index); - FOR_EACH_EDGE (e, ei, bb->succs) - fprintf (outf, " %d", e->dest->index); - fprintf (outf, ")\n"); - - if (df) - { - df_dump_bottom (bb, outf); - putc ('\n', outf); - } - putc ('\n', outf); - FOR_EACH_EDGE (e, ei, bb->succs) - { - fputs (";; Succ edge ", outf); - dump_edge_info (outf, e, 1); - fputc ('\n', outf); - } - } + bb = end[INSN_UID (tmp_rtx)]; + if (bb != NULL) + dump_bb_info (bb, false, true, dump_flags, ";; ", outf); if (did_output) putc ('\n', outf); } |