Skip to content
Snippets Groups Projects
  • Lawrence Crowl's avatar
    7b3b6ae4
    Add uniform debug dump function names. · 7b3b6ae4
    Lawrence Crowl authored
    Add some overloaded functions that provide uniform debug dump
    function names.  These names are:
    
      debug: the general debug dumper
      debug_verbose: for more details
      debug_raw: for the gory details
      debug_head: for the heads of declarations, e.g. function heads
      debug_body: for the bodies of declarations, e.g. function bodies
    
    Not all types have the last four versions.
    
    The debug functions come in two flavors, those that take pointers
    to the type, and those that take references to the type.  The first
    handles printing of '<nil>' for null pointers.  The second assumes
    a valid reference, and prints the content.
    
    
    Example uses are as follows:
    
      cp_token t, *p;
      debug (t);
      debug (p);
    
    From the debugger, use
    
      call debug (t)
    
    
    The functions sets implemented are:
    
    debug (only)
    
        basic_block_def, const bitmap_head_def, cp_binding_level,
        cp_parser, cp_token, data_reference, die_struct, edge_def,
        gimple_statement_d, ira_allocno, ira_allocno_copy, live_range,
        lra_live_range, omega_pb_d, pt_solution, const rtx_def, sreal,
        tree_live_info_d, _var_map,
    
        vec<cp_token, va_gc>, vec<data_reference_p>, vec<ddr_p>,
        vec<rtx>, vec<tree, va_gc>,
    
    debug and debug_raw
    
        simple_bitmap_def
    
    debug and debug_verbose
    
        expr_def, struct loop, vinsn_def
    
    debug, debug_raw, debug_verbose, debug_head, debug_body
    
        const tree_node
    
    
    This patch is somewhat different from the original plan at
    gcc.gnu.org/wiki/cxx-conversion/debugging-dumps.  The reason
    is that gdb has an incomplete implementation of C++ call syntax;
    requiring explicit specification of template arguments and explicit
    specification of function arguments even when they have default
    values.  So, the original plan would have required typing
    
      call dump <cp_token> (t, 0, 0, stderr)
    
    which is undesireable.  Instead instead of templates, we overload
    plain functions.  This adds a small burden of manually adding
    the pointer version of dump for each type.  Instead of default
    function arguments, we simply assume the default values.  Most of
    the underlying dump functions did not use the options and indent
    parameters anyway.  Several provide FILE* parameters, but we expect
    debugging to use stderr anyway.  So, the explicit specification of
    arguments was not as valuable as we thought initially.  Finally,
    a change of name from dump to debug reflect the implicit output
    to stderr.
    
    
    Index: gcc/ChangeLog
    
    2013-03-28  Lawrence Crowl  <crowl@google.com>
    
    	* Makefile.in: Add several missing include dependences.
    	(DUMPFILE_H): New.
    	(test-dump.o): New.  This object is not added to any executable,
    	but is present for ad-hoc testing.
    	* bitmap.c
    	(debug (const bitmap_head_def &)): New.
    	(debug (const bitmap_head_def *)): New.
    	* bitmap.h
    	(extern debug (const bitmap_head_def &)): New.
    	(extern debug (const bitmap_head_def *)): New.
    	* cfg.c
    	(debug (edge_def &)): New.
    	(debug (edge_def *)): New.
    	* cfghooks.c
    	(debug (basic_block_def &)): New.
    	(debug (basic_block_def *)): New.
    	* dumpfile.h
    	(dump_node (const_tree, int, FILE *)): Correct source file.
    	* dwarf2out.c
    	(debug (die_struct &)): New.
    	(debug (die_struct *)): New.
    	* dwarf2out.h
    	(extern debug (die_struct &)): New.
    	(extern debug (die_struct *)): New.
    	* gimple-pretty-print.c
    	(debug (gimple_statement_d &)): New.
    	(debug (gimple_statement_d *)): New.
    	* gimple-pretty-print.h
    	(extern debug (gimple_statement_d &)): New.
    	(extern debug (gimple_statement_d *)): New.
    	* ira-build.c
    	(debug (ira_allocno_copy &)): New.
    	(debug (ira_allocno_copy *)): New.
    	(debug (ira_allocno &)): New.
    	(debug (ira_allocno *)): New.
    	* ira-int.h
    	(extern debug (ira_allocno_copy &)): New.
    	(extern debug (ira_allocno_copy *)): New.
    	(extern debug (ira_allocno &)): New.
    	(extern debug (ira_allocno *)): New.
    	* ira-lives.c
    	(debug (live_range &)): New.
    	(debug (live_range *)): New.
    	* lra-int.h
    	(debug (lra_live_range &)): New.
    	(debug (lra_live_range *)): New.
    	* lra-lives.c
    	(debug (lra_live_range &)): New.
    	(debug (lra_live_range *)): New.
    	* omega.c
    	(debug (omega_pb_d &)): New.
    	(debug (omega_pb_d *)): New.
    	* omega.h
    	(extern debug (omega_pb_d &)): New.
    	(extern debug (omega_pb_d *)): New.
    	* print-rtl.c
    	(debug (const rtx_def &)): New.
    	(debug (const rtx_def *)): New.
    	* print-tree.c
    	(debug_tree (tree): Move within file.
    	(debug_raw (const tree_node &)): New.
    	(debug_raw (const tree_node *)): New.
    	(dump_tree_via_hooks (const tree_node *, int)): New.
    	(debug (const tree_node &)): New.
    	(debug (const tree_node *)): New.
    	(debug_verbose (const tree_node &)): New.
    	(debug_verbose (const tree_node *)): New.
    	(debug_head (const tree_node &)): New.
    	(debug_head (const tree_node *)): New.
    	(debug_body (const tree_node &)): New.
    	(debug_body (const tree_node *)): New.
    	(debug_vec_tree (tree): Move and reimplement in terms of dump.
    	(debug (vec<tree, va_gc> &)): New.
    	(debug (vec<tree, va_gc> *)): New.
    	* rtl.h
    	(extern debug (const rtx_def &)): New.
    	(extern debug (const rtx_def *)): New.
    	* sbitmap.c
    	(debug_raw (simple_bitmap_def &)): New.
    	(debug_raw (simple_bitmap_def *)): New.
    	(debug (simple_bitmap_def &)): New.
    	(debug (simple_bitmap_def *)): New.
    	* sbitmap.h
    	(extern debug (simple_bitmap_def &)): New.
    	(extern debug (simple_bitmap_def *)): New.
    	(extern debug_raw (simple_bitmap_def &)): New.
    	(extern debug_raw (simple_bitmap_def *)): New.
    	* sel-sched-dump.c
    	(debug (vinsn_def &)): New.
    	(debug (vinsn_def *)): New.
    	(debug_verbose (vinsn_def &)): New.
    	(debug_verbose (vinsn_def *)): New.
    	(debug (expr_def &)): New.
    	(debug (expr_def *)): New.
    	(debug_verbose (expr_def &)): New.
    	(debug_verbose (expr_def *)): New.
    	(debug (vec<rtx> &)): New.
    	(debug (vec<rtx> *)): New.
    	* sel-sched-dump.h
    	(extern debug (vinsn_def &)): New.
    	(extern debug (vinsn_def *)): New.
    	(extern debug_verbose (vinsn_def &)): New.
    	(extern debug_verbose (vinsn_def *)): New.
    	(extern debug (expr_def &)): New.
    	(extern debug (expr_def *)): New.
    	(extern debug_verbose (expr_def &)): New.
    	(extern debug_verbose (expr_def *)): New.
    	(extern debug (vec<rtx> &)): New.
    	(extern debug (vec<rtx> *)): New.
    	* sel-sched-ir.h
    	(_list_iter_cond_expr): Make inline instead of static.
    	* sreal.c
    	(debug (sreal &)): New.
    	(debug (sreal *)): New.
    	* sreal.h
    	(extern debug (sreal &)): New.
    	(extern debug (sreal *)): New.
    	* tree.h
    	(extern debug_raw (const tree_node &)): New.
    	(extern debug_raw (const tree_node *)): New.
    	(extern debug (const tree_node &)): New.
    	(extern debug (const tree_node *)): New.
    	(extern debug_verbose (const tree_node &)): New.
    	(extern debug_verbose (const tree_node *)): New.
    	(extern debug_head (const tree_node &)): New.
    	(extern debug_head (const tree_node *)): New.
    	(extern debug_body (const tree_node &)): New.
    	(extern debug_body (const tree_node *)): New.
    	(extern debug (vec<tree, va_gc> &)): New.
    	(extern debug (vec<tree, va_gc> *)): New.
    	* tree-cfg.c
    	(debug (struct loop &)): New.
    	(debug (struct loop *)): New.
    	(debug_verbose (struct loop &)): New.
    	(debug_verbose (struct loop *)): New.
    	* tree-dump.c: Add header dependence.
    	* tree-flow.h
    	(extern debug (struct loop &)): New.
    	(extern debug (struct loop *)): New.
    	(extern debug_verbose (struct loop &)): New.
    	(extern debug_verbose (struct loop *)): New.
    	* tree-data-ref.c
    	(debug (data_reference &)): New.
    	(debug (data_reference *)): New.
    	(debug (vec<data_reference_p> &)): New.
    	(debug (vec<data_reference_p> *)): New.
    	(debug (vec<ddr_p> &)): New.
    	(debug (vec<ddr_p> *)): New.
    	* tree-data-ref.h
    	(extern debug (data_reference &)): New.
    	(extern debug (data_reference *)): New.
    	(extern debug (vec<data_reference_p> &)): New.
    	(extern debug (vec<data_reference_p> *)): New.
    	(extern debug (vec<ddr_p> &)): New.
    	(extern debug (vec<ddr_p> *)): New.
    	* tree-ssa-alias.c
    	(debug (pt_solution &)): New.
    	(debug (pt_solution *)): New.
    	* tree-ssa-alias.h
    	(extern debug (pt_solution &)): New.
    	(extern debug (pt_solution *)): New.
    	* tree-ssa-alias.c
    	(debug (_var_map &)): New.
    	(debug (_var_map *)): New.
    	(debug (tree_live_info_d &)): New.
    	(debug (tree_live_info_d *)): New.
    	* tree-ssa-alias.h
    	(extern debug (_var_map &)): New.
    	(extern debug (_var_map *)): New.
    	(extern debug (tree_live_info_d &)): New.
    	(extern debug (tree_live_info_d *)): New.
    
    Index: gcc/cp/ChangeLog
    
    2013-03-28  Lawrence Crowl  <crowl@google.com>
    
    	* Make-lang.in
    	(CXX_PARSER_H): Add header dependence.
    	* cp-tree.h
    	(extern debug (cp_binding_level &)): New.
    	(extern debug (cp_binding_level *)): New.
    	* name-lookup.h
    	(debug (cp_binding_level &)): New.
    	(debug (cp_binding_level *)): New.
    	* parser.c
    	(debug (cp_parser &)): New.
    	(debug (cp_parser *)): New.
    	(debug (cp_token &)): New.
    	(debug (cp_token *)): New.
    	(debug (vec<cp_token, va_gc> &)): New.
    	(debug (vec<cp_token, va_gc> *)): New.
    	* parser.c: Add header dependence.
    	(extern debug (cp_parser &)): New.
    	(extern debug (cp_parser *)): New.
    	(extern debug (cp_token &)): New.
    	(extern debug (cp_token *)): New.
    	(extern debug (vec<cp_token, va_gc> &)): New.
    	(extern debug (vec<cp_token, va_gc> *)): New.
    
    From-SVN: r197224
    7b3b6ae4
    History
    Add uniform debug dump function names.
    Lawrence Crowl authored
    Add some overloaded functions that provide uniform debug dump
    function names.  These names are:
    
      debug: the general debug dumper
      debug_verbose: for more details
      debug_raw: for the gory details
      debug_head: for the heads of declarations, e.g. function heads
      debug_body: for the bodies of declarations, e.g. function bodies
    
    Not all types have the last four versions.
    
    The debug functions come in two flavors, those that take pointers
    to the type, and those that take references to the type.  The first
    handles printing of '<nil>' for null pointers.  The second assumes
    a valid reference, and prints the content.
    
    
    Example uses are as follows:
    
      cp_token t, *p;
      debug (t);
      debug (p);
    
    From the debugger, use
    
      call debug (t)
    
    
    The functions sets implemented are:
    
    debug (only)
    
        basic_block_def, const bitmap_head_def, cp_binding_level,
        cp_parser, cp_token, data_reference, die_struct, edge_def,
        gimple_statement_d, ira_allocno, ira_allocno_copy, live_range,
        lra_live_range, omega_pb_d, pt_solution, const rtx_def, sreal,
        tree_live_info_d, _var_map,
    
        vec<cp_token, va_gc>, vec<data_reference_p>, vec<ddr_p>,
        vec<rtx>, vec<tree, va_gc>,
    
    debug and debug_raw
    
        simple_bitmap_def
    
    debug and debug_verbose
    
        expr_def, struct loop, vinsn_def
    
    debug, debug_raw, debug_verbose, debug_head, debug_body
    
        const tree_node
    
    
    This patch is somewhat different from the original plan at
    gcc.gnu.org/wiki/cxx-conversion/debugging-dumps.  The reason
    is that gdb has an incomplete implementation of C++ call syntax;
    requiring explicit specification of template arguments and explicit
    specification of function arguments even when they have default
    values.  So, the original plan would have required typing
    
      call dump <cp_token> (t, 0, 0, stderr)
    
    which is undesireable.  Instead instead of templates, we overload
    plain functions.  This adds a small burden of manually adding
    the pointer version of dump for each type.  Instead of default
    function arguments, we simply assume the default values.  Most of
    the underlying dump functions did not use the options and indent
    parameters anyway.  Several provide FILE* parameters, but we expect
    debugging to use stderr anyway.  So, the explicit specification of
    arguments was not as valuable as we thought initially.  Finally,
    a change of name from dump to debug reflect the implicit output
    to stderr.
    
    
    Index: gcc/ChangeLog
    
    2013-03-28  Lawrence Crowl  <crowl@google.com>
    
    	* Makefile.in: Add several missing include dependences.
    	(DUMPFILE_H): New.
    	(test-dump.o): New.  This object is not added to any executable,
    	but is present for ad-hoc testing.
    	* bitmap.c
    	(debug (const bitmap_head_def &)): New.
    	(debug (const bitmap_head_def *)): New.
    	* bitmap.h
    	(extern debug (const bitmap_head_def &)): New.
    	(extern debug (const bitmap_head_def *)): New.
    	* cfg.c
    	(debug (edge_def &)): New.
    	(debug (edge_def *)): New.
    	* cfghooks.c
    	(debug (basic_block_def &)): New.
    	(debug (basic_block_def *)): New.
    	* dumpfile.h
    	(dump_node (const_tree, int, FILE *)): Correct source file.
    	* dwarf2out.c
    	(debug (die_struct &)): New.
    	(debug (die_struct *)): New.
    	* dwarf2out.h
    	(extern debug (die_struct &)): New.
    	(extern debug (die_struct *)): New.
    	* gimple-pretty-print.c
    	(debug (gimple_statement_d &)): New.
    	(debug (gimple_statement_d *)): New.
    	* gimple-pretty-print.h
    	(extern debug (gimple_statement_d &)): New.
    	(extern debug (gimple_statement_d *)): New.
    	* ira-build.c
    	(debug (ira_allocno_copy &)): New.
    	(debug (ira_allocno_copy *)): New.
    	(debug (ira_allocno &)): New.
    	(debug (ira_allocno *)): New.
    	* ira-int.h
    	(extern debug (ira_allocno_copy &)): New.
    	(extern debug (ira_allocno_copy *)): New.
    	(extern debug (ira_allocno &)): New.
    	(extern debug (ira_allocno *)): New.
    	* ira-lives.c
    	(debug (live_range &)): New.
    	(debug (live_range *)): New.
    	* lra-int.h
    	(debug (lra_live_range &)): New.
    	(debug (lra_live_range *)): New.
    	* lra-lives.c
    	(debug (lra_live_range &)): New.
    	(debug (lra_live_range *)): New.
    	* omega.c
    	(debug (omega_pb_d &)): New.
    	(debug (omega_pb_d *)): New.
    	* omega.h
    	(extern debug (omega_pb_d &)): New.
    	(extern debug (omega_pb_d *)): New.
    	* print-rtl.c
    	(debug (const rtx_def &)): New.
    	(debug (const rtx_def *)): New.
    	* print-tree.c
    	(debug_tree (tree): Move within file.
    	(debug_raw (const tree_node &)): New.
    	(debug_raw (const tree_node *)): New.
    	(dump_tree_via_hooks (const tree_node *, int)): New.
    	(debug (const tree_node &)): New.
    	(debug (const tree_node *)): New.
    	(debug_verbose (const tree_node &)): New.
    	(debug_verbose (const tree_node *)): New.
    	(debug_head (const tree_node &)): New.
    	(debug_head (const tree_node *)): New.
    	(debug_body (const tree_node &)): New.
    	(debug_body (const tree_node *)): New.
    	(debug_vec_tree (tree): Move and reimplement in terms of dump.
    	(debug (vec<tree, va_gc> &)): New.
    	(debug (vec<tree, va_gc> *)): New.
    	* rtl.h
    	(extern debug (const rtx_def &)): New.
    	(extern debug (const rtx_def *)): New.
    	* sbitmap.c
    	(debug_raw (simple_bitmap_def &)): New.
    	(debug_raw (simple_bitmap_def *)): New.
    	(debug (simple_bitmap_def &)): New.
    	(debug (simple_bitmap_def *)): New.
    	* sbitmap.h
    	(extern debug (simple_bitmap_def &)): New.
    	(extern debug (simple_bitmap_def *)): New.
    	(extern debug_raw (simple_bitmap_def &)): New.
    	(extern debug_raw (simple_bitmap_def *)): New.
    	* sel-sched-dump.c
    	(debug (vinsn_def &)): New.
    	(debug (vinsn_def *)): New.
    	(debug_verbose (vinsn_def &)): New.
    	(debug_verbose (vinsn_def *)): New.
    	(debug (expr_def &)): New.
    	(debug (expr_def *)): New.
    	(debug_verbose (expr_def &)): New.
    	(debug_verbose (expr_def *)): New.
    	(debug (vec<rtx> &)): New.
    	(debug (vec<rtx> *)): New.
    	* sel-sched-dump.h
    	(extern debug (vinsn_def &)): New.
    	(extern debug (vinsn_def *)): New.
    	(extern debug_verbose (vinsn_def &)): New.
    	(extern debug_verbose (vinsn_def *)): New.
    	(extern debug (expr_def &)): New.
    	(extern debug (expr_def *)): New.
    	(extern debug_verbose (expr_def &)): New.
    	(extern debug_verbose (expr_def *)): New.
    	(extern debug (vec<rtx> &)): New.
    	(extern debug (vec<rtx> *)): New.
    	* sel-sched-ir.h
    	(_list_iter_cond_expr): Make inline instead of static.
    	* sreal.c
    	(debug (sreal &)): New.
    	(debug (sreal *)): New.
    	* sreal.h
    	(extern debug (sreal &)): New.
    	(extern debug (sreal *)): New.
    	* tree.h
    	(extern debug_raw (const tree_node &)): New.
    	(extern debug_raw (const tree_node *)): New.
    	(extern debug (const tree_node &)): New.
    	(extern debug (const tree_node *)): New.
    	(extern debug_verbose (const tree_node &)): New.
    	(extern debug_verbose (const tree_node *)): New.
    	(extern debug_head (const tree_node &)): New.
    	(extern debug_head (const tree_node *)): New.
    	(extern debug_body (const tree_node &)): New.
    	(extern debug_body (const tree_node *)): New.
    	(extern debug (vec<tree, va_gc> &)): New.
    	(extern debug (vec<tree, va_gc> *)): New.
    	* tree-cfg.c
    	(debug (struct loop &)): New.
    	(debug (struct loop *)): New.
    	(debug_verbose (struct loop &)): New.
    	(debug_verbose (struct loop *)): New.
    	* tree-dump.c: Add header dependence.
    	* tree-flow.h
    	(extern debug (struct loop &)): New.
    	(extern debug (struct loop *)): New.
    	(extern debug_verbose (struct loop &)): New.
    	(extern debug_verbose (struct loop *)): New.
    	* tree-data-ref.c
    	(debug (data_reference &)): New.
    	(debug (data_reference *)): New.
    	(debug (vec<data_reference_p> &)): New.
    	(debug (vec<data_reference_p> *)): New.
    	(debug (vec<ddr_p> &)): New.
    	(debug (vec<ddr_p> *)): New.
    	* tree-data-ref.h
    	(extern debug (data_reference &)): New.
    	(extern debug (data_reference *)): New.
    	(extern debug (vec<data_reference_p> &)): New.
    	(extern debug (vec<data_reference_p> *)): New.
    	(extern debug (vec<ddr_p> &)): New.
    	(extern debug (vec<ddr_p> *)): New.
    	* tree-ssa-alias.c
    	(debug (pt_solution &)): New.
    	(debug (pt_solution *)): New.
    	* tree-ssa-alias.h
    	(extern debug (pt_solution &)): New.
    	(extern debug (pt_solution *)): New.
    	* tree-ssa-alias.c
    	(debug (_var_map &)): New.
    	(debug (_var_map *)): New.
    	(debug (tree_live_info_d &)): New.
    	(debug (tree_live_info_d *)): New.
    	* tree-ssa-alias.h
    	(extern debug (_var_map &)): New.
    	(extern debug (_var_map *)): New.
    	(extern debug (tree_live_info_d &)): New.
    	(extern debug (tree_live_info_d *)): New.
    
    Index: gcc/cp/ChangeLog
    
    2013-03-28  Lawrence Crowl  <crowl@google.com>
    
    	* Make-lang.in
    	(CXX_PARSER_H): Add header dependence.
    	* cp-tree.h
    	(extern debug (cp_binding_level &)): New.
    	(extern debug (cp_binding_level *)): New.
    	* name-lookup.h
    	(debug (cp_binding_level &)): New.
    	(debug (cp_binding_level *)): New.
    	* parser.c
    	(debug (cp_parser &)): New.
    	(debug (cp_parser *)): New.
    	(debug (cp_token &)): New.
    	(debug (cp_token *)): New.
    	(debug (vec<cp_token, va_gc> &)): New.
    	(debug (vec<cp_token, va_gc> *)): New.
    	* parser.c: Add header dependence.
    	(extern debug (cp_parser &)): New.
    	(extern debug (cp_parser *)): New.
    	(extern debug (cp_token &)): New.
    	(extern debug (cp_token *)): New.
    	(extern debug (vec<cp_token, va_gc> &)): New.
    	(extern debug (vec<cp_token, va_gc> *)): New.
    
    From-SVN: r197224