On Mon, 26 Oct 2020, Xionghu Luo wrote:

> 
> On 2020/10/23 18:18, Richard Biener wrote:
> > On Fri, 23 Oct 2020, Xiong Hu Luo wrote:
> > 
> >> Sometimes debug_bb_slim&debug_bb_n_slim is not enough, how about adding
> >> this debug_bb_details&debug_bb_n_details? Or any other similar call
> >> existed?
> > There's already debug_bb and debug_bb_n in cfg.c which works on both
> > RTL and GIMPLE.  How about instead adding overloads that accept
> > a flags argument so you can do
> > 
> > debug_bb_n (5, TDF_DETAILS)
> > 
> > ?  The debug_bb_slim variant would then just a forwarder.
> > 
> 
> Thanks.  Updated the patch as below:

OK.

Richard.

> 
> [PATCH v2] Add overloaded debug_bb and debug_bb_n with dump flags
> 
> 
> Add overloads that accept a flags argument so we can print
> debug_bb_n (5, TDF_DETAILS) in gdb, also the debug_bb_slim
> variant would then be just a forwarder.
> 
> gcc/ChangeLog:
> 
> 2020-10-26  Xionghu Luo  <luo...@linux.ibm.com>
> 
>       * cfg.c (debug_bb): New overloaded function.
>       (debug_bb_n): New overloaded function.
>       * cfg.h (debug_bb_n): New declaration.
>       (debug_bb_n): New declaration.
>       * print-rtl.c (debug_bb_slim): Call debug_bb with flags.
> ---
>  gcc/cfg.c       | 20 +++++++++++++++++++-
>  gcc/cfg.h       |  2 ++
>  gcc/print-rtl.c |  2 +-
>  3 files changed, 22 insertions(+), 2 deletions(-)
> 
> diff --git a/gcc/cfg.c b/gcc/cfg.c
> index 270a48f729a..05f922f5470 100644
> --- a/gcc/cfg.c
> +++ b/gcc/cfg.c
> @@ -720,7 +720,7 @@ free_aux_for_edges (void)
>  DEBUG_FUNCTION void
>  debug_bb (basic_block bb)
>  {
> -  dump_bb (stderr, bb, 0, dump_flags);
> +  debug_bb (bb, dump_flags);
>  }
>  
>  DEBUG_FUNCTION basic_block
> @@ -731,6 +731,24 @@ debug_bb_n (int n)
>    return bb;
>  }
>  
> +/* Print bb with specified flags.  */
> +
> +DEBUG_FUNCTION void
> +debug_bb (basic_block bb, dump_flags_t flags)
> +{
> +  dump_bb (stderr, bb, 0, flags);
> +}
> +
> +/* Print bb numbered n with specified flags.  */
> +
> +DEBUG_FUNCTION basic_block
> +debug_bb_n (int n, dump_flags_t flags)
> +{
> +  basic_block bb = BASIC_BLOCK_FOR_FN (cfun, n);
> +  debug_bb (bb, flags);
> +  return bb;
> +}
> +
>  /* Dumps cfg related information about basic block BB to OUTF.
>     If HEADER is true, dump things that appear before the instructions
>     contained in BB.  If FOOTER is true, dump things that appear after.
> diff --git a/gcc/cfg.h b/gcc/cfg.h
> index 1eb7866bac9..93fde6df2bf 100644
> --- a/gcc/cfg.h
> +++ b/gcc/cfg.h
> @@ -108,6 +108,8 @@ extern void clear_aux_for_edges (void);
>  extern void free_aux_for_edges (void);
>  extern void debug_bb (basic_block);
>  extern basic_block debug_bb_n (int);
> +extern void debug_bb (basic_block, dump_flags_t);
> +extern basic_block debug_bb_n (int, dump_flags_t);
>  extern void dump_bb_info (FILE *, basic_block, int, dump_flags_t, bool, 
> bool);
>  extern void brief_dump_cfg (FILE *, dump_flags_t);
>  extern void update_bb_profile_for_threading (basic_block, profile_count, 
> edge);
> diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c
> index 25265efc71b..d514b1c5373 100644
> --- a/gcc/print-rtl.c
> +++ b/gcc/print-rtl.c
> @@ -2139,7 +2139,7 @@ extern void debug_bb_slim (basic_block);
>  DEBUG_FUNCTION void
>  debug_bb_slim (basic_block bb)
>  {
> -  dump_bb (stderr, bb, 0, TDF_SLIM | TDF_BLOCKS);
> +  debug_bb (bb, TDF_SLIM | TDF_BLOCKS);
>  }
>  
>  extern void debug_bb_n_slim (int);
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Felix Imend

Reply via email to