On Thu, Jul 27, 2017 at 10:30 AM, <[email protected]> wrote:
> From: Trevor Saunders <[email protected]>
>
> The preC++ way of passing information about the call site of a function was to
> use a macro that passed __file__, __LINE__, and __FUNCTION__ to a function
> with
> the same name with _stat appended to it. The way this is now done with C++ is
> to have arguments where the default value is __LINE__, __FILE__, and
> __FUNCTION__ in the caller. This has the significant advantage that if you
> look for "^function (" you find the correct function, where in the C way of
> doing things you need to realize its a macro and check the definition of the
> macro to see what to look for next. So this removes a layer of indirection,
> and makes things somewhat more consistant in using the C++ way of doing
> things.
>
> patches independently bootstrapped and regtested on ppc64le-linux-gnu. I
> successfully ran make all-gcc with --enable-gather-detailed-mem-stats, but
> couldn't complete a bootstrap before the series was applied, because the
> ddrs_table in tree-loop-distribution.c causes memory statistics gathering to
> crash before the series as well as after it. ok?
Thanks! This was on my list of things todo...
The series is ok.
Did you catch all of MEM_STAT_INFO/ALONE_MEM_STAT_INFO so we can remove the
non-C++ way from statistics.h?
Richard.
> thanks
>
> Trev
>
> p.s. the issue with ddrs_table is that it ends up trying to add to the memory
> stats hash table from a global constructor when that hash table hasn't yet
> been
> constructed.
>
>
> Trevor Saunders (19):
> use c++ instead of make_node_stat
> use c++ instead of _stat for copy_node_stat
> use cxx instead of make_tree_binfo_stat
> use c++ for make_int_cst_stat
> use c++ instead of buildN_stat{,_loc}
> use c++ instead of {make,grow}_tree_vec_stat
> replace gimple_alloc_stat with c++
> use c++ instead of build_decl_stat
> use c++ instead of build_vl_exp_stat
> use c++ for tree_cons_stat
> remove unused build_var_debug_value prototype
> use C++ for {make,build}_vector_stat
> use c++ for build_tree_list{,_vec}_stat
> replace rtx_alloc_stat with c++
> replace shallow_copy_rtx_stat with c++
> simplify the bitmap alloc_stat functions with c++
> use c++ for bitmap_initialize
> use c++ for gimple_build_debug_bind{,_source}
> use c++ for fold_buildN_loc
>
> gcc/bitmap.c | 8 ++--
> gcc/bitmap.h | 17 +++-----
> gcc/cp/lex.c | 4 +-
> gcc/emit-rtl.c | 2 +-
> gcc/fold-const.c | 14 +++----
> gcc/fold-const.h | 24 +++++-------
> gcc/fortran/resolve.c | 2 +-
> gcc/gengenrtl.c | 2 +-
> gcc/gimple.c | 8 ++--
> gcc/gimple.h | 11 ++----
> gcc/rtl.c | 4 +-
> gcc/rtl.h | 6 +--
> gcc/tree.c | 62 ++++++++++++++---------------
> gcc/tree.h | 106
> ++++++++++++++++++--------------------------------
> 14 files changed, 109 insertions(+), 161 deletions(-)
>
> --
> 2.11.0
>