* [PATCH, RFC] New memory usage statistics infrastructure
@ 2015-05-15 14:44 Martin Liška
2015-05-15 14:53 ` Martin Liška
` (3 more replies)
0 siblings, 4 replies; 15+ messages in thread
From: Martin Liška @ 2015-05-15 14:44 UTC (permalink / raw)
Cc: GCC Patches
[-- Attachment #1: Type: text/plain, Size: 761 bytes --]
Hello.
Following patch attempts to rewrite memory reports for GCC's internal allocations
so that it uses a new template type. The type shares parts which are currently duplicated,
adds support for special 'counters' and introduces new support for hash-{set,map,table}.
Transformation of the current code is a bit tricky as we internally used hash-table as main
data structure which takes care of location-related allocations. As I want to add support even
for hash tables (and all derived types), header files inclusion and forward declaration is utilized.
Feel free to comment the patch, as well as missing features one may want to track by location sensitive
memory allocation.
Attachment contains sample output taken from tramp3d-v4.cpp.
Thanks,
Martin
[-- Attachment #2: tramp3d.report --]
[-- Type: text/plain, Size: 149845 bytes --]
/home/marxin/Programming/tramp3d/tramp3d-v4.cpp:18831:29: error: reference ‘iterate_m’ cannot be declared ‘mutable’ [-fpermissive]
mutable Pooma::Iterate_t& iterate_m;
^
/home/marxin/Programming/tramp3d/tramp3d-v4.cpp:19516:30: warning: ‘leafify’ attribute directive ignored [-Wattributes]
const Domain& domain)
^
/home/marxin/Programming/tramp3d/tramp3d-v4.cpp:20061:45: warning: ‘leafify’ attribute directive ignored [-Wattributes]
virtual void __attribute__((leafify)) run();
^
/home/marxin/Programming/tramp3d/tramp3d-v4.cpp:24294:52: warning: ‘leafify’ attribute directive ignored [-Wattributes]
void evaluate(T &ret, const Op &op, const Expr &e)
^
/home/marxin/Programming/tramp3d/tramp3d-v4.cpp:24553:45: warning: ‘leafify’ attribute directive ignored [-Wattributes]
virtual void __attribute__((leafify)) run();
^
/home/marxin/Programming/tramp3d/tramp3d-v4.cpp:34435:38: warning: ‘leafify’ attribute directive ignored [-Wattributes]
int apply(Op &op, const Eng &engine)
^
/home/marxin/Programming/tramp3d/tramp3d-v4.cpp:34443:57: warning: ‘leafify’ attribute directive ignored [-Wattributes]
int apply(Op &op, const Eng &engine, const Dom &domain)
^
/home/marxin/Programming/tramp3d/tramp3d-v4.cpp:36301:24: error: reference ‘elem_m’ cannot be declared ‘mutable’ [-fpermissive]
mutable Element_t &elem_m;
^
/home/marxin/Programming/tramp3d/tramp3d-v4.cpp:36639:24: error: reference ‘elem_m’ cannot be declared ‘mutable’ [-fpermissive]
mutable Element_t &elem_m;
^
/home/marxin/Programming/tramp3d/tramp3d-v4.cpp:38364:48: warning: ‘leafify’ attribute directive ignored [-Wattributes]
void evaluate(const Op &op, const Dom &domain)
^
/home/marxin/Programming/tramp3d/tramp3d-v4.cpp:38551:45: warning: ‘leafify’ attribute directive ignored [-Wattributes]
virtual void __attribute__((leafify)) run()
^
Number of expanded macros: 8692
Average number of tokens per macro expansion: 6
Line Table allocations during the compilation process
Number of ordinary maps used: 613
Ordinary map used size: 23k
Number of ordinary maps allocated: 1638
Ordinary maps allocated size: 63k
Number of macro maps used: 8116
Macro maps used size: 317k
Macro maps locations size: 455k
Macro maps size: 772k
Duplicated maps locations size: 150k
Total allocated maps size: 1543k
Total used maps size: 796k
Memory still allocated at the end of the compilation process
Size Allocated Used Overhead
8 68k 63k 2040
16 1864k 1837k 40k
32 20M 10M 371k
64 6008k 5071k 93k
256 620k 598k 8680
512 1152k 1150k 15k
1024 408k 407k 5712
2048 4968k 4968k 67k
4096 56k 56k 784
8192 72k 72k 504
16384 16k 16k 56
65536 128k 128k 112
131072 128k 128k 56
262144 512k 512k 112
524288 1024k 1024k 112
1048576 3072k 3072k 168
24 5636k 3636k 99k
40 23M 19M 369k
48 13M 9228k 217k
56 8540k 5062k 133k
72 2180k 1643k 29k
80 4236k 4106k 57k
88 7388k 6948k 101k
96 780k 761k 10k
112 4748k 2961k 64k
120 2972k 2706k 40k
152 21M 20M 301k
128 27M 25M 382k
144 18M 16M 252k
168 53M 51M 742k
104 9564k 9463k 130k
392 8260k 7885k 112k
216 18M 17M 256k
Total 268M 233M 3910k
Total allocations and overheads during the compilation process
Total Overhead: 2335667
Total Allocated: 439141280
Total Overhead under 32B: 311149
Total Allocated under 32B: 55717712
Total Overhead under 64B: 334667
Total Allocated under 64B: 162449120
Total Overhead under 128B: 351465
Total Allocated under 128B: 239797552
Total Overhead page size 8: 23583
Total Allocated page size 8: 71392
Total Overhead page size 16: 265576
Total Allocated page size 16: 2306912
Total Overhead page size 32: 9448
Total Allocated page size 32: 44490656
Total Overhead page size 64: 5102
Total Allocated page size 64: 9129984
Total Overhead page size 256: 60177
Total Allocated page size 256: 1003008
Total Overhead page size 512: 52247
Total Allocated page size 512: 1218048
Total Overhead page size 1024: 156016
Total Allocated page size 1024: 1944576
Total Overhead page size 2048: 53752
Total Allocated page size 2048: 5892096
Total Overhead page size 4096: 4144
Total Allocated page size 4096: 114688
Total Overhead page size 8192: 2408
Total Allocated page size 8192: 139264
Total Overhead page size 16384: 2176
Total Allocated page size 16384: 196608
Total Overhead page size 32768: 144
Total Allocated page size 32768: 262144
Total Overhead page size 65536: 80
Total Allocated page size 65536: 655360
Total Overhead page size 131072: 120
Total Allocated page size 131072: 917504
Total Overhead page size 262144: 792
Total Allocated page size 262144: 2097152
Total Overhead page size 524288: 360
Total Allocated page size 524288: 2621440
Total Overhead page size 1048576: 32
Total Allocated page size 1048576: 4194304
Total Overhead page size 2097152: 0
Total Allocated page size 2097152: 2097152
Total Overhead page size 4194304: 8
Total Allocated page size 4194304: 4194304
Total Overhead page size 8388608: 0
Total Allocated page size 8388608: 8388608
Total Overhead page size 16777216: 8
Total Allocated page size 16777216: 16777216
Total Overhead page size 24: 12542
Total Allocated page size 24: 8848752
Total Overhead page size 40: 6945
Total Allocated page size 40: 52564160
Total Overhead page size 48: 6218
Total Allocated page size 48: 31464768
Total Overhead page size 56: 5253
Total Allocated page size 56: 13572496
Total Overhead page size 72: 4017
Total Allocated page size 72: 5405904
Total Overhead page size 80: 3035
Total Allocated page size 80: 5537360
Total Overhead page size 88: 2785
Total Allocated page size 88: 10410488
Total Overhead page size 96: 1717
Total Allocated page size 96: 791040
Total Overhead page size 112: 1239
Total Allocated page size 112: 11346272
Total Overhead page size 120: 1157
Total Allocated page size 120: 3066240
Total Overhead page size 152: 1018
Total Allocated page size 152: 26034864
Total Overhead page size 128: 1029
Total Allocated page size 128: 30638336
Total Overhead page size 144: 572052
Total Allocated page size 144: 20820240
Total Overhead page size 168: 12037
Total Allocated page size 168: 65027256
Total Overhead page size 104: 1819
Total Allocated page size 104: 10152792
Total Overhead page size 392: 256658
Total Allocated page size 392: 9390360
Total Overhead page size 216: 809973
Total Allocated page size 216: 25357536
String pool
entries 36395
identifiers 33534 (92.14%)
slots 65536
deleted 526
bytes 2778k (17592186044413M overhead)
table size 512k
coll/search 0.9125
ins/search 0.0388
avg. entry 78.16 bytes (+/- 94.46)
longest entry 493
Kind Nodes Bytes
---------------------------------------
decls 549019 80783776
types 308243 51784824
blocks 32532 2862816
stmts 52136 1996576
refs 256354 10056312
exprs 766956 28542968
constants 15568 419478
identifiers 36395 3202760
vecs 1052907 50569584
binfos 8652 841144
ssa names 0 0
constructors 21717 521208
random kinds 966912 38184968
lang_decl kinds 190903 6702564
lang_type kinds 13135 1996520
omp clauses 0 0
---------------------------------------
Total 4271429 278465498
---------------------------------------
Code Nodes
----------------------------
error_mark 1
identifier_node 36395
tree_list 628813
tree_vec 1052907
block 32532
offset_type 0
enumeral_type 2842
boolean_type 90
integer_type 4706
real_type 1055
pointer_type 27233
reference_type 38333
nullptr_type 1
fixed_point_type 36
complex_type 14
vector_type 24
array_type 599
record_type 46785
union_type 44
qual_union_type 0
void_type 16
pointer_bounds_type 1
function_type 20157
method_type 42162
lang_type 3
void_cst 1
integer_cst 13391
real_cst 447
fixed_cst 0
complex_cst 0
vector_cst 0
string_cst 1729
function_decl 70786
label_decl 24797
field_decl 10731
var_decl 58802
const_decl 6722
parm_decl 178078
type_decl 140570
result_decl 25101
debug_expr_decl 0
namespace_decl 25
imported_decl 0
namelist_decl 0
translation_unit_decl 1
component_ref 79144
bit_field_ref 0
array_ref 5414
array_range_ref 0
realpart_expr 72
imagpart_expr 72
view_convert_expr 0
indirect_ref 114559
obj_type_ref 36
constructor 21717
compound_expr 3858
modify_expr 19281
init_expr 48887
target_expr 9060
cond_expr 4852
vec_cond_expr 0
vec_perm_expr 0
bind_expr 21931
call_expr 81613
with_cleanup_expr 0
cleanup_point_expr 37168
placeholder_expr 0
plus_expr 5186
minus_expr 3149
mult_expr 4525
pointer_plus_expr 4012
mult_highpart_expr 0
trunc_div_expr 738
ceil_div_expr 0
floor_div_expr 0
round_div_expr 0
trunc_mod_expr 64
ceil_mod_expr 0
floor_mod_expr 0
round_mod_expr 0
rdiv_expr 130
exact_div_expr 297
fix_trunc_expr 4
float_expr 58
negate_expr 1446
min_expr 0
max_expr 0
abs_expr 24
lshift_expr 832
rshift_expr 62
lrotate_expr 0
rrotate_expr 0
bit_ior_expr 183
bit_xor_expr 8
bit_and_expr 435
bit_not_expr 808
truth_andif_expr 1145
truth_orif_expr 386
truth_and_expr 0
truth_or_expr 0
truth_xor_expr 0
truth_not_expr 1279
lt_expr 2288
le_expr 839
gt_expr 1699
ge_expr 429
eq_expr 2314
ne_expr 2201
unordered_expr 4
ordered_expr 3
unlt_expr 0
unle_expr 6
ungt_expr 0
unge_expr 0
uneq_expr 0
ltgt_expr 0
range_expr 0
paren_expr 0
convert_expr 85069
addr_space_convert_expr 0
fixed_convert_expr 0
nop_expr 170618
non_lvalue_expr 1882
compound_literal_expr 0
save_expr 177
addr_expr 181075
fdesc_expr 0
complex_expr 27
conj_expr 0
predecrement_expr 250
preincrement_expr 2540
postdecrement_expr 24
postincrement_expr 586
va_arg_expr 0
try_catch_expr 5744
try_finally 5280
decl_expr 9747
label_expr 3701
goto_expr 2257
return_expr 11738
exit_expr 81
loop_expr 1193
switch_expr 1
case_label_expr 47
asm_expr 0
ssa_name 0
catch_expr 62
eh_filter_expr 156
scev_known 0
scev_not_known 0
polynomial_chrec 0
statement_list 36318
assert_expr 0
tree_binfo 8652
with_size_expr 0
realign_load 0
target_mem_ref 0
mem_ref 39967
oacc_parallel 0
oacc_kernels 0
oacc_data 0
oacc_host_data 0
omp_parallel 0
omp_task 0
omp_for 0
omp_simd 0
cilk_simd 0
cilk_for 0
omp_distribute 0
oacc_loop 0
omp_teams 0
omp_target_data 0
omp_target 0
omp_sections 0
omp_single 0
omp_section 0
omp_master 0
omp_taskgroup 0
omp_ordered 0
omp_critical 0
oacc_cache 0
oacc_declare 0
oacc_enter_data 0
oacc_exit_data 0
oacc_update 0
omp_target_update 0
omp_atomic 0
omp_atomic_read 0
omp_atomic_capture_old 0
omp_atomic_capture_new 0
omp_clause 0
transaction_expr 0
reduc_max_expr 0
reduc_min_expr 0
reduc_plus_expr 0
dot_prod_expr 0
widen_sum_expr 0
sad_expr 0
widen_mult_expr 0
widen_mult_plus_expr 0
widen_mult_minus_expr 0
widen_lshift_expr 0
fma_expr 0
widen_mult_hi_expr 0
widen_mult_lo_expr 0
widen_mult_even_expr 0
widen_mult_odd_expr 0
vec_unpack_hi_expr 0
vec_unpack_lo_expr 0
vec_unpack_float_hi_expr 0
vec_unpack_float_lo_expr 0
vec_pack_trunc_expr 0
vec_pack_sat_expr 0
vec_pack_fix_trunc_expr 0
widen_lshift_hi_expr 0
widen_lshift_lo_expr 0
predict_expr 2
optimization_node 2
target_option_node 2
annotate_expr 0
cilk_spawn_stmt 0
cilk_sync_stmt 0
@dummy 0
c_maybe_const_expr 0
excess_precision_expr 0
userdef_literal 0
sizeof_expr 228
array_notation_ref 0
unconstrained_array_type 0
unconstrained_array_ref 0
null_expr 0
plus_nomod_expr 0
minus_nomod_expr 0
attr_addr_expr 0
stmt_stmt 0
loop_stmt 0
exit_stmt 0
offset_ref 0
ptrmem_cst 0
nw_expr 219
vec_nw_expr 0
dl_expr 47
vec_dl_expr 0
scope_ref 17122
member_ref 4
type_expr 0
aggr_init_expr 5224
vec_init_expr 44
throw_expr 128
empty_class_expr 328
baselink 43301
template_decl 32744
template_parm_index 94838
template_template_parm 26
template_type_parm 118470
typename_type 5616
typeof_type 6
bound_template_template_parm 20
unbound_class_template 0
using_decl 662
using_stmt 0
default_arg 223
deferred_noexcept 0
template_id_expr 652
overload 53689
pseudo_dtor_expr 7
modop_expr 3534
cast_expr 3208
reinterpret_cast_expr 21
const_cast_expr 59
static_cast_expr 254
dynamic_cast_expr 12
implicit_conv_expr 199
dotstar_expr 11
typeid_expr 0
noexcept_expr 0
non_dependent_expr 5344
ctor_initializer 1201
try_block 167
eh_spec_block 486
handler 165
must_not_throw_expr 0
cleanup_stmt 5660
if_stmt 3538
for_stmt 1660
range_for_stmt 0
while_stmt 310
do_stmt 20
break_stmt 103
continue_stmt 9
switch_stmt 11
expr_stmt 39912
tag_defn 15
offsetof_expr 0
arrow_expr 2814
alignof_expr 0
at_encode_expr 0
stmt_expr 0
unary_plus_expr 5
static_assert 0
type_argument_pack 0
nontype_argument_pack 0
type_pack_expansion 0
expr_pack_expansion 0
argument_pack_select 0
trait_expr 26
lambda_expr 0
decltype_type 4
underlying_type 0
bases 0
template_info 109699
urshift_expr 0
compare_expr 0
compare_l_expr 0
compare_g_expr 0
class_interface_type 0
class_implementation_type 0
category_interface_type 0
category_implementation_type 0
protocol_interface_type 0
keyword_decl 0
instance_method_decl 0
class_method_decl 0
property_decl 0
message_send_expr 0
class_reference_expr 0
property_ref 0
----------------------------
SSA_NAME nodes allocated: 0
SSA_NAME nodes reused: 0
PHI nodes allocated: 0
PHI nodes reused: 0
Type hash: size 131071, 61195 elements, 0.904519 collisions
DECL_DEBUG_EXPR hash: size 1021, 254 elements, 0.141732 collisions
DECL_VALUE_EXPR hash: size 1021, 42 elements, 0.047619 collisions
4376489 fields searched in 559094[520465] calls to lookup_field[_1]
1545728 fnfields searched in 0 calls to lookup_fnfields
0 calls to get_base_type
convert_harshness = 0
compute_conversion_costs = 0
vtables = 173; vtable searches = 0
vtable entries = 0; vtable elems = 644
decl_specializations: size 65521, 37557 elements, 1.219160 collisions
type_specializations: size 32749, 14203 elements, 2.448762 collisions
maximum template instantiation depth reached: 28
GIMPLE statements
Kind Stmts Bytes
---------------------------------------
assignments 43454 3516304
phi nodes 0 0
conditionals 3503 280240
everything else 108706 9265584
---------------------------------------
Total 155663 13062128
---------------------------------------
RTX Kind Count Bytes
---------------------------------------
expr_list 209 5016
parallel 110 1760
return 1 8
simple_return 1 8
const_int 129 2064
const_fixed 26 832
const_double 21 840
const_vector 117 1872
pc 1 8
reg 41451 994824
concat 11 264
mem 18 432
symbol_ref 18 432
cc0 1 8
rtvec 227 15872
---------------------------------------
Total 42341 1024240
---------------------------------------
Alloc-pool Kind Elt size Pools Allocated (elts) Peak (elts) Leak (elts)
--------------------------------------------------------------------------------------------------------------
et_occ pool 56 9724 5293008( 94518) 42896( 766) 0( 0)
et_node pool 72 9724 4090104( 56807) 27648( 384) 0( 0)
--------------------------------------------------------------------------------------------------------------
Total 19448 9383112
--------------------------------------------------------------------------------------------------------------
Bitmaps Leak Peak Times N searches Search iter Type
--------------------------------------------------------------------------------------------------------------------------------
tree-cfgcleanup.c:689 (cleanup_tree_cfg_1) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-chkp.c:920 (chkp_type_bounds_count) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-cfg.c:1219 (start_recording_case_labels) 0: 0.0% 72 19450: 29.7% 0 0 heap
tree-cfg.c:7938 (remove_edge_and_dominated_block 0: 0.0% 112 236: 0.4% 148 74 heap
tree-cfg.c:7939 (remove_edge_and_dominated_block 0: 0.0% 112 237: 0.4% 170 85 heap
tree-eh.c:2208 (execute) 0: 0.0% 152 45524: 69.6% 6 4 heap
reginfo.c:399 (init_reg_sets_1) 72: 50.0% 72 2: 0.0% 0 0 heap
reginfo.c:404 (init_reg_sets_1) 72: 50.0% 72 2: 0.0% 0 0 heap
--------------------------------------------------------------------------------------------------------------------------------
Total 144 65451
--------------------------------------------------------------------------------------------------------------------------------
Hash tables Leak Peak Times Type
--------------------------------------------------------------------------------------------------------------------------------
hash-table.h:591 (build_gimple_cfg) 0: 0.0% 1504 9761: 49.5% heap
hash-table.h:591 (execute) 0: 0.0% 3024 9765: 49.5% heap
cp/semantics.c:4135 (__base_ctor ) 0: 0.0% 12240 98: 0.5% heap
optabs.c:6237 (init_optabs) 104: 0.0% 104 1: 0.0% ggc
varasm.c:3699 (create_constant_pool) 248: 0.0% 248 1: 0.0% ggc
varasm.c:6071 (init_varasm_once) 248: 0.0% 248 1: 0.0% ggc
varasm.c:6072 (init_varasm_once) 248: 0.0% 248 1: 0.0% ggc
emit-rtl.c:5907 (init_emit_once) 488: 0.0% 488 1: 0.0% ggc
emit-rtl.c:5911 (init_emit_once) 488: 0.0% 488 1: 0.0% ggc
emit-rtl.c:5913 (init_emit_once) 488: 0.0% 488 1: 0.0% ggc
emit-rtl.c:5909 (init_emit_once) 488: 0.0% 488 1: 0.0% ggc
hash-table.h:591 (fixed_type_or_null) 488: 0.0% 488 1: 0.0% heap
optabs.c:6140 (init_one_libfunc) 488: 0.0% 488 1: 0.0% ggc
emit-rtl.c:5904 (init_emit_once) 488: 0.0% 488 1: 0.0% ggc
cp/mangle.c:3793 (mangle_conv_op_name_for_type) 488: 0.0% 736 2: 0.0% ggc
tree.c:681 (init_ttree) 1016: 0.0% 1016 1: 0.0% ggc
cp/tree.c:842 (build_cplus_array_type) 1016: 0.0% 1504 2: 0.0% ggc
hash-table.h:591 (curr_statistics_hash) 1488: 0.1% 1488 6: 0.0% heap
hash-table.h:591 (register_scoped_attributes) 2008: 0.1% 2008 1: 0.0% heap
hash-table.h:591 (build_type_inheritance_graph) 2008: 0.1% 3024 4: 0.0% heap
cp/cp-objcp-common.c:224 (init_shadowed_var_for_ 8168: 0.3% 8168 1: 0.0% ggc
varasm.c:6073 (init_varasm_once) 8168: 0.3% 8168 1: 0.0% ggc
tree.c:672 (init_ttree) 8168: 0.3% 8168 1: 0.0% ggc
tree.c:675 (init_ttree) 8168: 0.3% 8168 1: 0.0% ggc
cp/typeck2.c:299 (abstract_virtuals_error_sfinae 8168: 0.3% 12240 6: 0.0% ggc
cgraph.c:755 (get_edge) 16120: 0.6% 17136 15: 0.1% ggc
tree.c:677 (init_ttree) 16312: 0.6% 16312 1: 0.0% ggc
cp/decl.c:3398 (build_typename_type) 65528: 2.4% 98272 8: 0.0% ggc
cp/pt.c:22450 (init_template_processing) 261992: 9.5% 393040 10: 0.1% ggc
symtab.c:266 (symtab_initialize_asm_name_hash) 261992: 9.5% 393040 12: 0.1% ggc
cp/tree.c:3895 (init_tree) 524168: 18.9% 786160 11: 0.1% ggc
cp/pt.c:22449 (init_template_processing) 524168: 18.9% 786160 11: 0.1% ggc
tree.c:669 (init_ttree) 1048568: 37.8% 1572736 8: 0.0% ggc
--------------------------------------------------------------------------------------------------------------------------------
Total 2771976 19737
--------------------------------------------------------------------------------------------------------------------------------
Hash maps Leak Peak Times Type
--------------------------------------------------------------------------------------------------------------------------------
hash-map.h:116 (lower_try_finally_switch) 0: 0.0% 208 1: 0.0% heap
hash-map.h:116 (start_recording_case_labels) 0: 0.0% 208 9724: 8.0% heap
cp/constexpr.c:3531 (cxx_eval_outermost_constant 0: 0.0% 208 90304: 74.0% heap
hash-map.h:116 (copy_gimple_seq_and_replace_loca 0: 0.0% 704 3179: 2.6% heap
hash-map.h:116 (instantiate_decl) 0: 0.0% 1472 9392: 7.7% heap
hash-map.h:116 (maybe_clone_body) 0: 0.0% 24480 7279: 6.0% heap
except.c:270 (init_eh) 496: 0.0% 496 1: 0.0% ggc
hash-map.h:116 (register_pass_name) 8144: 0.7% 8144 1: 0.0% heap
tree-eh.c:113 (add_stmt_to_eh_lp_fn) 1084544: 99.2% 1084544 2161: 1.8% ggc
--------------------------------------------------------------------------------------------------------------------------------
Total 1093184 122042
--------------------------------------------------------------------------------------------------------------------------------
Hash sets Leak Peak Times Type
--------------------------------------------------------------------------------------------------------------------------------
cgraphunit.c:938 (analyze_functions) 0: 0.0% 104 2: 0.0% heap
tree-inline.c:5219 (copy_gimple_seq_and_replace_ 0: 0.0% 104 3176: 0.7% heap
hash-set.h:183 (uses_parameter_packs) 0: 0.0% 104 3295: 0.8% heap
cgraphbuild.c:427 (record_references_in_initiali 0: 0.0% 352 322: 0.1% heap
hash-set.h:183 (for_each_template_parm) 0: 0.0% 352 3022: 0.7% heap
tree.c:11480 (walk_tree_without_duplicates_1) 0: 0.0% 1504 283206: 65.4% heap
hash-set.h:183 (lookup_arg_dependent_1) 0: 0.0% 3024 7616: 1.8% heap
hash-set.h:183 (check_for_bare_parameter_packs) 0: 0.0% 12240 103612: 23.9% heap
hash-set.h:183 (cp_genericize_tree) 0: 0.0% 49056 28904: 6.7% heap
hash-set.h:183 (init_varasm_once) 104:100.0% 104 1: 0.0% heap
--------------------------------------------------------------------------------------------------------------------------------
Total 104 433156
--------------------------------------------------------------------------------------------------------------------------------
Heap vectors Leak Peak Times Leak items Peak items
--------------------------------------------------------------------------------------------------------------------------------
tree-cfg.c:8002 (remove_edge_and_dominated_block 0: 0.0% 4 19: 0.0% 0 0
dominance.c:820 (get_dominated_to_depth) 0: 0.0% 4 92: 0.1% 0 0
vec.h:1277 (__base_ctor ) 0: 0.0% 4 10008:10.8% 204 204
cp/parser.c:629 (cp_lexer_alloc) 0: 0.0% 5 1: 0.0% 0 0
gimplify.c:1529 (gimplify_switch_expr) 0: 0.0% 8 1: 0.0% 0 0
function.c:2380 (assign_parms_augmented_arg_list 0: 0.0% 8 9: 0.0% 36 36
cfgloop.c:257 (flow_loop_nodes_find) 0: 0.0% 8 925: 1.0% 4 4
gimple-low.c:125 (lower_function_body) 0: 0.0% 8 9693:10.5% 0 0
cfgloop.c:276 (flow_loop_nodes_find) 0: 0.0% 16 14: 0.0% 56 56
cp/parser.c:694 (cp_lexer_new_from_tokens) 0: 0.0% 20 6592: 7.1% 725 725
cfgloop.h:578 (__base_ctor ) 0: 0.0% 23 38814:41.8% 0 0
dominance.c:831 (get_dominated_to_depth) 0: 0.0% 24 56: 0.1% 320 320
cfgloop.c:488 (flow_loops_find) 0: 0.0% 28 105: 0.1% 280 280
tree-eh.c:669 (record_in_goto_queue_label) 0: 0.0% 30 262: 0.3% 0 0
cp/class.c:2510 (find_final_overrider) 0: 0.0% 30 731: 0.8% 0 0
cp/parser.c:1147 (cp_lexer_save_tokens) 0: 0.0% 50 1408: 1.5% 8295 8295
attribs.c:153 (register_scoped_attributes) 0: 0.0% 64 1: 0.0% 0 0
input.c:517 (get_next_line) 0: 0.0% 81 6: 0.0% 142 142
cp/name-lookup.c:6110 (store_class_bindings) 0: 0.0% 81 7: 0.0% 142 142
tree-eh.c:1439 (lower_try_finally_switch) 2: 0.0% 2 1: 0.0% 0 0
cp/pt.c:500 (maybe_begin_member_template_process 4: 0.0% 4 1: 0.0% 0 0
c-family/c-pragma.c:645 (push_visibility) 4: 0.0% 4 1: 0.0% 0 0
attribs.c:154 (register_scoped_attributes) 4: 0.0% 4 1: 0.0% 0 0
function.c:4714 (push_cfun) 4: 0.0% 4 1: 0.0% 0 0
function.c:185 (push_function_context) 16: 0.1% 20 4: 0.0% 12 12
gimplify.c:302 (gimple_push_bind_expr) 20: 0.1% 36 4820: 5.2% 895 895
c-family/c-pragma.c:1311 (c_register_pragma_1) 24: 0.1% 24 4: 0.0% 28 28
cp/name-lookup.c:6080 (store_bindings) 54: 0.2% 54 6: 0.0% 88 88
cp/cp-gimplify.c:1108 (cp_genericize_r) 76: 0.3% 84 4870: 5.3% 952 952
attribs.c:161 (register_scoped_attributes) 144: 0.6% 144 2: 0.0% 160 160
ipa-devirt.c:2057 (get_odr_type) 269: 1.2% 269 52: 0.1% 166 166
function.c:2359 (assign_parms_augmented_arg_list 372: 1.6% 376 10162:11.0% 1588 1588
ipa-devirt.c:2058 (get_odr_type) 552: 2.4% 552 138: 0.1% 0 0
input.c:527 (get_next_line) 2017: 8.8% 2017 127: 0.1% 3431 3431
ggc-page.c:1416 (ggc_internal_alloc) 3079:13.4% 3079 22: 0.0% 6146 6146
symtab.c:527 (create_reference) 6230:27.1% 6230 749: 0.8% 7527 7527
symtab.c:519 (create_reference) 10148:44.1% 12168 3042: 3.3% 0 0
--------------------------------------------------------------------------------------------------------------------------------
Total 23019 92747 31197
--------------------------------------------------------------------------------------------------------------------------------
GGC memory Garbage Freed Leak Overhead Times
--------------------------------------------------------------------------------------------------------------------------------
cp/name-lookup.c:4633 (qualified_lookup_using_na 0: 0.0% 231000: 0.7% 0: 0.0% 0: 0.0% 5775
cp/class.c:9022 (build_vtbl_initializer) 0: 0.0% 14936: 0.0% 0: 0.0% 336: 0.0% 239
symtab.c:266 (symtab_initialize_asm_name_hash) 0: 0.0% 104: 0.0% 0: 0.0% 0: 0.0% 1
cp/name-lookup.c:4622 (qualified_lookup_using_na 0: 0.0% 231000: 0.7% 0: 0.0% 0: 0.0% 5775
tree.c:669 (init_ttree) 0: 0.0% 8216: 0.0% 0: 0.0% 24: 0.0% 1
cp/name-lookup.c:335 (new_class_binding) 0: 0.0% 3133464: 9.9% 0: 0.0% 39984: 1.7% 20831
gimplify.c:3656 (gimplify_init_ctor_eval) 0: 0.0% 600: 0.0% 0: 0.0% 0: 0.0% 15
cp/pt.c:16133 (fn_type_unification) 0: 0.0% 5204760: 16.4% 0: 0.0% 0: 0.0% 130119
cp/name-lookup.c:4614 (qualified_lookup_using_na 0: 0.0% 231000: 0.7% 0: 0.0% 0: 0.0% 5775
cp/name-lookup.c:4650 (qualified_lookup_using_na 0: 0.0% 6880: 0.0% 0: 0.0% 0: 0.0% 172
cp/pt.c:22450 (init_template_processing) 0: 0.0% 536: 0.0% 0: 0.0% 24: 0.0% 1
stor-layout.c:1190 (place_field) 0: 0.0% 11816: 0.0% 0: 0.0% 0: 0.0% 123
cgraph.c:755 (get_edge) 0: 0.0% 7224: 0.0% 0: 0.0% 56: 0.0% 7
gimplify.c:1429 (gimplify_decl_expr) 0: 0.0% 41760: 0.1% 0: 0.0% 0: 0.0% 1044
cp/name-lookup.c:4623 (qualified_lookup_using_na 0: 0.0% 231000: 0.7% 0: 0.0% 0: 0.0% 5775
cp/typeck2.c:299 (abstract_virtuals_error_sfinae 0: 0.0% 264: 0.0% 0: 0.0% 8: 0.0% 1
gimplify.c:9416 (gimplify_assign) 0: 0.0% 2640: 0.0% 0: 0.0% 0: 0.0% 66
cp/parser.c:23715 (cp_parser_template_declaratio 0: 0.0% 216: 0.0% 0: 0.0% 0: 0.0% 1
gimplify.c:5471 (gimplify_target_expr) 0: 0.0% 90080: 0.3% 0: 0.0% 0: 0.0% 2252
gimplify.c:559 (internal_get_tmp_var) 0: 0.0% 1189640: 3.7% 0: 0.0% 0: 0.0% 29741
cp/parser.c:632 (cp_lexer_alloc) 0: 0.0% 262152: 0.8% 0: 0.0% 8: 0.0% 1
emit-rtl.c:6137 (init_emit_once) 0: 0.0% 0: 0.0% 8: 0.0% 0: 0.0% 1
emit-rtl.c:6136 (init_emit_once) 0: 0.0% 0: 0.0% 8: 0.0% 0: 0.0% 1
emit-rtl.c:6139 (init_emit_once) 0: 0.0% 0: 0.0% 8: 0.0% 0: 0.0% 1
emit-rtl.c:6138 (init_emit_once) 0: 0.0% 0: 0.0% 8: 0.0% 0: 0.0% 1
tree.c:9902 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 16: 0.0% 0: 0.0% 1
c-family/c-common.c:5930 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 24: 0.0% 0: 0.0% 1
tree.c:679 (init_ttree) 0: 0.0% 0: 0.0% 24: 0.0% 0: 0.0% 1
tree.c:9763 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 24: 0.0% 0: 0.0% 1
fold-const.c:4945 (fold_cond_expr_with_compariso 0: 0.0% 0: 0.0% 32: 0.0% 0: 0.0% 1
varasm.c:3698 (create_constant_pool) 0: 0.0% 0: 0.0% 32: 0.0% 0: 0.0% 1
generic-match.c:2191 (generic_simplify) 32: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
fold-const.c:3516 (fold_truth_not_expr) 32: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:118 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:141 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:73 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:201 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:182 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:74 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:152 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:53 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:133 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:195 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:120 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:188 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:154 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:78 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:112 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:173 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:167 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
fold-const.c:7014 (fold_widened_comparison) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:213 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
fold-const.c:12447 (fold_binary_loc) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:258 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:81 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:204 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:76 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:262 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:143 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
fold-const.c:683 (fold_negate_expr) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:116 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:3881 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:77 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/call.c:6762 (push_defarg_context) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:3978 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:129 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:192 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:164 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
fold-const.c:7969 (fold_unary_loc) 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:127 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/pt.c:3658 (canonical_type_parameter) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:55 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/init.c:4319 (build_vec_delete) 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:75 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:149 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
tree.c:4684 (build_translation_unit_decl) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:179 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:57 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:3882 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:185 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
config/i386/i386.c:35662 (ix86_init_builtins_va_ 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:176 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:270 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:147 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:264 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:207 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:256 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:123 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:158 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:260 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:170 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
config/i386/i386.c:35663 (ix86_init_builtins_va_ 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:125 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:285 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:284 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:82 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:273 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:139 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:14098 (record_key_method_defined) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:210 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:14726 (build_void_list_node) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
convert.c:436 (convert_to_integer) 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:276 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:161 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:52 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:137 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:131 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:3883 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:145 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:135 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:58 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:114 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
attribs.c:605 (decl_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:54 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:56 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:278 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:266 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:198 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:79 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:80 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:66 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:156 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
hash-map.h:123 (create_ggc) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
cp/parser.c:624 (cp_lexer_alloc) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
cp/cp-gimplify.c:346 (genericize_switch_stmt) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
cp/cvt.c:998 (convert_to_void) 48: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
cp/rtti.c:1143 (get_pseudo_ti_init) 56: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
varasm.c:1675 (notice_global_symbol) 0: 0.0% 0: 0.0% 59: 0.0% 11: 0.0% 2
cp/error.c:2761 (pp_ggc_formatted_text) 64: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 8
cp/cp-gimplify.c:359 (genericize_continue_stmt) 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
c-family/c-common.c:4745 (c_common_truthvalue_co 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
generic-match.c:7393 (generic_simplify) 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
builtins.c:9158 (fold_builtin_abs) 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
builtins.c:9559 (fold_builtin_interclass_mathfn) 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
generic-match.c:5045 (generic_simplify) 64: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
predict.c:3007 (build_predict_expr) 64: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
convert.c:910 (convert_to_integer) 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
cp/parser.c:8950 (start_lambda_scope) 0: 0.0% 0: 0.0% 72: 0.0% 0: 0.0% 1
cp/class.c:7133 (init_class_processing) 0: 0.0% 0: 0.0% 72: 0.0% 0: 0.0% 1
cp/decl.c:5359 (reshape_init_array_1) 0: 0.0% 0: 0.0% 72: 0.0% 0: 0.0% 1
builtin-attrs.def:247 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:241 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:243 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:239 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:664 (fold_negate_expr) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:10058 (fold_binary_loc) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:248 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
cp/call.c:7469 (build_over_call) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
fold-const.c:12421 (fold_binary_loc) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
cp/pt.c:22007 (build_non_dependent_expr) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
fold-const.c:12419 (fold_binary_loc) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:233 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:10543 (fold_binary_loc) 40: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 2
builtin-attrs.def:244 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
gimple-fold.c:889 (gimple_fold_builtin_memory_op 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
cp/name-lookup.c:3683 (handle_namespace_attrs) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtins.c:9701 (fold_builtin_classify) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
tree-eh.c:1451 (lower_try_finally_switch) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 1
builtin-attrs.def:240 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:12424 (fold_binary_loc) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:242 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
gimple-fold.c:862 (gimple_fold_builtin_memory_op 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:234 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
c-family/c-common.c:4098 (c_register_builtin_typ 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:645 (fold_negate_expr) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
fold-const.c:7113 (fold_sign_changed_comparison) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
cp/call.c:7819 (build_special_member_call) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
cp/decl.c:3981 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:10709 (fold_binary_loc) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
cp/rtti.c:528 (ifnonnull) 0: 0.0% 0: 0.0% 88: 0.0% 0: 0.0% 2
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 2
emit-rtl.c:6004 (init_emit_once) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 4
optabs.c:6193 (set_optab_libfunc) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 4
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 2
builtins.c:9253 (fold_builtin_carg) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 3
fold-const.c:8099 (fold_unary_loc) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 3
builtins.c:9254 (fold_builtin_carg) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 3
optabs.c:6237 (init_optabs) 0: 0.0% 0: 0.0% 104: 0.0% 0: 0.0% 1
cp/parser.c:20074 (cp_parser_class_specifier_1) 0: 0.0% 0: 0.0% 112: 0.0% 0: 0.0% 2
fold-const.c:12006 (fold_binary_loc) 80: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 3
cp/init.c:4174 (push_base_cleanups) 120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
toplev.c:1237 (general_init) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 1
builtin-attrs.def:238 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
tree.c:4682 (build_translation_unit_decl) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 1
builtin-attrs.def:236 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
convert.c:949 (convert_to_complex) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
cp/typeck2.c:2062 (add_exception_specifier) 40: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 3
builtin-attrs.def:235 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
cp/init.c:2721 (build_new_1) 120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
builtin-attrs.def:246 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
cp/friend.c:170 (add_friend) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
cp/name-lookup.c:1385 (push_local_binding) 120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
builtin-attrs.def:237 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
builtin-attrs.def:245 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
cp/init.c:2957 (build_new_1) 120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
cp/init.c:885 (sort_mem_initializers) 120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
generic-match.c:5029 (generic_simplify) 64: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 4
cp/parser.c:3498 (cp_parser_new) 0: 0.0% 0: 0.0% 128: 0.0% 0: 0.0% 1
varasm.c:296 (get_noswitch_section) 0: 0.0% 0: 0.0% 128: 0.0% 0: 0.0% 4
varasm.c:279 (get_unnamed_section) 0: 0.0% 0: 0.0% 128: 0.0% 0: 0.0% 4
cp/init.c:1274 (expand_cleanup_for_base) 144: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
gimple.c:774 (gimple_build_switch_nlabels) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 2
cp/init.c:4193 (push_base_cleanups) 144: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
cp/parser.c:19383 (cp_parser_braced_list) 120: 0.0% 0: 0.0% 24: 0.0% 0: 0.0% 6
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 3
cp/decl.c:6801 (declare_global_var) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 1
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 3
builtins.c:9826 (fold_builtin_unordered_cmp) 144: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4
convert.c:886 (convert_to_integer) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 3
cp/rtti.c:1420 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5568 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5559 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5707 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1464 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
config/i386/i386.c:8623 (ix86_build_builtin_va_l 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5699 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5580 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
config/i386/i386.c:8619 (ix86_build_builtin_va_l 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5695 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5595 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5703 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5895 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1462 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1433 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1429 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5562 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1466 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
config/i386/i386.c:8629 (ix86_build_builtin_va_l 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5609 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
tree.c:8497 (build_complex_type) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1451 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/parser.c:1914 (push_unparsed_function_queues) 0: 0.0% 0: 0.0% 152: 0.0% 8: 0.0% 1
config/i386/i386.c:8632 (ix86_build_builtin_va_l 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5603 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/decl.c:14499 (maybe_register_incomplete_var) 0: 0.0% 72: 0.0% 152: 0.0% 8: 0.0% 2
c-family/c-common.c:5576 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1393 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
config/i386/i386.c:8626 (ix86_build_builtin_va_l 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5565 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5589 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5586 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1389 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5583 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1453 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
gimple-fold.c:890 (gimple_fold_builtin_memory_op 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 2
gimple-fold.c:875 (gimple_fold_builtin_memory_op 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 2
cp/class.c:1593 (check_abi_tags) 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 4
cp/tree.c:1380 (strip_typedefs) 0: 0.0% 224: 0.0% 160: 0.0% 0: 0.0% 12
fold-const.c:2352 (fold_convert_loc) 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 5
cp/init.c:845 (build_field_list) 160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4
c-family/c-common.c:4723 (c_common_truthvalue_co 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 4
tree-eh.c:1538 (lower_try_finally_switch) 160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
cp/parser.c:16247 (cp_parser_namespace_definitio 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 4
tree.c:9953 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
cp/decl.c:3912 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
emit-rtl.c:5996 (init_emit_once) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 7
tree.c:9915 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
targhooks.c:1884 (default_chkp_bound_type) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
config/i386/i386.c:35716 (ix86_init_builtin_type 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
stor-layout.c:2629 (initialize_sizetypes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
cp/decl.c:3918 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
cp/decl.c:3901 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
tree.c:9919 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
tree.c:9947 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
cp/decl.c:4009 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
tree.c:9941 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
tree.c:9892 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
toplev.c:1256 (general_init) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
stor-layout.c:2633 (initialize_sizetypes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
tree.c:9926 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
cp/decl.c:3940 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 192: 0.0% 0: 0.0% 4
cp/init.c:3760 (build_vec_init) 192: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 6
fold-const.c:2266 (fold_convert_loc) 0: 0.0% 0: 0.0% 192: 0.0% 0: 0.0% 6
cp/parser.c:687 (cp_lexer_new_from_tokens) 0: 0.0% 309552: 1.0% 192: 0.0% 0: 0.0% 6453
cp/call.c:4142 (build_operator_new_call) 192: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4
fold-const.c:4534 (build_range_check) 200: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 5
cp/name-lookup.c:3978 (add_using_namespace_1) 0: 0.0% 0: 0.0% 200: 0.0% 0: 0.0% 5
cp/name-lookup.c:3984 (add_using_namespace_1) 0: 0.0% 0: 0.0% 200: 0.0% 0: 0.0% 5
cp/init.c:2580 (build_new_1) 200: 0.0% 40: 0.0% 0: 0.0% 0: 0.0% 6
cp/rtti.c:1175 (get_pseudo_ti_init) 216: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
expr.c:11426 (build_personality_function) 0: 0.0% 0: 0.0% 216: 0.0% 0: 0.0% 1
cp/pt.c:3661 (canonical_type_parameter) 0: 0.0% 0: 0.0% 216: 0.0% 0: 0.0% 2
cp/semantics.c:2421 (finish_call_expr) 0: 0.0% 0: 0.0% 224: 0.0% 0: 0.0% 7
tree.c:11765 (build_target_option_node) 0: 0.0% 0: 0.0% 232: 0.0% 16: 0.0% 1
tree.c:684 (init_ttree) 0: 0.0% 0: 0.0% 232: 0.0% 16: 0.0% 1
c-family/c-cppbuiltin.c:1460 (builtin_define_wit 234: 0.0% 0: 0.0% 0: 0.0% 42: 0.0% 12
cp/call.c:7468 (build_over_call) 0: 0.0% 0: 0.0% 240: 0.0% 0: 0.0% 6
fold-const.c:6389 (fold_binary_op_with_condition 240: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 6
fold-const.c:943 (associate_trees) 80: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 6
generic-match.c:3684 (generic_simplify) 80: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 6
cp/typeck.c:4879 (cp_build_binary_op) 0: 0.0% 0: 0.0% 240: 0.0% 0: 0.0% 6
fold-const.c:6381 (fold_binary_op_with_condition 240: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 6
varasm.c:3699 (create_constant_pool) 0: 0.0% 0: 0.0% 264: 0.0% 8: 0.0% 1
varasm.c:6072 (init_varasm_once) 0: 0.0% 0: 0.0% 264: 0.0% 8: 0.0% 1
varasm.c:6071 (init_varasm_once) 0: 0.0% 0: 0.0% 264: 0.0% 8: 0.0% 1
cp/rtti.c:1379 (create_tinfo_types) 0: 0.0% 0: 0.0% 264: 0.0% 8: 0.0% 1
cp/mangle.c:3793 (mangle_conv_op_name_for_type) 0: 0.0% 0: 0.0% 264: 0.0% 8: 0.0% 1
fold-const.c:200 (protected_set_expr_location_un 240: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 7
fold-const.c:6131 (extract_muldiv_1) 280: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 7
fold-const.c:6398 (fold_binary_op_with_condition 288: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 6
cp/pt.c:14928 (tsubst_copy_and_build) 288: 0.0% 72: 0.0% 0: 0.0% 0: 0.0% 5
cp/tree.c:1498 (strip_typedefs_expr) 0: 0.0% 0: 0.0% 288: 0.0% 0: 0.0% 6
cp/parser.c:20899 (cp_parser_member_declaration) 0: 0.0% 0: 0.0% 304: 0.0% 0: 0.0% 2
c-family/c-common.c:5907 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 304: 0.0% 0: 0.0% 2
c-family/c-common.c:4092 (c_register_builtin_typ 0: 0.0% 0: 0.0% 304: 0.0% 0: 0.0% 2
cp/parser.c:13677 (cp_parser_type_parameter) 320: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 8
cp/decl.c:3739 (record_builtin_java_type) 0: 0.0% 0: 0.0% 336: 0.0% 0: 0.0% 2
cp/semantics.c:2562 (finish_pseudo_destructor_ex 336: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 7
cp/cp-objcp-common.c:214 (decl_shadowed_for_var_ 0: 0.0% 0: 0.0% 336: 0.0% 0: 0.0% 21
builtins.c:9144 (fold_builtin_fabs) 0: 0.0% 0: 0.0% 352: 0.0% 0: 0.0% 11
fold-const.c:7897 (fold_unary_loc) 0: 0.0% 0: 0.0% 360: 0.0% 0: 0.0% 9
generic-match.c:4769 (generic_simplify) 160: 0.0% 0: 0.0% 200: 0.0% 0: 0.0% 9
cp/init.c:1689 (expand_default_init) 360: 0.0% 144: 0.0% 0: 0.0% 0: 0.0% 7
cp/class.c:6860 (finish_struct) 0: 0.0% 152: 0.0% 376: 0.0% 0: 0.0% 9
cp/pt.c:22001 (build_non_dependent_expr) 384: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 8
cp/tree.c:2168 (bind_template_template_parm) 144: 0.0% 0: 0.0% 240: 0.0% 0: 0.0% 8
cp/decl2.c:3473 (start_static_storage_duration_f 0: 0.0% 0: 0.0% 392: 0.0% 0: 0.0% 1
cp/semantics.c:170 (push_deferring_access_checks 0: 0.0% 224: 0.0% 392: 0.0% 8: 0.0% 3
cp/rtti.c:1335 (get_pseudo_ti_index) 0: 0.0% 0: 0.0% 392: 0.0% 0: 0.0% 1
cp/init.c:3465 (build_vec_init) 160: 0.0% 0: 0.0% 240: 0.0% 0: 0.0% 10
convert.c:596 (convert_to_integer) 40: 0.0% 0: 0.0% 360: 0.0% 0: 0.0% 10
c-family/c-cppbuiltin.c:1432 (lazy_hex_fp_value) 0: 0.0% 0: 0.0% 424: 0.0% 40: 0.0% 12
cp/init.c:440 (build_value_init_noctor) 432: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 6
emit-rtl.c:765 (gen_rtx_MEM) 0: 0.0% 0: 0.0% 432: 0.0% 0: 0.0% 18
varasm.c:1499 (make_decl_rtl) 0: 0.0% 0: 0.0% 432: 0.0% 0: 0.0% 18
cp/parser.c:19584 (cp_parser_initializer_list) 360: 0.0% 0: 0.0% 72: 0.0% 0: 0.0% 6
tree-inline.c:5030 (copy_tree_r) 0: 0.0% 0: 0.0% 432: 0.0% 0: 0.0% 6
cp/typeck.c:5957 (unary_complex_lvalue) 360: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 11
cp/typeck.c:5978 (unary_complex_lvalue) 440: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 11
cp/rtti.c:1352 (get_pseudo_ti_index) 0: 0.0% 0: 0.0% 456: 0.0% 0: 0.0% 3
cp/decl.c:3761 (record_unknown_type) 0: 0.0% 0: 0.0% 456: 0.0% 0: 0.0% 3
cp/rtti.c:1356 (get_pseudo_ti_index) 0: 0.0% 0: 0.0% 456: 0.0% 0: 0.0% 3
cp/rtti.c:1354 (get_pseudo_ti_index) 0: 0.0% 0: 0.0% 456: 0.0% 0: 0.0% 3
cp/decl.c:7297 (expand_static_init) 0: 0.0% 0: 0.0% 480: 0.0% 0: 0.0% 12
cp/class.c:7660 (resolve_address_of_overloaded_f 480: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 12
cp/class.c:7671 (resolve_address_of_overloaded_f 480: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 12
cp/typeck.c:4883 (cp_build_binary_op) 0: 0.0% 0: 0.0% 480: 0.0% 0: 0.0% 12
cp/typeck.c:4913 (cp_build_binary_op) 0: 0.0% 0: 0.0% 480: 0.0% 0: 0.0% 12
tree.c:683 (init_ttree) 0: 0.0% 0: 0.0% 488: 0.0% 96: 0.0% 1
tree.c:11738 (build_optimization_node) 0: 0.0% 0: 0.0% 488: 0.0% 96: 0.0% 1
cp/pt.c:2148 (determine_specialization) 496: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 14
cp/typeck2.c:1999 (build_functional_cast) 504: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 7
convert.c:379 (convert_to_real) 512: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 16
cp/pt.c:1509 (register_specialization) 0: 0.0% 0: 0.0% 520: 0.0% 0: 0.0% 13
cp/call.c:7807 (build_special_member_call) 528: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 12
cp/search.c:2108 (dfs_get_pure_virtuals) 0: 0.0% 192: 0.0% 528: 0.0% 0: 0.0% 13
except.c:270 (init_eh) 0: 0.0% 0: 0.0% 528: 0.0% 16: 0.0% 1
emit-rtl.c:5904 (init_emit_once) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
hash-table.h:914 (expand) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
emit-rtl.c:5913 (init_emit_once) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
emit-rtl.c:5911 (init_emit_once) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
emit-rtl.c:5907 (init_emit_once) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
emit-rtl.c:5909 (init_emit_once) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
cp/tree.c:842 (build_cplus_array_type) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
cp/tree.c:3895 (init_tree) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
cp/decl.c:3398 (build_typename_type) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
cp/pt.c:22449 (init_template_processing) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
optabs.c:6140 (init_one_libfunc) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
cp/decl.c:974 (push_local_name) 560: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 14
cp/class.c:1644 (inherit_targ_abi_tags) 0: 0.0% 0: 0.0% 560: 0.0% 0: 0.0% 14
cp/pt.c:2078 (determine_specialization) 560: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 14
cp/decl.c:7291 (expand_static_init) 0: 0.0% 0: 0.0% 576: 0.0% 0: 0.0% 12
fold-const.c:4530 (build_range_check) 600: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 15
stor-layout.c:1846 (start_bitfield_representativ 0: 0.0% 0: 0.0% 608: 0.0% 0: 0.0% 4
convert.c:981 (convert_to_complex) 624: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 18
generic-match.c:4147 (generic_simplify) 0: 0.0% 0: 0.0% 640: 0.0% 0: 0.0% 16
cp/decl.c:8271 (build_ptrmemfunc_type) 0: 0.0% 0: 0.0% 656: 0.0% 0: 0.0% 41
gimplify.c:2709 (shortcut_cond_expr) 672: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 14
cp/cp-gimplify.c:372 (genericize_break_stmt) 64: 0.0% 0: 0.0% 608: 0.0% 0: 0.0% 21
cp/decl2.c:3050 (get_guard_bits) 0: 0.0% 0: 0.0% 704: 0.0% 0: 0.0% 22
cp/decl2.c:3047 (get_guard_bits) 0: 0.0% 0: 0.0% 704: 0.0% 0: 0.0% 22
cp/decl2.c:3051 (get_guard_bits) 0: 0.0% 0: 0.0% 704: 0.0% 0: 0.0% 22
cp/class.c:1393 (check_tag) 0: 0.0% 0: 0.0% 720: 0.0% 0: 0.0% 18
fold-const.c:6237 (extract_muldiv_1) 720: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 18
cp/pt.c:7449 (lookup_template_function) 720: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 18
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 720: 0.0% 0: 0.0% 15
cp/class.c:4554 (check_methods) 368: 0.0% 192: 0.0% 360: 0.0% 0: 0.0% 18
gimplify.c:4300 (gimplify_modify_expr_rhs) 760: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 19
cp/decl.c:3695 (record_builtin_type) 0: 0.0% 0: 0.0% 760: 0.0% 0: 0.0% 5
gimplify.c:4296 (gimplify_modify_expr_rhs) 760: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 19
cp/class.c:490 (build_base_path) 792: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 18
cp/decl.c:12555 (xref_basetypes) 0: 0.0% 0: 0.0% 800: 0.0% 0: 0.0% 20
generic-match.c:1432 (generic_simplify) 0: 0.0% 0: 0.0% 800: 0.0% 0: 0.0% 25
builtins.c:7326 (fold_builtin_expect) 0: 0.0% 0: 0.0% 800: 0.0% 0: 0.0% 20
gimplify.c:3647 (gimplify_init_ctor_eval) 96: 0.0% 0: 0.0% 720: 0.0% 0: 0.0% 17
emit-rtl.c:550 (const_fixed_from_fixed_value) 0: 0.0% 0: 0.0% 832: 0.0% 0: 0.0% 26
cp/class.c:470 (build_base_path) 288: 0.0% 0: 0.0% 544: 0.0% 0: 0.0% 26
tree.c:8446 (build_complex_type) 0: 0.0% 0: 0.0% 840: 0.0% 0: 0.0% 5
emit-rtl.c:522 (const_double_from_real_value) 0: 0.0% 0: 0.0% 840: 0.0% 0: 0.0% 21
tree.c:10057 (set_call_expr_flags) 0: 0.0% 0: 0.0% 840: 0.0% 0: 0.0% 21
cp/class.c:8574 (build_vtt_inits) 0: 0.0% 1040: 0.0% 864: 0.0% 32: 0.0% 22
cp/tree.c:599 (build_vec_init_expr) 880: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 22
cp/friend.c:189 (add_friend) 0: 0.0% 0: 0.0% 880: 0.0% 0: 0.0% 22
cp/init.c:728 (perform_member_init) 880: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 22
c-family/c-common.c:4632 (pointer_int_sum) 0: 0.0% 0: 0.0% 896: 0.0% 0: 0.0% 28
cp/pt.c:10582 (tsubst_decl) 0: 0.0% 0: 0.0% 912: 0.0% 0: 0.0% 6
cp/pt.c:10923 (tsubst_decl) 0: 0.0% 0: 0.0% 960: 0.0% 0: 0.0% 24
cp/semantics.c:7576 (finish_trait_expr) 288: 0.0% 0: 0.0% 672: 0.0% 0: 0.0% 20
cp/init.c:2851 (build_new_1) 160: 0.0% 0: 0.0% 800: 0.0% 0: 0.0% 24
cp/call.c:7450 (build_over_call) 40: 0.0% 0: 0.0% 960: 0.0% 0: 0.0% 25
cp/rtti.c:171 (init_rtti_processing) 0: 0.0% 0: 0.0% 1024: 0.0% 0: 0.0% 1
fold-const.c:7905 (fold_unary_loc) 288: 0.0% 0: 0.0% 736: 0.0% 0: 0.0% 32
varasm.c:5799 (assemble_alias) 0: 0.0% 616: 0.0% 1032: 0.0% 16: 0.0% 4
tree.c:681 (init_ttree) 0: 0.0% 0: 0.0% 1032: 0.0% 8: 0.0% 1
cp/parser.c:24226 (cp_parser_save_default_args) 0: 0.0% 616: 0.0% 1032: 0.0% 16: 0.0% 4
cp/tree.c:1631 (strip_typedefs_expr) 800: 0.0% 0: 0.0% 240: 0.0% 0: 0.0% 26
cp/init.c:3890 (build_vec_init) 992: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 33
cp/init.c:1230 (expand_virtual_init) 1056: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 24
c-family/c-common.c:8108 (handle_weakref_attribu 1120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 28
c-family/c-common.c:8109 (handle_weakref_attribu 1120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 28
convert.c:384 (convert_to_real) 576: 0.0% 0: 0.0% 544: 0.0% 0: 0.0% 35
cp/init.c:3714 (build_vec_init) 1152: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 36
cp/pt.c:3673 (canonical_type_parameter) 0: 0.0% 0: 0.0% 1200: 0.0% 0: 0.0% 30
cp/search.c:1115 (lookup_field_r) 1200: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 30
cp/tree.c:2164 (bind_template_template_parm) 456: 0.0% 0: 0.0% 760: 0.0% 0: 0.0% 8
cp/semantics.c:2731 (finish_template_template_pa 0: 0.0% 0: 0.0% 1216: 0.0% 0: 0.0% 8
c-family/c-common.c:12043 (release_tree_vector) 1232: 0.0% 840: 0.0% 0: 0.0% 0: 0.0% 30
cp/search.c:1120 (lookup_field_r) 1240: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 31
cp/call.c:9785 (extend_ref_init_temps_1) 0: 0.0% 0: 0.0% 1280: 0.0% 0: 0.0% 32
fold-const.c:13055 (fold_binary_loc) 280: 0.0% 0: 0.0% 1000: 0.0% 0: 0.0% 32
cp/pt.c:2742 (check_explicit_specialization) 1280: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 40
tree.c:6141 (merge_attributes) 280: 0.0% 0: 0.0% 1000: 0.0% 0: 0.0% 32
cp/typeck.c:7520 (cp_build_modify_expr) 120: 0.0% 0: 0.0% 1200: 0.0% 0: 0.0% 33
tree.c:6805 (decl_value_expr_insert) 672: 0.0% 0: 0.0% 672: 0.0% 0: 0.0% 84
cp/parser.c:7198 (cp_parser_unary_expression) 1344: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 42
cp/class.c:7639 (resolve_address_of_overloaded_f 1400: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 35
convert.c:834 (convert_to_integer) 600: 0.0% 0: 0.0% 840: 0.0% 0: 0.0% 36
cp/init.c:3706 (build_vec_init) 1400: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 36
cp/init.c:3260 (build_vec_delete_1) 1376: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 45
tree.c:10721 (build_call_expr_loc_array) 64: 0.0% 0: 0.0% 1376: 0.0% 0: 0.0% 45
cp/init.c:2493 (build_new_1) 1320: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 37
cp/class.c:755 (build_vfn_ref) 144: 0.0% 0: 0.0% 1392: 0.0% 0: 0.0% 32
cfgloop.c:477 (flow_loops_find) 0: 0.0% 864: 0.0% 1584: 0.0% 0: 0.0% 22
fold-const.c:8122 (fold_unary_loc) 560: 0.0% 0: 0.0% 1040: 0.0% 0: 0.0% 40
builtins.c:7282 (build_builtin_expect_predicate) 0: 0.0% 0: 0.0% 1600: 0.0% 0: 0.0% 40
cp/mangle.c:426 (add_substitution) 0: 0.0% 256: 0.0% 1632: 0.0% 0: 0.0% 6
cp/pt.c:13137 (tsubst_copy) 1632: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 51
cp/pt.c:2162 (determine_specialization) 1640: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 41
cp/rtti.c:1232 (create_pseudo_type_info) 0: 0.0% 0: 0.0% 1672: 0.0% 0: 0.0% 11
stor-layout.c:2525 (make_unsigned_type) 0: 0.0% 0: 0.0% 1680: 0.0% 0: 0.0% 10
fold-const.c:3481 (fold_truth_not_expr) 1560: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 43
config/i386/i386.c:7440 (construct_container) 1760: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 110
gimplify.c:7955 (gimplify_expr) 1792: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 56
cp/semantics.c:2224 (perform_koenig_lookup) 240: 0.0% 0: 0.0% 1560: 0.0% 0: 0.0% 45
cp/lex.c:656 (copy_lang_type) 912: 0.0% 0: 0.0% 912: 0.0% 0: 0.0% 12
fold-const.c:7911 (fold_unary_loc) 432: 0.0% 0: 0.0% 1392: 0.0% 0: 0.0% 38
cp/call.c:8223 (build_new_method_call_1) 0: 0.0% 0: 0.0% 1840: 0.0% 0: 0.0% 46
stor-layout.c:2512 (make_signed_type) 0: 0.0% 0: 0.0% 1848: 0.0% 0: 0.0% 11
builtins.c:10580 (fold_builtin_n) 1728: 0.0% 0: 0.0% 128: 0.0% 0: 0.0% 58
cp/class.c:8663 (dfs_build_secondary_vptr_vtt_in 0: 0.0% 0: 0.0% 1872: 0.0% 16: 0.0% 6
emit-rtl.c:5771 (gen_const_vector) 0: 0.0% 0: 0.0% 1872: 0.0% 0: 0.0% 117
cp/typeck.c:7189 (cp_build_c_cast) 80: 0.0% 0: 0.0% 1800: 0.0% 0: 0.0% 47
cp/decl.c:7327 (expand_static_init) 0: 0.0% 0: 0.0% 1880: 0.0% 0: 0.0% 47
fold-const.c:3474 (fold_truth_not_expr) 1640: 0.0% 0: 0.0% 400: 0.0% 0: 0.0% 51
cp/parser.c:24006 (cp_parser_save_member_functio 0: 0.0% 1632: 0.0% 2048: 0.0% 0: 0.0% 5
cp/rtti.c:457 (get_tinfo_decl) 0: 0.0% 0: 0.0% 2048: 0.0% 0: 0.0% 1
ipa-devirt.c:2068 (get_odr_type) 0: 0.0% 1888: 0.0% 2048: 0.0% 0: 0.0% 7
emit-rtl.c:5929 (init_emit_once) 0: 0.0% 0: 0.0% 2064: 0.0% 0: 0.0% 129
cp/except.c:931 (build_throw) 0: 0.0% 0: 0.0% 2080: 0.0% 0: 0.0% 65
cp/class.c:8909 (dfs_accumulate_vtbl_inits) 2080: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 52
gimplify.c:1614 (gimplify_exit_expr) 2112: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 44
cp/init.c:3241 (build_vec_delete_1) 2064: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 45
tree.c:7874 (build_nonstandard_integer_type) 0: 0.0% 0: 0.0% 2184: 0.0% 0: 0.0% 13
gimple.c:559 (gimple_build_nop) 0: 0.0% 0: 0.0% 2200: 0.0% 0: 0.0% 55
cgraph.c:932 (cgraph_allocate_init_indirect_info 0: 0.0% 0: 0.0% 2288: 0.0% 0: 0.0% 26
except.c:453 (gen_eh_region_catch) 0: 0.0% 0: 0.0% 2400: 0.0% 0: 0.0% 60
cp/decl2.c:3012 (get_guard) 0: 0.0% 0: 0.0% 2448: 0.0% 0: 0.0% 17
cp/cp-gimplify.c:144 (genericize_catch_block) 2480: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 62
c-family/c-semantics.c:156 (build_real_imag_expr 1152: 0.0% 0: 0.0% 1344: 0.0% 0: 0.0% 78
tree.c:8227 (build_function_type_list_1) 1080: 0.0% 0: 0.0% 1440: 0.0% 0: 0.0% 63
cp/lex.c:194 (init_reswords) 0: 0.0% 0: 0.0% 2552: 0.0% 504: 0.0% 1
fold-const.c:6203 (extract_muldiv_1) 2560: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 64
tree.c:2129 (build_case_label) 0: 0.0% 0: 0.0% 2632: 0.0% 0: 0.0% 47
cp/init.c:3320 (build_vec_delete_1) 1696: 0.0% 0: 0.0% 960: 0.0% 0: 0.0% 83
cp/decl.c:6142 (wrap_cleanups_r) 320: 0.0% 0: 0.0% 2360: 0.0% 0: 0.0% 67
fold-const.c:15843 (fold_indirect_ref_1) 2688: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 48
stor-layout.c:2565 (make_accum_type) 0: 0.0% 0: 0.0% 2688: 0.0% 0: 0.0% 16
tree-iterator.c:65 (free_stmt_list) 2864: 0.0% 2424: 0.0% 0: 0.0% 0: 0.0% 44
gimple.c:807 (gimple_build_eh_dispatch) 0: 0.0% 0: 0.0% 2880: 0.0% 0: 0.0% 60
cp/friend.c:185 (add_friend) 0: 0.0% 0: 0.0% 2960: 0.0% 0: 0.0% 74
cp/class.c:5894 (create_vtable_ptr) 0: 0.0% 0: 0.0% 3040: 0.0% 0: 0.0% 20
cp/call.c:6878 (convert_for_arg_passing) 224: 0.0% 0: 0.0% 2880: 0.0% 0: 0.0% 97
cp/call.c:5848 (build_op_delete_call) 3120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 78
cp/init.c:2686 (build_new_1) 0: 0.0% 0: 0.0% 3120: 0.0% 0: 0.0% 78
cp/init.c:3246 (build_vec_delete_1) 3096: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 90
cp/cvt.c:1015 (convert_to_void) 1880: 0.0% 0: 0.0% 1400: 0.0% 0: 0.0% 82
cp/init.c:2981 (build_new_1) 640: 0.0% 0: 0.0% 2640: 0.0% 0: 0.0% 82
cp/parser.c:1881 (cp_parser_context_new) 3216: 0.0% 0: 0.0% 72: 0.0% 0: 0.0% 137
fold-const.c:2424 (non_lvalue_loc) 1728: 0.0% 0: 0.0% 1632: 0.0% 0: 0.0% 105
cp/init.c:4128 (build_delete) 280: 0.0% 0: 0.0% 3080: 0.0% 0: 0.0% 84
stor-layout.c:2539 (make_fract_type) 0: 0.0% 0: 0.0% 3360: 0.0% 0: 0.0% 20
cp/cp-gimplify.c:132 (genericize_try_block) 3400: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 85
gimple.c:662 (gimple_build_catch) 3472: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 62
cp/tree.c:4089 (add_stmt_to_compound) 120: 0.0% 0: 0.0% 3360: 0.0% 0: 0.0% 87
optabs.c:6118 (build_libfunc_function) 0: 0.0% 0: 0.0% 3672: 0.0% 0: 0.0% 17
tree.c:9593 (make_vector_type) 0: 0.0% 0: 0.0% 3696: 0.0% 0: 0.0% 22
fold-const.c:7287 (fold_plusminus_mult_expr) 2560: 0.0% 0: 0.0% 1280: 0.0% 0: 0.0% 96
cp/class.c:7588 (resolve_address_of_overloaded_f 3920: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 98
cp/pt.c:14827 (tsubst_copy_and_build) 3904: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 124
cp/decl.c:13990 (finish_destructor_body) 4000: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 100
tree.c:6778 (decl_debug_expr_insert) 0: 0.0% 0: 0.0% 4064: 0.0% 0: 0.0% 254
cp/method.c:737 (do_build_copy_assign) 48: 0.0% 0: 0.0% 4032: 0.0% 0: 0.0% 85
cp/method.c:745 (do_build_copy_assign) 0: 0.0% 0: 0.0% 4080: 0.0% 0: 0.0% 85
cp/parser.c:6956 (cp_parser_parenthesized_expres 3960: 0.0% 720: 0.0% 144: 0.0% 0: 0.0% 56
emit-rtl.c:5855 (init_emit_regs) 0: 0.0% 0: 0.0% 4120: 0.0% 0: 0.0% 103
generic-match.c:1393 (generic_simplify) 1504: 0.0% 0: 0.0% 2720: 0.0% 0: 0.0% 132
cp/decl.c:3687 (record_builtin_type) 0: 0.0% 0: 0.0% 4256: 0.0% 0: 0.0% 28
gimplify.c:2667 (shortcut_cond_r) 4288: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 134
cp/init.c:4148 (build_delete) 480: 0.0% 0: 0.0% 3888: 0.0% 0: 0.0% 91
cp/name-lookup.c:649 (add_decl_to_level) 0: 0.0% 168: 0.0% 4520: 0.0% 0: 0.0% 4
fold-const.c:15947 (build_fold_indirect_ref_loc) 4544: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 142
cp/typeck.c:8738 (check_return_expr) 0: 0.0% 0: 0.0% 4600: 0.0% 0: 0.0% 115
emit-rtl.c:453 (gen_rtx_EXPR_LIST) 5016: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 209
tree.c:3293 (save_expr) 640: 0.0% 0: 0.0% 4384: 0.0% 0: 0.0% 157
fold-const.c:15908 (fold_indirect_ref_1) 5376: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 96
cp/friend.c:417 (make_friend_class) 0: 0.0% 0: 0.0% 5480: 0.0% 0: 0.0% 137
cp/decl.c:3312 (finish_case_label) 0: 0.0% 0: 0.0% 5504: 0.0% 0: 0.0% 43
convert.c:896 (convert_to_integer) 2400: 0.0% 0: 0.0% 3232: 0.0% 0: 0.0% 176
cp/name-lookup.c:1606 (begin_scope) 0: 0.0% 176: 0.0% 5944: 0.0% 0: 0.0% 25
cp/init.c:652 (perform_member_init) 6000: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 150
cp/class.c:6603 (finish_struct_1) 80: 0.0% 0: 0.0% 5920: 0.0% 0: 0.0% 150
cp/decl.c:8259 (build_ptrmemfunc_type) 0: 0.0% 0: 0.0% 6232: 0.0% 0: 0.0% 41
cp/decl.c:8255 (build_ptrmemfunc_type) 0: 0.0% 0: 0.0% 6232: 0.0% 0: 0.0% 41
cp/cp-gimplify.c:156 (build_gimple_eh_filter_tre 6240: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 156
cp/cp-gimplify.c:159 (build_gimple_eh_filter_tre 6240: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 156
cp/call.c:9427 (perform_implicit_conversion_flag 6368: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 199
cp/pt.c:2027 (determine_specialization) 6400: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 160
fold-const.c:1791 (size_binop_loc) 6560: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 164
cp/init.c:3319 (build_vec_delete_1) 4136: 0.0% 0: 0.0% 2552: 0.0% 0: 0.0% 152
cp/pt.c:17282 (try_one_overload) 6712: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 181
fold-const.c:4538 (build_range_check) 6720: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 168
cp/call.c:4144 (build_operator_new_call) 6720: 0.0% 1760: 0.0% 40: 0.0% 0: 0.0% 213
cp/rtti.c:951 (tinfo_base_init) 6840: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 95
cp/rtti.c:1048 (class_initializer) 6840: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 95
cp/pt.c:16367 (fn_type_unification) 6880: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 172
cp/decl.c:8250 (build_ptrmemfunc_type) 0: 0.0% 0: 0.0% 6888: 0.0% 0: 0.0% 41
cp/typeck.c:6313 (cp_build_compound_expr) 6800: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 173
cp/friend.c:411 (make_friend_class) 0: 0.0% 0: 0.0% 7040: 0.0% 0: 0.0% 176
cp/pt.c:15036 (tsubst_copy_and_build) 7128: 0.0% 720: 0.0% 0: 0.0% 0: 0.0% 102
cp/typeck.c:5168 (pointer_diff) 1560: 0.0% 0: 0.0% 5600: 0.0% 0: 0.0% 179
ipa-devirt.c:2023 (get_odr_type) 0: 0.0% 0: 0.0% 7584: 0.0% 0: 0.0% 158
cp/call.c:413 (build_call_a) 1008: 0.0% 0: 0.0% 6576: 0.0% 0: 0.0% 316
cp/typeck.c:7690 (build_x_modify_expr) 7640: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 191
convert.c:584 (convert_to_integer) 1952: 0.0% 0: 0.0% 5728: 0.0% 0: 0.0% 240
config/i386/i386.c:27797 (ix86_get_builtin_func_ 560: 0.0% 0: 0.0% 7200: 0.0% 0: 0.0% 194
cp/pt.c:17014 (resolve_overloaded_unification) 7888: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 212
cp/class.c:8898 (dfs_accumulate_vtbl_inits) 0: 0.0% 0: 0.0% 7968: 0.0% 0: 0.0% 249
stor-layout.c:2132 (finish_builtin_struct) 0: 0.0% 0: 0.0% 8208: 0.0% 0: 0.0% 54
tree.c:675 (init_ttree) 0: 0.0% 0: 0.0% 8216: 0.0% 24: 0.0% 1
tree.c:672 (init_ttree) 0: 0.0% 0: 0.0% 8216: 0.0% 24: 0.0% 1
varasm.c:6073 (init_varasm_once) 0: 0.0% 0: 0.0% 8216: 0.0% 24: 0.0% 1
cp/cp-objcp-common.c:224 (init_shadowed_var_for_ 0: 0.0% 0: 0.0% 8216: 0.0% 24: 0.0% 1
fold-const.c:3572 (invert_truthvalue_loc) 6368: 0.0% 0: 0.0% 2016: 0.0% 0: 0.0% 262
cp/typeck2.c:1714 (build_x_arrow) 8400: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 210
fold-const.c:10652 (fold_binary_loc) 6160: 0.0% 0: 0.0% 2360: 0.0% 0: 0.0% 213
fold-const.c:8639 (maybe_canonicalize_comparison 7760: 0.0% 0: 0.0% 840: 0.0% 0: 0.0% 215
gimple.c:678 (gimple_build_eh_filter) 8736: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 156
cp/parser.c:25495 (cp_parser_cache_defarg) 8920: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 223
cp/init.c:3097 (build_new) 5280: 0.0% 0: 0.0% 3776: 0.0% 0: 0.0% 283
gimplify.c:2837 (shortcut_cond_expr) 9376: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 293
cp/decl2.c:834 (finish_static_data_member_decl) 0: 0.0% 6616: 0.0% 9608: 0.0% 0: 0.0% 9
gimplify.c:2844 (shortcut_cond_expr) 9920: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 310
cp/init.c:703 (perform_member_init) 9960: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 249
cp/cvt.c:243 (cp_convert_to_pointer) 10016: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 313
cp/init.c:2905 (build_new_1) 2120: 0.0% 0: 0.0% 7920: 0.0% 0: 0.0% 251
cp/init.c:2977 (build_new_1) 2120: 0.0% 0: 0.0% 7920: 0.0% 0: 0.0% 251
cp/init.c:2955 (build_new_1) 2120: 0.0% 0: 0.0% 7920: 0.0% 0: 0.0% 251
cp/class.c:3648 (check_field_decls) 10080: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 252
cp/method.c:141 (make_thunk) 0: 0.0% 0: 0.0% 10368: 0.0% 0: 0.0% 48
cp/method.c:636 (do_build_copy_constructor) 10600: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 265
cp/method.c:634 (do_build_copy_constructor) 10600: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 265
tree.c:1881 (build_real) 2592: 0.0% 0: 0.0% 8136: 0.0% 0: 0.0% 447
cp/class.c:1298 (alter_access) 0: 0.0% 0: 0.0% 11000: 0.0% 0: 0.0% 275
cp/class.c:1244 (add_method) 0: 0.0% 568: 0.0% 11528: 0.0% 0: 0.0% 99
gimplify.c:2177 (gimplify_self_mod_expr) 12240: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 306
gimplify.c:7939 (gimplify_expr) 12336: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 257
cp/init.c:2138 (build_raw_new_expr) 0: 0.0% 0: 0.0% 12584: 0.0% 0: 0.0% 227
cp/call.c:414 (build_call_a) 1680: 0.0% 0: 0.0% 10960: 0.0% 0: 0.0% 316
cp/method.c:629 (do_build_copy_constructor) 12720: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 265
fold-const.c:9934 (fold_binary_loc) 4240: 0.0% 0: 0.0% 8560: 0.0% 0: 0.0% 320
cp/typeck.c:5898 (cp_build_unary_op) 8640: 0.0% 0: 0.0% 4720: 0.0% 0: 0.0% 334
cp/class.c:689 (build_vfield_ref) 10992: 0.0% 0: 0.0% 2400: 0.0% 0: 0.0% 279
fold-const.c:9940 (fold_binary_loc) 2880: 0.0% 0: 0.0% 10600: 0.0% 0: 0.0% 337
cp/typeck.c:5919 (cp_build_unary_op) 12768: 0.0% 0: 0.0% 736: 0.0% 0: 0.0% 422
cp/typeck2.c:1460 (process_init_constructor_reco 0: 0.0% 0: 0.0% 14256: 0.0% 0: 0.0% 198
tree.c:1882 (build_real) 3456: 0.0% 0: 0.0% 10848: 0.0% 0: 0.0% 447
cp/decl.c:5503 (reshape_init_class) 14616: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 203
cp/call.c:5100 (build_conditional_expr_1) 7008: 0.0% 0: 0.0% 7824: 0.0% 0: 0.0% 309
hash-table.h:914 (expand) 0: 0.0% 536: 0.0% 15456: 0.0% 120: 0.0% 5
cp/init.c:1677 (expand_default_init) 15680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 392
cp/call.c:7425 (build_over_call) 15960: 0.0% 0: 0.0% 200: 0.0% 0: 0.0% 404
fold-const.c:12306 (fold_binary_loc) 16160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 505
tree.c:677 (init_ttree) 0: 0.0% 0: 0.0% 16456: 0.0% 72: 0.0% 1
gimplify.c:3070 (gimplify_cond_expr) 16680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 417
gimplify.c:3066 (gimplify_cond_expr) 16680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 417
cp/name-lookup.c:3844 (push_decl_namespace) 17040: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 427
cp/init.c:2134 (build_raw_new_expr) 0: 0.0% 0: 0.0% 17320: 0.0% 0: 0.0% 433
cp/class.c:9465 (build_rtti_vtbl_entries) 17928: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 249
cp/pt.c:9242 (instantiate_class_template_1) 18760: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 469
cp/cp-gimplify.c:244 (genericize_cp_loop) 3648: 0.0% 0: 0.0% 15168: 0.0% 0: 0.0% 392
cp/class.c:9385 (add_vcall_offset) 0: 0.0% 4872: 0.0% 18936: 0.0% 288: 0.0% 224
cp/init.c:891 (sort_mem_initializers) 19120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 478
cp/class.c:498 (build_base_path) 4128: 0.0% 0: 0.0% 16384: 0.0% 0: 0.0% 641
cp/parser.c:22316 (cp_parser_gnu_attribute_list) 9800: 0.0% 0: 0.0% 11680: 0.0% 0: 0.0% 537
cp/pt.c:7457 (lookup_template_function) 18120: 0.0% 0: 0.0% 4480: 0.0% 0: 0.0% 565
tree.c:1510 (wide_int_to_tree) 10056: 0.0% 0: 0.0% 13008: 0.0% 0: 0.0% 961
attribs.c:627 (decl_attributes) 12880: 0.0% 0: 0.0% 10200: 0.0% 0: 0.0% 577
cp/typeck.c:7477 (cp_build_modify_expr) 23584: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 737
gimple.c:1566 (gimple_set_bb) 0: 0.0% 13784: 0.0% 23920: 0.0% 0: 0.0% 80
cp/class.c:3949 (record_subobject_offset) 24680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 617
cp/semantics.c:3050 (finish_base_specifier) 24760: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 619
tree-inline.c:1212 (copy_tree_body_r) 32: 0.0% 0: 0.0% 24800: 0.0% 0: 0.0% 776
cp/class.c:5856 (create_vtable_ptr) 18400: 0.0% 0: 0.0% 6760: 0.0% 0: 0.0% 629
cp/pt.c:448 (push_inline_template_parms_recursiv 19600: 0.0% 0: 0.0% 5600: 0.0% 0: 0.0% 225
fold-const.c:792 (negate_expr) 25600: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 800
cp/parser.c:22292 (cp_parser_gnu_attribute_list) 25920: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 648
tree.c:8297 (build_function_type_array_1) 4080: 0.0% 0: 0.0% 21880: 0.0% 0: 0.0% 649
fold-const.c:13465 (fold_ternary_loc) 5952: 0.0% 0: 0.0% 20352: 0.0% 0: 0.0% 548
cp/method.c:1798 (implicitly_declare_fn) 40: 0.0% 0: 0.0% 26360: 0.0% 0: 0.0% 660
cp/init.c:3343 (create_temporary_var) 0: 0.0% 0: 0.0% 26640: 0.0% 0: 0.0% 185
gimplify.c:2183 (gimplify_self_mod_expr) 26640: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 666
except.c:494 (gen_eh_landing_pad) 0: 0.0% 864: 0.0% 27968: 0.0% 0: 0.0% 387
cp/pt.c:7225 (coerce_innermost_template_parms) 21320: 0.0% 0: 0.0% 6920: 0.0% 0: 0.0% 706
cp/class.c:2445 (dfs_find_final_overrider_1) 29360: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 734
cp/semantics.c:524 (begin_maybe_infinite_loop) 0: 0.0% 480: 0.0% 29704: 0.0% 0: 0.0% 745
cp/pt.c:19033 (get_bindings) 29824: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 794
cp/cp-gimplify.c:242 (genericize_cp_loop) 6400: 0.0% 0: 0.0% 23616: 0.0% 0: 0.0% 938
cp/pt.c:18707 (more_specialized_fn) 30176: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 698
cp/cp-gimplify.c:269 (genericize_cp_loop) 6400: 0.0% 0: 0.0% 23776: 0.0% 0: 0.0% 943
cp/typeck.c:214 (commonparms) 29760: 0.0% 0: 0.0% 440: 0.0% 0: 0.0% 755
cp/cp-gimplify.c:104 (finish_bc_block) 6400: 0.0% 0: 0.0% 23808: 0.0% 0: 0.0% 944
cp/parser.c:19306 (cp_parser_initializer) 3360: 0.0% 0: 0.0% 27960: 0.0% 0: 0.0% 783
gimplify.c:2661 (shortcut_cond_r) 31392: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 654
cp/pt.c:18708 (more_specialized_fn) 32264: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 698
rtl.c:151 (rtvec_alloc) 2552: 0.0% 0: 0.0% 30352: 0.0% 7608: 0.3% 227
cp/pt.c:16252 (fn_type_unification) 33160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 829
cp/decl.c:13946 (begin_destructor_body) 32560: 0.0% 0: 0.0% 2400: 0.0% 0: 0.0% 874
generic-match.c:1471 (generic_simplify) 11136: 0.0% 0: 0.0% 24032: 0.0% 0: 0.0% 1099
cp/name-lookup.c:192 (binding_table_new) 0: 0.0% 0: 0.0% 35856: 0.0% 0: 0.0% 1494
gimplify.c:1600 (build_and_jump) 36000: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1125
cp/typeck.c:3161 (cp_build_array_ref) 18480: 0.0% 0: 0.0% 19376: 0.0% 0: 0.0% 676
cfgloop.c:297 (establish_preds) 0: 0.0% 0: 0.0% 38560: 0.0% 0: 0.0% 964
gimplify.c:2194 (gimplify_self_mod_expr) 39560: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 989
cp/decl.c:12533 (xref_basetypes) 0: 0.0% 0: 0.0% 42040: 0.0% 0: 0.0% 1051
cp/name-lookup.c:5300 (arg_assoc_namespace) 43200: 0.0% 10800: 0.0% 0: 0.0% 0: 0.0% 750
cp/pt.c:4375 (process_partial_specialization) 0: 0.0% 0: 0.0% 47320: 0.0% 0: 0.0% 1183
cp/class.c:9145 (build_vtbl_initializer) 0: 0.0% 19920: 0.1% 47464: 0.0% 1120: 0.0% 415
cp/class.c:4418 (build_base_field) 0: 0.0% 0: 0.0% 47576: 0.0% 0: 0.0% 313
cp/tree.c:735 (rvalue) 27968: 0.0% 0: 0.0% 20832: 0.0% 0: 0.0% 1525
cp/decl.c:733 (poplevel) 49240: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1232
fold-const.c:3433 (fold_truth_not_expr) 32080: 0.0% 0: 0.0% 18400: 0.0% 0: 0.0% 1262
tree.c:4599 (build_nt) 43008: 0.0% 0: 0.0% 9600: 0.0% 0: 0.0% 1431
gimplify.c:1045 (voidify_wrapper_expr) 54680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1367
convert.c:625 (convert_to_integer) 17696: 0.0% 0: 0.0% 38112: 0.0% 0: 0.0% 1744
cp/semantics.c:3974 (simplify_aggr_init_expr) 12864: 0.0% 0: 0.0% 45760: 0.0% 0: 0.0% 1832
cp/decl.c:13026 (finish_enum_value_list) 0: 0.0% 0: 0.0% 59592: 0.0% 0: 0.0% 2483
cp/typeck.c:5900 (cp_build_unary_op) 32640: 0.0% 0: 0.0% 28800: 0.0% 0: 0.0% 1536
fold-const.c:16283 (fold_build_pointer_plus_loc) 29240: 0.0% 0: 0.0% 33880: 0.0% 0: 0.0% 1578
cp/name-lookup.c:116 (binding_entry_make) 0: 0.0% 0: 0.0% 73368: 0.0% 0: 0.0% 3057
hash-table.h:914 (expand) 0: 0.0% 19936: 0.1% 74128: 0.0% 2928: 0.1% 63
gimplify.c:5508 (gimplify_target_expr) 75280: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 1882
fold-const.c:2229 (fold_convert_loc) 27488: 0.0% 0: 0.0% 48832: 0.0% 0: 0.0% 2385
tree.c:10574 (build_empty_stmt) 17408: 0.0% 0: 0.0% 59712: 0.0% 0: 0.0% 2410
tree-inline.c:5063 (remap_save_expr) 336: 0.0% 0: 0.0% 77360: 0.0% 0: 0.0% 1396
cp/cp-gimplify.c:203 (genericize_if_stmt) 12000: 0.0% 0: 0.0% 67392: 0.0% 0: 0.0% 1654
cp/typeck2.c:763 (split_nonconstant_init) 20400: 0.0% 0: 0.0% 61120: 0.0% 0: 0.0% 2038
cp/parser.c:12799 (cp_parser_mem_initializer) 10480: 0.0% 0: 0.0% 77720: 0.0% 0: 0.0% 2205
cp/pt.c:419 (push_inline_template_parms_recursiv 93960: 0.1% 0: 0.0% 360: 0.0% 0: 0.0% 2358
cp/decl.c:4174 (cxx_builtin_function) 0: 0.0% 0: 0.0% 94608: 0.0% 0: 0.0% 438
tree.c:1939 (build_string) 6459: 0.0% 0: 0.0% 90863: 0.0% 8178: 0.4% 1729
cp/class.c:8975 (build_vtbl_initializer) 97608: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 249
cp/semantics.c:3982 (simplify_aggr_init_expr) 97800: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 2445
hash-map.h:123 (create_ggc) 0: 0.0% 0: 0.0% 100704: 0.0% 0: 0.0% 2098
cp/parser.c:12788 (cp_parser_mem_initializer) 10720: 0.0% 0: 0.0% 91280: 0.0% 0: 0.0% 2550
cp/method.c:859 (build_stub_object) 102464: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 3202
cp/search.c:2460 (lookup_conversions_r) 102680: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 2567
cp/mangle.c:1164 (write_template_prefix) 103160: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 2579
cp/parser.c:1299 (cp_token_cache_new) 102960: 0.1% 0: 0.0% 288: 0.0% 0: 0.0% 6453
cp/search.c:2445 (lookup_conversions_r) 103520: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 2588
except.c:411 (gen_eh_region) 0: 0.0% 28472: 0.1% 104408: 0.0% 0: 0.0% 1438
cp/typeck.c:4827 (cp_build_binary_op) 105520: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 2638
function.c:2372 (assign_parms_augmented_arg_list 105856: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 827
cp/call.c:5252 (add_candidates) 106360: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 2659
tree-cfg.c:622 (create_bb) 0: 0.0% 43544: 0.1% 109688: 0.0% 13824: 0.6% 363
cp/pt.c:3963 (template_parms_to_args) 74600: 0.1% 0: 0.0% 41000: 0.0% 0: 0.0% 2890
cp/typeck.c:7669 (cp_build_modify_expr) 58240: 0.0% 0: 0.0% 58040: 0.0% 0: 0.0% 2907
cp/name-lookup.c:5483 (arg_assoc_class) 119288: 0.1% 53784: 0.2% 0: 0.0% 0: 0.0% 1482
cp/semantics.c:269 (pop_to_parent_deferring_acce 105336: 0.1% 0: 0.0% 14440: 0.0% 6304: 0.3% 788
cp/name-lookup.c:158 (binding_table_construct) 13184: 0.0% 0: 0.0% 108800: 0.0% 0: 0.0% 1698
cp/init.c:131 (initialize_vtbl_ptrs) 122680: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 3067
cp/decl.c:13246 (build_enumerator) 0: 0.0% 0: 0.0% 124120: 0.0% 0: 0.0% 3103
hash-table.h:914 (expand) 0: 0.0% 5152: 0.0% 125096: 0.0% 200: 0.0% 7
gimplify.c:1181 (gimplify_bind_expr) 4160: 0.0% 0: 0.0% 121520: 0.0% 0: 0.0% 1571
cp/tree.c:1669 (copy_binfo) 0: 0.0% 0: 0.0% 127896: 0.0% 0: 0.0% 1313
varpool.c:159 (create_empty) 0: 0.0% 0: 0.0% 129920: 0.0% 0: 0.0% 1015
cp/parser.c:13472 (cp_parser_template_parameter) 131800: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 3295
cp/pt.c:20654 (tsubst_initializer_list) 133960: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 3349
attribs.c:602 (decl_attributes) 2960: 0.0% 0: 0.0% 132600: 0.0% 0: 0.0% 3389
cp/pt.c:19362 (most_specialized_partial_spec) 141360: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 3534
tree-inline.c:5029 (copy_tree_r) 7416: 0.0% 0: 0.0% 137712: 0.0% 0: 0.0% 6047
cp/parser.c:23919 (cp_parser_functional_cast) 3840: 0.0% 0: 0.0% 144480: 0.1% 0: 0.0% 3708
cp/pt.c:7407 (add_pending_template) 116224: 0.1% 0: 0.0% 32288: 0.0% 0: 0.0% 9282
cp/class.c:4589 (build_clone) 0: 0.0% 0: 0.0% 153792: 0.1% 0: 0.0% 4806
cp/class.c:6543 (sorted_fields_type_new) 0: 0.0% 0: 0.0% 155592: 0.1% 9672: 0.4% 1064
cp/init.c:851 (build_field_list) 161480: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 4037
cp/pt.c:22013 (build_non_dependent_expr) 171008: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 5344
cp/typeck2.c:305 (abstract_virtuals_error_sfinae 76192: 0.1% 0: 0.0% 98240: 0.0% 0: 0.0% 5451
gimplify.c:5505 (gimplify_target_expr) 176360: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 4409
cp/decl.c:10888 (grokdeclarator) 0: 0.0% 0: 0.0% 178296: 0.1% 0: 0.0% 1173
except.c:487 (gen_eh_landing_pad) 0: 0.0% 0: 0.0% 188280: 0.1% 0: 0.0% 4707
cp/tree.c:2696 (build_min_non_dep) 47312: 0.0% 0: 0.0% 148824: 0.1% 0: 0.0% 4758
cp/call.c:5388 (build_new_op_1) 206200: 0.2% 0: 0.0% 0: 0.0% 0: 0.0% 5155
gimple.c:691 (gimple_build_eh_must_not_throw) 223056: 0.2% 0: 0.0% 0: 0.0% 0: 0.0% 4647
gimple.c:756 (gimple_build_resx) 2880: 0.0% 0: 0.0% 223056: 0.1% 0: 0.0% 4707
cp/cp-gimplify.c:1046 (cp_genericize_r) 184280: 0.1% 0: 0.0% 42120: 0.0% 0: 0.0% 5660
cp/class.c:1246 (add_method) 0: 0.0% 128400: 0.4% 239760: 0.1% 0: 0.0% 1495
tree.c:7898 (build_range_type_1) 208656: 0.2% 0: 0.0% 32424: 0.0% 0: 0.0% 1435
cp/typeck.c:8746 (check_return_expr) 8320: 0.0% 0: 0.0% 233080: 0.1% 0: 0.0% 6035
cp/pt.c:3851 (end_template_parm_list) 39800: 0.0% 0: 0.0% 203280: 0.1% 0: 0.0% 6077
cp/pt.c:538 (add_to_template_args) 244096: 0.2% 0: 0.0% 0: 0.0% 0: 0.0% 6100
tree.c:1242 (build_new_int_cst) 19008: 0.0% 0: 0.0% 226056: 0.1% 0: 0.0% 9945
cp/decl2.c:807 (note_vague_linkage_fn) 0: 0.0% 2912: 0.0% 259072: 0.1% 0: 0.0% 13
tree.c:8021 (build_array_type_1) 227640: 0.2% 0: 0.0% 33936: 0.0% 0: 0.0% 1557
cp/decl.c:13725 (start_preparsed_function) 84960: 0.1% 0: 0.0% 178200: 0.1% 0: 0.0% 6579
cp/name-lookup.c:310 (cxx_binding_make) 41480: 0.0% 0: 0.0% 226120: 0.1% 0: 0.0% 6690
c-family/c-common.c:12030 (make_tree_vector) 267920: 0.2% 64520: 0.2% 80: 0.0% 0: 0.0% 8313
cp/pt.c:3847 (end_template_parm_list) 39792: 0.0% 0: 0.0% 231640: 0.1% 16: 0.0% 6077
cp/pt.c:15315 (tsubst_copy_and_build) 273680: 0.2% 0: 0.0% 0: 0.0% 0: 0.0% 6842
cp/class.c:578 (build_simple_base_path) 97728: 0.1% 0: 0.0% 176592: 0.1% 0: 0.0% 5715
hash-table.h:914 (expand) 0: 0.0% 264232: 0.8% 278944: 0.1% 712: 0.0% 19
gimple.c:497 (gimple_build_cond) 10480: 0.0% 0: 0.0% 268720: 0.1% 0: 0.0% 3490
cp/typeck.c:5030 (cp_build_binary_op) 158800: 0.1% 0: 0.0% 120560: 0.0% 0: 0.0% 6984
cp/tree.c:416 (build_aggr_init_array) 59512: 0.0% 0: 0.0% 226648: 0.1% 0: 0.0% 4423
cp/pt.c:10318 (tsubst_template_parms) 2320: 0.0% 0: 0.0% 284800: 0.1% 0: 0.0% 7178
cp/pt.c:10296 (tsubst_template_parms) 2712: 0.0% 0: 0.0% 295312: 0.1% 0: 0.0% 7178
cp/decl.c:10351 (grokdeclarator) 0: 0.0% 0: 0.0% 301264: 0.1% 0: 0.0% 1982
tree-inline.c:712 (remap_block) 0: 0.0% 0: 0.0% 310024: 0.1% 0: 0.0% 3523
cfgloop.c:430 (flow_loops_find) 0: 0.0% 0: 0.0% 311168: 0.1% 0: 0.0% 9724
c-family/c-gimplify.c:232 (c_build_bind_expr) 163008: 0.1% 0: 0.0% 152784: 0.1% 0: 0.0% 6579
cp/class.c:1033 (add_method) 0: 0.0% 66168: 0.2% 334152: 0.1% 0: 0.0% 5560
symtab.c:511 (create_reference) 0: 0.0% 127448: 0.4% 337152: 0.1% 3072: 0.1% 6682
cp/parser.c:5608 (cp_parser_nested_name_specifie 164280: 0.1% 0: 0.0% 173736: 0.1% 0: 0.0% 14084
cp/pt.c:7998 (lookup_template_class_1) 0: 0.0% 0: 0.0% 340872: 0.1% 0: 0.0% 14203
cfgloop.c:348 (alloc_loop) 0: 0.0% 0: 0.0% 342016: 0.1% 0: 0.0% 10688
cp/decl.c:13230 (build_enumerator) 0: 0.0% 0: 0.0% 347536: 0.1% 0: 0.0% 3103
tree-eh.c:2077 (lower_eh_constructs_2) 3040: 0.0% 0: 0.0% 348080: 0.1% 0: 0.0% 4389
gimplify.c:4586 (gimplify_modify_expr) 0: 0.0% 0: 0.0% 352800: 0.1% 0: 0.0% 4410
cp/pt.c:3787 (process_template_parm) 9184: 0.0% 0: 0.0% 359856: 0.1% 0: 0.0% 3295
tree.c:1771 (build_constructor) 209424: 0.2% 0: 0.0% 166512: 0.1% 0: 0.0% 15664
langhooks.c:578 (add_builtin_function_common) 0: 0.0% 0: 0.0% 381240: 0.1% 0: 0.0% 1765
cfgloop.c:366 (init_loops_structure) 0: 0.0% 520: 0.0% 388440: 0.1% 0: 0.0% 9724
cp/tree.c:2661 (build_min) 8224: 0.0% 0: 0.0% 393448: 0.1% 0: 0.0% 10031
cp/class.c:6429 (layout_class_type) 0: 0.0% 0: 0.0% 424384: 0.1% 0: 0.0% 2792
cp/tree.c:355 (build_target_expr) 119000: 0.1% 0: 0.0% 311304: 0.1% 0: 0.0% 7684
tree-inline.c:5382 (copy_decl_no_change) 5520: 0.0% 0: 0.0% 465360: 0.2% 0: 0.0% 3381
cp/pt.c:22340 (append_type_to_template_for_acces 0: 0.0% 63640: 0.2% 485904: 0.2% 6448: 0.3% 4525
gimple.c:1687 (gimple_copy) 19320: 0.0% 0: 0.0% 474416: 0.2% 12144: 0.5% 4871
cp/parser.c:13570 (cp_parser_type_parameter) 495640: 0.4% 0: 0.0% 0: 0.0% 0: 0.0% 12391
cp/semantics.c:2721 (finish_template_type_parm) 495960: 0.4% 0: 0.0% 0: 0.0% 0: 0.0% 12399
gimple.c:548 (gimple_build_goto) 495880: 0.4% 0: 0.0% 168: 0.0% 0: 0.0% 8858
cp/cvt.c:1433 (convert_to_void) 202336: 0.2% 0: 0.0% 304256: 0.1% 0: 0.0% 15831
cp/typeck.c:2459 (build_class_member_access_expr 508896: 0.4% 0: 0.0% 0: 0.0% 0: 0.0% 10602
cp/decl.c:3424 (build_typename_type) 0: 0.0% 0: 0.0% 544768: 0.2% 0: 0.0% 3584
cp/decl.c:8150 (grokvardecl) 0: 0.0% 1728: 0.0% 544896: 0.2% 0: 0.0% 3796
cp/semantics.c:1387 (begin_compound_stmt) 44496: 0.0% 0: 0.0% 519408: 0.2% 0: 0.0% 11748
cp/pt.c:8006 (lookup_template_class_1) 0: 0.0% 0: 0.0% 568120: 0.2% 0: 0.0% 14203
cp/tree.c:3166 (build_dummy_object) 556512: 0.5% 0: 0.0% 43616: 0.0% 0: 0.0% 18754
cp/class.c:6469 (layout_class_type) 615296: 0.5% 0: 0.0% 0: 0.0% 0: 0.0% 4048
cp/pt.c:17362 (try_class_unification) 618920: 0.5% 0: 0.0% 0: 0.0% 0: 0.0% 15405
gimple.c:725 (gimple_build_try) 624008: 0.5% 0: 0.0% 56: 0.0% 0: 0.0% 11144
cp/pt.c:3833 (process_template_parm) 79560: 0.1% 0: 0.0% 548200: 0.2% 0: 0.0% 15694
cp/pt.c:10353 (tsubst_template_parm) 6600: 0.0% 0: 0.0% 622160: 0.2% 0: 0.0% 15719
cp/parser.c:13886 (cp_parser_template_id) 321408: 0.3% 0: 0.0% 322176: 0.1% 0: 0.0% 26816
function.c:6707 (add_local_decl) 0: 0.0% 365840: 1.2% 674496: 0.2% 0: 0.0% 13492
cp/tree.c:1868 (build_qualified_name) 516200: 0.4% 0: 0.0% 167960: 0.1% 0: 0.0% 17104
cfg.c:93 (init_flow) 0: 0.0% 0: 0.0% 700128: 0.2% 0: 0.0% 9724
cp/decl.c:12522 (xref_basetypes) 0: 0.0% 0: 0.0% 713248: 0.2% 0: 0.0% 7339
cp/typeck.c:2431 (build_class_member_access_expr 438480: 0.4% 0: 0.0% 338256: 0.1% 0: 0.0% 16182
cp/parser.c:18861 (cp_parser_parameter_declarati 785480: 0.6% 0: 0.0% 0: 0.0% 0: 0.0% 19637
cp/decl.c:11403 (grokparms) 227760: 0.2% 0: 0.0% 557720: 0.2% 0: 0.0% 19637
gimple.c:206 (gimple_build_return) 10400: 0.0% 0: 0.0% 777360: 0.3% 0: 0.0% 9847
fold-const.c:15795 (fold_build_cleanup_point_exp 293216: 0.2% 0: 0.0% 605888: 0.2% 0: 0.0% 28097
cp/pt.c:1493 (register_specialization) 0: 0.0% 0: 0.0% 901368: 0.3% 0: 0.0% 37557
gimple.c:570 (gimple_build_bind) 911168: 0.7% 0: 0.0% 384: 0.0% 0: 0.0% 14243
cp/pt.c:242 (push_access_scope) 917360: 0.7% 0: 0.0% 0: 0.0% 0: 0.0% 22934
cp/class.c:6392 (layout_class_type) 0: 0.0% 0: 0.0% 921816: 0.3% 0: 0.0% 5487
cp/semantics.c:366 (perform_or_defer_access_chec 929480: 0.8% 0: 0.0% 912: 0.0% 48968: 2.1% 6121
gimplify.c:8050 (gimplify_expr) 602320: 0.5% 0: 0.0% 344400: 0.1% 0: 0.0% 23668
tree.c:7024 (type_hash_canon) 93200: 0.1% 0: 0.0% 885920: 0.3% 0: 0.0% 61195
except.c:396 (gen_eh_region) 0: 0.0% 0: 0.0% 980496: 0.3% 0: 0.0% 11142
tree.c:4618 (build_nt_call_vec) 2064: 0.0% 0: 0.0% 990984: 0.3% 0: 0.0% 17718
emit-rtl.c:440 (gen_raw_REG) 992640: 0.8% 0: 0.0% 2184: 0.0% 0: 0.0% 41451
except.c:382 (init_eh_for_function) 0: 0.0% 320: 0.0% 1003720: 0.4% 0: 0.0% 25101
except.c:383 (init_eh_for_function) 0: 0.0% 240: 0.0% 1003800: 0.4% 0: 0.0% 25101
cfg.c:99 (init_flow) 0: 0.0% 0: 0.0% 1011296: 0.4% 0: 0.0% 9724
cfg.c:96 (init_flow) 0: 0.0% 0: 0.0% 1011296: 0.4% 0: 0.0% 9724
hash-table.h:914 (expand) 0: 0.0% 7240: 0.0% 1041840: 0.4% 504: 0.0% 11
cp/parser.c:14182 (cp_parser_template_argument_l 1064744: 0.9% 0: 0.0% 4208: 0.0% 0: 0.0% 26815
tree-eh.c:113 (add_stmt_to_eh_lp_fn) 0: 0.0% 26928: 0.1% 1080816: 0.4% 33568: 1.4% 2098
gimplify.c:2559 (gimplify_call_expr) 1101472: 0.9% 0: 0.0% 0: 0.0% 0: 0.0% 34421
cp/tree.c:372 (build_local_temp) 39456: 0.0% 0: 0.0% 1082016: 0.4% 0: 0.0% 7788
cp/name-lookup.c:6114 (store_class_bindings) 1124712: 0.9% 167928: 0.5% 0: 0.0% 27976: 1.2% 5438
gimple.c:537 (gimple_build_label) 596008: 0.5% 0: 0.0% 557592: 0.2% 0: 0.0% 20600
c-family/c-semantics.c:50 (push_stmt_list) 200: 0.0% 186096: 0.6% 1161896: 0.4% 0: 0.0% 29239
tree-iterator.c:55 (alloc_stmt_list) 442368: 0.4% 0: 0.0% 719808: 0.3% 0: 0.0% 36318
cp/typeck.c:5478 (cp_build_addr_expr_1) 650656: 0.5% 0: 0.0% 513376: 0.2% 0: 0.0% 36376
except.c:379 (init_eh_for_function) 0: 0.0% 0: 0.0% 1204848: 0.4% 0: 0.0% 25101
cp/pt.c:3967 (template_parms_to_args) 581896: 0.5% 0: 0.0% 667248: 0.2% 56: 0.0% 28602
cp/typeck.c:2970 (cp_build_indirect_ref) 734528: 0.6% 0: 0.0% 647424: 0.2% 0: 0.0% 43186
cp/tree.c:2632 (build_min_nt_loc) 6520: 0.0% 0: 0.0% 1488048: 0.5% 0: 0.0% 34510
hash-table.h:914 (expand) 0: 0.0% 23696: 0.1% 1547992: 0.5% 872: 0.0% 19
tree-cfg.c:217 (init_empty_tree_cfg_for_function 0: 0.0% 42672: 0.1% 1590960: 0.6% 0: 0.0% 9724
tree-cfg.c:222 (init_empty_tree_cfg_for_function 0: 0.0% 6888: 0.0% 1626744: 0.6% 0: 0.0% 9724
cp/tree.c:1809 (hash_tree_cons) 0: 0.0% 0: 0.0% 1641880: 0.6% 0: 0.0% 41047
cp/cvt.c:544 (convert_from_reference) 961664: 0.8% 0: 0.0% 712608: 0.2% 0: 0.0% 52321
cp/tree.c:2014 (ovl_cons) 719296: 0.6% 1408: 0.0% 997344: 0.3% 0: 0.0% 53689
tree.c:8152 (maybe_canonicalize_argtypes) 697240: 0.6% 0: 0.0% 1053840: 0.4% 0: 0.0% 43777
cfg.c:222 (connect_src) 62040: 0.1% 0: 0.0% 1733400: 0.6% 0: 0.0% 44886
cp/pt.c:3817 (process_template_parm) 37696: 0.0% 0: 0.0% 1845736: 0.6% 0: 0.0% 12391
cfg.c:232 (connect_dest) 62680: 0.1% 28336: 0.1% 1844592: 0.6% 0: 0.0% 47517
cp/lex.c:690 (cxx_make_type) 456: 0.0% 0: 0.0% 1994240: 0.7% 0: 0.0% 13123
cp/name-lookup.c:6084 (store_bindings) 2012704: 1.6% 671912: 2.1% 0: 0.0% 79608: 3.4% 17592
cp/lex.c:576 (retrofit_lang_decl) 192760: 0.2% 39640: 0.1% 1820620: 0.6% 81188: 3.5% 63842
cp/search.c:1154 (build_baselink) 2052816: 1.7% 0: 0.0% 25632: 0.0% 0: 0.0% 43301
hash-table.h:914 (expand) 0: 0.0% 0: 0.0% 2081176: 0.7% 408: 0.0% 7
cfgloop.c:346 (alloc_loop) 0: 0.0% 0: 0.0% 2308608: 0.8% 0: 0.0% 10688
tree.c:8347 (build_method_type_directly) 682600: 0.6% 0: 0.0% 1630680: 0.6% 0: 0.0% 57832
c-family/c-semantics.c:119 (build_stmt) 806200: 0.7% 0: 0.0% 1512544: 0.5% 0: 0.0% 65092
cp/decl.c:930 (create_implicit_typedef) 0: 0.0% 0: 0.0% 2419840: 0.8% 0: 0.0% 15920
gimplify.c:4770 (gimplify_modify_expr) 122160: 0.1% 0: 0.0% 2329024: 0.8% 0: 0.0% 30142
cp/name-lookup.c:6186 (push_to_top_level) 2545576: 2.1% 0: 0.0% 528: 0.0% 0: 0.0% 28933
cp/decl.c:617 (poplevel) 0: 0.0% 0: 0.0% 2552792: 0.9% 0: 0.0% 29009
cp/decl.c:13880 (save_function_data) 0: 0.0% 0: 0.0% 2627472: 0.9% 138288: 5.9% 17286
tree.c:10639 (build_call_1) 1362424: 1.1% 0: 0.0% 1299008: 0.5% 32: 0.0% 43317
cp/typeck.c:5346 (build_nop) 1122592: 0.9% 0: 0.0% 1636832: 0.6% 0: 0.0% 86232
config/i386/i386.c:25677 (ix86_init_machine_stat 0: 0.0% 0: 0.0% 2811312: 1.0% 0: 0.0% 25101
toplev.c:1036 (realloc_for_line_map) 0: 0.0% 1407064: 4.4% 2830560: 1.0% 100808: 4.3% 8132
cp/name-lookup.c:2011 (set_identifier_type_value 2830640: 2.3% 0: 0.0% 2000: 0.0% 0: 0.0% 70816
tree.c:1207 (copy_list) 0: 0.0% 0: 0.0% 2886952: 1.0% 0: 0.0% 22676
cp/decl.c:13462 (start_preparsed_function) 0: 0.0% 0: 0.0% 3012120: 1.1% 0: 0.0% 25101
tree.c:11521 (create_artificial_label) 1268608: 1.0% 0: 0.0% 1761024: 0.6% 0: 0.0% 23669
cp/class.c:3150 (maybe_add_class_template_decl_l 0: 0.0% 0: 0.0% 3035280: 1.1% 0: 0.0% 75882
tree-iterator.c:220 (tsi_link_after) 1744080: 1.4% 0: 0.0% 1300488: 0.5% 0: 0.0% 126857
cfg.c:286 (unchecked_make_edge) 0: 0.0% 104496: 0.3% 3086272: 1.1% 0: 0.0% 56978
stringpool.c:88 (alloc_node) 880: 0.0% 0: 0.0% 3201880: 1.1% 0: 0.0% 36395
cgraph.c:851 (create_edge) 0: 0.0% 0: 0.0% 3348592: 1.2% 0: 0.0% 32198
cp/pt.c:318 (build_template_info) 463200: 0.4% 0: 0.0% 2893376: 1.0% 0: 0.0% 104893
cp/decl.c:13563 (start_preparsed_function) 0: 0.0% 0: 0.0% 3815352: 1.3% 200808: 8.6% 25101
tree.c:7751 (build_pointer_type_for_mode) 840: 0.0% 0: 0.0% 3835440: 1.3% 0: 0.0% 22835
cfg.c:148 (alloc_block) 169416: 0.1% 0: 0.0% 3722368: 1.3% 0: 0.0% 37421
fold-const.c:7820 (build_fold_addr_expr_with_typ 1794496: 1.5% 0: 0.0% 2303552: 0.8% 0: 0.0% 128064
stringpool.c:66 (stringpool_ggc_alloc) 47972: 0.0% 0: 0.0% 4085580: 1.4% 484920: 20.8% 39901
cp/pt.c:19087 (get_partial_spec_bindings) 4147368: 3.4% 0: 0.0% 0: 0.0% 0: 0.0% 83449
cp/decl2.c:215 (cp_build_parm_decl) 412800: 0.3% 0: 0.0% 3781120: 1.3% 0: 0.0% 32765
function.c:4768 (allocate_struct_function) 0: 0.0% 0: 0.0% 4216968: 1.5% 0: 0.0% 25101
cp/pt.c:3636 (build_template_parm_index) 1082304: 0.9% 0: 0.0% 3469536: 1.2% 0: 0.0% 94830
gimple.c:237 (gimple_build_call_1) 268712: 0.2% 0: 0.0% 4594056: 1.6% 135040: 5.8% 32402
cp/lex.c:618 (cxx_dup_lang_specific_decl) 456: 0.0% 1728: 0.0% 5120712: 1.8% 155488: 6.7% 127061
tree.c:1476 (wide_int_to_tree) 0: 0.0% 0: 0.0% 5181584: 1.8% 38216: 1.6% 6317
tree.c:8190 (build_function_type) 2989560: 2.4% 0: 0.0% 2348640: 0.8% 0: 0.0% 31775
tree.c:1211 (copy_list) 350592: 0.3% 0: 0.0% 5003896: 1.7% 0: 0.0% 42186
cp/lex.c:682 (cxx_make_type) 44352: 0.0% 0: 0.0% 5370288: 1.9% 0: 0.0% 32230
cp/pt.c:8460 (push_tinst_level_loc) 5573664: 4.5% 0: 0.0% 140928: 0.0% 0: 0.0% 178581
gimple-expr.c:486 (create_tmp_var_raw) 0: 0.0% 0: 0.0% 5792112: 2.0% 0: 0.0% 40223
cp/call.c:2997 (add_template_candidate_real) 6035280: 4.9% 0: 0.0% 0: 0.0% 8: 0.0% 129290
tree.c:7818 (build_reference_type_for_mode) 2352: 0.0% 0: 0.0% 6298656: 2.2% 0: 0.0% 37506
cp/lex.c:549 (build_lang_decl_loc) 766280: 0.6% 236016: 0.7% 5588968: 2.0% 0: 0.0% 41298
cgraph.h:2488 (allocate_cgraph_symbol) 0: 0.0% 0: 0.0% 6808648: 2.4% 0: 0.0% 17369
cp/name-lookup.c:6132 (push_to_top_level) 6942480: 5.6% 0: 0.0% 1440: 0.0% 694392: 29.7% 28933
cp/name-lookup.c:1575 (begin_scope) 7722848: 6.3% 0: 0.0% 5712: 0.0% 0: 0.0% 69005
tree-inline.c:5007 (copy_tree_r) 1691800: 1.4% 0: 0.0% 6755112: 2.4% 0: 0.0% 220668
tree.c:8339 (build_method_type_directly) 2866920: 2.3% 0: 0.0% 6848856: 2.4% 0: 0.0% 57832
cp/pt.c:11020 (tsubst_decl) 9984: 0.0% 0: 0.0% 10270464: 3.6% 0: 0.0% 80316
tree.c:6573 (build_distinct_type_copy) 92232: 0.1% 0: 0.0% 11749248: 4.1% 0: 0.0% 70485
cp/pt.c:3696 (reduce_template_parm_level) 3376992: 2.7% 0: 0.0% 8647648: 3.0% 0: 0.0% 79136
cp/lex.c:674 (copy_type) 3732624: 3.0% 0: 0.0% 9547104: 3.3% 0: 0.0% 79046
cp/pt.c:7048 (coerce_template_parms) 14433896: 11.7% 0: 0.0% 608864: 0.2% 0: 0.0% 359052
cp/pt.c:10235 (tsubst_template_args) 13043072: 10.6% 0: 0.0% 3189640: 1.1% 0: 0.0% 378301
cp/parser.c:661 (cp_lexer_new_main) 0: 0.0% 16252944: 51.2% 16777224: 5.9% 24: 0.0% 6
cp/lex.c:636 (copy_decl) 1680: 0.0% 0: 0.0% 17675672: 6.2% 0: 0.0% 94930
--------------------------------------------------------------------------------------------------------------------------------
Total 123200361:100.0% 31724160:100.0% 286552426:100.0% 2335667:100.0% 5856923
--------------------------------------------------------------------------------------------------------------------------------
Alias oracle query stats:
refs_may_alias_p: 0 disambiguations, 0 queries
ref_maybe_used_by_call_p: 0 disambiguations, 0 queries
call_may_clobber_ref_p: 0 disambiguations, 0 queries
PTA query stats:
pt_solution_includes: 0 disambiguations, 0 queries
pt_solutions_intersect: 0 disambiguations, 0 queries
[-- Attachment #3: 0001-New-memory-allocation-statistics-infrastructure.patch --]
[-- Type: text/x-patch, Size: 74237 bytes --]
From 7a9048ef36bddf17209acadc1dcab9fc48a7fd63 Mon Sep 17 00:00:00 2001
From: mliska <mliska@suse.cz>
Date: Tue, 5 May 2015 11:34:16 +0200
Subject: [PATCH] New memory allocation statistics infrastructure.
gcc/ChangeLog:
2015-05-05 Martin Liska <mliska@suse.cz>
* Makefile.in: Add additional dependencies related to memory report
enhancement.
* alloc-pool.c (allocate_pool_descriptor): Use new ctor.
* bitmap.c (struct bitmap_descriptor_d): Remove.
(struct loc): Likewise.
(struct bitmap_desc_hasher): Likewise.
(bitmap_desc_hasher::hash): Likewise.
(bitmap_desc_hasher::equal): Likewise.
(get_bitmap_descriptor): Likewise.
(bitmap_register): User new memory descriptor API.
(register_overhead): Likewise.
(bitmap_find_bit): Register nsearches and search_iter statistics.
(struct bitmap_output_info): Remove.
(print_statistics): Likewise.
(dump_bitmap_statistics): Use new memory descriptor.
* bitmap.h (struct bitmap_usage): New class.
* genmatch.c: Extend header file inclusion.
* genpreds.c: Likewise.
* ggc-common.c (struct ggc_usage): New class.
(struct ggc_loc_desc_hasher): Remove.
(ggc_loc_desc_hasher::hash): Likewise.
(ggc_loc_desc_hasher::equal): Likewise.
(struct ggc_ptr_hash_entry): Likewise.
(struct ptr_hash_hasher): Likewise.
(ptr_hash_hasher::hash): Likewise.
(ptr_hash_hasher::equal): Likewise.
(make_loc_descriptor): Likewise.
(ggc_prune_ptr): Likewise.
(dump_ggc_loc_statistics): Use new memory descriptor.
(ggc_record_overhead): Likewise.
(ggc_free_overhead): Likewise.
(final_cmp_statistic): Remove.
(cmp_statistic): Likewise.
(ggc_add_statistics): Liekwise.
(ggc_prune_overhead_list): Likewise.
* hash-map-traits.h: New file.
* hash-map.h (struct default_hashmap_traits): Move the traits to a
separate header file.
* hash-set.h: Pass memory statistics info to ctor.
* hash-table.c (void dump_hash_table_loc_statistics): New function.
* hash-table.h (hash_table::hash_table): Add new ctor arguments.
(hash_table::~hash_table): Register memory release operation.
(hash_table::alloc_entries): Handle memory allocation operation.
(hash_table::expand): Likewise.
* inchash.c (iterative_hash_hashval_t): Move implementation to header
file.
(iterative_hash_host_wide_int): Likewise.
* inchash.h (class hash): Likewise.
* mem-stats-traits.h: New file.
* mem-stats.h: New file.
(mem_location): Add new class.
(mem_usage): Likewise.
(mem_alloc_description): Likewise.
* sese.c: Add new header file inclusision.
* toplev.c (dump_memory_report): Add report for hash_table, hash_map
and hash_set.
* tree-sra.c: Add new header file inclusision.
* vec.c (struct vec_descriptor): Remove.
(hash_descriptor): Likewise.
(struct vec_usage): Likewise.
(struct ptr_hash_entry): Likewise.
(hash_ptr): Likewise.
(eq_ptr): Likewise.
(vec_prefix::register_overhead): Use new memory descriptor API.
(vec_prefix::release_overhead): Likewise.
(add_statistics): Remove.
(dump_vec_loc_statistics): Use new memory descriptor API.
* vec.h (struct vec_prefix): Likewise.
(va_heap::reserve): Likewise.
(va_heap::release): Likewise.
---
gcc/Makefile.in | 10 +-
gcc/alloc-pool.c | 4 +-
gcc/bitmap.c | 178 ++--------------
gcc/bitmap.h | 56 ++++++
gcc/genmatch.c | 1 +
gcc/genpreds.c | 1 +
gcc/ggc-common.c | 378 +++++++++++++---------------------
gcc/hash-map-traits.h | 104 ++++++++++
gcc/hash-map.h | 92 +--------
gcc/hash-set.h | 3 +-
gcc/hash-table.c | 13 +-
gcc/hash-table.h | 48 ++++-
gcc/inchash.c | 51 -----
gcc/inchash.h | 59 +++++-
gcc/mem-stats-traits.h | 20 ++
gcc/mem-stats.h | 535 +++++++++++++++++++++++++++++++++++++++++++++++++
gcc/sese.c | 1 +
gcc/toplev.c | 1 +
gcc/tree-sra.c | 1 +
gcc/vec.c | 277 +++++++++----------------
gcc/vec.h | 14 +-
21 files changed, 1115 insertions(+), 732 deletions(-)
create mode 100644 gcc/hash-map-traits.h
create mode 100644 gcc/mem-stats-traits.h
create mode 100644 gcc/mem-stats.h
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index ab9b637..aa628cb 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1032,7 +1032,7 @@ BUILD_LIBS = $(BUILD_LIBIBERTY)
BUILD_RTL = build/rtl.o build/read-rtl.o build/ggc-none.o \
build/vec.o build/min-insn-modes.o build/gensupport.o \
- build/print-rtl.o
+ build/print-rtl.o build/hash-table.o
BUILD_MD = build/read-md.o
BUILD_ERRORS = build/errors.o
@@ -1505,7 +1505,7 @@ OBJS = \
# Objects in libcommon.a, potentially used by all host binaries and with
# no target dependencies.
OBJS-libcommon = diagnostic.o diagnostic-color.o pretty-print.o intl.o \
- vec.o input.o version.o
+ vec.o input.o version.o hash-table.o ggc-none.o
# Objects in libcommon-target.a, used by drivers and by the core
# compiler and containing target-dependent code.
@@ -1941,7 +1941,7 @@ gcc-nm.c: gcc-ar.c
cp $^ $@
COLLECT2_OBJS = collect2.o collect2-aix.o tlink.o vec.o ggc-none.o \
- collect-utils.o file-find.o
+ collect-utils.o file-find.o hash-table.o
COLLECT2_LIBS = @COLLECT2_LIBS@
collect2$(exeext): $(COLLECT2_OBJS) $(LIBDEPS)
# Don't try modifying collect2 (aka ld) in place--it might be linking this.
@@ -2655,10 +2655,10 @@ s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
GCOV_OBJS = gcov.o
gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
- +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) build/hash-table.o ggc-none.o $(LIBS) -o $@
GCOV_DUMP_OBJS = gcov-dump.o
gcov-dump$(exeext): $(GCOV_DUMP_OBJS) $(LIBDEPS)
- +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_DUMP_OBJS) \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_DUMP_OBJS) build/hash-table.o build/ggc-none.o\
$(LIBS) -o $@
GCOV_TOOL_DEP_FILES = $(srcdir)/../libgcc/libgcov-util.c gcov-io.c $(GCOV_IO_H) \
diff --git a/gcc/alloc-pool.c b/gcc/alloc-pool.c
index 81909d8..e34acdb 100644
--- a/gcc/alloc-pool.c
+++ b/gcc/alloc-pool.c
@@ -91,7 +91,9 @@ static struct alloc_pool_descriptor *
allocate_pool_descriptor (const char *name)
{
if (!alloc_pool_hash)
- alloc_pool_hash = new hash_map<const char *, alloc_pool_descriptor> (10);
+ alloc_pool_hash = new hash_map<const char *, alloc_pool_descriptor> (10,
+ false,
+ false);
return &alloc_pool_hash->get_or_insert (name);
}
diff --git a/gcc/bitmap.c b/gcc/bitmap.c
index 66066a6..2b465a9 100644
--- a/gcc/bitmap.c
+++ b/gcc/bitmap.c
@@ -25,112 +25,26 @@ along with GCC; see the file COPYING3. If not see
#include "bitmap.h"
#include "hash-table.h"
#include "vec.h"
+#include "inchash.h"
+#include "mem-stats.h"
+#include "hash-map.h"
-/* Store information about each particular bitmap, per allocation site. */
-struct bitmap_descriptor_d
-{
- int id;
- const char *function;
- const char *file;
- int line;
- int created;
- uint64_t allocated;
- uint64_t peak;
- uint64_t current;
- uint64_t nsearches;
- uint64_t search_iter;
-};
-
-typedef struct bitmap_descriptor_d *bitmap_descriptor;
-typedef const struct bitmap_descriptor_d *const_bitmap_descriptor;
-
-/* Next available unique id number for bitmap desciptors. */
-static int next_bitmap_desc_id = 0;
-
-/* Vector mapping descriptor ids to descriptors. */
-static vec<bitmap_descriptor> bitmap_descriptors;
-
-/* Hashtable helpers. */
-
-struct loc
-{
- const char *file;
- const char *function;
- int line;
-};
-
-struct bitmap_desc_hasher : typed_noop_remove <bitmap_descriptor_d>
-{
- typedef bitmap_descriptor_d *value_type;
- typedef loc *compare_type;
- static inline hashval_t hash (const bitmap_descriptor_d *);
- static inline bool equal (const bitmap_descriptor_d *, const loc *);
-};
-
-inline hashval_t
-bitmap_desc_hasher::hash (const bitmap_descriptor_d *d)
-{
- return htab_hash_pointer (d->file) + d->line;
-}
-
-inline bool
-bitmap_desc_hasher::equal (const bitmap_descriptor_d *d, const loc *l)
-{
- return d->file == l->file && d->function == l->function && d->line == l->line;
-}
-
-/* Hashtable mapping bitmap names to descriptors. */
-static hash_table<bitmap_desc_hasher> *bitmap_desc_hash;
-
-/* For given file and line, return descriptor, create new if needed. */
-static bitmap_descriptor
-get_bitmap_descriptor (const char *file, int line, const char *function)
-{
- bitmap_descriptor_d **slot;
- struct loc loc;
-
- loc.file = file;
- loc.function = function;
- loc.line = line;
-
- if (!bitmap_desc_hash)
- bitmap_desc_hash = new hash_table<bitmap_desc_hasher> (10);
-
- slot
- = bitmap_desc_hash->find_slot_with_hash (&loc,
- htab_hash_pointer (file) + line,
- INSERT);
- if (*slot)
- return *slot;
-
- *slot = XCNEW (struct bitmap_descriptor_d);
- bitmap_descriptors.safe_push (*slot);
- (*slot)->id = next_bitmap_desc_id++;
- (*slot)->file = file;
- (*slot)->function = function;
- (*slot)->line = line;
- return *slot;
-}
+/* Memory allocation statistics purpose instance. */
+mem_alloc_description<bitmap_usage> bitmap_mem_desc;
/* Register new bitmap. */
void
bitmap_register (bitmap b MEM_STAT_DECL)
{
- bitmap_descriptor desc = get_bitmap_descriptor (ALONE_FINAL_PASS_MEM_STAT);
- desc->created++;
- b->descriptor_id = desc->id;
+ bitmap_mem_desc.register_descriptor (b, BITMAP, false FINAL_PASS_MEM_STAT);
}
/* Account the overhead. */
static void
register_overhead (bitmap b, int amount)
{
- bitmap_descriptor desc = bitmap_descriptors[b->descriptor_id];
- desc->current += amount;
- if (amount > 0)
- desc->allocated += amount;
- if (desc->peak < desc->current)
- desc->peak = desc->current;
+ if (bitmap_mem_desc.contains_descriptor_for_instance (b))
+ bitmap_mem_desc.register_instance_overhead (amount, b);
}
/* Global data */
@@ -579,10 +493,14 @@ bitmap_find_bit (bitmap head, unsigned int bit)
&& head->first->next == NULL)
return NULL;
+ /* Usage can be NULL due to allocated bitmaps for which we do not
+ call initialize function. */
+ bitmap_usage *usage = bitmap_mem_desc.get_descriptor_for_instance (head);
+
/* This bitmap has more than one element, and we're going to look
through the elements list. Count that as a search. */
- if (GATHER_STATISTICS)
- bitmap_descriptors[head->descriptor_id]->nsearches++;
+ if (GATHER_STATISTICS && usage)
+ usage->m_nsearches++;
if (head->indx < indx)
/* INDX is beyond head->indx. Search from head->current
@@ -591,8 +509,8 @@ bitmap_find_bit (bitmap head, unsigned int bit)
element->next != 0 && element->indx < indx;
element = element->next)
{
- if (GATHER_STATISTICS)
- bitmap_descriptors[head->descriptor_id]->search_iter++;
+ if (GATHER_STATISTICS && usage)
+ usage->m_search_iter++;
}
else if (head->indx / 2 < indx)
@@ -602,8 +520,8 @@ bitmap_find_bit (bitmap head, unsigned int bit)
element->prev != 0 && element->indx > indx;
element = element->prev)
{
- if (GATHER_STATISTICS)
- bitmap_descriptors[head->descriptor_id]->search_iter++;
+ if (GATHER_STATISTICS && usage)
+ usage->m_search_iter++;
}
else
@@ -612,9 +530,9 @@ bitmap_find_bit (bitmap head, unsigned int bit)
for (element = head->first;
element->next != 0 && element->indx < indx;
element = element->next)
- if (GATHER_STATISTICS)
+ if (GATHER_STATISTICS && usage)
{
- bitmap_descriptors[head->descriptor_id]->search_iter++;
+ usage->m_search_iter++;
}
/* `element' is the nearest to the one we want. If it's not the one we
@@ -2145,68 +2063,14 @@ bitmap_print (FILE *file, const_bitmap head, const char *prefix,
fputs (suffix, file);
}
-
-/* Used to accumulate statistics about bitmap sizes. */
-struct bitmap_output_info
-{
- uint64_t size;
- uint64_t count;
-};
-
-/* Called via hash_table::traverse. Output bitmap descriptor pointed out by
- SLOT and update statistics. */
-int
-print_statistics (bitmap_descriptor_d **slot, bitmap_output_info *i)
-{
- bitmap_descriptor d = *slot;
- char s[4096];
-
- if (d->allocated)
- {
- const char *s1 = d->file;
- const char *s2;
- while ((s2 = strstr (s1, "gcc/")))
- s1 = s2 + 4;
- sprintf (s, "%s:%i (%s)", s1, d->line, d->function);
- s[41] = 0;
- fprintf (stderr,
- "%-41s %9u %15" PRId64" %15" PRId64" %15" PRId64
- " %10" PRId64" %10" PRId64"\n",
- s, d->created,
- d->allocated, d->peak, d->current,
- d->nsearches, d->search_iter);
- i->size += d->allocated;
- i->count += d->created;
- }
- return 1;
-}
-
/* Output per-bitmap memory usage statistics. */
void
dump_bitmap_statistics (void)
{
- struct bitmap_output_info info;
-
if (! GATHER_STATISTICS)
return;
- if (!bitmap_desc_hash)
- return;
-
- fprintf (stderr,
- "\n%-41s %9s %15s %15s %15s %10s %10s\n",
- "Bitmap", "Overall",
- "Allocated", "Peak", "Leak",
- "searched", "search_itr");
- fprintf (stderr, "---------------------------------------------------------------------------------\n");
- info.count = 0;
- info.size = 0;
- bitmap_desc_hash->traverse <bitmap_output_info *, print_statistics> (&info);
- fprintf (stderr, "---------------------------------------------------------------------------------\n");
- fprintf (stderr,
- "%-41s %9" PRId64" %15" PRId64"\n",
- "Total", info.count, info.size);
- fprintf (stderr, "---------------------------------------------------------------------------------\n");
+ bitmap_mem_desc.dump (BITMAP);
}
DEBUG_FUNCTION void
diff --git a/gcc/bitmap.h b/gcc/bitmap.h
index 3f9bbf3..40562f6 100644
--- a/gcc/bitmap.h
+++ b/gcc/bitmap.h
@@ -130,6 +130,62 @@ along with GCC; see the file COPYING3. If not see
#include "hashtab.h"
#include "statistics.h"
#include "obstack.h"
+#include "mem-stats.h"
+
+/* Bitmap memory usage. */
+struct bitmap_usage: public mem_usage
+{
+ /* Default contructor. */
+ bitmap_usage (): m_nsearches (0), m_search_iter (0) {}
+ /* Constructor. */
+ bitmap_usage (size_t allocated, size_t times, size_t peak,
+ uint64_t nsearches, uint64_t search_iter)
+ : mem_usage (allocated, times, peak),
+ m_nsearches (nsearches), m_search_iter (search_iter) {}
+
+ /* Sum the usage with SECOND usage. */
+ bitmap_usage operator+ (const bitmap_usage &second)
+ {
+ return bitmap_usage (m_allocated + second.m_allocated,
+ m_times + second.m_times,
+ m_peak + second.m_peak,
+ m_nsearches + second.m_nsearches,
+ m_search_iter + second.m_search_iter);
+ }
+
+ /* Dump usage coupled to LOC location, where TOTAL is sum of all rows. */
+ inline void dump (mem_location *loc, mem_usage &total) const
+ {
+ char s[4096];
+ sprintf (s, "%s:%i (%s)", loc->get_trimmed_filename (),
+ loc->m_line, loc->m_function);
+
+ s[48] = '\0';
+
+ fprintf (stderr, "%-48s %10li:%5.1f%%%10li%10li:%5.1f%%%12li%12li%10s\n", s,
+ (long)m_allocated, get_percent (m_allocated, total.m_allocated),
+ (long)m_peak, (long)m_times,
+ get_percent (m_times, total.m_times),
+ (long)m_nsearches, (long)m_search_iter,
+ loc->m_ggc ? "ggc" : "heap");
+ }
+
+ /* Dump header with NAME. */
+ static inline void dump_header (const char *name)
+ {
+ fprintf (stderr, "%-48s %11s%16s%17s%12s%12s%10s\n", name, "Leak", "Peak",
+ "Times", "N searches", "Search iter", "Type");
+ print_dash_line ();
+ }
+
+ /* Number search operations. */
+ uint64_t m_nsearches;
+ /* Number of search iterations. */
+ uint64_t m_search_iter;
+};
+
+/* Bitmap memory description. */
+extern mem_alloc_description<bitmap_usage> bitmap_mem_desc;
/* Fundamental storage type for bitmap. */
diff --git a/gcc/genmatch.c b/gcc/genmatch.c
index fbd12a5..06f7e46 100644
--- a/gcc/genmatch.c
+++ b/gcc/genmatch.c
@@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "errors.h"
#include "hashtab.h"
#include "hash-table.h"
+#include "inchash.h"
#include "hash-map.h"
#include "hash-set.h"
#include "vec.h"
diff --git a/gcc/genpreds.c b/gcc/genpreds.c
index 1dcb769..2c6cf5b 100644
--- a/gcc/genpreds.c
+++ b/gcc/genpreds.c
@@ -1515,6 +1515,7 @@ write_insn_preds_c (void)
#include \"rtl.h\"\n\
#include \"hash-set.h\"\n\
#include \"machmode.h\"\n\
+#include \"hash-map.h\"\n\
#include \"vec.h\"\n\
#include \"double-int.h\"\n\
#include \"input.h\"\n\
diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c
index eff326a..f74fe21 100644
--- a/gcc/ggc-common.c
+++ b/gcc/ggc-common.c
@@ -33,6 +33,7 @@ along with GCC; see the file COPYING3. If not see
#include "plugin.h"
#include "vec.h"
#include "timevar.h"
+#include "mem-stats.h"
/* When set, ggc_collect will do collection. */
bool ggc_force_collect;
@@ -830,273 +831,180 @@ init_ggc_heuristics (void)
#endif
}
-/* Datastructure used to store per-call-site statistics. */
-struct ggc_loc_descriptor
+/* GGC memory usage. */
+struct ggc_usage: public mem_usage
{
- const char *file;
- int line;
- const char *function;
- int times;
- size_t allocated;
- size_t overhead;
- size_t freed;
- size_t collected;
-};
+ /* Default constructor. */
+ ggc_usage (): m_freed (0), m_collected (0), m_overhead (0) {}
+ /* Constructor. */
+ ggc_usage (size_t allocated, size_t times, size_t peak,
+ size_t freed, size_t collected, size_t overhead)
+ : mem_usage (allocated, times, peak),
+ m_freed (freed), m_collected (collected), m_overhead (overhead) {}
-/* Hash table helper. */
+ /* Comparison operator. */
+ inline bool operator< (const ggc_usage &second) const
+ {
+ return (get_balance () == second.get_balance () ?
+ (m_peak == second.m_peak ? m_times < second.m_times
+ : m_peak < second.m_peak ) : get_balance () < second.get_balance ());
+ }
-struct ggc_loc_desc_hasher : typed_noop_remove <ggc_loc_descriptor>
-{
- typedef ggc_loc_descriptor *value_type;
- typedef ggc_loc_descriptor *compare_type;
- static inline hashval_t hash (const ggc_loc_descriptor *);
- static inline bool equal (const ggc_loc_descriptor *,
- const ggc_loc_descriptor *);
-};
+ /* Register overhead of ALLOCATED and OVERHEAD bytes. */
+ inline void register_overhead (size_t allocated, size_t overhead)
+ {
+ m_allocated += allocated;
+ m_overhead += overhead;
+ m_times++;
+ }
-inline hashval_t
-ggc_loc_desc_hasher::hash (const ggc_loc_descriptor *d)
-{
- return htab_hash_pointer (d->function) | d->line;
-}
+ /* Release overhead of SIZE bytes. */
+ inline void release_overhead (size_t size)
+ {
+ m_freed += size;
+ }
-inline bool
-ggc_loc_desc_hasher::equal (const ggc_loc_descriptor *d,
- const ggc_loc_descriptor *d2)
-{
- return (d->file == d2->file && d->line == d2->line
- && d->function == d2->function);
-}
+ /* Sum the usage with SECOND usage. */
+ ggc_usage operator+ (const ggc_usage &second)
+ {
+ return ggc_usage (m_allocated + second.m_allocated,
+ m_times + second.m_times,
+ m_peak + second.m_peak,
+ m_freed + second.m_freed,
+ m_collected + second.m_collected,
+ m_overhead + second.m_overhead);
+ }
-/* Hashtable used for statistics. */
-static hash_table<ggc_loc_desc_hasher> *loc_hash;
+ /* Dump usage with PREFIX, where TOTAL is sum of all rows. */
+ inline void dump (const char *prefix, ggc_usage &total) const
+ {
+ long balance = get_balance ();
+ fprintf (stderr,
+ "%-48s %10li:%5.1f%%%10li:%5.1f%%"
+ "%10li:%5.1f%%%10li:%5.1f%%%10li\n",
+ prefix, (long)m_collected,
+ get_percent (m_collected, total.m_collected),
+ (long)m_freed, get_percent (m_freed, total.m_freed),
+ (long)balance, get_percent(balance, total.get_balance ()),
+ (long)m_overhead, get_percent (m_overhead, total.m_overhead),
+ (long)m_times);
+ }
-struct ggc_ptr_hash_entry
-{
- void *ptr;
- struct ggc_loc_descriptor *loc;
- size_t size;
-};
+ /* Dump usage coupled to LOC location, where TOTAL is sum of all rows. */
+ inline void dump (mem_location *loc, ggc_usage &total) const
+ {
+ char s[4096];
+ sprintf (s, "%s:%i (%s)", loc->get_trimmed_filename (),
+ loc->m_line, loc->m_function);
+ s[48] = '\0';
-/* Helper for ptr_hash table. */
+ dump (s, total);
+ }
-struct ptr_hash_hasher : typed_noop_remove <ggc_ptr_hash_entry>
-{
- typedef ggc_ptr_hash_entry *value_type;
- typedef void *compare_type;
- static inline hashval_t hash (const ggc_ptr_hash_entry *);
- static inline bool equal (const ggc_ptr_hash_entry *, const void *);
-};
+ /* Dump footer. */
+ inline void dump_footer ()
+ {
+ print_dash_line ();
+ dump ("Total", *this);
+ print_dash_line ();
+ }
-inline hashval_t
-ptr_hash_hasher::hash (const ggc_ptr_hash_entry *d)
-{
- return htab_hash_pointer (d->ptr);
-}
+ /* Get balance which is GGC allocation leak. */
+ inline long get_balance () const
+ {
+ return m_allocated + m_overhead - m_collected - m_freed;
+ }
-inline bool
-ptr_hash_hasher::equal (const ggc_ptr_hash_entry *p, const void *p2)
-{
- return (p->ptr == p2);
-}
+ typedef std::pair<mem_location *, ggc_usage *> mem_pair_t;
-/* Hashtable converting address of allocated field to loc descriptor. */
-static hash_table<ptr_hash_hasher> *ptr_hash;
+ /* Compare wrapper used by qsort method. */
+ static int compare (const void *first, const void *second)
+ {
+ const mem_pair_t f = *(const mem_pair_t *)first;
+ const mem_pair_t s = *(const mem_pair_t *)second;
-/* Return descriptor for given call site, create new one if needed. */
-static struct ggc_loc_descriptor *
-make_loc_descriptor (const char *name, int line, const char *function)
-{
- struct ggc_loc_descriptor loc;
- struct ggc_loc_descriptor **slot;
-
- loc.file = name;
- loc.line = line;
- loc.function = function;
- if (!loc_hash)
- loc_hash = new hash_table<ggc_loc_desc_hasher> (10);
-
- slot = loc_hash->find_slot (&loc, INSERT);
- if (*slot)
- return *slot;
- *slot = XCNEW (struct ggc_loc_descriptor);
- (*slot)->file = name;
- (*slot)->line = line;
- (*slot)->function = function;
- return *slot;
-}
+ return (*f.second) < (*s.second);
+ }
+
+ /* Compare rows in final GGC summary dump. */
+ static int compare_final (const void *first, const void *second)
+ { typedef std::pair<mem_location *, ggc_usage *> mem_pair_t;
+
+ const ggc_usage *f = ((const mem_pair_t *)first)->second;
+ const ggc_usage *s = ((const mem_pair_t *)second)->second;
+
+ size_t a = f->m_allocated + f->m_overhead - f->m_freed;
+ size_t b = s->m_allocated + s->m_overhead - s->m_freed;
+
+ return a == b ? 0 : (a < b ? 1 : -1);
+ }
+
+ /* Dump header with NAME. */
+ static inline void dump_header (const char *name)
+ {
+ fprintf (stderr, "%-48s %11s%17s%17s%16s%17s\n", name, "Garbage", "Freed",
+ "Leak", "Overhead", "Times");
+ print_dash_line ();
+ }
+
+ /* Freed memory in bytes. */
+ size_t m_freed;
+ /* Collected memory in bytes. */
+ size_t m_collected;
+ /* Overhead memory in bytes. */
+ size_t m_overhead;
+};
+
+/* GCC memory description. */
+static mem_alloc_description<ggc_usage> ggc_mem_desc;
+
+/* Dump per-site memory statistics. */
-/* Record ALLOCATED and OVERHEAD bytes to descriptor NAME:LINE (FUNCTION). */
void
-ggc_record_overhead (size_t allocated, size_t overhead, void *ptr,
- const char *name, int line, const char *function)
+dump_ggc_loc_statistics (bool final)
{
- struct ggc_loc_descriptor *loc = make_loc_descriptor (name, line, function);
- struct ggc_ptr_hash_entry *p = XNEW (struct ggc_ptr_hash_entry);
- ggc_ptr_hash_entry **slot;
-
- p->ptr = ptr;
- p->loc = loc;
- p->size = allocated + overhead;
- if (!ptr_hash)
- ptr_hash = new hash_table<ptr_hash_hasher> (10);
- slot = ptr_hash->find_slot_with_hash (ptr, htab_hash_pointer (ptr), INSERT);
- gcc_assert (!*slot);
- *slot = p;
-
- loc->times++;
- loc->allocated+=allocated;
- loc->overhead+=overhead;
-}
+ if (! GATHER_STATISTICS)
+ return;
-/* Helper function for prune_overhead_list. See if SLOT is still marked and
- remove it from hashtable if it is not. */
-int
-ggc_prune_ptr (ggc_ptr_hash_entry **slot, void *b ATTRIBUTE_UNUSED)
-{
- struct ggc_ptr_hash_entry *p = *slot;
- if (!ggc_marked_p (p->ptr))
- {
- p->loc->collected += p->size;
- ptr_hash->clear_slot (slot);
- free (p);
- }
- return 1;
+ ggc_force_collect = true;
+ ggc_collect ();
+
+ ggc_mem_desc.dump (GGC, final ? ggc_usage::compare_final : NULL);
+
+ ggc_force_collect = false;
}
-/* After live values has been marked, walk all recorded pointers and see if
- they are still live. */
+/* Record ALLOCATED and OVERHEAD bytes to descriptor NAME:LINE (FUNCTION). */
void
-ggc_prune_overhead_list (void)
+ggc_record_overhead (size_t allocated, size_t overhead, void *ptr MEM_STAT_DECL)
{
- ptr_hash->traverse <void *, ggc_prune_ptr> (NULL);
+ ggc_usage *usage = ggc_mem_desc.register_descriptor (ptr, GGC, false
+ FINAL_PASS_MEM_STAT);
+
+ ggc_mem_desc.register_object_overhead (usage, allocated + overhead, ptr);
+ usage->register_overhead (allocated, overhead);
}
/* Notice that the pointer has been freed. */
void
ggc_free_overhead (void *ptr)
{
- ggc_ptr_hash_entry **slot
- = ptr_hash->find_slot_with_hash (ptr, htab_hash_pointer (ptr), NO_INSERT);
- struct ggc_ptr_hash_entry *p;
- /* The pointer might be not found if a PCH read happened between allocation
- and ggc_free () call. FIXME: account memory properly in the presence of
- PCH. */
- if (!slot)
- return;
- p = (struct ggc_ptr_hash_entry *) *slot;
- p->loc->freed += p->size;
- ptr_hash->clear_slot (slot);
- free (p);
-}
-
-/* Helper for qsort; sort descriptors by amount of memory consumed. */
-static int
-final_cmp_statistic (const void *loc1, const void *loc2)
-{
- const struct ggc_loc_descriptor *const l1 =
- *(const struct ggc_loc_descriptor *const *) loc1;
- const struct ggc_loc_descriptor *const l2 =
- *(const struct ggc_loc_descriptor *const *) loc2;
- long diff;
- diff = ((long)(l1->allocated + l1->overhead - l1->freed) -
- (l2->allocated + l2->overhead - l2->freed));
- return diff > 0 ? 1 : diff < 0 ? -1 : 0;
+ ggc_mem_desc.release_object_overhead (ptr);
}
-/* Helper for qsort; sort descriptors by amount of memory consumed. */
-static int
-cmp_statistic (const void *loc1, const void *loc2)
-{
- const struct ggc_loc_descriptor *const l1 =
- *(const struct ggc_loc_descriptor *const *) loc1;
- const struct ggc_loc_descriptor *const l2 =
- *(const struct ggc_loc_descriptor *const *) loc2;
- long diff;
-
- diff = ((long)(l1->allocated + l1->overhead - l1->freed - l1->collected) -
- (l2->allocated + l2->overhead - l2->freed - l2->collected));
- if (diff)
- return diff > 0 ? 1 : diff < 0 ? -1 : 0;
- diff = ((long)(l1->allocated + l1->overhead - l1->freed) -
- (l2->allocated + l2->overhead - l2->freed));
- return diff > 0 ? 1 : diff < 0 ? -1 : 0;
-}
-
-/* Collect array of the descriptors from hashtable. */
-static struct ggc_loc_descriptor **loc_array;
-int
-ggc_add_statistics (ggc_loc_descriptor **slot, int *n)
-{
- loc_array[*n] = *slot;
- (*n)++;
- return 1;
-}
-
-/* Dump per-site memory statistics. */
-
+/* After live values has been marked, walk all recorded pointers and see if
+ they are still live. */
void
-dump_ggc_loc_statistics (bool final)
+ggc_prune_overhead_list (void)
{
- int nentries = 0;
- char s[4096];
- size_t collected = 0, freed = 0, allocated = 0, overhead = 0, times = 0;
- int i;
+ typedef hash_map<const void *, std::pair<ggc_usage *, size_t > > map_t;
- if (! GATHER_STATISTICS)
- return;
+ map_t::iterator it = ggc_mem_desc.m_reverse_object_map->begin();
- ggc_force_collect = true;
- ggc_collect ();
+ for (; it != ggc_mem_desc.m_reverse_object_map->end (); ++it)
+ if (!ggc_marked_p ((*it).first))
+ (*it).second.first->m_collected += (*it).second.second;
- loc_array = XCNEWVEC (struct ggc_loc_descriptor *,
- loc_hash->elements_with_deleted ());
- fprintf (stderr, "-------------------------------------------------------\n");
- fprintf (stderr, "\n%-48s %10s %10s %10s %10s %10s\n",
- "source location", "Garbage", "Freed", "Leak", "Overhead", "Times");
- fprintf (stderr, "-------------------------------------------------------\n");
- loc_hash->traverse <int *, ggc_add_statistics> (&nentries);
- qsort (loc_array, nentries, sizeof (*loc_array),
- final ? final_cmp_statistic : cmp_statistic);
- for (i = 0; i < nentries; i++)
- {
- struct ggc_loc_descriptor *d = loc_array[i];
- allocated += d->allocated;
- times += d->times;
- freed += d->freed;
- collected += d->collected;
- overhead += d->overhead;
- }
- for (i = 0; i < nentries; i++)
- {
- struct ggc_loc_descriptor *d = loc_array[i];
- if (d->allocated)
- {
- const char *s1 = d->file;
- const char *s2;
- while ((s2 = strstr (s1, "gcc/")))
- s1 = s2 + 4;
- sprintf (s, "%s:%i (%s)", s1, d->line, d->function);
- s[48] = 0;
- fprintf (stderr, "%-48s %10li:%4.1f%% %10li:%4.1f%% %10li:%4.1f%% %10li:%4.1f%% %10li\n", s,
- (long)d->collected,
- (d->collected) * 100.0 / collected,
- (long)d->freed,
- (d->freed) * 100.0 / freed,
- (long)(d->allocated + d->overhead - d->freed - d->collected),
- (d->allocated + d->overhead - d->freed - d->collected) * 100.0
- / (allocated + overhead - freed - collected),
- (long)d->overhead,
- d->overhead * 100.0 / overhead,
- (long)d->times);
- }
- }
- fprintf (stderr, "%-48s %10ld %10ld %10ld %10ld %10ld\n",
- "Total", (long)collected, (long)freed,
- (long)(allocated + overhead - freed - collected), (long)overhead,
- (long)times);
- fprintf (stderr, "%-48s %10s %10s %10s %10s %10s\n",
- "source location", "Garbage", "Freed", "Leak", "Overhead", "Times");
- fprintf (stderr, "-------------------------------------------------------\n");
- ggc_force_collect = false;
+ delete ggc_mem_desc.m_reverse_object_map;
+ ggc_mem_desc.m_reverse_object_map = new map_t (13, false, false);
}
diff --git a/gcc/hash-map-traits.h b/gcc/hash-map-traits.h
new file mode 100644
index 0000000..2eae3b2
--- /dev/null
+++ b/gcc/hash-map-traits.h
@@ -0,0 +1,104 @@
+/* A hash map traits.
+ Copyright (C) 2015 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef HASH_MAP_TRAITS_H
+#define HASH_MAP_TRAITS_H
+
+/* Bacause mem-stats.h uses default hashmap traits, we have to
+ put the class to this separate header file. */
+
+/* implement default behavior for traits when types allow it. */
+
+struct default_hashmap_traits
+{
+ /* Hashes the passed in key. */
+
+ template<typename T>
+ static hashval_t
+ hash (T *p)
+ {
+ return uintptr_t(p) >> 3;
+ }
+
+ /* If the value converts to hashval_t just use it. */
+
+ template<typename T> static hashval_t hash (T v) { return v; }
+
+ /* Return true if the two keys passed as arguments are equal. */
+
+ template<typename T>
+ static bool
+ equal_keys (const T &a, const T &b)
+ {
+ return a == b;
+ }
+
+ /* Called to dispose of the key and value before marking the entry as
+ deleted. */
+
+ template<typename T> static void remove (T &v) { v.~T (); }
+
+ /* Mark the passed in entry as being deleted. */
+
+ template<typename T>
+ static void
+ mark_deleted (T &e)
+ {
+ mark_key_deleted (e.m_key);
+ }
+
+ /* Mark the passed in entry as being empty. */
+
+ template<typename T>
+ static void
+ mark_empty (T &e)
+ {
+ mark_key_empty (e.m_key);
+ }
+
+ /* Return true if the passed in entry is marked as deleted. */
+
+ template<typename T>
+ static bool
+ is_deleted (T &e)
+ {
+ return e.m_key == (void *)1;
+ }
+
+ /* Return true if the passed in entry is marked as empty. */
+
+ template<typename T> static bool is_empty (T &e) { return e.m_key == NULL; }
+
+private:
+ template<typename T>
+ static void
+ mark_key_deleted (T *&k)
+ {
+ k = reinterpret_cast<T *> (1);
+ }
+
+ template<typename T>
+ static void
+ mark_key_empty (T *&k)
+ {
+ k = static_cast<T *> (0);
+ }
+};
+
+#endif // HASH_MAP_TRAITS_H
diff --git a/gcc/hash-map.h b/gcc/hash-map.h
index 4cca702..fb1a522 100644
--- a/gcc/hash-map.h
+++ b/gcc/hash-map.h
@@ -24,87 +24,12 @@ along with GCC; see the file COPYING3. If not see
#include <new>
#include <utility>
#include "hash-table.h"
-
-/* implement default behavior for traits when types allow it. */
-
-struct default_hashmap_traits
-{
- /* Hashes the passed in key. */
-
- template<typename T>
- static hashval_t
- hash (T *p)
- {
- return uintptr_t(p) >> 3;
- }
-
- /* If the value converts to hashval_t just use it. */
-
- template<typename T> static hashval_t hash (T v) { return v; }
-
- /* Return true if the two keys passed as arguments are equal. */
-
- template<typename T>
- static bool
- equal_keys (const T &a, const T &b)
- {
- return a == b;
- }
-
- /* Called to dispose of the key and value before marking the entry as
- deleted. */
-
- template<typename T> static void remove (T &v) { v.~T (); }
-
- /* Mark the passed in entry as being deleted. */
-
- template<typename T>
- static void
- mark_deleted (T &e)
- {
- mark_key_deleted (e.m_key);
- }
-
- /* Mark the passed in entry as being empty. */
-
- template<typename T>
- static void
- mark_empty (T &e)
- {
- mark_key_empty (e.m_key);
- }
-
- /* Return true if the passed in entry is marked as deleted. */
-
- template<typename T>
- static bool
- is_deleted (T &e)
- {
- return e.m_key == (void *)1;
- }
-
- /* Return true if the passed in entry is marked as empty. */
-
- template<typename T> static bool is_empty (T &e) { return e.m_key == NULL; }
-
-private:
- template<typename T>
- static void
- mark_key_deleted (T *&k)
- {
- k = reinterpret_cast<T *> (1);
- }
-
- template<typename T>
- static void
- mark_key_empty (T *&k)
- {
- k = static_cast<T *> (0);
- }
-};
+#include "hash-map-traits.h"
+#include "mem-stats.h"
+#include "vec.h"
template<typename Key, typename Value,
- typename Traits = default_hashmap_traits>
+ typename Traits>
class GTY((user)) hash_map
{
struct hash_entry
@@ -187,13 +112,16 @@ class GTY((user)) hash_map
};
public:
- explicit hash_map (size_t n = 13, bool ggc = false) : m_table (n, ggc) {}
+ explicit hash_map (size_t n = 13, bool ggc = false,
+ bool gather_mem_stats = true CXX_MEM_STAT_INFO)
+ : m_table (n, ggc, gather_mem_stats, HASH_MAP PASS_MEM_STAT) {}
/* Create a hash_map in ggc memory. */
- static hash_map *create_ggc (size_t size)
+ static hash_map *create_ggc (size_t size, bool gather_mem_stats = true
+ CXX_MEM_STAT_INFO)
{
hash_map *map = ggc_alloc<hash_map> ();
- new (map) hash_map (size, true);
+ new (map) hash_map (size, true, gather_mem_stats PASS_MEM_STAT);
return map;
}
diff --git a/gcc/hash-set.h b/gcc/hash-set.h
index 9065451..2384d76 100644
--- a/gcc/hash-set.h
+++ b/gcc/hash-set.h
@@ -180,7 +180,8 @@ class hash_set
};
public:
- explicit hash_set (size_t n = 13, bool ggc = false) : m_table (n, ggc) {}
+ explicit hash_set (size_t n = 13, bool ggc = false CXX_MEM_STAT_INFO)
+ : m_table (n, ggc, true, HASH_SET PASS_MEM_STAT) {}
/* Create a hash_set in gc memory with space for at least n elements. */
diff --git a/gcc/hash-table.c b/gcc/hash-table.c
index 3127e9c..012b241 100644
--- a/gcc/hash-table.c
+++ b/gcc/hash-table.c
@@ -31,7 +31,6 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "hash-table.h"
-
/* Table of primes and multiplicative inverses.
Note that these are not minimally reduced inverses. Unlike when generating
@@ -99,3 +98,15 @@ hash_table_higher_prime_index (unsigned long n)
return low;
}
+mem_alloc_description<mem_usage> hash_table_usage;
+
+/* Support function for statistics. */
+void dump_hash_table_loc_statistics (void)
+{
+ for (unsigned i = HASH_TABLE; i <= HASH_SET; i++)
+ {
+ mem_alloc_origin origin = (mem_alloc_origin) i;
+ hash_table_usage.dump (origin);
+ }
+}
+
diff --git a/gcc/hash-table.h b/gcc/hash-table.h
index f6375d1..a0d2730 100644
--- a/gcc/hash-table.h
+++ b/gcc/hash-table.h
@@ -199,6 +199,7 @@ along with GCC; see the file COPYING3. If not see
#include "ggc.h"
#include "hashtab.h"
#include <new>
+#include "mem-stats-traits.h"
template<typename, typename, typename> class hash_map;
template<typename, typename> class hash_set;
@@ -551,6 +552,8 @@ struct mark_empty_helper<Type *, Traits, false>
}
};
+class mem_usage;
+
/* User-facing hash table type.
The table stores elements of type Descriptor::value_type.
@@ -583,16 +586,18 @@ class hash_table
typedef typename Descriptor::compare_type compare_type;
public:
- explicit hash_table (size_t, bool ggc = false CXX_MEM_STAT_INFO);
+ explicit hash_table (size_t, bool ggc = false, bool gather_mem_stats = true,
+ mem_alloc_origin origin = HASH_TABLE
+ CXX_MEM_STAT_INFO);
~hash_table ();
/* Create a hash_table in gc memory. */
static hash_table *
- create_ggc (size_t n)
+ create_ggc (size_t n CXX_MEM_STAT_INFO)
{
hash_table *table = ggc_alloc<hash_table> ();
- new (table) hash_table (n, true);
+ new (table) hash_table (n, true, true, HASH_TABLE PASS_MEM_STAT);
return table;
}
@@ -759,19 +764,39 @@ private:
/* if m_entries is stored in ggc memory. */
bool m_ggc;
+
+ /* If we should gather memory statistics for the table. */
+ bool m_gather_mem_stats;
};
+/* As mem-stats.h heavily utilizes hash maps (hash tables), we have to include
+ mem-stats.h after hash_table declaration. */
+
+#include "mem-stats.h"
+#include "hash-map.h"
+#include "vec.h"
+
+extern mem_alloc_description<mem_usage> hash_table_usage;
+
+/* Support function for statistics. */
+extern void dump_hash_table_loc_statistics (void);
+
template<typename Descriptor, template<typename Type> class Allocator>
-hash_table<Descriptor, Allocator>::hash_table (size_t size, bool ggc
- MEM_STAT_DECL) :
+hash_table<Descriptor, Allocator>::hash_table (size_t size, bool ggc, bool
+ gather_mem_stats,
+ mem_alloc_origin origin
+ MEM_STAT_DECL) :
m_n_elements (0), m_n_deleted (0), m_searches (0), m_collisions (0),
- m_ggc (ggc)
+ m_ggc (ggc), m_gather_mem_stats (gather_mem_stats)
{
unsigned int size_prime_index;
size_prime_index = hash_table_higher_prime_index (size);
size = prime_tab[size_prime_index].prime;
+ if (m_gather_mem_stats)
+ hash_table_usage.register_descriptor (this, origin, ggc FINAL_PASS_MEM_STAT);
+
m_entries = alloc_entries (size PASS_MEM_STAT);
m_size = size;
m_size_prime_index = size_prime_index;
@@ -788,6 +813,9 @@ hash_table<Descriptor, Allocator>::~hash_table ()
Allocator <value_type> ::data_free (m_entries);
else
ggc_free (m_entries);
+
+ if (m_gather_mem_stats)
+ hash_table_usage.release_instance_overhead (this, sizeof (value_type) * m_size, true);
}
/* This function returns an array of empty hash table elements. */
@@ -798,6 +826,9 @@ hash_table<Descriptor, Allocator>::alloc_entries (size_t n MEM_STAT_DECL) const
{
value_type *nentries;
+ if (m_gather_mem_stats)
+ hash_table_usage.register_instance_overhead (sizeof (value_type) * n, this);
+
if (!m_ggc)
nentries = Allocator <value_type> ::data_alloc (n);
else
@@ -881,6 +912,11 @@ hash_table<Descriptor, Allocator>::expand ()
}
value_type *nentries = alloc_entries (nsize);
+
+ if (m_gather_mem_stats)
+ hash_table_usage.release_instance_overhead (this, sizeof (value_type)
+ * osize);
+
m_entries = nentries;
m_size = nsize;
m_size_prime_index = nindex;
diff --git a/gcc/inchash.c b/gcc/inchash.c
index c555046..90c62e8 100644
--- a/gcc/inchash.c
+++ b/gcc/inchash.c
@@ -26,54 +26,3 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "hashtab.h"
#include "inchash.h"
-
-/* Borrowed from hashtab.c iterative_hash implementation. */
-#define mix(a,b,c) \
-{ \
- a -= b; a -= c; a ^= (c>>13); \
- b -= c; b -= a; b ^= (a<< 8); \
- c -= a; c -= b; c ^= ((b&0xffffffff)>>13); \
- a -= b; a -= c; a ^= ((c&0xffffffff)>>12); \
- b -= c; b -= a; b = (b ^ (a<<16)) & 0xffffffff; \
- c -= a; c -= b; c = (c ^ (b>> 5)) & 0xffffffff; \
- a -= b; a -= c; a = (a ^ (c>> 3)) & 0xffffffff; \
- b -= c; b -= a; b = (b ^ (a<<10)) & 0xffffffff; \
- c -= a; c -= b; c = (c ^ (b>>15)) & 0xffffffff; \
-}
-
-
-/* Produce good hash value combining VAL and VAL2. */
-hashval_t
-iterative_hash_hashval_t (hashval_t val, hashval_t val2)
-{
- /* the golden ratio; an arbitrary value. */
- hashval_t a = 0x9e3779b9;
-
- mix (a, val, val2);
- return val2;
-}
-
-/* Produce good hash value combining VAL and VAL2. */
-
-hashval_t
-iterative_hash_host_wide_int (HOST_WIDE_INT val, hashval_t val2)
-{
- if (sizeof (HOST_WIDE_INT) == sizeof (hashval_t))
- return iterative_hash_hashval_t (val, val2);
- else
- {
- hashval_t a = (hashval_t) val;
- /* Avoid warnings about shifting of more than the width of the type on
- hosts that won't execute this path. */
- int zero = 0;
- hashval_t b = (hashval_t) (val >> (sizeof (hashval_t) * 8 + zero));
- mix (a, b, val2);
- if (sizeof (HOST_WIDE_INT) > 2 * sizeof (hashval_t))
- {
- hashval_t a = (hashval_t) (val >> (sizeof (hashval_t) * 16 + zero));
- hashval_t b = (hashval_t) (val >> (sizeof (hashval_t) * 24 + zero));
- mix (a, b, val2);
- }
- return val2;
- }
-}
diff --git a/gcc/inchash.h b/gcc/inchash.h
index 54fb0d8..350222d 100644
--- a/gcc/inchash.h
+++ b/gcc/inchash.h
@@ -36,8 +36,8 @@ along with GCC; see the file COPYING3. If not see
Currently it just implements the plain old jhash based
incremental hash from gcc's tree.c. */
-extern hashval_t iterative_hash_host_wide_int (HOST_WIDE_INT, hashval_t);
-extern hashval_t iterative_hash_hashval_t (hashval_t, hashval_t);
+hashval_t iterative_hash_host_wide_int (HOST_WIDE_INT, hashval_t);
+hashval_t iterative_hash_hashval_t (hashval_t, hashval_t);
namespace inchash
{
@@ -72,7 +72,7 @@ class hash
}
/* Hash in pointer PTR. */
- void add_ptr (void *ptr)
+ void add_ptr (const void *ptr)
{
add (&ptr, sizeof (ptr));
}
@@ -138,4 +138,57 @@ class hash
}
+/* Borrowed from hashtab.c iterative_hash implementation. */
+#define mix(a,b,c) \
+{ \
+ a -= b; a -= c; a ^= (c>>13); \
+ b -= c; b -= a; b ^= (a<< 8); \
+ c -= a; c -= b; c ^= ((b&0xffffffff)>>13); \
+ a -= b; a -= c; a ^= ((c&0xffffffff)>>12); \
+ b -= c; b -= a; b = (b ^ (a<<16)) & 0xffffffff; \
+ c -= a; c -= b; c = (c ^ (b>> 5)) & 0xffffffff; \
+ a -= b; a -= c; a = (a ^ (c>> 3)) & 0xffffffff; \
+ b -= c; b -= a; b = (b ^ (a<<10)) & 0xffffffff; \
+ c -= a; c -= b; c = (c ^ (b>>15)) & 0xffffffff; \
+}
+
+
+/* Produce good hash value combining VAL and VAL2. */
+inline
+hashval_t
+iterative_hash_hashval_t (hashval_t val, hashval_t val2)
+{
+ /* the golden ratio; an arbitrary value. */
+ hashval_t a = 0x9e3779b9;
+
+ mix (a, val, val2);
+ return val2;
+}
+
+/* Produce good hash value combining VAL and VAL2. */
+
+inline
+hashval_t
+iterative_hash_host_wide_int (HOST_WIDE_INT val, hashval_t val2)
+{
+ if (sizeof (HOST_WIDE_INT) == sizeof (hashval_t))
+ return iterative_hash_hashval_t (val, val2);
+ else
+ {
+ hashval_t a = (hashval_t) val;
+ /* Avoid warnings about shifting of more than the width of the type on
+ hosts that won't execute this path. */
+ int zero = 0;
+ hashval_t b = (hashval_t) (val >> (sizeof (hashval_t) * 8 + zero));
+ mix (a, b, val2);
+ if (sizeof (HOST_WIDE_INT) > 2 * sizeof (hashval_t))
+ {
+ hashval_t a = (hashval_t) (val >> (sizeof (hashval_t) * 16 + zero));
+ hashval_t b = (hashval_t) (val >> (sizeof (hashval_t) * 24 + zero));
+ mix (a, b, val2);
+ }
+ return val2;
+ }
+}
+
#endif
diff --git a/gcc/mem-stats-traits.h b/gcc/mem-stats-traits.h
new file mode 100644
index 0000000..6c22e89
--- /dev/null
+++ b/gcc/mem-stats-traits.h
@@ -0,0 +1,20 @@
+#ifndef GCC_MEM_STATS_TRAITS_H
+#define GCC_MEM_STATS_TRAITS_H
+
+/* Memory allocation origin. */
+enum mem_alloc_origin
+{
+ HASH_TABLE,
+ HASH_MAP,
+ HASH_SET,
+ VEC,
+ BITMAP,
+ GGC,
+ MEM_ALLOC_ORIGIN_LENGTH
+};
+
+/* Verbose names of the memory allocation origin. */
+static const char * mem_alloc_origin_names[] = { "Hash tables", "Hash maps", "Hash sets",
+ "Heap vectors", "Bitmaps", "GGC memory" };
+
+#endif // GCC_MEM_STATS_TRAITS_H
diff --git a/gcc/mem-stats.h b/gcc/mem-stats.h
new file mode 100644
index 0000000..1b3194a
--- /dev/null
+++ b/gcc/mem-stats.h
@@ -0,0 +1,535 @@
+#ifndef GCC_MEM_STATS_H
+#define GCC_MEM_STATS_H
+
+#include "hash-map-traits.h"
+#include "inchash.h"
+#include "mem-stats-traits.h"
+#include "vec.h"
+
+/* Forward declaration. */
+template<typename Key, typename Value,
+ typename Traits = default_hashmap_traits>
+class hash_map;
+
+/* Memoty allocation location. */
+struct mem_location
+{
+ /* Default constructor. */
+ inline mem_location () {}
+
+ /* Constructor. */
+ inline mem_location (const char *filename, const char *function, int line,
+ mem_alloc_origin origin, bool ggc):
+ m_filename (filename), m_function (function), m_line (line), m_origin
+ (origin), m_ggc (ggc) {}
+
+ /* Compute hash value based on file name, function name and line in
+ source code. As there is just a single pointer registered for every
+ constant that points to e.g. the same file name, we can use hash
+ of the pointer. */
+ hashval_t hash ()
+ {
+ inchash::hash hash;
+
+ hash.add_ptr (m_filename);
+ hash.add_ptr (m_function);
+ hash.add_int (m_line);
+
+ return hash.end ();
+ }
+
+ /* Return true if the memory location is equal to OTHER. */
+ int equal (mem_location &other)
+ {
+ return m_filename == other.m_filename && m_function == other.m_function
+ && m_line == other.m_line;
+ }
+
+ /* Return trimmed filename for the location. */
+ inline const char *get_trimmed_filename ()
+ {
+ const char *s1 = m_filename;
+ const char *s2;
+
+ while ((s2 = strstr (s1, "gcc/")))
+ s1 = s2 + 4;
+
+ return s1;
+ }
+
+ /* Return display name associated to ORIGIN type. */
+ static const char *get_origin_name (mem_alloc_origin origin)
+ {
+ return mem_alloc_origin_names[(unsigned) origin];
+ }
+
+ /* File name of source code. */
+ const char *m_filename;
+ /* Funcation name. */
+ const char *m_function;
+ /* Line number in source code.*/
+ int m_line;
+ /* Origin type. */
+ mem_alloc_origin m_origin;
+ /* Flag if used by GGC allocation. */
+ bool m_ggc;
+};
+
+/* Memory usage register to a memory location. */
+struct mem_usage
+{
+ /* Default constructor. */
+ mem_usage (): m_allocated (0), m_times (0), m_peak (0) {}
+
+ /* Constructor. */
+ mem_usage (size_t allocated, size_t times, size_t peak):
+ m_allocated (allocated), m_times (times), m_peak (peak) {}
+
+ /* Register overhead of SIZE bytes. */
+ inline void register_overhead (size_t size)
+ {
+ m_allocated += size;
+ m_times++;
+
+ if (m_peak < m_allocated)
+ m_peak = m_allocated;
+ }
+
+ /* Release overhead of SIZE bytes. */
+ inline void release_overhead (size_t size)
+ {
+ gcc_assert (size <= m_allocated);
+
+ m_allocated -= size;
+ }
+
+ /* Sum the usage with SECOND usage. */
+ mem_usage operator+ (const mem_usage &second)
+ {
+ return mem_usage (m_allocated + second.m_allocated,
+ m_times + second.m_times,
+ m_peak + second.m_peak);
+ }
+
+ /* Comparison operator. */
+ inline bool operator< (const mem_usage &second) const
+ {
+ return (m_allocated == second.m_allocated ?
+ (m_peak == second.m_peak ? m_times < second.m_times
+ : m_peak < second.m_peak ) : m_allocated < second.m_allocated);
+ }
+
+ /* Compare wrapper used by qsort method. */
+ static int compare (const void *first, const void *second)
+ {
+ typedef std::pair<mem_location *, mem_usage *> mem_pair_t;
+
+ const mem_pair_t f = *(const mem_pair_t *)first;
+ const mem_pair_t s = *(const mem_pair_t *)second;
+
+ return (*f.second) < (*s.second);
+ }
+
+ /* Dump usage coupled to LOC location, where TOTAL is sum of all rows. */
+ inline void dump (mem_location *loc, mem_usage &total) const
+ {
+ char s[4096];
+ sprintf (s, "%s:%i (%s)", loc->get_trimmed_filename (),
+ loc->m_line, loc->m_function);
+
+ s[48] = '\0';
+
+ fprintf (stderr, "%-48s %10li:%5.1f%%%10li%10li:%5.1f%%%10s\n", s,
+ (long)m_allocated, get_percent (m_allocated, total.m_allocated),
+ (long)m_peak, (long)m_times,
+ get_percent (m_times, total.m_times), loc->m_ggc ? "ggc" : "heap");
+ }
+
+ /* Dump footer. */
+ inline void dump_footer ()
+ {
+ print_dash_line ();
+ fprintf (stderr, "%s%54li%27li\n", "Total", (long)m_allocated,
+ (long)m_times);
+ print_dash_line ();
+ }
+
+ /* Return fraction of NOMINATOR and DENOMINATOR in percent. */
+ static inline float get_percent (size_t nominator, size_t denominator)
+ {
+ return denominator == 0 ? 0.0f : nominator * 100.0 / denominator;
+ }
+
+ /* Print line made of dashes. */
+ static inline void print_dash_line ()
+ {
+ fprintf (stderr, "%s\n", std::string (128, '-').c_str ());
+ }
+
+ /* Dump header with NAME. */
+ static inline void dump_header (const char *name)
+ {
+ fprintf (stderr, "%-48s %11s%16s%10s%17s\n", name, "Leak", "Peak",
+ "Times", "Type");
+ print_dash_line ();
+ }
+
+ /* Current number of allocated bytes. */
+ size_t m_allocated;
+ /* Number of allocations. */
+ size_t m_times;
+ /* Peak allocation in bytes. */
+ size_t m_peak;
+};
+
+/* Memory usage pair that connectes memory usage and number
+ of allocated bytes. */
+template <class T>
+struct mem_usage_pair
+{
+ mem_usage_pair (T *usage_, size_t allocated_): usage (usage_),
+ allocated (allocated_) {}
+
+ T *usage;
+ size_t allocated;
+};
+
+/* Memory allocation description. */
+template <class T>
+class mem_alloc_description
+{
+public:
+ struct mem_alloc_hashmap_traits: default_hashmap_traits
+ {
+ static hashval_t
+ hash (const mem_location *l)
+ {
+ inchash::hash hstate;
+
+ hstate.add_ptr ((const void *)l->m_filename);
+ hstate.add_ptr (l->m_function);
+ hstate.add_int (l->m_line);
+
+ return hstate.end ();
+ }
+
+ static bool
+ equal_keys (const mem_location *l1, const mem_location *l2)
+ {
+ return l1->m_filename == l2->m_filename && l1->m_function == l2->m_function
+ && l1->m_line == l2->m_line;
+ }
+ };
+
+ /* Internal class type definitions. */
+ typedef hash_map <mem_location *, T *, mem_alloc_hashmap_traits> mem_map_t;
+ typedef hash_map <const void *, mem_usage_pair<T>, default_hashmap_traits> reverse_mem_map_t;
+ typedef hash_map <const void *, std::pair<T *, size_t> > reverse_object_map_t;
+ typedef std::pair <mem_location *, T *> mem_list_t;
+
+ /* Default contructor. */
+ mem_alloc_description ();
+
+ /* Default destructor. */
+ ~mem_alloc_description ();
+
+ /* Returns true if instance PTR is registered by the memory description. */
+ bool contains_descriptor_for_instance (const void *ptr);
+
+ /* Return descriptor for instance PTR. */
+ T *get_descriptor_for_instance (const void *ptr);
+
+ /* Register memory allocation descriptor for container PTR. ORIGIN identifies
+ type of container and GGC identifes if the allocation is handled in GGC
+ memory. Each location is identified by file NAME, LINE in source code and
+ FUNCTION name. */
+ T *register_descriptor (const void *ptr, mem_alloc_origin origin,
+ bool ggc, const char *name, int line,
+ const char *function);
+
+ /* Register instance overhead identified by PTR pointer. Allocation takes
+ SIZE bytes. */
+ T *register_instance_overhead (size_t size, const void *ptr);
+
+ /* For containers (and GGC) where we want to track every instance object,
+ we register allocation of SIZE bytes, identified by PTR pointer, belonging
+ to USAGE descriptor. */
+ void register_object_overhead (T *usage, size_t size, const void *ptr);
+
+ /* Release PTR pointer of SIZE bytes. If REMOVE_FROM_MAP is set to true,
+ remove the instance from reverse map. */
+ void release_instance_overhead (void *ptr, size_t size,
+ bool remove_from_map = false);
+
+ /* Release intance object identified by PTR pointer. */
+ void release_object_overhead (void *ptr);
+
+ /* Get sum value for ORIGIN type of allocation for the descriptor. */
+ T get_sum (mem_alloc_origin origin);
+
+ /* Get all tracked instances registered by the description. Items are filtered
+ by ORIGIN type, LENGTH is return value where we register the number of
+ elements in the list. If we want to process custom order, CMP comparator
+ can be provided. */
+ mem_list_t *get_list (mem_alloc_origin origin, unsigned *length,
+ int (*cmp) (const void *first, const void *second) = NULL);
+
+ /* Dump all tracked instances of type ORIGIN. If we want to process custom order,
+ CMP comparator can be provided. */
+ void dump (mem_alloc_origin origin,
+ int (*cmp) (const void *first, const void *second) = NULL);
+
+ /* Reverse object map used for every object allocation mapping. */
+ reverse_object_map_t *m_reverse_object_map;
+
+private:
+ /* Register overhead of SIZE bytes of ORIGIN type. PTR pointer is allocated
+ in NAME source file, at LINE in source code, in FUNCTION. */
+ T *register_overhead (size_t size, mem_alloc_origin origin, const char *name, int line,
+ const char *function, const void *ptr);
+
+ /* Allocation location coupled to the description. */
+ mem_location m_location;
+
+ /* Location to usage mapping. */
+ mem_map_t *m_map;
+
+ /* Reverse pointer to usage mapping. */
+ reverse_mem_map_t *m_reverse_map;
+};
+
+#include "hash-map.h"
+
+/* Returns true if instance PTR is registered by the memory description. */
+
+template <class T>
+inline bool
+mem_alloc_description<T>::contains_descriptor_for_instance (const void *ptr)
+{
+ return m_reverse_map->get (ptr);
+}
+
+/* Return descriptor for instance PTR. */
+
+template <class T>
+inline T*
+mem_alloc_description<T>::get_descriptor_for_instance (const void *ptr)
+{
+ return m_reverse_map->get (ptr) ? (*m_reverse_map->get (ptr)).usage : NULL;
+}
+
+/* Register memory allocation descriptor for container PTR. ORIGIN identifies
+ type of container and GGC identifes if the allocation is handled in GGC
+ memory. Each location is identified by file NAME, LINE in source code and
+ FUNCTION name. */
+
+template <class T>
+inline T*
+mem_alloc_description<T>::register_descriptor (const void *ptr,
+ mem_alloc_origin origin,
+ bool ggc,
+ const char *filename,
+ int line,
+ const char *function)
+{
+ mem_location *l = new mem_location (filename, function, line, origin, ggc);
+ T *usage = NULL;
+
+ T **slot = m_map->get (l);
+ if (slot)
+ {
+ delete l;
+ usage = *slot;
+ }
+ else
+ {
+ usage = new T ();
+ m_map->put (l, usage);
+ }
+
+ if (!m_reverse_map->get (ptr))
+ m_reverse_map->put (ptr, mem_usage_pair<T> (usage, 0));
+
+ return usage;
+}
+
+/* Register instance overhead identified by PTR pointer. Allocation takes
+ SIZE bytes. */
+
+template <class T>
+inline T*
+mem_alloc_description<T>::register_instance_overhead (size_t size, const void *ptr)
+{
+ mem_usage_pair <T> *slot = m_reverse_map->get (ptr);
+ if (!slot)
+ {
+ gcc_unreachable ();
+ return NULL;
+ }
+
+ T *usage = (*slot).usage;
+ usage->register_overhead (size);
+
+ return usage;
+}
+
+/* For containers (and GGC) where we want to track every instance object,
+ we register allocation of SIZE bytes, identified by PTR pointer, belonging
+ to USAGE descriptor. */
+
+template <class T>
+void
+mem_alloc_description<T>::register_object_overhead (T *usage, size_t size, const void *ptr)
+{
+ gcc_assert (m_reverse_object_map->get (ptr) == NULL);
+ m_reverse_object_map->put (ptr, std::pair<T *, size_t> (usage, size));
+}
+
+/* Register overhead of SIZE bytes of ORIGIN type. PTR pointer is allocated
+ in NAME source file, at LINE in source code, in FUNCTION. */
+
+template <class T>
+inline T*
+mem_alloc_description<T>::register_overhead (size_t size, mem_alloc_origin origin, const char *filename, int line, const char *function, const void *ptr)
+{
+ T *usage = register_descriptor (ptr, origin, filename, line, function);
+ usage->register_overhead (size);
+
+ return usage;
+}
+
+/* Release PTR pointer of SIZE bytes. */
+
+template <class T>
+inline void
+mem_alloc_description<T>::release_instance_overhead (void *ptr, size_t size,
+ bool remove_from_map)
+{
+ mem_usage_pair<T> *slot = m_reverse_map->get (ptr);
+
+ if (!slot)
+ {
+ gcc_unreachable ();
+ return;
+ }
+
+ mem_usage_pair<T> usage_pair = *slot;
+ usage_pair.usage->release_overhead (size);
+
+ if (remove_from_map)
+ m_reverse_map->remove (ptr);
+}
+
+/* Release intance object identified by PTR pointer. */
+
+template <class T>
+inline void
+mem_alloc_description<T>::release_object_overhead (void *ptr)
+{
+ std::pair <T *, size_t> *entry = m_reverse_object_map->get (ptr);
+ if (entry)
+ {
+ entry->first->release_overhead (entry->second);
+ m_reverse_object_map->remove (ptr);
+ }
+}
+
+/* Default contructor. */
+
+template <class T>
+inline
+mem_alloc_description<T>::mem_alloc_description()
+{
+ m_map = new mem_map_t (13, false, false);
+ m_reverse_map = new reverse_mem_map_t (13, false, false);
+ m_reverse_object_map = new reverse_object_map_t (13, false, false);
+}
+
+/* Default destructor. */
+
+template <class T>
+inline
+mem_alloc_description<T>::~mem_alloc_description()
+{
+ for (typename mem_map_t::iterator it = m_map->begin (); it != m_map->end (); ++it)
+ {
+ delete (*it).first;
+ delete (*it).second;
+ }
+
+ delete m_map;
+ delete m_reverse_map;
+ delete m_reverse_object_map;
+}
+
+/* Get all tracked instances registered by the description. Items are filtered
+ by ORIGIN type, LENGTH is return value where we register the number of
+ elements in the list. If we want to process custom order, CMP comparator
+ can be provided. */
+
+template <class T>
+inline
+typename mem_alloc_description<T>::mem_list_t *
+mem_alloc_description<T>::get_list (mem_alloc_origin origin, unsigned *length,
+ int (*cmp) (const void *first, const void *second))
+{
+ /* vec data structure is not used because all vectors generate memory
+ allocation info a it would create a cycle. */
+ size_t element_size = sizeof (mem_list_t);
+ mem_list_t *list = XCNEWVEC (mem_list_t, m_map->elements ());
+ unsigned i = 0;
+
+ for (typename mem_map_t::iterator it = m_map->begin(); it != m_map->end (); ++it)
+ if ((*it).first->m_origin == origin)
+ list[i++] = std::pair<mem_location*, T*> (*it);
+
+ qsort (list, i, element_size, cmp == NULL ? T::compare : cmp);
+ *length = i;
+
+ return list;
+}
+
+/* Get sum value for ORIGIN type of allocation for the descriptor. */
+
+template <class T>
+inline T
+mem_alloc_description<T>::get_sum (mem_alloc_origin origin)
+{
+ unsigned length;
+ mem_list_t *list = get_list (origin, &length);
+ T sum;
+
+ for (unsigned i = 0; i < length; i++)
+ sum = sum + *list[i].second;
+
+ XDELETEVEC (list);
+
+ return sum;
+}
+
+/* Dump all tracked instances of type ORIGIN. If we want to process custom order,
+ CMP comparator can be provided. */
+
+template <class T>
+inline void
+mem_alloc_description<T>::dump (mem_alloc_origin origin, int (*cmp) (const void *first, const void *second))
+{
+ unsigned length;
+
+ fprintf (stderr, "\n");
+
+ mem_list_t *list = get_list (origin, &length, cmp);
+ T total = get_sum (origin);
+
+ T::dump_header (mem_location::get_origin_name (origin));
+ for (int i = length - 1; i >= 0; i--)
+ list[i].second->dump (list[i].first, total);
+
+ total.dump_footer ();
+
+ XDELETEVEC (list);
+
+ fprintf (stderr, "\n");
+}
+
+#endif // GCC_MEM_STATS_H
diff --git a/gcc/sese.c b/gcc/sese.c
index fb5b636..c274547 100644
--- a/gcc/sese.c
+++ b/gcc/sese.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "config.h"
#include "system.h"
#include "coretypes.h"
+#include "mem-stats.h"
#include "hash-map.h"
#include "hash-set.h"
#include "machmode.h"
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 3c1ba38..48d0623 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1957,6 +1957,7 @@ dump_memory_report (bool final)
dump_rtx_statistics ();
dump_alloc_pool_statistics ();
dump_bitmap_statistics ();
+ dump_hash_table_loc_statistics ();
dump_vec_loc_statistics ();
dump_ggc_loc_statistics (final);
dump_alias_stats (stderr);
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 4b0d2a8..d799751 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -74,6 +74,7 @@ along with GCC; see the file COPYING3. If not see
#include "config.h"
#include "system.h"
#include "coretypes.h"
+#include "mem-stats.h"
#include "hash-map.h"
#include "hash-table.h"
#include "alloc-pool.h"
diff --git a/gcc/vec.c b/gcc/vec.c
index 06b887b..a147306 100644
--- a/gcc/vec.c
+++ b/gcc/vec.c
@@ -33,6 +33,9 @@ along with GCC; see the file COPYING3. If not see
#include "vec.h"
#include "diagnostic-core.h"
#include "hashtab.h"
+#include "mem-stats.h"
+#include "hash-map.h"
+#include "mem-stats.h"
/* vNULL is an empty type with a template cast operation that returns
a zero-initialized vec<T, A, L> instance. Use this when you want
@@ -44,129 +47,109 @@ along with GCC; see the file COPYING3. If not see
they cannot have ctors/dtors. */
vnull vNULL;
-
-/* Store information about each particular vector. */
-struct vec_descriptor
-{
- const char *function;
- const char *file;
- int line;
- size_t allocated;
- size_t times;
- size_t peak;
-};
-
-
-/* Hashtable mapping vec addresses to descriptors. */
-static htab_t vec_desc_hash;
-
-/* Hashtable helpers. */
-static hashval_t
-hash_descriptor (const void *p)
-{
- const struct vec_descriptor *const d =
- (const struct vec_descriptor *) p;
- return htab_hash_pointer (d->file) + d->line;
-}
-static int
-eq_descriptor (const void *p1, const void *p2)
+/* Vector memory usage. */
+struct vec_usage: public mem_usage
{
- const struct vec_descriptor *const d = (const struct vec_descriptor *) p1;
- const struct vec_descriptor *const l = (const struct vec_descriptor *) p2;
- return d->file == l->file && d->function == l->function && d->line == l->line;
-}
-
-/* Hashtable converting address of allocated field to loc descriptor. */
-static htab_t ptr_hash;
-struct ptr_hash_entry
-{
- void *ptr;
- struct vec_descriptor *loc;
- size_t allocated;
+ /* Default constructor. */
+ vec_usage (): m_items (0), m_items_peak (0) {}
+
+ /* Constructor. */
+ vec_usage (size_t allocated, size_t times, size_t peak,
+ size_t items, size_t items_peak)
+ : mem_usage (allocated, times, peak),
+ m_items (items), m_items_peak (items_peak) {}
+
+ /* Comparison operator. */
+ inline bool operator< (const vec_usage &second) const
+ {
+ return (m_allocated == second.m_allocated ?
+ (m_peak == second.m_peak ? m_times < second.m_times
+ : m_peak < second.m_peak ) : m_allocated < second.m_allocated);
+ }
+
+ /* Sum the usage with SECOND usage. */
+ vec_usage operator+ (const vec_usage &second)
+ {
+ return vec_usage (m_allocated + second.m_allocated,
+ m_times + second.m_times,
+ m_peak + second.m_peak,
+ m_items + second.m_items,
+ m_items_peak + second.m_items_peak);
+ }
+
+ /* Dump usage coupled to LOC location, where TOTAL is sum of all rows. */
+ inline void dump (mem_location *loc, mem_usage &total) const
+ {
+ char s[4096];
+ sprintf (s, "%s:%i (%s)", loc->get_trimmed_filename (),
+ loc->m_line, loc->m_function);
+
+ s[48] = '\0';
+
+ fprintf (stderr, "%-48s %10li:%4.1f%%%10li%10li:%4.1f%%%11li%11li\n", s,
+ (long)m_allocated, m_allocated * 100.0 / total.m_allocated,
+ (long)m_peak, (long)m_times, m_times * 100.0 / total.m_times,
+ (long)m_items, (long)m_items_peak);
+ }
+
+ /* Dump footer. */
+ inline void dump_footer ()
+ {
+ print_dash_line ();
+ fprintf (stderr, "%s%55li%25li%17li\n", "Total", (long)m_allocated,
+ (long)m_times, (long)m_items);
+ print_dash_line ();
+ }
+
+ /* Dump header with NAME. */
+ static inline void dump_header (const char *name)
+ {
+ fprintf (stderr, "%-48s %11s%15s%10s%17s%11s\n", name, "Leak", "Peak",
+ "Times", "Leak items", "Peak items");
+ print_dash_line ();
+ }
+
+ /* Compare wrapper used by qsort method. */
+ static int compare (const void *first, const void *second)
+ {
+ typedef std::pair<mem_location *, vec_usage *> mem_pair_t;
+
+ const mem_pair_t f = *(const mem_pair_t *)first;
+ const mem_pair_t s = *(const mem_pair_t *)second;
+
+ return (*f.second) < (*s.second);
+ }
+
+ /* Current number of items allocated. */
+ size_t m_items;
+ /* Peak value of number of allocated items. */
+ size_t m_items_peak;
};
-/* Hash table helpers functions. */
-static hashval_t
-hash_ptr (const void *p)
-{
- const struct ptr_hash_entry *const d = (const struct ptr_hash_entry *) p;
-
- return htab_hash_pointer (d->ptr);
-}
-
-static int
-eq_ptr (const void *p1, const void *p2)
-{
- const struct ptr_hash_entry *const p = (const struct ptr_hash_entry *) p1;
-
- return (p->ptr == p2);
-}
-
-/* Return descriptor for given call site, create new one if needed. */
-static struct vec_descriptor *
-vec_descriptor (const char *name, int line, const char *function)
-{
- struct vec_descriptor loc;
- struct vec_descriptor **slot;
-
- loc.file = name;
- loc.line = line;
- loc.function = function;
- if (!vec_desc_hash)
- vec_desc_hash = htab_create (10, hash_descriptor, eq_descriptor, NULL);
-
- slot = (struct vec_descriptor **) htab_find_slot (vec_desc_hash, &loc,
- INSERT);
- if (*slot)
- return *slot;
- *slot = XCNEW (struct vec_descriptor);
- (*slot)->file = name;
- (*slot)->line = line;
- (*slot)->function = function;
- (*slot)->allocated = 0;
- (*slot)->peak = 0;
- return *slot;
-}
+/* Vector memory description. */
+static mem_alloc_description <vec_usage> vec_mem_desc;
/* Account the overhead. */
void
-vec_prefix::register_overhead (size_t size, const char *name, int line,
- const char *function)
+vec_prefix::register_overhead (void *ptr, size_t size, size_t elements
+ MEM_STAT_DECL)
{
- struct vec_descriptor *loc = vec_descriptor (name, line, function);
- struct ptr_hash_entry *p = XNEW (struct ptr_hash_entry);
- PTR *slot;
-
- p->ptr = this;
- p->loc = loc;
- p->allocated = size;
- if (!ptr_hash)
- ptr_hash = htab_create (10, hash_ptr, eq_ptr, NULL);
- slot = htab_find_slot_with_hash (ptr_hash, this, htab_hash_pointer (this),
- INSERT);
- gcc_assert (!*slot);
- *slot = p;
-
- loc->allocated += size;
- if (loc->peak < loc->allocated)
- loc->peak += loc->allocated;
- loc->times++;
+ vec_mem_desc.register_descriptor (ptr, VEC, false FINAL_PASS_MEM_STAT);
+ vec_usage *usage = vec_mem_desc.register_instance_overhead (size, ptr);
+ usage->m_items += elements;
+ if (usage->m_items_peak < usage->m_items)
+ usage->m_items_peak = usage->m_items;
}
-
/* Notice that the memory allocated for the vector has been freed. */
void
-vec_prefix::release_overhead (void)
+vec_prefix::release_overhead (void *ptr, size_t size, bool in_dtor MEM_STAT_DECL)
{
- PTR *slot = htab_find_slot_with_hash (ptr_hash, this,
- htab_hash_pointer (this),
- NO_INSERT);
- struct ptr_hash_entry *p = (struct ptr_hash_entry *) *slot;
- p->loc->allocated -= p->allocated;
- htab_clear_slot (ptr_hash, slot);
- ::free (p);
+ if (!vec_mem_desc.contains_descriptor_for_instance (ptr))
+ vec_mem_desc.register_descriptor (ptr, VEC, false FINAL_PASS_MEM_STAT);
+ vec_mem_desc.release_instance_overhead (ptr, size, in_dtor);
}
@@ -195,84 +178,10 @@ vec_prefix::calculate_allocation_1 (unsigned alloc, unsigned desired)
return alloc;
}
-
-/* Helper for qsort; sort descriptors by amount of memory consumed. */
-
-static int
-cmp_statistic (const void *loc1, const void *loc2)
-{
- const struct vec_descriptor *const l1 =
- *(const struct vec_descriptor *const *) loc1;
- const struct vec_descriptor *const l2 =
- *(const struct vec_descriptor *const *) loc2;
- long diff;
- diff = l1->allocated - l2->allocated;
- if (!diff)
- diff = l1->peak - l2->peak;
- if (!diff)
- diff = l1->times - l2->times;
- return diff > 0 ? 1 : diff < 0 ? -1 : 0;
-}
-
-
-/* Collect array of the descriptors from hashtable. */
-
-static struct vec_descriptor **loc_array;
-static int
-add_statistics (void **slot, void *b)
-{
- int *n = (int *)b;
- loc_array[*n] = (struct vec_descriptor *) *slot;
- (*n)++;
- return 1;
-}
-
/* Dump per-site memory statistics. */
void
dump_vec_loc_statistics (void)
{
- int nentries = 0;
- char s[4096];
- size_t allocated = 0;
- size_t times = 0;
- int i;
-
- if (! GATHER_STATISTICS)
- return;
-
- loc_array = XCNEWVEC (struct vec_descriptor *, vec_desc_hash->n_elements);
- fprintf (stderr, "Heap vectors:\n");
- fprintf (stderr, "\n%-48s %10s %10s %10s\n",
- "source location", "Leak", "Peak", "Times");
- fprintf (stderr, "-------------------------------------------------------\n");
- htab_traverse (vec_desc_hash, add_statistics, &nentries);
- qsort (loc_array, nentries, sizeof (*loc_array), cmp_statistic);
- for (i = 0; i < nentries; i++)
- {
- struct vec_descriptor *d = loc_array[i];
- allocated += d->allocated;
- times += d->times;
- }
- for (i = 0; i < nentries; i++)
- {
- struct vec_descriptor *d = loc_array[i];
- const char *s1 = d->file;
- const char *s2;
- while ((s2 = strstr (s1, "gcc/")))
- s1 = s2 + 4;
- sprintf (s, "%s:%i (%s)", s1, d->line, d->function);
- s[48] = 0;
- fprintf (stderr, "%-48s %10li:%4.1f%% %10li %10li:%4.1f%% \n", s,
- (long)d->allocated,
- (d->allocated) * 100.0 / allocated,
- (long)d->peak,
- (long)d->times,
- (d->times) * 100.0 / times);
- }
- fprintf (stderr, "%-48s %10ld %10ld\n",
- "Total", (long)allocated, (long)times);
- fprintf (stderr, "\n%-48s %10s %10s %10s\n",
- "source location", "Leak", "Peak", "Times");
- fprintf (stderr, "-------------------------------------------------------\n");
+ vec_mem_desc.dump (VEC);
}
diff --git a/gcc/vec.h b/gcc/vec.h
index aa9a255..7b96979 100644
--- a/gcc/vec.h
+++ b/gcc/vec.h
@@ -51,7 +51,7 @@ along with GCC; see the file COPYING3. If not see
extern void ggc_free (void *);
extern size_t ggc_round_alloc_size (size_t requested_size);
- extern void *ggc_realloc (void *, size_t CXX_MEM_STAT_INFO);
+ extern void *ggc_realloc (void *, size_t MEM_STAT_DECL);
# endif // GCC_GGC_H
#endif // VEC_GC_ENABLED
@@ -206,6 +206,8 @@ along with GCC; see the file COPYING3. If not see
/* Support function for statistics. */
extern void dump_vec_loc_statistics (void);
+/* Hashtable mapping vec addresses to descriptors. */
+extern htab_t vec_mem_usage_hash;
/* Control data for vectors. This contains the number of allocated
and used slots inside a vector. */
@@ -216,8 +218,8 @@ struct vec_prefix
compilers that have stricter notions of PODness for types. */
/* Memory allocation support routines in vec.c. */
- void register_overhead (size_t, const char *, int, const char *);
- void release_overhead (void);
+ void register_overhead (void *, size_t, size_t CXX_MEM_STAT_INFO);
+ void release_overhead (void *, size_t, bool CXX_MEM_STAT_INFO);
static unsigned calculate_allocation (vec_prefix *, unsigned, bool);
static unsigned calculate_allocation_1 (unsigned, unsigned);
@@ -303,7 +305,7 @@ va_heap::reserve (vec<T, va_heap, vl_embed> *&v, unsigned reserve, bool exact
gcc_checking_assert (alloc);
if (GATHER_STATISTICS && v)
- v->m_vecpfx.release_overhead ();
+ v->m_vecpfx.release_overhead (v, v->allocated (), false);
size_t size = vec<T, va_heap, vl_embed>::embedded_size (alloc);
unsigned nelem = v ? v->length () : 0;
@@ -311,7 +313,7 @@ va_heap::reserve (vec<T, va_heap, vl_embed> *&v, unsigned reserve, bool exact
v->embedded_init (alloc, nelem);
if (GATHER_STATISTICS)
- v->m_vecpfx.register_overhead (size FINAL_PASS_MEM_STAT);
+ v->m_vecpfx.register_overhead (v, alloc, nelem PASS_MEM_STAT);
}
@@ -325,7 +327,7 @@ va_heap::release (vec<T, va_heap, vl_embed> *&v)
return;
if (GATHER_STATISTICS)
- v->m_vecpfx.release_overhead ();
+ v->m_vecpfx.release_overhead (v, v->allocated (), true);
::free (v);
v = NULL;
}
--
2.1.4
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-05-15 14:44 [PATCH, RFC] New memory usage statistics infrastructure Martin Liška
@ 2015-05-15 14:53 ` Martin Liška
2015-05-19 7:25 ` Jeff Law
` (2 subsequent siblings)
3 siblings, 0 replies; 15+ messages in thread
From: Martin Liška @ 2015-05-15 14:53 UTC (permalink / raw)
To: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 970 bytes --]
On 05/15/2015 04:38 PM, Martin Liška wrote:
> Hello.
>
> Following patch attempts to rewrite memory reports for GCC's internal allocations
> so that it uses a new template type. The type shares parts which are currently duplicated,
> adds support for special 'counters' and introduces new support for hash-{set,map,table}.
>
> Transformation of the current code is a bit tricky as we internally used hash-table as main
> data structure which takes care of location-related allocations. As I want to add support even
> for hash tables (and all derived types), header files inclusion and forward declaration is utilized.
>
> Feel free to comment the patch, as well as missing features one may want to track by location sensitive
> memory allocation.
>
> Attachment contains sample output taken from tramp3d-v4.cpp.
>
> Thanks,
> Martin
Sorry for the wrong report file, a forgotten option caused a compilation error.
Thus, the attached report was really small.
Martin
[-- Attachment #2: tramp3d.report --]
[-- Type: text/plain, Size: 206464 bytes --]
Number of expanded macros: 8692
Average number of tokens per macro expansion: 6
Line Table allocations during the compilation process
Number of ordinary maps used: 613
Ordinary map used size: 23k
Number of ordinary maps allocated: 1638
Ordinary maps allocated size: 63k
Number of macro maps used: 8116
Macro maps used size: 317k
Macro maps locations size: 455k
Macro maps size: 772k
Duplicated maps locations size: 150k
Total allocated maps size: 1543k
Total used maps size: 796k
Memory still allocated at the end of the compilation process
Size Allocated Used Overhead
8 88k 63k 2640
16 4724k 1910k 101k
32 19M 8078k 357k
64 8156k 5146k 127k
256 2724k 1149k 37k
512 480k 250k 6720
1024 344k 242k 4816
2048 4924k 4920k 67k
4096 4096 4096 56
8192 56k 56k 392
16384 48k 48k 168
65536 128k 128k 112
131072 512k 512k 224
262144 512k 512k 112
524288 1536k 1536k 168
1048576 3072k 3072k 168
24 29M 5091k 538k
40 24M 14M 395k
48 13M 7448k 212k
56 5200k 1529k 81k
72 5540k 977k 75k
80 780k 254k 10k
88 6220k 4223k 85k
96 840k 822k 11k
112 4796k 3038k 65k
120 2908k 1635k 39k
152 21M 20M 301k
128 25M 21M 353k
144 10204k 5051k 139k
168 50M 46M 713k
104 10M 4284k 147k
392 9540k 9112k 130k
216 17M 15M 251k
Total 285M 187M 4259k
Total allocations and overheads during the compilation process
Total Overhead: 15003930
Total Allocated: 922513120
Total Overhead under 32B: 312734
Total Allocated under 32B: 119067984
Total Overhead under 64B: 348896
Total Allocated under 64B: 279859536
Total Overhead under 128B: 385594
Total Allocated under 128B: 384391872
Total Overhead page size 8: 23802
Total Allocated page size 8: 230408
Total Overhead page size 16: 265842
Total Allocated page size 16: 7084400
Total Overhead page size 32: 10404
Total Allocated page size 32: 46370624
Total Overhead page size 64: 9190
Total Allocated page size 64: 32852160
Total Overhead page size 256: 484893
Total Allocated page size 256: 13829120
Total Overhead page size 512: 98395
Total Allocated page size 512: 2030080
Total Overhead page size 1024: 5311272
Total Allocated page size 1024: 22742016
Total Overhead page size 2048: 5467928
Total Allocated page size 2048: 26421248
Total Overhead page size 4096: 109992
Total Allocated page size 4096: 7344128
Total Overhead page size 8192: 104600
Total Allocated page size 8192: 79626240
Total Overhead page size 16384: 246312
Total Allocated page size 16384: 162529280
Total Overhead page size 32768: 360
Total Allocated page size 32768: 5177344
Total Overhead page size 65536: 272
Total Allocated page size 65536: 1966080
Total Overhead page size 131072: 61360
Total Allocated page size 131072: 2621440
Total Overhead page size 262144: 992
Total Allocated page size 262144: 2883584
Total Overhead page size 524288: 480
Total Allocated page size 524288: 3145728
Total Overhead page size 1048576: 32
Total Allocated page size 1048576: 4194304
Total Overhead page size 2097152: 0
Total Allocated page size 2097152: 2097152
Total Overhead page size 4194304: 8
Total Allocated page size 4194304: 4194304
Total Overhead page size 8388608: 0
Total Allocated page size 8388608: 8388608
Total Overhead page size 16777216: 8
Total Allocated page size 16777216: 16777216
Total Overhead page size 24: 12686
Total Allocated page size 24: 65382552
Total Overhead page size 40: 9277
Total Allocated page size 40: 65566840
Total Overhead page size 48: 8960
Total Allocated page size 48: 34441152
Total Overhead page size 56: 8735
Total Allocated page size 56: 27931400
Total Overhead page size 72: 8523
Total Allocated page size 72: 21867768
Total Overhead page size 80: 6265
Total Allocated page size 80: 6522720
Total Overhead page size 88: 5903
Total Allocated page size 88: 11477576
Total Overhead page size 96: 4039
Total Allocated page size 96: 1891488
Total Overhead page size 112: 3297
Total Allocated page size 112: 13666800
Total Overhead page size 120: 2553
Total Allocated page size 120: 3147840
Total Overhead page size 152: 2272
Total Allocated page size 152: 26120440
Total Overhead page size 128: 2671
Total Allocated page size 128: 31542912
Total Overhead page size 144: 644114
Total Allocated page size 144: 39179952
Total Overhead page size 168: 16277
Total Allocated page size 168: 65221296
Total Overhead page size 104: 3447
Total Allocated page size 104: 14415232
Total Overhead page size 392: 570682
Total Allocated page size 392: 11078704
Total Overhead page size 216: 1498087
Total Allocated page size 216: 30552984
String pool
entries 36635
identifiers 31077 (84.83%)
slots 65536
deleted 3222
bytes 2768k (17592186044413M overhead)
table size 512k
coll/search 0.9016
ins/search 0.0324
avg. entry 77.37 bytes (+/- 95.13)
longest entry 493
Kind Nodes Bytes
---------------------------------------
decls 589238 86477344
types 308244 51784992
blocks 32532 2862816
stmts 52160 1997536
refs 257027 10084536
exprs 832099 31926272
constants 15835 425902
identifiers 36635 3223880
vecs 1052922 50570064
binfos 8652 841144
ssa names 141333 10175976
constructors 25762 618288
random kinds 967059 38190752
lang_decl kinds 190903 6702564
lang_type kinds 13135 1996520
omp clauses 0 0
---------------------------------------
Total 4523536 297878586
---------------------------------------
Code Nodes
----------------------------
error_mark 1
identifier_node 36635
tree_list 628948
tree_vec 1052922
block 32532
offset_type 0
enumeral_type 2842
boolean_type 90
integer_type 4706
real_type 1055
pointer_type 27233
reference_type 38333
nullptr_type 1
fixed_point_type 36
complex_type 14
vector_type 24
array_type 599
record_type 46785
union_type 44
qual_union_type 0
void_type 16
pointer_bounds_type 1
function_type 20158
method_type 42162
lang_type 3
void_cst 1
integer_cst 13519
real_cst 584
fixed_cst 0
complex_cst 0
vector_cst 2
string_cst 1729
function_decl 70790
label_decl 30111
field_decl 10731
var_decl 92876
const_decl 6722
parm_decl 178905
type_decl 140570
result_decl 25101
debug_expr_decl 0
namespace_decl 25
imported_decl 0
namelist_decl 0
translation_unit_decl 1
component_ref 79312
bit_field_ref 0
array_ref 5414
array_range_ref 0
realpart_expr 72
imagpart_expr 72
view_convert_expr 0
indirect_ref 114564
obj_type_ref 36
constructor 25762
compound_expr 3858
modify_expr 24404
init_expr 49021
target_expr 9060
cond_expr 4920
vec_cond_expr 0
vec_perm_expr 0
bind_expr 21931
call_expr 124426
with_cleanup_expr 0
cleanup_point_expr 37168
placeholder_expr 0
plus_expr 6102
minus_expr 3149
mult_expr 6037
pointer_plus_expr 4012
mult_highpart_expr 0
trunc_div_expr 738
ceil_div_expr 0
floor_div_expr 0
round_div_expr 0
trunc_mod_expr 64
ceil_mod_expr 0
floor_mod_expr 0
round_mod_expr 0
rdiv_expr 130
exact_div_expr 297
fix_trunc_expr 4
float_expr 58
negate_expr 1446
min_expr 0
max_expr 0
abs_expr 24
lshift_expr 832
rshift_expr 62
lrotate_expr 0
rrotate_expr 0
bit_ior_expr 183
bit_xor_expr 8
bit_and_expr 435
bit_not_expr 808
truth_andif_expr 1145
truth_orif_expr 386
truth_and_expr 0
truth_or_expr 0
truth_xor_expr 0
truth_not_expr 1279
lt_expr 2356
le_expr 993
gt_expr 1804
ge_expr 441
eq_expr 2572
ne_expr 2229
unordered_expr 4
ordered_expr 3
unlt_expr 0
unle_expr 6
ungt_expr 0
unge_expr 0
uneq_expr 0
ltgt_expr 0
range_expr 0
paren_expr 0
convert_expr 85069
addr_space_convert_expr 0
fixed_convert_expr 0
nop_expr 171435
non_lvalue_expr 1882
compound_literal_expr 0
save_expr 177
addr_expr 194210
fdesc_expr 0
complex_expr 27
conj_expr 0
predecrement_expr 250
preincrement_expr 2540
postdecrement_expr 24
postincrement_expr 586
va_arg_expr 0
try_catch_expr 5756
try_finally 5280
decl_expr 9747
label_expr 3701
goto_expr 2257
return_expr 11738
exit_expr 81
loop_expr 1193
switch_expr 1
case_label_expr 47
asm_expr 0
ssa_name 141333
catch_expr 62
eh_filter_expr 168
scev_known 0
scev_not_known 0
polynomial_chrec 0
statement_list 36330
assert_expr 0
tree_binfo 8652
with_size_expr 0
realign_load 0
target_mem_ref 0
mem_ref 40467
oacc_parallel 0
oacc_kernels 0
oacc_data 0
oacc_host_data 0
omp_parallel 0
omp_task 0
omp_for 0
omp_simd 0
cilk_simd 0
cilk_for 0
omp_distribute 0
oacc_loop 0
omp_teams 0
omp_target_data 0
omp_target 0
omp_sections 0
omp_single 0
omp_section 0
omp_master 0
omp_taskgroup 0
omp_ordered 0
omp_critical 0
oacc_cache 0
oacc_declare 0
oacc_enter_data 0
oacc_exit_data 0
oacc_update 0
omp_target_update 0
omp_atomic 0
omp_atomic_read 0
omp_atomic_capture_old 0
omp_atomic_capture_new 0
omp_clause 0
transaction_expr 0
reduc_max_expr 0
reduc_min_expr 0
reduc_plus_expr 0
dot_prod_expr 0
widen_sum_expr 0
sad_expr 0
widen_mult_expr 0
widen_mult_plus_expr 0
widen_mult_minus_expr 0
widen_lshift_expr 0
fma_expr 0
widen_mult_hi_expr 0
widen_mult_lo_expr 0
widen_mult_even_expr 0
widen_mult_odd_expr 0
vec_unpack_hi_expr 0
vec_unpack_lo_expr 0
vec_unpack_float_hi_expr 0
vec_unpack_float_lo_expr 0
vec_pack_trunc_expr 0
vec_pack_sat_expr 0
vec_pack_fix_trunc_expr 0
widen_lshift_hi_expr 0
widen_lshift_lo_expr 0
predict_expr 2
optimization_node 2
target_option_node 2
annotate_expr 0
cilk_spawn_stmt 0
cilk_sync_stmt 0
@dummy 0
c_maybe_const_expr 0
excess_precision_expr 0
userdef_literal 0
sizeof_expr 228
array_notation_ref 0
unconstrained_array_type 0
unconstrained_array_ref 0
null_expr 0
plus_nomod_expr 0
minus_nomod_expr 0
attr_addr_expr 0
stmt_stmt 0
loop_stmt 0
exit_stmt 0
offset_ref 0
ptrmem_cst 0
nw_expr 219
vec_nw_expr 0
dl_expr 47
vec_dl_expr 0
scope_ref 17122
member_ref 4
type_expr 0
aggr_init_expr 5224
vec_init_expr 44
throw_expr 128
empty_class_expr 328
baselink 43301
template_decl 32744
template_parm_index 94838
template_template_parm 26
template_type_parm 118470
typename_type 5616
typeof_type 6
bound_template_template_parm 20
unbound_class_template 0
using_decl 662
using_stmt 0
default_arg 223
deferred_noexcept 0
template_id_expr 652
overload 53689
pseudo_dtor_expr 7
modop_expr 3534
cast_expr 3208
reinterpret_cast_expr 21
const_cast_expr 59
static_cast_expr 254
dynamic_cast_expr 12
implicit_conv_expr 199
dotstar_expr 11
typeid_expr 0
noexcept_expr 0
non_dependent_expr 5344
ctor_initializer 1201
try_block 167
eh_spec_block 486
handler 165
must_not_throw_expr 0
cleanup_stmt 5660
if_stmt 3538
for_stmt 1660
range_for_stmt 0
while_stmt 310
do_stmt 20
break_stmt 103
continue_stmt 9
switch_stmt 11
expr_stmt 39912
tag_defn 15
offsetof_expr 0
arrow_expr 2814
alignof_expr 0
at_encode_expr 0
stmt_expr 0
unary_plus_expr 5
static_assert 0
type_argument_pack 0
nontype_argument_pack 0
type_pack_expansion 0
expr_pack_expansion 0
argument_pack_select 0
trait_expr 26
lambda_expr 0
decltype_type 4
underlying_type 0
bases 0
template_info 109699
urshift_expr 0
compare_expr 0
compare_l_expr 0
compare_g_expr 0
class_interface_type 0
class_implementation_type 0
category_interface_type 0
category_implementation_type 0
protocol_interface_type 0
keyword_decl 0
instance_method_decl 0
class_method_decl 0
property_decl 0
message_send_expr 0
class_reference_expr 0
property_ref 0
----------------------------
SSA_NAME nodes allocated: 141333
SSA_NAME nodes reused: 2236
PHI nodes allocated: 8688
PHI nodes reused: 123
Type hash: size 131071, 61196 elements, 0.904404 collisions
DECL_DEBUG_EXPR hash: size 1021, 254 elements, 0.104783 collisions
DECL_VALUE_EXPR hash: size 1021, 869 elements, 0.567277 collisions
4376489 fields searched in 559094[520465] calls to lookup_field[_1]
1545728 fnfields searched in 0 calls to lookup_fnfields
0 calls to get_base_type
convert_harshness = 0
compute_conversion_costs = 0
vtables = 173; vtable searches = 0
vtable entries = 0; vtable elems = 644
decl_specializations: size 65521, 37557 elements, 1.219160 collisions
type_specializations: size 32749, 14203 elements, 2.448762 collisions
maximum template instantiation depth reached: 28
GIMPLE statements
Kind Stmts Bytes
---------------------------------------
assignments 52318 4225424
phi nodes 8688 2379168
conditionals 3651 292080
everything else 178724 13531800
---------------------------------------
Total 243381 20428472
---------------------------------------
RTX Kind Count Bytes
---------------------------------------
expr_list 411087 9866088
insn_list 4515 108360
address 458 7328
insn 295259 18896576
jump_insn 30543 2199096
call_insn 37838 2724336
barrier 29343 1877952
code_label 31401 2009664
note 173656 9724736
parallel 44402 710432
unspec 24370 584880
set 327327 7855848
use 67786 1084576
clobber 43795 700720
call 37838 908112
return 1 8
simple_return 1 8
const_int 1784 28544
const_fixed 26 832
const_double 242 9680
const_vector 130 2080
const 298 4768
pc 1 8
reg 433159 10395816
scratch 19525 156200
subreg 246 5904
concat 11 264
mem 412829 9907896
label_ref 22632 362112
symbol_ref 15191 364584
cc0 1 8
if_then_else 3500 112000
compare 4066 97584
plus 337182 8092368
minus 478 11472
neg 49 784
mult 1866 44784
div 277 6648
mod 39 936
udiv 30 720
umod 4 96
and 32 768
ior 4 96
xor 123 2952
not 14 224
ashift 1137 27288
ashiftrt 191 4584
lshiftrt 70 1680
pre_dec 13428 214848
post_inc 8075 129200
pre_modify 320 7680
ne 1353 32472
eq 10895 261480
ge 598 14352
gt 2360 56640
le 405 9720
lt 223 5352
geu 90 2160
gtu 96 2304
leu 22 528
ltu 206 4944
unordered 22 528
uneq 3 72
unle 36 864
ltgt 6 144
sign_extend 829 13264
zero_extend 177 2832
truncate 22 352
float 40 640
fix 2 32
abs 16 256
clz 2 32
vec_merge 20 640
vec_concat 13 312
vec_duplicate 20 320
rtvec 68902 1044984
---------------------------------------
Total 2922938 90709352
---------------------------------------
Alloc-pool Kind Elt size Pools Allocated (elts) Peak (elts) Leak (elts)
--------------------------------------------------------------------------------------------------------------
objects 96 9804 9762720( 101695) 105792( 1102) 0( 0)
cost vectors 192 254904 527824( 2749) 5976( 31) 0( 0)
insn regs 24 9804 13857864( 577411) 116784( 4866) 0( 0)
et_occ pool 56 189003 111206088( 1985823) 58352( 1042) 0( 0)
et_node pool 72 189003 84929400( 1179575) 37584( 522) 0( 0)
allocnos 200 9804 20300000( 101500) 220400( 1102) 0( 0)
prefs 40 9804 16480( 412) 960( 24) 0( 0)
df_scan ref base 72 19608 1762675704( 24481607) 2250288( 31254) 0( 0)
struct case_node pool 64 2 128( 2) 64( 1) 0( 0)
df_scan ref artificial 80 19608 150922720( 1886534) 173600( 2170) 0( 0)
df_scan ref regular 80 19608 242001680( 3025021) 456560( 5707) 0( 0)
df_scan insn 56 19608 39579904( 706784) 170240( 3040) 0( 0)
df_scan reg 24 19608 138898800( 5787450) 89496( 3729) 0( 0)
df_scan mw_reg 40 19608 42200( 1055) 520( 13) 0( 0)
lra copies 40 9804 8240( 206) 480( 12) 0( 0)
live ranges 40 19608 6496656( 162416) 58992( 1474) 0( 0)
--------------------------------------------------------------------------------------------------------------
Total 819188 2581226408
--------------------------------------------------------------------------------------------------------------
Bitmaps Leak Peak Times N searches Search iter Type
--------------------------------------------------------------------------------------------------------------------------------
reload1.c:505 (init_reload) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-into-ssa.c:2280 (mark_def_dom_walker) 0: 0.0% 0 0: 0.0% 0 0 heap
df-scan.c:4228 (df_exit_block_bitmap_verify) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-assigns.c:1617 (lra_assign) 0: 0.0% 0 0: 0.0% 0 0 heap
regstat.c:358 (regstat_compute_ri) 0: 0.0% 0 0: 0.0% 0 0 heap
lra.c:2303 (lra) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-outof-ssa.c:1036 (remove_ssa_form) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-constraints.c:6106 (lra_undo_inheritance) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-coalesce.c:298 (lra_coalesce) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-cfgcleanup.c:783 (repair_loop_structures) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-spills.c:497 (spill_pseudos) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-constraints.c:4272 (lra_constraints) 0: 0.0% 0 0: 0.0% 0 0 heap
lra.c:2305 (lra) 0: 0.0% 0 0: 0.0% 0 0 heap
cfgexpand.c:525 (add_scope_conflicts) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-eliminations.c:1171 (spill_pseudos) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-ssa-coalesce.c:1284 (coalesce_ssa_name) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-ssa-live.c:1022 (new_tree_live_info) 0: 0.0% 0 0: 0.0% 0 0 heap
function.c:5972 (thread_prologue_and_epilogue_in 0: 0.0% 0 0: 0.0% 0 0 heap
reload1.c:506 (init_reload) 0: 0.0% 0 0: 0.0% 0 0 heap
cfgexpand.c:742 (update_alias_info_with_stack_va 0: 0.0% 0 0: 0.0% 0 0 heap
reload1.c:504 (init_reload) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-chkp.c:920 (chkp_type_bounds_count) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-eliminations.c:1453 (lra_eliminate) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-constraints.c:6031 (undo_optional_reloads) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-into-ssa.c:3267 (update_ssa) 0: 0.0% 0 0: 0.0% 0 0 heap
df-core.c:1683 (df_compact_blocks) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-into-ssa.c:906 (prune_unused_phi_nodes) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-constraints.c:5713 (lra_inheritance) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-ssa-live.c:390 (partition_view_bitmap) 0: 0.0% 0 0: 0.0% 0 0 heap
tree-eh.c:4168 (cleanup_empty_eh_merge_phis) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-coalesce.c:375 (lra_coalesce) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-coalesce.c:337 (lra_coalesce) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-spills.c:496 (spill_pseudos) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-assigns.c:1335 (assign_by_spills) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-assigns.c:1483 (assign_by_spills) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-lives.c:1388 (lra_live_ranges_init) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-coalesce.c:299 (lra_coalesce) 0: 0.0% 0 0: 0.0% 0 0 heap
regstat.c:356 (regstat_compute_ri) 0: 0.0% 0 0: 0.0% 0 0 heap
regstat.c:357 (regstat_compute_ri) 0: 0.0% 0 0: 0.0% 0 0 heap
lra-assigns.c:1328 (assign_by_spills) 0: 0.0% 40 24: 0.0% 0 0 heap
lra-assigns.c:1327 (assign_by_spills) 0: 0.0% 40 24: 0.0% 0 0 heap
lra.c:1954 (remove_scratches) 0: 0.0% 40 40: 0.0% 0 0 heap
lra.c:1955 (remove_scratches) 0: 0.0% 40 40: 0.0% 0 0 heap
lra-constraints.c:5712 (lra_inheritance) 0: 0.0% 40 392: 0.0% 0 0 heap
df-scan.c:3827 (df_update_exit_block_uses) 0: 0.0% 40 18958: 0.3% 0 0 heap
df-scan.c:4279 (df_scan_verify) 0: 0.0% 40 19608: 0.3% 0 0 heap
lra-lives.c:499 (initiate_live_solver) 0: 0.0% 40 19608: 0.3% 0 0 heap
df-scan.c:3656 (df_update_entry_block_defs) 0: 0.0% 40 98012: 1.3% 0 0 heap
df-scan.c:4199 (df_entry_block_bitmap_verify) 0: 0.0% 40 157036: 2.1% 0 0 heap
df-problems.c:3277 (df_note_compute) 0: 0.0% 40 176640: 2.4% 0 0 heap
df-scan.c:321 (df_scan_alloc) 0: 0.0% 72 314: 0.0% 0 0 heap
lra-assigns.c:1588 (lra_assign) 0: 0.0% 80 15: 0.0% 1 1 heap
lra-assigns.c:1326 (assign_by_spills) 0: 0.0% 80 32: 0.0% 0 0 heap
lra.c:2302 (lra) 0: 0.0% 80 104: 0.0% 4 2 heap
lra.c:2304 (lra) 0: 0.0% 80 118: 0.0% 16 8 heap
lra-constraints.c:5711 (lra_inheritance) 0: 0.0% 80 224: 0.0% 1352 457 heap
df-scan.c:322 (df_scan_alloc) 0: 0.0% 80 236: 0.0% 0 0 heap
lra-assigns.c:1601 (lra_assign) 0: 0.0% 80 242: 0.0% 0 0 heap
lra-assigns.c:1336 (assign_by_spills) 0: 0.0% 80 268: 0.0% 23 12 heap
df-scan.c:320 (df_scan_alloc) 0: 0.0% 80 392: 0.0% 0 0 heap
df-scan.c:316 (df_scan_alloc) 0: 0.0% 80 26368: 0.4% 0 0 heap
df-scan.c:315 (df_scan_alloc) 0: 0.0% 80 27276: 0.4% 0 0 heap
bitmap.c:1893 (bitmap_ior_and_compl_into) 0: 0.0% 80 60184: 0.8% 0 0 heap
lra-constraints.c:5714 (lra_inheritance) 0: 0.0% 120 18912: 0.3% 0 0 heap
lra-constraints.c:5989 (undo_optional_reloads) 0: 0.0% 120 20233: 0.3% 1 0 heap
tree-cfg.c:7939 (remove_edge_and_dominated_block 0: 0.0% 152 241: 0.0% 377 205 heap
lra-lives.c:502 (initiate_live_solver) 0: 0.0% 160 19620: 0.3% 14 3 heap
df-scan.c:317 (df_scan_alloc) 0: 0.0% 160 28604: 0.4% 0 0 heap
df-problems.c:3275 (df_note_compute) 0: 0.0% 160 267972: 3.6% 70231 37419 heap
tree-eh.c:2208 (execute) 0: 0.0% 192 1384290: 18.8% 57443 49550 heap
df-problems.c:3276 (df_note_compute) 0: 0.0% 240 771875: 10.5% 5 0 heap
ira-build.c:2681 (update_bad_spill_attribute) 0: 0.0% 720 35334: 0.5% 608 391 heap
df-scan.c:4278 (df_scan_verify) 0: 0.0% 920 111469: 1.5% 782 782 heap
df-scan.c:1246 (df_process_deferred_rescans) 0: 0.0% 960 42214: 0.6% 9675 14690 heap
reginfo.c:399 (init_reg_sets_1) 72: 0.0% 72 2: 0.0% 0 0 heap
reginfo.c:404 (init_reg_sets_1) 72: 0.0% 72 2: 0.0% 0 0 heap
cfgexpand.c:719 (update_alias_info_with_stack_va 224: 0.0% 224 6: 0.0% 0 0 heap
lra-assigns.c:1333 (assign_by_spills) 280: 0.0% 280 17: 0.0% 0 0 heap
tree-cfgcleanup.c:689 (cleanup_tree_cfg_1) 648: 0.0% 720 4475: 0.1% 12 5 heap
regstat.c:359 (regstat_compute_ri) 1632: 0.0% 1744 55676: 0.8% 7078 3535 heap
df-core.c:1033 (df_worklist_dataflow_doublequeue 2368: 0.0% 2440 29584: 0.4% 75 70 heap
tree-into-ssa.c:3270 (update_ssa) 2808: 0.0% 2880 15904: 0.2% 0 0 heap
cfgexpand.c:377 (add_stack_var_conflict) 3544: 0.0% 3544 178: 0.0% 2 2 heap
regstat.c:369 (regstat_compute_ri) 3728: 0.0% 3800 21883: 0.3% 66 40 heap
tree-into-ssa.c:3054 (insert_updated_phi_nodes_f 4392: 0.0% 4464 4975: 0.1% 440 229 heap
tree-into-ssa.c:816 (prune_unused_phi_nodes) 4616: 0.0% 4688 103518: 1.4% 58 27 heap
df-core.c:1278 (df_analyze) 7704: 0.0% 7856 63576: 0.9% 15310 8576 heap
df-core.c:1109 (df_worklist_dataflow) 8008: 0.0% 8120 71174: 1.0% 4325 2336 heap
cfganal.c:1304 (compute_idf) 9176: 0.0% 9248 4053: 0.1% 9 5 heap
cfgexpand.c:540 (add_scope_conflicts) 11312: 0.0% 13568 3553: 0.0% 0 0 heap
tree-cfg.c:7938 (remove_edge_and_dominated_block 16880: 0.1% 16880 776: 0.0% 279 154 heap
tree-ssa.c:943 (verify_ssa) 21424: 0.1% 21424 81682: 1.1% 683 346 heap
tree-ssa-coalesce.c:555 (ssa_conflicts_add_one) 22656: 0.1% 22728 36684: 0.5% 9 4 heap
tree-cfg.c:1219 (start_recording_case_labels) 57576: 0.2% 57648 103388: 1.4% 1153 483 heap
df-problems.c:1256 (df_lr_add_problem) 70120: 0.3% 70152 104389: 1.4% 316 221 heap
tree-ssa-coalesce.c:668 (new_live_track) 129688: 0.5% 129728 61264: 0.8% 161 69 heap
df-scan.c:318 (df_scan_alloc) 132072: 0.5% 132072 153504: 2.1% 636 318 heap
df-scan.c:319 (df_scan_alloc) 136224: 0.5% 136224 34235: 0.5% 239 132 heap
tree-into-ssa.c:3355 (update_ssa) 159736: 0.6% 159736 16007: 0.2% 107 54 heap
tree-into-ssa.c:308 (mark_for_renaming) 173456: 0.7% 173456 7060: 0.1% 25 10 heap
tree-ssa-live.c:1013 (new_tree_live_info) 237224: 0.9% 237224 16593: 0.2% 1105 517 heap
tree-ssa-live.c:1017 (new_tree_live_info) 273760: 1.0% 273760 17481: 0.2% 692 367 heap
tree-into-ssa.c:2404 (execute) 340416: 1.3% 342648 45238: 0.6% 268 289 heap
lra-lives.c:510 (initiate_live_solver) 368040: 1.4% 368080 202401: 2.7% 5742 3529 heap
lra-lives.c:509 (initiate_live_solver) 395456: 1.5% 395456 158718: 2.2% 10257 5606 heap
tree-ssa-live.c:296 (partition_view_init) 521352: 2.0% 521352 20721: 0.3% 8 3 heap
tree-ssa-coalesce.c:670 (new_live_track) 531680: 2.0% 531680 81088: 1.1% 471 216 heap
df-problems.c:805 (df_lr_alloc) 1022992: 3.9% 1022992 109887: 1.5% 20246 10321 heap
df-problems.c:806 (df_lr_alloc) 1030376: 3.9% 1030520 137777: 1.9% 13019 7191 heap
ira.c:711 (ira_allocate_bitmap) 1041336: 3.9% 1041480 133120: 1.8% 4897 3206 heap
df-problems.c:808 (df_lr_alloc) 1044728: 4.0% 1045608 140130: 1.9% 3921 1934 heap
df-problems.c:807 (df_lr_alloc) 1147400: 4.3% 1147472 123436: 1.7% 2635 1287 heap
lra-assigns.c:442 (init_live_reload_and_inherita 1212304: 4.6% 1212656 318114: 4.3% 7977 3994 heap
tree-into-ssa.c:518 (get_def_blocks_for) 2471448: 9.3% 2471448 90661: 1.2% 84 37 heap
lra-assigns.c:373 (init_lives) 2547232: 9.6% 2547232 342113: 4.6% 7541 3885 heap
tree-into-ssa.c:519 (get_def_blocks_for) 3490080: 13.2% 3490080 105492: 1.4% 257 143 heap
lra.c:1324 (initialize_lra_reg_info_element) 3761704: 14.2% 3761776 917518: 12.5% 27442 15917 heap
tree-into-ssa.c:517 (get_def_blocks_for) 4026016: 15.2% 4026016 120038: 1.6% 468 227 heap
--------------------------------------------------------------------------------------------------------------------------------
Total 26443960 7365010
--------------------------------------------------------------------------------------------------------------------------------
Hash tables Leak Peak Times Type
--------------------------------------------------------------------------------------------------------------------------------
except.c:2492 (convert_to_eh_region_ranges) 0: 0.0% 248 2057: 1.3% heap
except.c:896 (assign_filter_values) 0: 0.0% 248 4038: 2.5% heap
except.c:897 (assign_filter_values) 0: 0.0% 248 4038: 2.5% heap
hash-table.h:591 (initialize_original_copy_table 0: 0.0% 312 29412: 17.9% heap
tree-ssa-coalesce.c:1295 (coalesce_ssa_name) 0: 0.0% 352 9896: 6.0% heap
hash-table.h:591 (update_ssa) 0: 0.0% 488 2057: 1.3% heap
hash-table.h:591 (build_gimple_cfg) 0: 0.0% 1504 9876: 6.0% heap
hash-table.h:591 (initiate_regno_cost_classes) 0: 0.0% 2008 9804: 6.0% heap
tree-ssa-live.c:136 (var_map_base_init) 0: 0.0% 2008 9819: 6.0% heap
hash-table.h:591 (create_pseudo_cfg) 0: 0.0% 3024 10522: 6.4% heap
hash-table.h:591 (execute) 0: 0.0% 6080 9911: 6.0% heap
cp/semantics.c:4135 (__base_ctor ) 0: 0.0% 12240 98: 0.1% heap
hash-table.h:591 (init_ssa_renamer) 0: 0.0% 12240 13596: 8.3% heap
hash-table.h:591 (create_coalesce_list) 0: 0.0% 32744 9804: 6.0% heap
cgraph.c:755 (get_edge) 0: 0.0% 101536 72: 0.0% ggc
tree-ssa.c:1078 (init_tree_ssa) 0: 0.0% 2437592 9829: 6.0% ggc
function.c:5591 (record_insns) 0: 0.0% 3179112 19601: 11.9% ggc
optabs.c:6237 (init_optabs) 104: 0.0% 104 1: 0.0% ggc
hash-table.h:591 (simplifiable_subregs) 248: 0.0% 248 1: 0.0% heap
varasm.c:6072 (init_varasm_once) 248: 0.0% 248 1: 0.0% ggc
varasm.c:3699 (create_constant_pool) 248: 0.0% 1590176 9806: 6.0% ggc
emit-rtl.c:5907 (init_emit_once) 488: 0.0% 488 1: 0.0% ggc
emit-rtl.c:5911 (init_emit_once) 488: 0.0% 488 1: 0.0% ggc
emit-rtl.c:5909 (init_emit_once) 488: 0.0% 488 1: 0.0% ggc
hash-table.h:591 (fixed_type_or_null) 488: 0.0% 488 1: 0.0% heap
optabs.c:6140 (init_one_libfunc) 488: 0.0% 488 1: 0.0% ggc
function.c:1233 (init_temp_slots) 488: 0.0% 488 1: 0.0% ggc
cp/mangle.c:3793 (mangle_conv_op_name_for_type) 488: 0.0% 736 2: 0.0% ggc
tree.c:681 (init_ttree) 1016: 0.0% 1016 1: 0.0% ggc
cp/tree.c:842 (build_cplus_array_type) 1016: 0.0% 1504 2: 0.0% ggc
hash-table.h:591 (register_scoped_attributes) 2008: 0.1% 2008 1: 0.0% heap
hash-table.h:591 (build_type_inheritance_graph) 2008: 0.1% 3024 4: 0.0% heap
cp/cp-objcp-common.c:224 (init_shadowed_var_for_ 8168: 0.2% 8168 1: 0.0% ggc
varasm.c:6073 (init_varasm_once) 8168: 0.2% 8168 1: 0.0% ggc
tree.c:672 (init_ttree) 8168: 0.2% 8168 1: 0.0% ggc
tree.c:675 (init_ttree) 8168: 0.2% 8168 1: 0.0% ggc
cp/typeck2.c:299 (abstract_virtuals_error_sfinae 8168: 0.2% 12240 6: 0.0% ggc
hash-table.h:591 (curr_statistics_hash) 12896: 0.4% 12896 52: 0.0% heap
tree.c:677 (init_ttree) 16312: 0.5% 16312 1: 0.0% ggc
emit-rtl.c:5904 (init_emit_once) 16312: 0.5% 24480 6: 0.0% ggc
cp/decl.c:3398 (build_typename_type) 65528: 1.8% 98272 8: 0.0% ggc
varasm.c:6071 (init_varasm_once) 131048: 3.7% 196576 10: 0.0% ggc
symtab.c:1337 (set_section_for_node) 131048: 3.7% 196576 11: 0.0% ggc
cp/pt.c:22450 (init_template_processing) 261992: 7.3% 393040 10: 0.0% ggc
symtab.c:266 (symtab_initialize_asm_name_hash) 261992: 7.3% 393040 12: 0.0% ggc
cp/tree.c:3895 (init_tree) 524168: 14.7% 786160 11: 0.0% ggc
emit-rtl.c:5913 (init_emit_once) 524168: 14.7% 786160 11: 0.0% ggc
cp/pt.c:22449 (init_template_processing) 524168: 14.7% 786160 11: 0.0% ggc
tree.c:669 (init_ttree) 1048568: 29.4% 1572736 8: 0.0% ggc
--------------------------------------------------------------------------------------------------------------------------------
Total 3569352 164416
--------------------------------------------------------------------------------------------------------------------------------
Hash maps Leak Peak Times Type
--------------------------------------------------------------------------------------------------------------------------------
hash-map.h:116 (lower_try_finally_switch) 0: 0.0% 208 1: 0.0% heap
tree-eh.c:3371 (execute) 0: 0.0% 208 9804: 5.4% heap
hash-map.h:116 (init_vars_expansion) 0: 0.0% 208 9804: 5.4% heap
hash-map.h:116 (start_recording_case_labels) 0: 0.0% 208 24581: 13.5% heap
cp/constexpr.c:3531 (cxx_eval_outermost_constant 0: 0.0% 208 90304: 49.6% heap
hash-map.h:116 (update_alias_info_with_stack_var 0: 0.0% 416 2: 0.0% heap
hash-map.h:116 (copy_gimple_seq_and_replace_loca 0: 0.0% 704 7266: 4.0% heap
cfgexpand.c:1763 (expand_used_vars) 0: 0.0% 704 9940: 5.5% heap
hash-map.h:116 (instantiate_decl) 0: 0.0% 1472 9392: 5.2% heap
hash-map.h:116 (execute) 0: 0.0% 1472 9831: 5.4% heap
hash-map.h:116 (redirect_edge_var_map_add) 0: 0.0% 6048 453: 0.2% heap
hash-map.h:116 (maybe_clone_body) 0: 0.0% 24480 7279: 4.0% heap
symbol-summary.h:40 (__base_ctor ) 0: 0.0% 393152 11: 0.0% ggc
symtab.c:1119 (verify_symtab_nodes) 0: 0.0% 393152 56: 0.0% heap
tree-eh.c:113 (add_stmt_to_eh_lp_fn) 0: 0.0% 1619936 3180: 1.7% ggc
except.c:270 (init_eh) 496: 5.7% 496 1: 0.0% ggc
hash-map.h:116 (register_pass_name) 8144: 94.3% 8144 1: 0.0% heap
--------------------------------------------------------------------------------------------------------------------------------
Total 8640 181906
--------------------------------------------------------------------------------------------------------------------------------
Hash sets Leak Peak Times Type
--------------------------------------------------------------------------------------------------------------------------------
cfgexpand.c:741 (update_alias_info_with_stack_va 0: 0.0% 104 1: 0.0% heap
stmt.c:1197 (expand_case) 0: 0.0% 104 2: 0.0% heap
cgraphunit.c:938 (analyze_functions) 0: 0.0% 104 2: 0.0% heap
ipa.c:332 (remove_unreachable_nodes) 0: 0.0% 104 5: 0.0% heap
ipa.c:331 (remove_unreachable_nodes) 0: 0.0% 104 5: 0.0% heap
hash-set.h:183 (walk_ssa_copies) 0: 0.0% 104 20: 0.0% heap
tree-eh.c:3612 (lower_eh_dispatch) 0: 0.0% 104 56: 0.0% heap
hash-set.h:183 (uses_parameter_packs) 0: 0.0% 104 3295: 0.2% heap
tree-inline.c:5219 (copy_gimple_seq_and_replace_ 0: 0.0% 104 7263: 0.4% heap
value-prof.c:594 (verify_histograms) 0: 0.0% 104 263455: 14.3% heap
cgraphbuild.c:427 (record_references_in_initiali 0: 0.0% 352 322: 0.0% heap
hash-set.h:183 (for_each_template_parm) 0: 0.0% 352 3022: 0.2% heap
tree-cfg.c:4979 (verify_gimple_in_cfg) 0: 0.0% 352 263623: 14.3% heap
hash-set.h:183 (init_varasm_once) 0: 0.0% 1504 4: 0.0% heap
tree.c:11480 (walk_tree_without_duplicates_1) 0: 0.0% 1504 283315: 15.4% heap
hash-set.h:183 (lookup_arg_dependent_1) 0: 0.0% 3024 7616: 0.4% heap
tree-cfg.c:4975 (verify_gimple_in_cfg) 0: 0.0% 6080 338822: 18.4% heap
hash-set.h:183 (check_for_bare_parameter_packs) 0: 0.0% 12240 103612: 5.6% heap
cgraph.c:3053 (verify_node) 0: 0.0% 24480 145108: 7.9% heap
tree-cfg.c:4976 (verify_gimple_in_cfg) 0: 0.0% 24480 390870: 21.3% heap
hash-set.h:183 (cp_genericize_tree) 0: 0.0% 49056 28904: 1.6% heap
ipa.c:330 (remove_unreachable_nodes) 0: 0.0% 393040 60: 0.0% heap
--------------------------------------------------------------------------------------------------------------------------------
Total 0 1839382
--------------------------------------------------------------------------------------------------------------------------------
Heap vectors Leak Peak Times Leak items Peak items
--------------------------------------------------------------------------------------------------------------------------------
tree-cfg.c:8002 (remove_edge_and_dominated_block 0: 0.0% 4 18: 0.0% 0 0
tree-into-ssa.c:310 (mark_for_renaming) 0: 0.0% 4 1919: 0.3% 0 0
cp/parser.c:629 (cp_lexer_alloc) 0: 0.0% 5 1: 0.0% 0 0
gimplify.c:1529 (gimplify_switch_expr) 0: 0.0% 8 1: 0.0% 0 0
function.c:2380 (assign_parms_augmented_arg_list 0: 0.0% 8 23: 0.0% 92 92
cfgloop.c:257 (flow_loop_nodes_find) 0: 0.0% 8 4112: 0.7% 8 8
gimple-low.c:125 (lower_function_body) 0: 0.0% 8 9798: 1.6% 0 0
tree-ssa-operands.c:214 (init_ssa_operands) 0: 0.0% 10 2: 0.0% 0 0
tree-outof-ssa.c:440 (new_elim_graph) 0: 0.0% 10 9717: 1.6% 0 0
tree-outof-ssa.c:438 (new_elim_graph) 0: 0.0% 10 9750: 1.6% 0 0
tree-into-ssa.c:3269 (update_ssa) 0: 0.0% 12 2: 0.0% 0 0
tree-ssa-operands.c:486 (append_use) 0: 0.0% 20 1: 0.0% 10 10
cp/parser.c:694 (cp_lexer_new_from_tokens) 0: 0.0% 20 6577: 1.1% 665 665
tree-outof-ssa.c:437 (new_elim_graph) 0: 0.0% 20 9427: 1.6% 0 0
tree-outof-ssa.c:436 (new_elim_graph) 0: 0.0% 20 9477: 1.6% 0 0
tree-outof-ssa.c:439 (new_elim_graph) 0: 0.0% 20 9609: 1.6% 0 0
cfgloop.h:578 (__base_ctor ) 0: 0.0% 23 147689:24.4% 0 0
tree-into-ssa.c:953 (prune_unused_phi_nodes) 0: 0.0% 24 80: 0.0% 495 495
cfgloop.c:488 (flow_loops_find) 0: 0.0% 28 103: 0.0% 278 278
cp/class.c:2510 (find_final_overrider) 0: 0.0% 30 732: 0.1% 0 0
tree-eh.c:669 (record_in_goto_queue_label) 0: 0.0% 30 1162: 0.2% 0 0
tree-outof-ssa.c:435 (new_elim_graph) 0: 0.0% 30 9525: 1.6% 0 0
tree-outof-ssa.c:441 (new_elim_graph) 0: 0.0% 30 9562: 1.6% 0 0
dwarf2cfi.c:1047 (queue_reg_save) 0: 0.0% 30 9707: 1.6% 32 32
cfgloop.c:276 (flow_loop_nodes_find) 0: 0.0% 36 102: 0.0% 582 582
tree-ssa.c:91 (redirect_edge_var_map_add) 0: 0.0% 48 1222: 0.2% 0 0
cp/parser.c:1147 (cp_lexer_save_tokens) 0: 0.0% 50 1422: 0.2% 8355 8355
ira-emit.c:142 (ira_initiate_emit_data) 0: 0.0% 50 9773: 1.6% 0 0
dominance.c:831 (get_dominated_to_depth) 0: 0.0% 54 65: 0.0% 676 676
attribs.c:153 (register_scoped_attributes) 0: 0.0% 64 1: 0.0% 0 0
lra.c:1357 (init_reg_info) 0: 0.0% 100 9787: 1.6% 0 0
input.c:517 (get_next_line) 0: 0.0% 135 10: 0.0% 183 183
tree-ssa-coalesce.c:512 (ssa_conflicts_new) 0: 0.0% 170 9315: 1.5% 0 0
dwarf2cfi.c:2848 (create_pseudo_cfg) 0: 0.0% 202 96: 0.0% 2875 2875
tree-into-ssa.c:1178 (register_new_def) 0: 0.0% 225 2670: 0.4% 52323 52323
dwarf2cfi.c:2813 (create_pseudo_cfg) 0: 0.0% 271 9877: 1.6% 1678 1678
tree-into-ssa.c:2240 (rewrite_blocks) 0: 0.0% 488 15684: 2.6% 18915 18915
ira-build.c:1742 (ira_loop_tree_body_rev_postord 0: 0.0% 490 9682: 1.6% 0 0
ira-build.c:1743 (ira_loop_tree_body_rev_postord 0: 0.0% 490 9690: 1.6% 0 0
df-core.c:1041 (df_worklist_dataflow_doublequeue 0: 0.0% 492 19147: 3.2% 0 0
tree-into-ssa.c:1467 (before_dom_children) 0: 0.0% 505 743: 0.1% 14768 14768
dwarf2cfi.c:2307 (maybe_record_trace_start) 0: 0.0% 552 9422: 1.6% 2066 2066
ira-build.c:1834 (ira_traverse_loop_tree) 0: 0.0% 609 41151: 6.8% 86764 86764
tree-into-ssa.c:909 (prune_unused_phi_nodes) 0: 0.0% 691 56: 0.0% 833 833
vec.h:1277 (__base_ctor ) 0: 0.0% 753 13032: 2.2% 750 750
tree-into-ssa.c:2134 (before_dom_children) 0: 0.0% 757 1080: 0.2% 17985 17985
tree-into-ssa.c:999 (mark_phi_for_rewrite) 0: 0.0% 760 3971: 0.7% 0 0
vec.h:1277 (__base_ctor ) 0: 0.0% 976 60042: 9.9% 204 204
tree-into-ssa.c:1170 (register_new_def) 0: 0.0% 1135 1597: 0.3% 39176 39176
tree-into-ssa.c:1770 (register_new_update_single 0: 0.0% 1145 3468: 0.6% 68536 68536
ira-build.c:456 (initiate_allocnos) 0: 0.0% 2474 9797: 1.6% 0 0
ira-build.c:452 (initiate_allocnos) 0: 0.0% 2474 9801: 1.6% 0 0
ira-build.c:1202 (initiate_prefs) 0: 0.0% 3642 9784: 1.6% 0 0
ira-build.c:1391 (initiate_copies) 0: 0.0% 3642 9786: 1.6% 0 0
lra.c:2294 (lra) 0: 0.0% 3643 9757: 1.6% 0 0
lra.c:1953 (remove_scratches) 0: 0.0% 3643 9767: 1.6% 0 0
final.c:1037 (shorten_branches) 0: 0.0% 4610 9748: 1.6% 0 0
lra-lives.c:1276 (lra_create_live_ranges_1) 0: 0.0% 7316 9629: 1.6% 0 0
ipa-inline-analysis.c:1046 (inline_summary_alloc 0: 0.0% 35910 1: 0.0% 0 0
passes.c:2342 (execute_one_pass) 0: 0.0% 39204 9801: 1.6% 0 0
tree-eh.c:1439 (lower_try_finally_switch) 2: 0.0% 2 1: 0.0% 0 0
attribs.c:154 (register_scoped_attributes) 4: 0.0% 4 1: 0.0% 0 0
cp/pt.c:500 (maybe_begin_member_template_process 4: 0.0% 4 1: 0.0% 0 0
function.c:4714 (push_cfun) 4: 0.0% 4 1: 0.0% 0 0
c-family/c-pragma.c:645 (push_visibility) 4: 0.0% 4 1: 0.0% 0 0
dominance.c:820 (get_dominated_to_depth) 8: 0.0% 12 106: 0.0% 48 48
gimplify.c:302 (gimple_push_bind_expr) 8: 0.0% 3103 4946: 0.8% 3033 3033
function.c:185 (push_function_context) 16: 0.0% 20 4: 0.0% 12 12
c-family/c-pragma.c:1311 (c_register_pragma_1) 24: 0.0% 24 4: 0.0% 28 28
cp/name-lookup.c:6080 (store_bindings) 54: 0.1% 54 6: 0.0% 88 88
cp/cp-gimplify.c:1108 (cp_genericize_r) 96: 0.2% 108 4875: 0.8% 952 952
cp/name-lookup.c:6110 (store_class_bindings) 121: 0.2% 121 7: 0.0% 207 207
attribs.c:161 (register_scoped_attributes) 144: 0.3% 144 2: 0.0% 160 160
function.c:2359 (assign_parms_augmented_arg_list 160: 0.3% 190 20329: 3.4% 3087 3087
ipa-devirt.c:2057 (get_odr_type) 265: 0.5% 265 51: 0.0% 166 166
tree-into-ssa.c:996 (mark_phi_for_rewrite) 444: 0.8% 474 15: 0.0% 778 778
ipa-devirt.c:2058 (get_odr_type) 556: 1.0% 556 139: 0.0% 0 0
input.c:527 (get_next_line) 1896: 3.3% 1896 123: 0.0% 3325 3325
symtab.c:527 (create_reference) 7985:13.9% 7985 809: 0.1% 10556 10556
symtab.c:519 (create_reference) 10524:18.3% 12144 3036: 0.5% 0 0
ggc-page.c:1416 (ggc_internal_alloc) 35065:61.1% 35065 27: 0.0% 68069 68069
--------------------------------------------------------------------------------------------------------------------------------
Total 57384 604454 408758
--------------------------------------------------------------------------------------------------------------------------------
GGC memory Garbage Freed Leak Overhead Times
--------------------------------------------------------------------------------------------------------------------------------
cp/name-lookup.c:4633 (qualified_lookup_using_na 0: 0.0% 231000: 0.1% 0: 0.0% 0: 0.0% 5775
cp/class.c:9022 (build_vtbl_initializer) 0: 0.0% 14936: 0.0% 0: 0.0% 336: 0.0% 239
expmed.c:266 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
expmed.c:273 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
symtab.c:266 (symtab_initialize_asm_name_hash) 0: 0.0% 104: 0.0% 0: 0.0% 0: 0.0% 1
expmed.c:277 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
cp/name-lookup.c:4622 (qualified_lookup_using_na 0: 0.0% 231000: 0.1% 0: 0.0% 0: 0.0% 5775
expmed.c:263 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
tree.c:669 (init_ttree) 0: 0.0% 8216: 0.0% 0: 0.0% 24: 0.0% 1
cp/name-lookup.c:335 (new_class_binding) 0: 0.0% 3133464: 1.1% 0: 0.0% 39984: 0.3% 20831
expmed.c:269 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
expmed.c:275 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
gimplify.c:3656 (gimplify_init_ctor_eval) 0: 0.0% 600: 0.0% 0: 0.0% 0: 0.0% 15
ipa-inline-analysis.c:752 (account_size_time) 0: 0.0% 4875184: 1.6% 0: 0.0% 629056: 4.2% 19658
expmed.c:265 (init_expmed) 0: 0.0% 16: 0.0% 0: 0.0% 0: 0.0% 1
cp/pt.c:16133 (fn_type_unification) 0: 0.0% 5204760: 1.8% 0: 0.0% 0: 0.0% 130119
passes.c:1689 (do_per_function_toporder) 0: 0.0% 323152: 0.1% 0: 0.0% 61008: 0.4% 2
cp/name-lookup.c:4614 (qualified_lookup_using_na 0: 0.0% 231000: 0.1% 0: 0.0% 0: 0.0% 5775
expmed.c:279 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
expmed.c:271 (init_expmed) 0: 0.0% 16: 0.0% 0: 0.0% 0: 0.0% 1
expmed.c:270 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
expmed.c:267 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
cp/name-lookup.c:4650 (qualified_lookup_using_na 0: 0.0% 6880: 0.0% 0: 0.0% 0: 0.0% 172
expmed.c:264 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
symtab.c:1337 (set_section_for_node) 0: 0.0% 104: 0.0% 0: 0.0% 0: 0.0% 1
reload1.c:691 (grow_reg_equivs) 0: 0.0% 246514776: 83.2% 0: 0.0% 312408: 2.1% 19608
cp/pt.c:22450 (init_template_processing) 0: 0.0% 536: 0.0% 0: 0.0% 24: 0.0% 1
stor-layout.c:1190 (place_field) 0: 0.0% 11816: 0.0% 0: 0.0% 0: 0.0% 123
cgraph.c:755 (get_edge) 0: 0.0% 27864: 0.0% 0: 0.0% 216: 0.0% 27
gimplify.c:1429 (gimplify_decl_expr) 0: 0.0% 41760: 0.0% 0: 0.0% 0: 0.0% 1044
expmed.c:272 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
expmed.c:278 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
symbol-summary.h:40 (__base_ctor ) 0: 0.0% 224: 0.0% 0: 0.0% 8: 0.0% 1
expmed.c:280 (init_expmed) 0: 0.0% 16: 0.0% 0: 0.0% 0: 0.0% 1
cp/name-lookup.c:4623 (qualified_lookup_using_na 0: 0.0% 231000: 0.1% 0: 0.0% 0: 0.0% 5775
cp/typeck2.c:299 (abstract_virtuals_error_sfinae 0: 0.0% 264: 0.0% 0: 0.0% 8: 0.0% 1
expmed.c:276 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
symbol-summary.h:111 (allocate_new) 0: 0.0% 943584: 0.3% 0: 0.0% 0: 0.0% 9829
gimplify.c:9416 (gimplify_assign) 0: 0.0% 2640: 0.0% 0: 0.0% 0: 0.0% 66
expmed.c:268 (init_expmed) 0: 0.0% 24: 0.0% 0: 0.0% 0: 0.0% 1
alias.c:2847 (init_alias_analysis) 0: 0.0% 1822424: 0.6% 0: 0.0% 95744: 0.6% 9804
cp/parser.c:23715 (cp_parser_template_declaratio 0: 0.0% 216: 0.0% 0: 0.0% 0: 0.0% 1
expmed.c:274 (init_expmed) 0: 0.0% 16: 0.0% 0: 0.0% 0: 0.0% 1
gimplify.c:5471 (gimplify_target_expr) 0: 0.0% 90080: 0.0% 0: 0.0% 0: 0.0% 2252
gimplify.c:559 (internal_get_tmp_var) 0: 0.0% 1195000: 0.4% 0: 0.0% 0: 0.0% 29875
cp/parser.c:632 (cp_lexer_alloc) 0: 0.0% 262152: 0.1% 0: 0.0% 8: 0.0% 1
emit-rtl.c:6137 (init_emit_once) 0: 0.0% 0: 0.0% 8: 0.0% 0: 0.0% 1
emit-rtl.c:6136 (init_emit_once) 0: 0.0% 0: 0.0% 8: 0.0% 0: 0.0% 1
emit-rtl.c:6139 (init_emit_once) 0: 0.0% 0: 0.0% 8: 0.0% 0: 0.0% 1
emit-rtl.c:6138 (init_emit_once) 0: 0.0% 0: 0.0% 8: 0.0% 0: 0.0% 1
lower-subreg.c:308 (init_lower_subreg) 16: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
alias.c:2748 (init_alias_target) 0: 0.0% 0: 0.0% 16: 0.0% 0: 0.0% 1
tree.c:9902 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 16: 0.0% 0: 0.0% 1
c-family/c-common.c:5930 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 24: 0.0% 0: 0.0% 1
config/i386/i386.c:8754 (setup_incoming_varargs_ 24: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
tree.c:679 (init_ttree) 0: 0.0% 0: 0.0% 24: 0.0% 0: 0.0% 1
lower-subreg.c:307 (init_lower_subreg) 24: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
tree.c:9763 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 24: 0.0% 0: 0.0% 1
expr.c:261 (init_expr_target) 24: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
simplify-rtx.c:445 (simplify_gen_relational) 24: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
expr.c:213 (init_expr_target) 24: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
lower-subreg.c:309 (init_lower_subreg) 24: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
ira.c:1772 (setup_prohibited_mode_move_regs) 24: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
reload1.c:476 (init_reload) 24: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
reload1.c:465 (init_reload) 24: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
reload1.c:485 (init_reload) 24: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
fold-const.c:4945 (fold_cond_expr_with_compariso 0: 0.0% 0: 0.0% 32: 0.0% 0: 0.0% 1
generic-match.c:2191 (generic_simplify) 32: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
fold-const.c:3516 (fold_truth_not_expr) 32: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:118 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
dwarf2cfi.c:451 (new_cfi_row) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:141 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
dwarf2cfi.c:498 (add_cfi) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:73 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:201 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:182 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:74 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:152 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:53 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:133 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:195 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:120 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:188 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:154 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:78 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:112 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:173 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:167 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
fold-const.c:7014 (fold_widened_comparison) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:213 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
fold-const.c:12447 (fold_binary_loc) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:258 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:81 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:204 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
config/i386/i386.c:9063 (ix86_va_start) 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:76 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:262 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:143 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
fold-const.c:683 (fold_negate_expr) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:116 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:3881 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:77 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/call.c:6762 (push_defarg_context) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:3978 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:129 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:192 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:164 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
fold-const.c:7969 (fold_unary_loc) 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:127 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/pt.c:3658 (canonical_type_parameter) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:55 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/init.c:4319 (build_vec_delete) 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:75 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:149 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
tree.c:4684 (build_translation_unit_decl) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:179 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:57 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:3882 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:185 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
config/i386/i386.c:35662 (ix86_init_builtins_va_ 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:176 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:270 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
config/i386/i386.c:9027 (ix86_va_start) 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:147 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
config/i386/i386.c:9046 (ix86_va_start) 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:264 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:207 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:256 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:123 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:158 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:260 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:170 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
config/i386/i386.c:35663 (ix86_init_builtins_va_ 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:125 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:285 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:284 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:82 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:273 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
config/i386/i386.c:9018 (ix86_va_start) 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:139 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:14098 (record_key_method_defined) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:210 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:14726 (build_void_list_node) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
convert.c:436 (convert_to_integer) 40: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
builtin-attrs.def:276 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:161 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:52 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:137 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:131 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
cp/decl.c:3883 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:145 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:135 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:58 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:114 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
attribs.c:605 (decl_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:54 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:56 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:278 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:266 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:198 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:79 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:80 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:66 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
builtin-attrs.def:156 (c_init_attributes) 0: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1
config/i386/i386.c:9003 (ix86_va_start) 48: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
hash-map.h:123 (create_ggc) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
config/i386/i386.c:9007 (ix86_va_start) 48: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
cp/parser.c:624 (cp_lexer_alloc) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
config/i386/i386.md:7318 (gen_split_5252) 48: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
tree-ssanames.c:445 (get_ptr_info) 48: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
cp/cp-gimplify.c:346 (genericize_switch_stmt) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 1
cp/cvt.c:998 (convert_to_void) 48: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
emit-rtl.c:6217 (gen_hard_reg_clobber) 32: 0.0% 0: 0.0% 16: 0.0% 0: 0.0% 3
config/i386/i386.c:9001 (ix86_va_start) 48: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
config/i386/i386.c:9005 (ix86_va_start) 48: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
config/i386/i386.c:21182 (ix86_expand_int_movcc) 56: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
cp/rtti.c:1143 (get_pseudo_ti_init) 56: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
varasm.c:1675 (notice_global_symbol) 0: 0.0% 0: 0.0% 59: 0.0% 11: 0.0% 2
tree.c:1692 (build_vector_stat) 64: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
cp/error.c:2761 (pp_ggc_formatted_text) 64: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 8
cp/cp-gimplify.c:359 (genericize_continue_stmt) 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
bitmap.c:306 (bitmap_gc_alloc_stat) 64: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
c-family/c-common.c:4745 (c_common_truthvalue_co 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
generic-match.c:7393 (generic_simplify) 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
config/i386/i386.md:12543 (gen_clzdi2) 64: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
builtins.c:9158 (fold_builtin_abs) 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
builtins.c:9559 (fold_builtin_interclass_mathfn) 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
expr.c:212 (init_expr_target) 64: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
generic-match.c:5045 (generic_simplify) 64: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
emit-rtl.c:471 (gen_rtx_INSN) 64: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
predict.c:3007 (build_predict_expr) 64: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
convert.c:910 (convert_to_integer) 0: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 2
cp/parser.c:8950 (start_lambda_scope) 0: 0.0% 0: 0.0% 72: 0.0% 0: 0.0% 1
cp/class.c:7133 (init_class_processing) 0: 0.0% 0: 0.0% 72: 0.0% 0: 0.0% 1
cp/decl.c:5359 (reshape_init_array_1) 0: 0.0% 0: 0.0% 72: 0.0% 0: 0.0% 1
builtin-attrs.def:247 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:241 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:243 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:239 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:664 (fold_negate_expr) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:10058 (fold_binary_loc) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:248 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
cp/call.c:7469 (build_over_call) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
fold-const.c:12421 (fold_binary_loc) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
cp/pt.c:22007 (build_non_dependent_expr) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
fold-const.c:12419 (fold_binary_loc) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:233 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:10543 (fold_binary_loc) 40: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 2
builtin-attrs.def:244 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
gimple-fold.c:889 (gimple_fold_builtin_memory_op 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
cp/name-lookup.c:3683 (handle_namespace_attrs) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtins.c:9701 (fold_builtin_classify) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
config/i386/i386.md:12536 (gen_clzdi2) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4
insn-emit.c:296 (gen_fix_truncdfsi_sse) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4
tree-eh.c:1451 (lower_try_finally_switch) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 1
builtin-attrs.def:240 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:12424 (fold_binary_loc) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:242 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
gimple-fold.c:862 (gimple_fold_builtin_memory_op 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
builtin-attrs.def:234 (c_init_attributes) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
c-family/c-common.c:4098 (c_register_builtin_typ 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:645 (fold_negate_expr) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
fold-const.c:7113 (fold_sign_changed_comparison) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
cp/call.c:7819 (build_special_member_call) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
cp/decl.c:3981 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 2
fold-const.c:10709 (fold_binary_loc) 80: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
cp/rtti.c:528 (ifnonnull) 0: 0.0% 0: 0.0% 88: 0.0% 0: 0.0% 2
optabs.c:5563 (gen_libfunc) 90: 0.0% 0: 0.0% 0: 0.0% 26: 0.0% 4
lra.c:333 (emit_add3_insn) 96: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4
expmed.c:3711 (expand_smod_pow2) 96: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 2
emit-rtl.c:6004 (init_emit_once) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 4
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 2
builtins.c:9253 (fold_builtin_carg) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 3
fold-const.c:8099 (fold_unary_loc) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 3
builtins.c:9254 (fold_builtin_carg) 0: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 3
ipa-inline.h:179 (create_ggc) 104: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1
optabs.c:6237 (init_optabs) 0: 0.0% 0: 0.0% 104: 0.0% 0: 0.0% 1
tree-ssanames.c:371 (release_ssa_name_fn) 0: 0.0% 179760: 0.1% 112: 0.0% 0: 0.0% 3582
cp/parser.c:20074 (cp_parser_class_specifier_1) 0: 0.0% 0: 0.0% 112: 0.0% 0: 0.0% 2
fold-const.c:12006 (fold_binary_loc) 80: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 3
cp/init.c:4174 (push_base_cleanups) 120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
toplev.c:1237 (general_init) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 1
builtin-attrs.def:238 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
tree.c:4682 (build_translation_unit_decl) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 1
builtin-attrs.def:236 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
config/i386/i386.md:8897 (gen_split_5332) 120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 5
convert.c:949 (convert_to_complex) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
cp/typeck2.c:2062 (add_exception_specifier) 40: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 3
builtin-attrs.def:235 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
cp/init.c:2721 (build_new_1) 120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
builtin-attrs.def:246 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
cp/friend.c:170 (add_friend) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
cp/name-lookup.c:1385 (push_local_binding) 120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
builtin-attrs.def:237 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
builtin-attrs.def:245 (c_init_attributes) 0: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 3
cp/init.c:2957 (build_new_1) 120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
cp/init.c:885 (sort_mem_initializers) 120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
generic-match.c:5029 (generic_simplify) 64: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 4
cp/parser.c:3498 (cp_parser_new) 0: 0.0% 0: 0.0% 128: 0.0% 0: 0.0% 1
varasm.c:296 (get_noswitch_section) 0: 0.0% 0: 0.0% 128: 0.0% 0: 0.0% 4
varasm.c:279 (get_unnamed_section) 0: 0.0% 0: 0.0% 128: 0.0% 0: 0.0% 4
cp/init.c:1274 (expand_cleanup_for_base) 144: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
dwarf2cfi.c:534 (update_row_reg_save) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 1
gimple.c:774 (gimple_build_switch_nlabels) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 2
config/i386/i386.md:4937 (gen_split_5130) 144: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 9
emit-rtl.c:2506 (get_spill_slot_decl) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 1
cp/init.c:4193 (push_base_cleanups) 144: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
config/i386/i386.md:4938 (gen_split_5130) 144: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 9
cp/parser.c:19383 (cp_parser_braced_list) 120: 0.0% 0: 0.0% 24: 0.0% 0: 0.0% 6
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 3
cp/decl.c:6801 (declare_global_var) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 1
hash-table.h:599 (create_ggc) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 3
builtins.c:9826 (fold_builtin_unordered_cmp) 144: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4
convert.c:886 (convert_to_integer) 0: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 3
cp/rtti.c:1420 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5568 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5559 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5707 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1464 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
config/i386/i386.c:8623 (ix86_build_builtin_va_l 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5699 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5580 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
config/i386/i386.c:8619 (ix86_build_builtin_va_l 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5695 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5595 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5703 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5895 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1462 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1433 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1429 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5562 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1466 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
config/i386/i386.c:8629 (ix86_build_builtin_va_l 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5609 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
tree.c:8497 (build_complex_type) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1451 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/parser.c:1914 (push_unparsed_function_queues) 0: 0.0% 0: 0.0% 152: 0.0% 8: 0.0% 1
config/i386/i386.c:8632 (ix86_build_builtin_va_l 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5603 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/decl.c:14499 (maybe_register_incomplete_var) 0: 0.0% 72: 0.0% 152: 0.0% 8: 0.0% 2
c-family/c-common.c:5576 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1393 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
config/i386/i386.c:8626 (ix86_build_builtin_va_l 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5565 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5589 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5586 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1389 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
c-family/c-common.c:5583 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
cp/rtti.c:1453 (create_tinfo_types) 0: 0.0% 0: 0.0% 152: 0.0% 0: 0.0% 1
gimple-fold.c:890 (gimple_fold_builtin_memory_op 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 2
gimple-fold.c:875 (gimple_fold_builtin_memory_op 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 2
function.c:3751 (assign_parms) 160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 5
cp/class.c:1593 (check_abi_tags) 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 4
cp/tree.c:1380 (strip_typedefs) 0: 0.0% 224: 0.0% 160: 0.0% 0: 0.0% 12
bitmap.c:162 (bitmap_element_allocate) 160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4
fold-const.c:2352 (fold_convert_loc) 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 5
cp/init.c:845 (build_field_list) 160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4
c-family/c-common.c:4723 (c_common_truthvalue_co 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 4
tree-eh.c:1538 (lower_try_finally_switch) 160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2
cp/parser.c:16247 (cp_parser_namespace_definitio 0: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 4
tree.c:9953 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
cp/decl.c:3912 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
emit-rtl.c:5996 (init_emit_once) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 7
tree.c:9915 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
targhooks.c:1884 (default_chkp_bound_type) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
config/i386/i386.c:35716 (ix86_init_builtin_type 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
stor-layout.c:2629 (initialize_sizetypes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
cp/decl.c:3918 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
cp/decl.c:3901 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
tree.c:9919 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
tree.c:9947 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
cp/decl.c:4009 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
tree.c:9941 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
tree.c:9892 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
toplev.c:1256 (general_init) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
stor-layout.c:2633 (initialize_sizetypes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
tree.c:9926 (build_common_tree_nodes) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
cp/decl.c:3940 (cxx_init_decl_processing) 0: 0.0% 0: 0.0% 168: 0.0% 0: 0.0% 1
config/i386/i386.md:4938 (gen_split_5129) 176: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 11
config/i386/i386.md:4937 (gen_split_5129) 176: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 11
config/i386/i386.md:7181 (gen_split_5241) 192: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 9
config/i386/i386.md:8895 (gen_split_5332) 192: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 8
expr.c:1622 (gen_group_rtx) 192: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 12
optabs.c:6193 (set_optab_libfunc) 0: 0.0% 0: 0.0% 192: 0.0% 0: 0.0% 8
cp/init.c:3760 (build_vec_init) 192: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 6
fold-const.c:2266 (fold_convert_loc) 0: 0.0% 0: 0.0% 192: 0.0% 0: 0.0% 6
cp/parser.c:687 (cp_lexer_new_from_tokens) 0: 0.0% 309552: 0.1% 192: 0.0% 0: 0.0% 6453
cp/call.c:4142 (build_operator_new_call) 192: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4
fold-const.c:4534 (build_range_check) 200: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 5
cp/name-lookup.c:3978 (add_using_namespace_1) 0: 0.0% 0: 0.0% 200: 0.0% 0: 0.0% 5
cp/name-lookup.c:3984 (add_using_namespace_1) 0: 0.0% 0: 0.0% 200: 0.0% 0: 0.0% 5
cp/init.c:2580 (build_new_1) 200: 0.0% 40: 0.0% 0: 0.0% 0: 0.0% 6
emit-rtl.c:5803 (gen_rtx_CONST_VECTOR) 176: 0.0% 0: 0.0% 32: 0.0% 0: 0.0% 13
config/i386/i386.c:19577 (ix86_expand_fp_absneg_ 208: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 13
config/i386/i386.c:19569 (ix86_expand_fp_absneg_ 208: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 13
config/i386/i386.c:19585 (ix86_expand_fp_absneg_ 208: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 13
config/i386/i386.c:19582 (ix86_expand_fp_absneg_ 208: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 13
config/i386/i386.md:4940 (gen_split_5130) 216: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 9
cp/rtti.c:1175 (get_pseudo_ti_init) 216: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3
expr.c:11426 (build_personality_function) 0: 0.0% 0: 0.0% 216: 0.0% 0: 0.0% 1
cp/pt.c:3661 (canonical_type_parameter) 0: 0.0% 0: 0.0% 216: 0.0% 0: 0.0% 2
emit-rtl.c:5378 (start_sequence) 216: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 9
cp/semantics.c:2421 (finish_call_expr) 0: 0.0% 0: 0.0% 224: 0.0% 0: 0.0% 7
config/i386/i386.md:7297 (gen_udivmoddi4) 224: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 10
tree.c:11765 (build_target_option_node) 0: 0.0% 0: 0.0% 232: 0.0% 16: 0.0% 1
tree.c:684 (init_ttree) 0: 0.0% 0: 0.0% 232: 0.0% 16: 0.0% 1
c-family/c-cppbuiltin.c:1460 (builtin_define_wit 234: 0.0% 0: 0.0% 0: 0.0% 42: 0.0% 12
cp/call.c:7468 (build_over_call) 0: 0.0% 0: 0.0% 240: 0.0% 0: 0.0% 6
insn-emit.c:136 (gen_zero_extendqidi2) 240: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 12
fold-const.c:6389 (fold_binary_op_with_condition 240: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 6
fold-const.c:943 (associate_trees) 80: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 6
generic-match.c:3684 (generic_simplify) 80: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 6
cp/typeck.c:4879 (cp_build_binary_op) 0: 0.0% 0: 0.0% 240: 0.0% 0: 0.0% 6
fold-const.c:6381 (fold_binary_op_with_condition 240: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 6
config/i386/i386.md:7331 (gen_split_5252) 256: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 12
varasm.c:6072 (init_varasm_once) 0: 0.0% 0: 0.0% 264: 0.0% 8: 0.0% 1
varasm.c:6071 (init_varasm_once) 0: 0.0% 0: 0.0% 264: 0.0% 8: 0.0% 1
cp/rtti.c:1379 (create_tinfo_types) 0: 0.0% 0: 0.0% 264: 0.0% 8: 0.0% 1
cp/mangle.c:3793 (mangle_conv_op_name_for_type) 0: 0.0% 0: 0.0% 264: 0.0% 8: 0.0% 1
config/i386/i386.md:4940 (gen_split_5129) 264: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 11
fold-const.c:200 (protected_set_expr_location_un 240: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 7
fold-const.c:6131 (extract_muldiv_1) 280: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 7
expmed.c:4388 (expand_divmod) 288: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 12
fold-const.c:6398 (fold_binary_op_with_condition 288: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 6
cp/pt.c:14928 (tsubst_copy_and_build) 288: 0.0% 72: 0.0% 0: 0.0% 0: 0.0% 5
cp/tree.c:1498 (strip_typedefs_expr) 0: 0.0% 0: 0.0% 288: 0.0% 0: 0.0% 6
config/i386/i386.md:4939 (gen_split_5130) 288: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 9
cp/parser.c:20899 (cp_parser_member_declaration) 0: 0.0% 0: 0.0% 304: 0.0% 0: 0.0% 2
c-family/c-common.c:5907 (c_common_nodes_and_bui 0: 0.0% 0: 0.0% 304: 0.0% 0: 0.0% 2
optabs.c:284 (add_equal_note) 304: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 19
c-family/c-common.c:4092 (c_register_builtin_typ 0: 0.0% 0: 0.0% 304: 0.0% 0: 0.0% 2
config/i386/i386.md:8909 (gen_split_5332) 312: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 13
config/i386/i386.c:19570 (ix86_expand_fp_absneg_ 312: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 13
cp/parser.c:13677 (cp_parser_type_parameter) 320: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 8
expr.c:1853 (emit_group_load_into_temps) 320: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 20
cp/decl.c:3739 (record_builtin_java_type) 0: 0.0% 0: 0.0% 336: 0.0% 0: 0.0% 2
function.c:699 (insert_temp_slot_address) 336: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 14
cp/semantics.c:2562 (finish_pseudo_destructor_ex 336: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 7
config/i386/i386.md:7138 (gen_divmoddi4) 336: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 15
cp/cp-objcp-common.c:214 (decl_shadowed_for_var_ 0: 0.0% 0: 0.0% 336: 0.0% 0: 0.0% 21
config/i386/i386.md:4939 (gen_split_5129) 352: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 11
builtins.c:9144 (fold_builtin_fabs) 0: 0.0% 0: 0.0% 352: 0.0% 0: 0.0% 11
fold-const.c:7897 (fold_unary_loc) 0: 0.0% 0: 0.0% 360: 0.0% 0: 0.0% 9
generic-match.c:4769 (generic_simplify) 160: 0.0% 0: 0.0% 200: 0.0% 0: 0.0% 9
config/i386/i386.md:4853 (gen_floatdidf2) 360: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 18
config/i386/i386.md:3462 (gen_zero_extendsidi2) 360: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 18
cp/init.c:1689 (expand_default_init) 360: 0.0% 144: 0.0% 0: 0.0% 0: 0.0% 7
cp/class.c:6860 (finish_struct) 0: 0.0% 152: 0.0% 376: 0.0% 0: 0.0% 9
config/i386/i386.md:7194 (gen_split_5241) 384: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 18
cp/pt.c:22001 (build_non_dependent_expr) 384: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 8
cp/tree.c:2168 (bind_template_template_parm) 144: 0.0% 0: 0.0% 240: 0.0% 0: 0.0% 8
cp/decl2.c:3473 (start_static_storage_duration_f 0: 0.0% 0: 0.0% 392: 0.0% 0: 0.0% 1
cp/semantics.c:170 (push_deferring_access_checks 0: 0.0% 224: 0.0% 392: 0.0% 8: 0.0% 3
cp/rtti.c:1335 (get_pseudo_ti_index) 0: 0.0% 0: 0.0% 392: 0.0% 0: 0.0% 1
tree-outof-ssa.c:1188 (insert_backedge_copies) 400: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 5
cp/init.c:3465 (build_vec_init) 160: 0.0% 0: 0.0% 240: 0.0% 0: 0.0% 10
convert.c:596 (convert_to_integer) 40: 0.0% 0: 0.0% 360: 0.0% 0: 0.0% 10
c-family/c-cppbuiltin.c:1432 (lazy_hex_fp_value) 0: 0.0% 0: 0.0% 424: 0.0% 40: 0.0% 12
cp/init.c:440 (build_value_init_noctor) 432: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 6
cp/parser.c:19584 (cp_parser_initializer_list) 360: 0.0% 0: 0.0% 72: 0.0% 0: 0.0% 6
tree-inline.c:5030 (copy_tree_r) 0: 0.0% 0: 0.0% 432: 0.0% 0: 0.0% 6
cp/typeck.c:5957 (unary_complex_lvalue) 360: 0.0% 0: 0.0% 80: 0.0% 0: 0.0% 11
cp/typeck.c:5978 (unary_complex_lvalue) 440: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 11
config/i386/i386.md:4853 (gen_floatsidf2) 440: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 22
cp/rtti.c:1352 (get_pseudo_ti_index) 0: 0.0% 0: 0.0% 456: 0.0% 0: 0.0% 3
cp/decl.c:3761 (record_unknown_type) 0: 0.0% 0: 0.0% 456: 0.0% 0: 0.0% 3
cp/rtti.c:1356 (get_pseudo_ti_index) 0: 0.0% 0: 0.0% 456: 0.0% 0: 0.0% 3
cp/rtti.c:1354 (get_pseudo_ti_index) 0: 0.0% 0: 0.0% 456: 0.0% 0: 0.0% 3
cp/decl.c:7297 (expand_static_init) 0: 0.0% 0: 0.0% 480: 0.0% 0: 0.0% 12
cp/class.c:7660 (resolve_address_of_overloaded_f 480: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 12
cp/class.c:7671 (resolve_address_of_overloaded_f 480: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 12
cp/typeck.c:4883 (cp_build_binary_op) 0: 0.0% 0: 0.0% 480: 0.0% 0: 0.0% 12
cp/typeck.c:4913 (cp_build_binary_op) 0: 0.0% 0: 0.0% 480: 0.0% 0: 0.0% 12
tree.c:683 (init_ttree) 0: 0.0% 0: 0.0% 488: 0.0% 96: 0.0% 1
tree.c:11738 (build_optimization_node) 0: 0.0% 0: 0.0% 488: 0.0% 96: 0.0% 1
cp/pt.c:2148 (determine_specialization) 496: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 14
calls.c:3362 (expand_call) 504: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 21
cp/typeck2.c:1999 (build_functional_cast) 504: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 7
expmed.c:3021 (expand_mult_const) 504: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 21
convert.c:379 (convert_to_real) 512: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 16
cp/pt.c:1509 (register_specialization) 0: 0.0% 0: 0.0% 520: 0.0% 0: 0.0% 13
cp/call.c:7807 (build_special_member_call) 528: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 12
cp/search.c:2108 (dfs_get_pure_virtuals) 0: 0.0% 192: 0.0% 528: 0.0% 0: 0.0% 13
except.c:270 (init_eh) 0: 0.0% 0: 0.0% 528: 0.0% 16: 0.0% 1
emit-rtl.c:5904 (init_emit_once) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
hash-table.h:914 (expand) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
emit-rtl.c:5913 (init_emit_once) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
function.c:1233 (init_temp_slots) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
emit-rtl.c:5911 (init_emit_once) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
emit-rtl.c:5907 (init_emit_once) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
emit-rtl.c:5909 (init_emit_once) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
cp/tree.c:842 (build_cplus_array_type) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
cp/tree.c:3895 (init_tree) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
cp/decl.c:3398 (build_typename_type) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
cp/pt.c:22449 (init_template_processing) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
optabs.c:6140 (init_one_libfunc) 0: 0.0% 0: 0.0% 536: 0.0% 24: 0.0% 1
expr.c:1892 (emit_group_move_into_temps) 544: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 34
cp/decl.c:974 (push_local_name) 560: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 14
cp/class.c:1644 (inherit_targ_abi_tags) 0: 0.0% 0: 0.0% 560: 0.0% 0: 0.0% 14
cp/pt.c:2078 (determine_specialization) 560: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 14
cp/decl.c:7291 (expand_static_init) 0: 0.0% 0: 0.0% 576: 0.0% 0: 0.0% 12
varasm.c:3808 (force_const_mem) 0: 0.0% 0: 0.0% 583: 0.0% 7: 0.0% 36
expmed.c:4212 (expand_divmod) 600: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 25
fold-const.c:4530 (build_range_check) 600: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 15
config/i386/i386.c:18170 (ix86_expand_unary_oper 608: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 38
stor-layout.c:1846 (start_bitfield_representativ 0: 0.0% 0: 0.0% 608: 0.0% 0: 0.0% 4
config/i386/i386.c:18169 (ix86_expand_unary_oper 608: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 38
convert.c:981 (convert_to_complex) 624: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 18
config/i386/sse.md:1129 (gen_split_5983) 624: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 26
generic-match.c:4147 (generic_simplify) 0: 0.0% 0: 0.0% 640: 0.0% 0: 0.0% 16
cp/decl.c:8271 (build_ptrmemfunc_type) 0: 0.0% 0: 0.0% 656: 0.0% 0: 0.0% 41
gimplify.c:2709 (shortcut_cond_expr) 672: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 14
cp/cp-gimplify.c:372 (genericize_break_stmt) 64: 0.0% 0: 0.0% 608: 0.0% 0: 0.0% 21
cp/decl2.c:3050 (get_guard_bits) 0: 0.0% 0: 0.0% 704: 0.0% 0: 0.0% 22
cp/decl2.c:3047 (get_guard_bits) 0: 0.0% 0: 0.0% 704: 0.0% 0: 0.0% 22
cp/decl2.c:3051 (get_guard_bits) 0: 0.0% 0: 0.0% 704: 0.0% 0: 0.0% 22
cp/class.c:1393 (check_tag) 0: 0.0% 0: 0.0% 720: 0.0% 0: 0.0% 18
fold-const.c:6237 (extract_muldiv_1) 720: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 18
cp/pt.c:7449 (lookup_template_function) 720: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 18
cp/class.c:4554 (check_methods) 368: 0.0% 192: 0.0% 360: 0.0% 0: 0.0% 18
gimplify.c:4300 (gimplify_modify_expr_rhs) 760: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 19
cp/decl.c:3695 (record_builtin_type) 0: 0.0% 0: 0.0% 760: 0.0% 0: 0.0% 5
gimplify.c:4296 (gimplify_modify_expr_rhs) 760: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 19
cp/class.c:490 (build_base_path) 792: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 18
cp/decl.c:12555 (xref_basetypes) 0: 0.0% 0: 0.0% 800: 0.0% 0: 0.0% 20
generic-match.c:1432 (generic_simplify) 0: 0.0% 0: 0.0% 800: 0.0% 0: 0.0% 25
builtins.c:7326 (fold_builtin_expect) 0: 0.0% 0: 0.0% 800: 0.0% 0: 0.0% 20
gimplify.c:3647 (gimplify_init_ctor_eval) 96: 0.0% 0: 0.0% 720: 0.0% 0: 0.0% 17
emit-rtl.c:550 (const_fixed_from_fixed_value) 0: 0.0% 0: 0.0% 832: 0.0% 0: 0.0% 26
cp/class.c:470 (build_base_path) 288: 0.0% 0: 0.0% 544: 0.0% 0: 0.0% 26
tree.c:8446 (build_complex_type) 0: 0.0% 0: 0.0% 840: 0.0% 0: 0.0% 5
tree.c:10057 (set_call_expr_flags) 0: 0.0% 0: 0.0% 840: 0.0% 0: 0.0% 21
cp/class.c:8574 (build_vtt_inits) 0: 0.0% 1040: 0.0% 864: 0.0% 32: 0.0% 22
cp/tree.c:599 (build_vec_init_expr) 880: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 22
cp/friend.c:189 (add_friend) 0: 0.0% 0: 0.0% 880: 0.0% 0: 0.0% 22
cp/init.c:728 (perform_member_init) 880: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 22
c-family/c-common.c:4632 (pointer_int_sum) 0: 0.0% 0: 0.0% 896: 0.0% 0: 0.0% 28
cp/pt.c:10582 (tsubst_decl) 0: 0.0% 0: 0.0% 912: 0.0% 0: 0.0% 6
function.c:866 (assign_stack_temp_for_type) 936: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 13
cp/pt.c:10923 (tsubst_decl) 0: 0.0% 0: 0.0% 960: 0.0% 0: 0.0% 24
cp/semantics.c:7576 (finish_trait_expr) 288: 0.0% 0: 0.0% 672: 0.0% 0: 0.0% 20
cp/init.c:2851 (build_new_1) 160: 0.0% 0: 0.0% 800: 0.0% 0: 0.0% 24
config/i386/i386.c:17489 (ix86_expand_vector_mov 984: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 41
cp/call.c:7450 (build_over_call) 40: 0.0% 0: 0.0% 960: 0.0% 0: 0.0% 25
config/i386/i386.md:7181 (gen_split_5240) 1024: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 48
cp/rtti.c:171 (init_rtti_processing) 0: 0.0% 0: 0.0% 1024: 0.0% 0: 0.0% 1
fold-const.c:7905 (fold_unary_loc) 288: 0.0% 0: 0.0% 736: 0.0% 0: 0.0% 32
varasm.c:5799 (assemble_alias) 0: 0.0% 616: 0.0% 1032: 0.0% 16: 0.0% 4
tree.c:681 (init_ttree) 0: 0.0% 0: 0.0% 1032: 0.0% 8: 0.0% 1
cp/parser.c:24226 (cp_parser_save_default_args) 0: 0.0% 616: 0.0% 1032: 0.0% 16: 0.0% 4
cp/tree.c:1631 (strip_typedefs_expr) 800: 0.0% 0: 0.0% 240: 0.0% 0: 0.0% 26
cp/init.c:3890 (build_vec_init) 992: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 33
cp/init.c:1230 (expand_virtual_init) 1056: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 24
tree.c:4555 (build_simple_mem_ref_loc) 1080: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 27
config/i386/i386.c:20351 (ix86_expand_fp_compare 1104: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 46
config/i386/i386.c:20205 (ix86_expand_fp_compare 1104: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 46
config/i386/i386.c:20206 (ix86_expand_fp_compare 1104: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 46
c-family/c-common.c:8108 (handle_weakref_attribu 1120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 28
c-family/c-common.c:8109 (handle_weakref_attribu 1120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 28
convert.c:384 (convert_to_real) 576: 0.0% 0: 0.0% 544: 0.0% 0: 0.0% 35
function.c:2678 (assign_parm_find_stack_rtl) 1128: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 47
cp/init.c:3714 (build_vec_init) 1152: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 36
varasm.c:3763 (force_const_mem) 0: 0.0% 0: 0.0% 1152: 0.0% 0: 0.0% 18
cp/pt.c:3673 (canonical_type_parameter) 0: 0.0% 0: 0.0% 1200: 0.0% 0: 0.0% 30
cp/search.c:1115 (lookup_field_r) 1200: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 30
cp/tree.c:2164 (bind_template_template_parm) 456: 0.0% 0: 0.0% 760: 0.0% 0: 0.0% 8
cp/semantics.c:2731 (finish_template_template_pa 0: 0.0% 0: 0.0% 1216: 0.0% 0: 0.0% 8
c-family/c-common.c:12043 (release_tree_vector) 1232: 0.0% 840: 0.0% 0: 0.0% 0: 0.0% 30
cp/search.c:1120 (lookup_field_r) 1240: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 31
cp/call.c:9785 (extend_ref_init_temps_1) 0: 0.0% 0: 0.0% 1280: 0.0% 0: 0.0% 32
fold-const.c:13055 (fold_binary_loc) 280: 0.0% 0: 0.0% 1000: 0.0% 0: 0.0% 32
cp/pt.c:2742 (check_explicit_specialization) 1280: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 40
tree.c:6141 (merge_attributes) 280: 0.0% 0: 0.0% 1000: 0.0% 0: 0.0% 32
cp/typeck.c:7520 (cp_build_modify_expr) 120: 0.0% 0: 0.0% 1200: 0.0% 0: 0.0% 33
cp/parser.c:7198 (cp_parser_unary_expression) 1344: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 42
cp/class.c:7639 (resolve_address_of_overloaded_f 1400: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 35
convert.c:834 (convert_to_integer) 600: 0.0% 0: 0.0% 840: 0.0% 0: 0.0% 36
cp/init.c:3706 (build_vec_init) 1400: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 36
cp/init.c:3260 (build_vec_delete_1) 1376: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 45
tree.c:10721 (build_call_expr_loc_array) 64: 0.0% 0: 0.0% 1376: 0.0% 0: 0.0% 45
cp/init.c:2493 (build_new_1) 1320: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 37
cp/class.c:755 (build_vfn_ref) 144: 0.0% 0: 0.0% 1392: 0.0% 0: 0.0% 32
cfgloop.c:477 (flow_loops_find) 0: 0.0% 864: 0.0% 1584: 0.0% 0: 0.0% 22
fold-const.c:8122 (fold_unary_loc) 560: 0.0% 0: 0.0% 1040: 0.0% 0: 0.0% 40
builtins.c:7282 (build_builtin_expect_predicate) 0: 0.0% 0: 0.0% 1600: 0.0% 0: 0.0% 40
cp/mangle.c:426 (add_substitution) 0: 0.0% 256: 0.0% 1632: 0.0% 0: 0.0% 6
cp/pt.c:13137 (tsubst_copy) 1632: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 51
cp/pt.c:2162 (determine_specialization) 1640: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 41
expr.c:1157 (emit_block_move_hints) 1656: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 69
expr.c:1158 (emit_block_move_hints) 1656: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 69
cp/rtti.c:1232 (create_pseudo_type_info) 0: 0.0% 0: 0.0% 1672: 0.0% 0: 0.0% 11
reload.c:5410 (form_sum) 1680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 70
stor-layout.c:2525 (make_unsigned_type) 0: 0.0% 0: 0.0% 1680: 0.0% 0: 0.0% 10
fold-const.c:3481 (fold_truth_not_expr) 1560: 0.0% 0: 0.0% 160: 0.0% 0: 0.0% 43
config/i386/i386.md:5519 (gen_split_5164) 1728: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 72
config/i386/i386.md:5521 (gen_split_5164) 1728: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 72
jump.c:1683 (invert_exp_1) 1752: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 73
expr.c:4032 (emit_single_push_insn_1) 1760: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 110
gimplify.c:7955 (gimplify_expr) 1792: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 56
config/i386/i386.md:7118 (gen_divmodsi4) 1792: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 80
cp/semantics.c:2224 (perform_koenig_lookup) 240: 0.0% 0: 0.0% 1560: 0.0% 0: 0.0% 45
cp/lex.c:656 (copy_lang_type) 912: 0.0% 0: 0.0% 912: 0.0% 0: 0.0% 12
fold-const.c:7911 (fold_unary_loc) 432: 0.0% 0: 0.0% 1392: 0.0% 0: 0.0% 38
cp/call.c:8223 (build_new_method_call_1) 0: 0.0% 0: 0.0% 1840: 0.0% 0: 0.0% 46
stor-layout.c:2512 (make_signed_type) 0: 0.0% 0: 0.0% 1848: 0.0% 0: 0.0% 11
builtins.c:10580 (fold_builtin_n) 1728: 0.0% 0: 0.0% 128: 0.0% 0: 0.0% 58
cp/class.c:8663 (dfs_build_secondary_vptr_vtt_in 0: 0.0% 0: 0.0% 1872: 0.0% 16: 0.0% 6
emit-rtl.c:5771 (gen_const_vector) 0: 0.0% 0: 0.0% 1872: 0.0% 0: 0.0% 117
cp/typeck.c:7189 (cp_build_c_cast) 80: 0.0% 0: 0.0% 1800: 0.0% 0: 0.0% 47
cp/decl.c:7327 (expand_static_init) 0: 0.0% 0: 0.0% 1880: 0.0% 0: 0.0% 47
config/i386/i386.c:18163 (ix86_expand_unary_oper 1880: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 94
config/i386/i386.c:17424 (ix86_expand_move) 1944: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 81
fold-const.c:3474 (fold_truth_not_expr) 1640: 0.0% 0: 0.0% 400: 0.0% 0: 0.0% 51
cp/parser.c:24006 (cp_parser_save_member_functio 0: 0.0% 1632: 0.0% 2048: 0.0% 0: 0.0% 5
cp/rtti.c:457 (get_tinfo_decl) 0: 0.0% 0: 0.0% 2048: 0.0% 0: 0.0% 1
config/i386/i386.md:7194 (gen_split_5240) 2048: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 96
ipa-devirt.c:2068 (get_odr_type) 0: 0.0% 1888: 0.0% 2048: 0.0% 0: 0.0% 7
emit-rtl.c:5929 (init_emit_once) 0: 0.0% 0: 0.0% 2064: 0.0% 0: 0.0% 129
cp/except.c:931 (build_throw) 0: 0.0% 0: 0.0% 2080: 0.0% 0: 0.0% 65
cp/class.c:8909 (dfs_accumulate_vtbl_inits) 2080: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 52
gimplify.c:1614 (gimplify_exit_expr) 2112: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 44
cp/init.c:3241 (build_vec_delete_1) 2064: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 45
tree.c:7874 (build_nonstandard_integer_type) 0: 0.0% 0: 0.0% 2184: 0.0% 0: 0.0% 13
config/i386/i386.md:3407 (gen_split_5041) 2304: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 96
except.c:937 (assign_filter_values) 2320: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 58
except.c:453 (gen_eh_region_catch) 80: 0.0% 0: 0.0% 2320: 0.0% 0: 0.0% 60
cp/decl2.c:3012 (get_guard) 0: 0.0% 0: 0.0% 2448: 0.0% 0: 0.0% 17
cp/cp-gimplify.c:144 (genericize_catch_block) 2480: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 62
c-family/c-semantics.c:156 (build_real_imag_expr 1152: 0.0% 0: 0.0% 1344: 0.0% 0: 0.0% 78
tree.c:8227 (build_function_type_list_1) 1080: 0.0% 0: 0.0% 1440: 0.0% 0: 0.0% 63
cp/lex.c:194 (init_reswords) 0: 0.0% 0: 0.0% 2552: 0.0% 504: 0.0% 1
tree.c:2129 (build_case_label) 0: 0.0% 0: 0.0% 2632: 0.0% 0: 0.0% 47
cp/init.c:3320 (build_vec_delete_1) 1696: 0.0% 0: 0.0% 960: 0.0% 0: 0.0% 83
cp/decl.c:6142 (wrap_cleanups_r) 320: 0.0% 0: 0.0% 2360: 0.0% 0: 0.0% 67
fold-const.c:15843 (fold_indirect_ref_1) 2688: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 48
stor-layout.c:2565 (make_accum_type) 0: 0.0% 0: 0.0% 2688: 0.0% 0: 0.0% 16
cgraph.c:932 (cgraph_allocate_init_indirect_info 0: 0.0% 4048: 0.0% 2816: 0.0% 0: 0.0% 78
tree-iterator.c:65 (free_stmt_list) 2864: 0.0% 2424: 0.0% 0: 0.0% 0: 0.0% 44
gimple.c:807 (gimple_build_eh_dispatch) 96: 0.0% 0: 0.0% 2784: 0.0% 0: 0.0% 60
cp/friend.c:185 (add_friend) 0: 0.0% 0: 0.0% 2960: 0.0% 0: 0.0% 74
cp/class.c:5894 (create_vtable_ptr) 0: 0.0% 0: 0.0% 3040: 0.0% 0: 0.0% 20
varasm.c:2504 (assemble_external) 480: 0.0% 0: 0.0% 2600: 0.0% 0: 0.0% 77
cp/call.c:6878 (convert_for_arg_passing) 224: 0.0% 0: 0.0% 2880: 0.0% 0: 0.0% 97
cp/call.c:5848 (build_op_delete_call) 3120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 78
cp/init.c:2686 (build_new_1) 0: 0.0% 0: 0.0% 3120: 0.0% 0: 0.0% 78
config/i386/i386.md:6965 (gen_umuldi3_highpart) 3200: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 180
cp/init.c:3246 (build_vec_delete_1) 3096: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 90
gimplify.c:5418 (gimple_push_cleanup) 3264: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 68
cp/cvt.c:1015 (convert_to_void) 1880: 0.0% 0: 0.0% 1400: 0.0% 0: 0.0% 82
cp/init.c:2981 (build_new_1) 640: 0.0% 0: 0.0% 2640: 0.0% 0: 0.0% 82
cp/parser.c:1881 (cp_parser_context_new) 3216: 0.0% 0: 0.0% 72: 0.0% 0: 0.0% 137
fold-const.c:2424 (non_lvalue_loc) 1728: 0.0% 0: 0.0% 1632: 0.0% 0: 0.0% 105
cp/init.c:4128 (build_delete) 280: 0.0% 0: 0.0% 3080: 0.0% 0: 0.0% 84
stor-layout.c:2539 (make_fract_type) 0: 0.0% 0: 0.0% 3360: 0.0% 0: 0.0% 20
lra-eliminations.c:271 (form_sum) 3360: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 140
cp/cp-gimplify.c:132 (genericize_try_block) 3400: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 85
config/i386/i386.md:7028 (gen_divdf3) 3408: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 142
gimple.c:662 (gimple_build_catch) 3472: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 62
cp/tree.c:4089 (add_stmt_to_compound) 120: 0.0% 0: 0.0% 3360: 0.0% 0: 0.0% 87
config/i386/i386.md:9675 (gen_split_5370) 3552: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 148
config/i386/i386.md:9673 (gen_split_5370) 3552: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 148
config/i386/i386.md:17241 (gen_split_5744) 3520: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 168
config/i386/i386.md:6567 (gen_muldi3) 3584: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 168
expmed.c:4811 (expand_divmod) 3696: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 154
config/i386/i386.c:7440 (construct_container) 3904: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 244
cp/class.c:7588 (resolve_address_of_overloaded_f 3920: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 98
cp/pt.c:14827 (tsubst_copy_and_build) 3904: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 124
varasm.c:3287 (build_constant_desc) 0: 0.0% 0: 0.0% 3984: 0.0% 0: 0.0% 166
cp/decl.c:13990 (finish_destructor_body) 4000: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 100
tree.c:6778 (decl_debug_expr_insert) 32: 0.0% 0: 0.0% 4032: 0.0% 0: 0.0% 254
cp/method.c:737 (do_build_copy_assign) 48: 0.0% 0: 0.0% 4032: 0.0% 0: 0.0% 85
cp/method.c:745 (do_build_copy_assign) 0: 0.0% 0: 0.0% 4080: 0.0% 0: 0.0% 85
expr.c:8732 (expand_expr_real_2) 4080: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 170
cp/parser.c:6956 (cp_parser_parenthesized_expres 3960: 0.0% 720: 0.0% 144: 0.0% 0: 0.0% 56
emit-rtl.c:5855 (init_emit_regs) 0: 0.0% 0: 0.0% 4120: 0.0% 0: 0.0% 103
generic-match.c:1393 (generic_simplify) 1504: 0.0% 0: 0.0% 2720: 0.0% 0: 0.0% 132
cp/decl.c:3687 (record_builtin_type) 0: 0.0% 0: 0.0% 4256: 0.0% 0: 0.0% 28
gimplify.c:2667 (shortcut_cond_r) 4288: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 134
cp/init.c:4148 (build_delete) 480: 0.0% 0: 0.0% 3888: 0.0% 0: 0.0% 91
cp/name-lookup.c:649 (add_decl_to_level) 0: 0.0% 168: 0.0% 4520: 0.0% 0: 0.0% 4
optabs.c:6118 (build_libfunc_function) 0: 0.0% 0: 0.0% 4536: 0.0% 0: 0.0% 21
fold-const.c:15947 (build_fold_indirect_ref_loc) 4544: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 142
cp/typeck.c:8738 (check_return_expr) 0: 0.0% 0: 0.0% 4600: 0.0% 0: 0.0% 115
simplify-rtx.c:221 (simplify_gen_binary) 4608: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 192
explow.c:198 (plus_constant) 4768: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 298
config/i386/i386.md:3621 (gen_zero_extendqisi2) 4800: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 240
tree.c:3293 (save_expr) 640: 0.0% 0: 0.0% 4384: 0.0% 0: 0.0% 157
tree.c:9593 (make_vector_type) 1344: 0.0% 0: 0.0% 3696: 0.0% 0: 0.0% 30
fold-const.c:15908 (fold_indirect_ref_1) 5376: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 96
varasm.c:3331 (build_constant_desc) 0: 0.0% 0: 0.0% 5415: 0.0% 103: 0.0% 332
gimplify.c:5415 (gimple_push_cleanup) 0: 0.0% 0: 0.0% 5440: 0.0% 0: 0.0% 68
gimplify.c:5416 (gimple_push_cleanup) 0: 0.0% 0: 0.0% 5440: 0.0% 0: 0.0% 68
cp/friend.c:417 (make_friend_class) 0: 0.0% 0: 0.0% 5480: 0.0% 0: 0.0% 137
cp/decl.c:3312 (finish_case_label) 0: 0.0% 0: 0.0% 5504: 0.0% 0: 0.0% 43
convert.c:896 (convert_to_integer) 2400: 0.0% 0: 0.0% 3232: 0.0% 0: 0.0% 176
emit-rtl.c:910 (gen_rtx_SUBREG) 5904: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 246
cp/name-lookup.c:1606 (begin_scope) 0: 0.0% 176: 0.0% 5944: 0.0% 0: 0.0% 25
cp/init.c:652 (perform_member_init) 6000: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 150
cp/class.c:6603 (finish_struct_1) 80: 0.0% 0: 0.0% 5920: 0.0% 0: 0.0% 150
cp/decl.c:8259 (build_ptrmemfunc_type) 0: 0.0% 0: 0.0% 6232: 0.0% 0: 0.0% 41
cp/decl.c:8255 (build_ptrmemfunc_type) 0: 0.0% 0: 0.0% 6232: 0.0% 0: 0.0% 41
cp/call.c:9427 (perform_implicit_conversion_flag 6368: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 199
cp/pt.c:2027 (determine_specialization) 6400: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 160
config/i386/i386.md:6510 (gen_adddf3) 6432: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 268
cp/init.c:3319 (build_vec_delete_1) 4136: 0.0% 0: 0.0% 2552: 0.0% 0: 0.0% 152
cp/pt.c:17282 (try_one_overload) 6712: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 181
fold-const.c:4538 (build_range_check) 6720: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 168
cp/cp-gimplify.c:156 (build_gimple_eh_filter_tre 6720: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 168
cp/cp-gimplify.c:159 (build_gimple_eh_filter_tre 6720: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 168
cp/call.c:4144 (build_operator_new_call) 6720: 0.0% 1760: 0.0% 40: 0.0% 0: 0.0% 213
cp/rtti.c:951 (tinfo_base_init) 6840: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 95
cp/rtti.c:1048 (class_initializer) 6840: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 95
cp/pt.c:16367 (fn_type_unification) 6880: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 172
cp/decl.c:8250 (build_ptrmemfunc_type) 0: 0.0% 0: 0.0% 6888: 0.0% 0: 0.0% 41
cp/typeck.c:6313 (cp_build_compound_expr) 6800: 0.0% 0: 0.0% 120: 0.0% 0: 0.0% 173
simplify-rtx.c:4372 (simplify_plus_minus) 6960: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 290
cp/friend.c:411 (make_friend_class) 0: 0.0% 0: 0.0% 7040: 0.0% 0: 0.0% 176
cp/pt.c:15036 (tsubst_copy_and_build) 7128: 0.0% 720: 0.0% 0: 0.0% 0: 0.0% 102
cp/typeck.c:5168 (pointer_diff) 1560: 0.0% 0: 0.0% 5600: 0.0% 0: 0.0% 179
alias.c:1079 (unique_base_value) 7248: 0.0% 0: 0.0% 64: 0.0% 0: 0.0% 457
config/i386/i386.md:6522 (gen_subdf3) 7440: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 310
ipa-devirt.c:2023 (get_odr_type) 0: 0.0% 0: 0.0% 7584: 0.0% 0: 0.0% 158
cp/call.c:413 (build_call_a) 1008: 0.0% 0: 0.0% 6576: 0.0% 0: 0.0% 316
cp/typeck.c:7690 (build_x_modify_expr) 7640: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 191
expr.c:4080 (emit_single_push_insn_1) 7680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 320
expr.c:4074 (emit_single_push_insn_1) 7680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 320
convert.c:584 (convert_to_integer) 1952: 0.0% 0: 0.0% 5728: 0.0% 0: 0.0% 240
config/i386/i386.c:27797 (ix86_get_builtin_func_ 560: 0.0% 0: 0.0% 7200: 0.0% 0: 0.0% 194
cp/pt.c:17014 (resolve_overloaded_unification) 7888: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 212
cp/class.c:8898 (dfs_accumulate_vtbl_inits) 0: 0.0% 0: 0.0% 7968: 0.0% 0: 0.0% 249
config/i386/i386.md:6552 (gen_mulsi3) 8000: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 375
stor-layout.c:2132 (finish_builtin_struct) 0: 0.0% 0: 0.0% 8208: 0.0% 0: 0.0% 54
tree.c:675 (init_ttree) 0: 0.0% 0: 0.0% 8216: 0.0% 24: 0.0% 1
tree.c:672 (init_ttree) 0: 0.0% 0: 0.0% 8216: 0.0% 24: 0.0% 1
varasm.c:6073 (init_varasm_once) 0: 0.0% 0: 0.0% 8216: 0.0% 24: 0.0% 1
cp/cp-objcp-common.c:224 (init_shadowed_var_for_ 0: 0.0% 0: 0.0% 8216: 0.0% 24: 0.0% 1
expmed.c:3029 (expand_mult_const) 8232: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 343
fold-const.c:3572 (invert_truthvalue_loc) 6368: 0.0% 0: 0.0% 2016: 0.0% 0: 0.0% 262
cp/typeck2.c:1714 (build_x_arrow) 8400: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 210
fold-const.c:10652 (fold_binary_loc) 6160: 0.0% 0: 0.0% 2360: 0.0% 0: 0.0% 213
fold-const.c:8639 (maybe_canonicalize_comparison 7760: 0.0% 0: 0.0% 840: 0.0% 0: 0.0% 215
cp/parser.c:25495 (cp_parser_cache_defarg) 8920: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 223
expmed.c:3246 (expand_mult) 8928: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 372
cp/init.c:3097 (build_new) 5280: 0.0% 0: 0.0% 3776: 0.0% 0: 0.0% 283
gimplify.c:2837 (shortcut_cond_expr) 9376: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 293
gimple.c:678 (gimple_build_eh_filter) 9408: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 168
cp/decl2.c:834 (finish_static_data_member_decl) 0: 0.0% 6616: 0.0% 9608: 0.0% 0: 0.0% 9
emit-rtl.c:522 (const_double_from_real_value) 8240: 0.0% 0: 0.0% 1440: 0.0% 0: 0.0% 242
gimplify.c:2844 (shortcut_cond_expr) 9920: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 310
cp/init.c:703 (perform_member_init) 9960: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 249
cp/cvt.c:243 (cp_convert_to_pointer) 10016: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 313
cp/init.c:2905 (build_new_1) 2120: 0.0% 0: 0.0% 7920: 0.0% 0: 0.0% 251
cp/init.c:2977 (build_new_1) 2120: 0.0% 0: 0.0% 7920: 0.0% 0: 0.0% 251
cp/init.c:2955 (build_new_1) 2120: 0.0% 0: 0.0% 7920: 0.0% 0: 0.0% 251
cp/class.c:3648 (check_field_decls) 10080: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 252
cp/method.c:141 (make_thunk) 0: 0.0% 0: 0.0% 10368: 0.0% 0: 0.0% 48
cp/method.c:636 (do_build_copy_constructor) 10600: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 265
cp/method.c:634 (do_build_copy_constructor) 10600: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 265
explow.c:171 (plus_constant) 10608: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 444
cp/class.c:1298 (alter_access) 0: 0.0% 0: 0.0% 11000: 0.0% 0: 0.0% 275
cp/class.c:1244 (add_method) 0: 0.0% 568: 0.0% 11528: 0.0% 0: 0.0% 99
gimplify.c:2177 (gimplify_self_mod_expr) 12240: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 306
gimplify.c:7939 (gimplify_expr) 12336: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 257
cp/init.c:2138 (build_raw_new_expr) 0: 0.0% 0: 0.0% 12584: 0.0% 0: 0.0% 227
cp/call.c:414 (build_call_a) 1680: 0.0% 0: 0.0% 10960: 0.0% 0: 0.0% 316
cp/method.c:629 (do_build_copy_constructor) 12720: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 265
config/i386/i386.md:7004 (gen_muldf3) 12960: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 540
cp/typeck.c:5898 (cp_build_unary_op) 8640: 0.0% 0: 0.0% 4720: 0.0% 0: 0.0% 334
cp/class.c:689 (build_vfield_ref) 10992: 0.0% 0: 0.0% 2400: 0.0% 0: 0.0% 279
cp/typeck.c:5919 (cp_build_unary_op) 12768: 0.0% 0: 0.0% 736: 0.0% 0: 0.0% 422
config/i386/i386.c:20555 (ix86_expand_setcc) 13536: 0.0% 0: 0.0% 48: 0.0% 0: 0.0% 566
expmed.c:5172 (emit_cstore) 13632: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 568
tree.c:1881 (build_real) 5880: 0.0% 0: 0.0% 8136: 0.0% 0: 0.0% 584
cp/typeck2.c:1460 (process_init_constructor_reco 0: 0.0% 0: 0.0% 14256: 0.0% 0: 0.0% 198
tree.c:6805 (decl_value_expr_insert) 13872: 0.0% 0: 0.0% 704: 0.0% 0: 0.0% 911
cp/decl.c:5503 (reshape_init_class) 14616: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 203
cp/call.c:5100 (build_conditional_expr_1) 7008: 0.0% 0: 0.0% 7824: 0.0% 0: 0.0% 309
hash-table.h:914 (expand) 0: 0.0% 536: 0.0% 15456: 0.0% 120: 0.0% 5
cp/init.c:1677 (expand_default_init) 15680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 392
cp/call.c:7425 (build_over_call) 15960: 0.0% 0: 0.0% 200: 0.0% 0: 0.0% 404
fold-const.c:12306 (fold_binary_loc) 16160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 505
alias.c:2858 (init_alias_analysis) 0: 0.0% 15360: 0.0% 16384: 0.0% 0: 0.0% 5
tree.c:677 (init_ttree) 0: 0.0% 0: 0.0% 16456: 0.0% 72: 0.0% 1
gimplify.c:3070 (gimplify_cond_expr) 16680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 417
gimplify.c:3066 (gimplify_cond_expr) 16680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 417
expmed.c:3078 (expand_mult_const) 16848: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 702
cp/name-lookup.c:3844 (push_decl_namespace) 17040: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 427
cp/init.c:2134 (build_raw_new_expr) 0: 0.0% 0: 0.0% 17320: 0.0% 0: 0.0% 433
cp/class.c:9465 (build_rtti_vtbl_entries) 17928: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 249
tree.c:1882 (build_real) 7840: 0.0% 0: 0.0% 10848: 0.0% 0: 0.0% 584
cp/pt.c:9242 (instantiate_class_template_1) 18760: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 469
cp/cp-gimplify.c:244 (genericize_cp_loop) 3648: 0.0% 0: 0.0% 15168: 0.0% 0: 0.0% 392
cp/class.c:9385 (add_vcall_offset) 0: 0.0% 4872: 0.0% 18936: 0.0% 288: 0.0% 224
cp/init.c:891 (sort_mem_initializers) 19120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 478
cp/class.c:498 (build_base_path) 4128: 0.0% 0: 0.0% 16384: 0.0% 0: 0.0% 641
cp/parser.c:22316 (cp_parser_gnu_attribute_list) 9800: 0.0% 0: 0.0% 11680: 0.0% 0: 0.0% 537
cp/pt.c:7457 (lookup_template_function) 18120: 0.0% 0: 0.0% 4480: 0.0% 0: 0.0% 565
tree.c:1510 (wide_int_to_tree) 10056: 0.0% 0: 0.0% 13008: 0.0% 0: 0.0% 961
attribs.c:627 (decl_attributes) 12880: 0.0% 0: 0.0% 10200: 0.0% 0: 0.0% 577
cp/typeck.c:7477 (cp_build_modify_expr) 23584: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 737
varasm.c:3296 (build_constant_desc) 0: 0.0% 0: 0.0% 23904: 0.0% 0: 0.0% 166
fold-const.c:9934 (fold_binary_loc) 15680: 0.0% 0: 0.0% 8560: 0.0% 0: 0.0% 606
cp/class.c:3949 (record_subobject_offset) 24680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 617
cp/semantics.c:3050 (finish_base_specifier) 24760: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 619
tree-inline.c:1212 (copy_tree_body_r) 32: 0.0% 0: 0.0% 24800: 0.0% 0: 0.0% 776
cp/class.c:5856 (create_vtable_ptr) 18400: 0.0% 0: 0.0% 6760: 0.0% 0: 0.0% 629
cp/pt.c:448 (push_inline_template_parms_recursiv 19600: 0.0% 0: 0.0% 5600: 0.0% 0: 0.0% 225
fold-const.c:792 (negate_expr) 25600: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 800
cp/parser.c:22292 (cp_parser_gnu_attribute_list) 25920: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 648
tree.c:8297 (build_function_type_array_1) 4080: 0.0% 0: 0.0% 21880: 0.0% 0: 0.0% 649
fold-const.c:13465 (fold_ternary_loc) 5952: 0.0% 0: 0.0% 20352: 0.0% 0: 0.0% 548
cp/method.c:1798 (implicitly_declare_fn) 40: 0.0% 0: 0.0% 26360: 0.0% 0: 0.0% 660
emit-rtl.c:489 (gen_rtx_CONST_INT) 24736: 0.0% 0: 0.0% 1744: 0.0% 0: 0.0% 1655
cp/init.c:3343 (create_temporary_var) 0: 0.0% 0: 0.0% 26640: 0.0% 0: 0.0% 185
gimplify.c:2183 (gimplify_self_mod_expr) 26640: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 666
fold-const.c:9940 (fold_binary_loc) 16440: 0.0% 0: 0.0% 10600: 0.0% 0: 0.0% 676
cp/pt.c:7225 (coerce_innermost_template_parms) 21320: 0.0% 0: 0.0% 6920: 0.0% 0: 0.0% 706
fold-const.c:6203 (extract_muldiv_1) 29120: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 728
cp/class.c:2445 (dfs_find_final_overrider_1) 29360: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 734
cp/semantics.c:524 (begin_maybe_infinite_loop) 0: 0.0% 480: 0.0% 29704: 0.0% 0: 0.0% 745
cp/pt.c:19033 (get_bindings) 29824: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 794
cp/cp-gimplify.c:242 (genericize_cp_loop) 6400: 0.0% 0: 0.0% 23616: 0.0% 0: 0.0% 938
cp/pt.c:18707 (more_specialized_fn) 30176: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 698
jump.c:1486 (redirect_target) 30144: 0.0% 0: 0.0% 32: 0.0% 0: 0.0% 1886
cp/cp-gimplify.c:269 (genericize_cp_loop) 6400: 0.0% 0: 0.0% 23776: 0.0% 0: 0.0% 943
cp/typeck.c:214 (commonparms) 29760: 0.0% 0: 0.0% 440: 0.0% 0: 0.0% 755
cp/cp-gimplify.c:104 (finish_bc_block) 6400: 0.0% 0: 0.0% 23808: 0.0% 0: 0.0% 944
cp/parser.c:19306 (cp_parser_initializer) 3360: 0.0% 0: 0.0% 27960: 0.0% 0: 0.0% 783
gimplify.c:2661 (shortcut_cond_r) 31392: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 654
config/i386/i386.md:12028 (gen_memory_blockage) 31536: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3942
cp/pt.c:18708 (more_specialized_fn) 32264: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 698
cp/pt.c:16252 (fn_type_unification) 33160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 829
config/i386/i386.md:3717 (gen_extendsidi2) 33160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1658
cp/decl.c:13946 (begin_destructor_body) 32560: 0.0% 0: 0.0% 2400: 0.0% 0: 0.0% 874
generic-match.c:1471 (generic_simplify) 11136: 0.0% 0: 0.0% 24032: 0.0% 0: 0.0% 1099
cp/name-lookup.c:192 (binding_table_new) 0: 0.0% 0: 0.0% 35856: 0.0% 0: 0.0% 1494
gimplify.c:1600 (build_and_jump) 36000: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1125
fold-const.c:1791 (size_binop_loc) 37280: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 932
cp/typeck.c:3161 (cp_build_array_ref) 18480: 0.0% 0: 0.0% 19376: 0.0% 0: 0.0% 676
gimplify.c:2194 (gimplify_self_mod_expr) 39560: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 989
gimple.c:1566 (gimple_set_bb) 0: 0.0% 22808: 0.0% 40200: 0.0% 0: 0.0% 135
emit-rtl.c:2987 (copy_rtx_if_shared_1) 40656: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1694
cp/decl.c:12533 (xref_basetypes) 0: 0.0% 0: 0.0% 42040: 0.0% 0: 0.0% 1051
cfgrtl.c:394 (rtl_create_basic_block) 42392: 0.0% 432: 0.0% 0: 0.0% 1536: 0.0% 122
cp/name-lookup.c:5300 (arg_assoc_namespace) 43200: 0.0% 10800: 0.0% 0: 0.0% 0: 0.0% 750
fold-const.c:7287 (fold_plusminus_mult_expr) 42400: 0.0% 0: 0.0% 1280: 0.0% 0: 0.0% 1092
cp/pt.c:4375 (process_partial_specialization) 0: 0.0% 0: 0.0% 47320: 0.0% 0: 0.0% 1183
cp/class.c:9145 (build_vtbl_initializer) 0: 0.0% 19920: 0.0% 47464: 0.0% 1120: 0.0% 415
cp/class.c:4418 (build_base_field) 0: 0.0% 0: 0.0% 47576: 0.0% 0: 0.0% 313
cp/tree.c:735 (rvalue) 27968: 0.0% 0: 0.0% 20832: 0.0% 0: 0.0% 1525
cp/decl.c:733 (poplevel) 49240: 0.0% 0: 0.0% 40: 0.0% 0: 0.0% 1232
dwarf2out.c:1006 (dwarf2out_do_cfi_startproc) 49368: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2057
fold-const.c:3433 (fold_truth_not_expr) 32080: 0.0% 0: 0.0% 18400: 0.0% 0: 0.0% 1262
tree.c:4599 (build_nt) 43008: 0.0% 0: 0.0% 9600: 0.0% 0: 0.0% 1431
expr.c:4991 (expand_assignment) 52776: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2199
gimplify.c:1045 (voidify_wrapper_expr) 54680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1367
convert.c:625 (convert_to_integer) 17696: 0.0% 0: 0.0% 38112: 0.0% 0: 0.0% 1744
cp/semantics.c:3974 (simplify_aggr_init_expr) 13920: 0.0% 0: 0.0% 44704: 0.0% 0: 0.0% 1832
cp/decl.c:13026 (finish_enum_value_list) 0: 0.0% 0: 0.0% 59592: 0.0% 0: 0.0% 2483
cp/typeck.c:5900 (cp_build_unary_op) 32640: 0.0% 0: 0.0% 28800: 0.0% 0: 0.0% 1536
fold-const.c:16283 (fold_build_pointer_plus_loc) 29240: 0.0% 0: 0.0% 33880: 0.0% 0: 0.0% 1578
tree-phinodes.c:249 (release_phi_node) 71680: 0.0% 70720: 0.0% 0: 0.0% 0: 0.0% 51
cp/name-lookup.c:116 (binding_entry_make) 0: 0.0% 0: 0.0% 73368: 0.0% 0: 0.0% 3057
gimplify.c:5508 (gimplify_target_expr) 75280: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 1882
tree.c:10574 (build_empty_stmt) 17408: 0.0% 0: 0.0% 59712: 0.0% 0: 0.0% 2410
tree-inline.c:5063 (remap_save_expr) 336: 0.0% 0: 0.0% 77360: 0.0% 0: 0.0% 1396
except.c:494 (gen_eh_landing_pad) 2032: 0.0% 28768: 0.0% 76248: 0.0% 0: 0.0% 1012
cp/cp-gimplify.c:203 (genericize_if_stmt) 12000: 0.0% 0: 0.0% 67392: 0.0% 0: 0.0% 1654
cp/typeck2.c:763 (split_nonconstant_init) 20400: 0.0% 0: 0.0% 61120: 0.0% 0: 0.0% 2038
emit-rtl.c:5169 (emit_use) 82160: 0.0% 0: 0.0% 16: 0.0% 0: 0.0% 5136
optabs.c:4193 (prepare_cmp_insn) 83976: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3499
config/i386/i386.c:20392 (ix86_expand_branch) 83880: 0.0% 0: 0.0% 96: 0.0% 0: 0.0% 3499
cp/parser.c:12799 (cp_parser_mem_initializer) 10480: 0.0% 0: 0.0% 77720: 0.0% 0: 0.0% 2205
cp/pt.c:419 (push_inline_template_parms_recursiv 93960: 0.0% 0: 0.0% 360: 0.0% 0: 0.0% 2358
cp/decl.c:4174 (cxx_builtin_function) 0: 0.0% 0: 0.0% 94608: 0.0% 0: 0.0% 438
config/i386/i386.c:19831 (ix86_expand_int_compar 96336: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 4020
config/i386/i386.c:19836 (ix86_expand_int_compar 96336: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 4020
config/i386/i386.c:19832 (ix86_expand_int_compar 96336: 0.0% 0: 0.0% 144: 0.0% 0: 0.0% 4020
tree.c:1939 (build_string) 6459: 0.0% 0: 0.0% 90863: 0.0% 8178: 0.1% 1729
cp/class.c:8975 (build_vtbl_initializer) 97608: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 249
cp/semantics.c:3982 (simplify_aggr_init_expr) 97800: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2445
fold-const.c:2229 (fold_convert_loc) 52096: 0.0% 0: 0.0% 48832: 0.0% 0: 0.0% 3154
cp/parser.c:12788 (cp_parser_mem_initializer) 10720: 0.0% 0: 0.0% 91280: 0.0% 0: 0.0% 2550
cp/method.c:859 (build_stub_object) 102464: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3202
cp/search.c:2460 (lookup_conversions_r) 102680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2567
cp/mangle.c:1164 (write_template_prefix) 103160: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2579
cp/parser.c:1299 (cp_token_cache_new) 102960: 0.0% 0: 0.0% 288: 0.0% 0: 0.0% 6453
cp/search.c:2445 (lookup_conversions_r) 103520: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2588
tree-ssanames.c:168 (make_ssa_name_fn) 0: 0.0% 155648: 0.1% 104448: 0.0% 0: 0.0% 86
cp/typeck.c:4827 (cp_build_binary_op) 105520: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2638
cp/call.c:5252 (add_candidates) 106360: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 2659
emit-rtl.c:460 (gen_rtx_INSN_LIST) 108360: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4515
config/i386/i386.c:11903 (ix86_emit_restore_reg_ 112320: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 4680
cp/pt.c:3963 (template_parms_to_args) 74600: 0.0% 0: 0.0% 41000: 0.0% 0: 0.0% 2890
cp/typeck.c:7669 (cp_build_modify_expr) 58240: 0.0% 0: 0.0% 58040: 0.0% 0: 0.0% 2907
cp/name-lookup.c:5483 (arg_assoc_class) 119288: 0.0% 53784: 0.0% 0: 0.0% 0: 0.0% 1482
cp/semantics.c:269 (pop_to_parent_deferring_acce 105336: 0.0% 0: 0.0% 14440: 0.0% 6304: 0.0% 788
cp/name-lookup.c:158 (binding_table_construct) 13184: 0.0% 0: 0.0% 108800: 0.0% 0: 0.0% 1698
except.c:2463 (add_call_site) 122568: 0.0% 45480: 0.0% 0: 0.0% 0: 0.0% 2902
cp/init.c:131 (initialize_vtbl_ptrs) 122680: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3067
cp/decl.c:13246 (build_enumerator) 0: 0.0% 0: 0.0% 124120: 0.0% 0: 0.0% 3103
function.c:350 (add_frame_space) 124872: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 5203
hash-table.h:914 (expand) 0: 0.0% 5152: 0.0% 125096: 0.0% 200: 0.0% 7
gimplify.c:1181 (gimplify_bind_expr) 5760: 0.0% 0: 0.0% 119920: 0.0% 0: 0.0% 1571
cp/tree.c:1669 (copy_binfo) 0: 0.0% 0: 0.0% 127896: 0.0% 0: 0.0% 1313
varpool.c:159 (create_empty) 0: 0.0% 0: 0.0% 129920: 0.0% 0: 0.0% 1015
cfgloop.c:297 (establish_preds) 91120: 0.0% 38520: 0.0% 39440: 0.0% 0: 0.0% 4227
cp/parser.c:13472 (cp_parser_template_parameter) 131800: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3295
cp/pt.c:20654 (tsubst_initializer_list) 133960: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3349
attribs.c:602 (decl_attributes) 2960: 0.0% 0: 0.0% 132600: 0.0% 0: 0.0% 3389
cp/pt.c:19362 (most_specialized_partial_spec) 141360: 0.0% 0: 0.0% 0: 0.0% 0: 0.0% 3534
hash-map.h:123 (create_ggc) 4320: 0.0% 0: 0.0% 139632: 0.0% 0: 0.0% 2999
optabs.c:288 (add_equal_note) 144840: 0.0% 0: 0.0% 192: 0.0% 0: 0.0% 6043
hash-table.h:914 (expand) 0: 0.0% 114328: 0.0% 147552: 0.0% 248: 0.0% 9
except.c:2504 (convert_to_eh_region_ranges) 148104: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 2057
cp/parser.c:23919 (cp_parser_functional_cast) 3840: 0.0% 0: 0.0% 144480: 0.0% 0: 0.0% 3708
cp/pt.c:7407 (add_pending_template) 116224: 0.0% 0: 0.0% 32288: 0.0% 0: 0.0% 9282
cp/class.c:4589 (build_clone) 0: 0.0% 0: 0.0% 153792: 0.0% 0: 0.0% 4806
cp/class.c:6543 (sorted_fields_type_new) 0: 0.0% 0: 0.0% 155592: 0.0% 9672: 0.1% 1064
except.c:2459 (add_call_site) 157168: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 9823
symtab.c:1346 (set_section_for_node) 0: 0.0% 0: 0.0% 159120: 0.0% 0: 0.0% 9945
cp/init.c:851 (build_field_list) 161480: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 4037
config/i386/i386.c:20391 (ix86_expand_branch) 167776: 0.1% 0: 0.0% 176: 0.0% 0: 0.0% 6998
cp/pt.c:22013 (build_non_dependent_expr) 171008: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 5344
cp/typeck2.c:305 (abstract_virtuals_error_sfinae 76192: 0.0% 0: 0.0% 98240: 0.0% 0: 0.0% 5451
gimplify.c:5505 (gimplify_target_expr) 176360: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 4409
cp/decl.c:10888 (grokdeclarator) 0: 0.0% 0: 0.0% 178296: 0.1% 0: 0.0% 1173
config/i386/i386.md:12038 (gen_memory_blockage) 189216: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 7884
optabs.c:4024 (can_compare_p) 194568: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 8107
except.c:411 (gen_eh_region) 5360: 0.0% 89480: 0.0% 190384: 0.1% 0: 0.0% 2488
cp/tree.c:2696 (build_min_non_dep) 47312: 0.0% 0: 0.0% 148824: 0.0% 0: 0.0% 4758
cfgexpand.c:3295 (expand_gimple_stmt_1) 204760: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 5119
cp/call.c:5388 (build_new_op_1) 206200: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 5155
function.c:2372 (assign_parms_augmented_arg_list 211200: 0.1% 0: 0.0% 512: 0.0% 0: 0.0% 1654
gimple.c:742 (gimple_build_wce) 212208: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 4421
dwarf2out.c:1038 (dwarf2out_alloc_current_fde) 0: 0.0% 48992: 0.0% 212992: 0.1% 0: 0.0% 13
hash-table.h:914 (expand) 49968: 0.0% 95600: 0.0% 165680: 0.0% 6608: 0.0% 181
tree-cfg.c:622 (create_bb) 2264: 0.0% 103864: 0.0% 213552: 0.1% 36352: 0.2% 670
cp/cp-gimplify.c:1046 (cp_genericize_r) 184280: 0.1% 0: 0.0% 42120: 0.0% 0: 0.0% 5660
cp/class.c:1246 (add_method) 0: 0.0% 128400: 0.0% 239760: 0.1% 0: 0.0% 1495
tree.c:7898 (build_range_type_1) 208656: 0.1% 0: 0.0% 32424: 0.0% 0: 0.0% 1435
cp/typeck.c:8746 (check_return_expr) 8320: 0.0% 0: 0.0% 233080: 0.1% 0: 0.0% 6035
tree-inline.c:5029 (copy_tree_r) 13920: 0.0% 0: 0.0% 228288: 0.1% 0: 0.0% 10092
cp/pt.c:3851 (end_template_parm_list) 39800: 0.0% 0: 0.0% 203280: 0.1% 0: 0.0% 6077
cp/pt.c:538 (add_to_template_args) 244096: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 6100
tree.c:1242 (build_new_int_cst) 19008: 0.0% 0: 0.0% 229128: 0.1% 0: 0.0% 10073
cp/decl2.c:807 (note_vague_linkage_fn) 0: 0.0% 2912: 0.0% 259072: 0.1% 0: 0.0% 13
tree.c:8021 (build_array_type_1) 227640: 0.1% 0: 0.0% 33936: 0.0% 0: 0.0% 1557
cp/decl.c:13725 (start_preparsed_function) 84960: 0.0% 0: 0.0% 178200: 0.1% 0: 0.0% 6579
cp/name-lookup.c:310 (cxx_binding_make) 41480: 0.0% 0: 0.0% 226120: 0.1% 0: 0.0% 6690
c-family/c-common.c:12030 (make_tree_vector) 267920: 0.1% 64520: 0.0% 80: 0.0% 0: 0.0% 8313
cp/pt.c:3847 (end_template_parm_list) 39792: 0.0% 0: 0.0% 231640: 0.1% 16: 0.0% 6077
cp/pt.c:15315 (tsubst_copy_and_build) 273680: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 6842
function.c:632 (temp_slots_at_level) 273776: 0.1% 79240: 0.0% 64: 0.0% 0: 0.0% 13767
cp/class.c:578 (build_simple_base_path) 97728: 0.0% 0: 0.0% 176592: 0.1% 0: 0.0% 5715
cp/typeck.c:5030 (cp_build_binary_op) 158800: 0.1% 0: 0.0% 120560: 0.0% 0: 0.0% 6984
gimple.c:497 (gimple_build_cond) 13360: 0.0% 0: 0.0% 272240: 0.1% 0: 0.0% 3570
cp/tree.c:416 (build_aggr_init_array) 59512: 0.0% 0: 0.0% 226648: 0.1% 0: 0.0% 4423
cp/pt.c:10318 (tsubst_template_parms) 2320: 0.0% 0: 0.0% 284800: 0.1% 0: 0.0% 7178
except.c:894 (assign_filter_values) 290592: 0.1% 0: 0.0% 144: 0.0% 0: 0.0% 4038
cp/pt.c:10296 (tsubst_template_parms) 2712: 0.0% 0: 0.0% 295312: 0.1% 0: 0.0% 7178
cp/decl.c:10351 (grokdeclarator) 0: 0.0% 0: 0.0% 301264: 0.1% 0: 0.0% 1982
cfgloop.c:430 (flow_loops_find) 0: 0.0% 4928: 0.0% 309600: 0.1% 0: 0.0% 9829
tree-inline.c:712 (remap_block) 0: 0.0% 0: 0.0% 310024: 0.1% 0: 0.0% 3523
varasm.c:1499 (make_decl_rtl) 0: 0.0% 0: 0.0% 310776: 0.1% 0: 0.0% 12949
varasm.c:3698 (create_constant_pool) 313696: 0.1% 0: 0.0% 96: 0.0% 0: 0.0% 9806
c-family/c-gimplify.c:232 (c_build_bind_expr) 163008: 0.1% 0: 0.0% 152784: 0.0% 0: 0.0% 6579
varasm.c:316 (get_section) 0: 0.0% 0: 0.0% 318752: 0.1% 0: 0.0% 9961
config/i386/i386.c:9934 (gen_pop) 323000: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 16150
cp/class.c:1033 (add_method) 0: 0.0% 66168: 0.0% 334152: 0.1% 0: 0.0% 5560
cp/parser.c:5608 (cp_parser_nested_name_specifie 164280: 0.1% 0: 0.0% 173736: 0.1% 0: 0.0% 14084
cfgloop.c:348 (alloc_loop) 0: 0.0% 5088: 0.0% 340288: 0.1% 0: 0.0% 10793
cp/pt.c:7998 (lookup_template_class_1) 0: 0.0% 0: 0.0% 340872: 0.1% 0: 0.0% 14203
expmed.c:5108 (make_tree) 347184: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 2411
cp/decl.c:13230 (build_enumerator) 0: 0.0% 0: 0.0% 347536: 0.1% 0: 0.0% 3103
config/i386/i386.c:25565 (ix86_expand_call) 349008: 0.1% 0: 0.0% 432: 0.0% 0: 0.0% 14560
tree-eh.c:2077 (lower_eh_constructs_2) 5280: 0.0% 0: 0.0% 345840: 0.1% 0: 0.0% 4389
except.c:487 (gen_eh_landing_pad) 10120: 0.0% 0: 0.0% 342120: 0.1% 0: 0.0% 8806
cp/pt.c:3787 (process_template_parm) 9184: 0.0% 0: 0.0% 359856: 0.1% 0: 0.0% 3295
tree.c:1771 (build_constructor) 108912: 0.0% 0: 0.0% 267024: 0.1% 0: 0.0% 15664
langhooks.c:578 (add_builtin_function_common) 0: 0.0% 0: 0.0% 381240: 0.1% 0: 0.0% 1765
cfgloop.c:366 (init_loops_structure) 0: 0.0% 6680: 0.0% 386480: 0.1% 0: 0.0% 9829
cp/tree.c:2661 (build_min) 8224: 0.0% 0: 0.0% 393448: 0.1% 0: 0.0% 10031
gimple.c:691 (gimple_build_eh_must_not_throw) 419808: 0.1% 0: 0.0% 0: 0.0% 0: 0.0% 8746
gimple.c:756 (gimple_build_resx) 18480: 0.0% 0: 0.0% 404208: 0.1% 0: 0.0% 8806
cp/class.c:6429 (layout_class_type) 0: 0.0% 0: 0.0% 424384: 0.1% 0: 0.0% 2792
cp/tree.c:355 (build_target_expr) 119000: 0.0% 0: 0.0% 311304: 0.1% 0: 0.0% 7684
config/i386/i386.c:18008 (ix86_expand_binary_ope 450240: 0.2% 0: 0.0% 288: 0.0% 0: 0.0% 28158
config/i386/i386.c:18007 (ix86_expand_binary_ope 450240: 0.2% 0: 0.0% 288: 0.0% 0: 0.0% 28158
hash-table.h:599 (create_ggc) 470544: 0.2% 0: 0.0% 288: 0.0% 0: 0.0% 9809
hash-table.h:599 (create_ggc) 68496: 0.0% 0: 0.0% 403296: 0.1% 0: 0.0% 9829
config/i386/i386.md:5519 (gen_split_5165) 479784: 0.2% 0: 0.0% 24: 0.0% 0: 0.0% 19992
config/i386/i386.md:5521 (gen_split_5165) 479784: 0.2% 0: 0.0% 24: 0.0% 0: 0.0% 19992
dwarf2cfi.c:2266 (add_cfis_to_fde) 0: 0.0% 112168: 0.0% 482096: 0.1% 0: 0.0% 12597
cp/pt.c:22340 (append_type_to_template_for_acces 0: 0.0% 63640: 0.0% 485904: 0.1% 6448: 0.0% 4525
tree-inline.c:5382 (copy_decl_no_change) 23440: 0.0% 0: 0.0% 464848: 0.1% 0: 0.0% 3517
config/i386/i386.c:15382 (ix86_print_operand) 490272: 0.2% 0: 0.0% 0: 0.0% 0: 0.0% 20428
cp/parser.c:13570 (cp_parser_type_parameter) 495640: 0.2% 0: 0.0% 0: 0.0% 0: 0.0% 12391
cp/semantics.c:2721 (finish_template_type_parm) 495960: 0.2% 0: 0.0% 0: 0.0% 0: 0.0% 12399
symtab.c:511 (create_reference) 0: 0.0% 577472: 0.2% 498360: 0.1% 7912: 0.1% 15231
cp/cvt.c:1433 (convert_to_void) 202336: 0.1% 0: 0.0% 304256: 0.1% 0: 0.0% 15831
cp/typeck.c:2459 (build_class_member_access_expr 508896: 0.2% 0: 0.0% 0: 0.0% 0: 0.0% 10602
config/i386/i386.c:9920 (gen_push) 532680: 0.2% 0: 0.0% 40: 0.0% 0: 0.0% 26636
cp/decl.c:3424 (build_typename_type) 0: 0.0% 0: 0.0% 544768: 0.2% 0: 0.0% 3584
cp/decl.c:8150 (grokvardecl) 0: 0.0% 1728: 0.0% 544896: 0.2% 0: 0.0% 3796
cp/semantics.c:1387 (begin_compound_stmt) 44496: 0.0% 0: 0.0% 519408: 0.2% 0: 0.0% 11748
emit-rtl.c:5101 (emit_barrier) 564096: 0.2% 0: 0.0% 128: 0.0% 0: 0.0% 8816
cp/pt.c:8006 (lookup_template_class_1) 0: 0.0% 0: 0.0% 568120: 0.2% 0: 0.0% 14203
emit-rtl.c:1074 (gen_reg_rtx) 572000: 0.2% 78000: 0.0% 0: 0.0% 138000: 0.9% 108
insn-emit.c:1642 (gen_leave_rex64) 572992: 0.2% 0: 0.0% 112: 0.0% 0: 0.0% 30702
except.c:890 (assign_filter_values) 581184: 0.2% 0: 0.0% 288: 0.0% 0: 0.0% 4038
gimple.c:548 (gimple_build_goto) 598192: 0.2% 0: 0.0% 112: 0.0% 0: 0.0% 10684
cp/tree.c:3166 (build_dummy_object) 556512: 0.2% 0: 0.0% 43616: 0.0% 0: 0.0% 18754
cp/class.c:6469 (layout_class_type) 615296: 0.2% 0: 0.0% 0: 0.0% 0: 0.0% 4048
cp/pt.c:17362 (try_class_unification) 618920: 0.2% 0: 0.0% 0: 0.0% 0: 0.0% 15405
cp/pt.c:3833 (process_template_parm) 79560: 0.0% 0: 0.0% 548200: 0.2% 0: 0.0% 15694
cp/pt.c:10353 (tsubst_template_parm) 6600: 0.0% 0: 0.0% 622160: 0.2% 0: 0.0% 15719
cp/parser.c:13886 (cp_parser_template_id) 321408: 0.1% 0: 0.0% 322176: 0.1% 0: 0.0% 26816
function.c:6707 (add_local_decl) 528: 0.0% 806560: 0.3% 670576: 0.2% 0: 0.0% 16715
cp/tree.c:1868 (build_qualified_name) 516200: 0.2% 0: 0.0% 167960: 0.0% 0: 0.0% 17104
insn-emit.c:1442 (gen_jump) 689616: 0.2% 0: 0.0% 264: 0.0% 0: 0.0% 34494
cfg.c:93 (init_flow) 11088: 0.0% 0: 0.0% 696600: 0.2% 0: 0.0% 9829
cp/decl.c:12522 (xref_basetypes) 0: 0.0% 0: 0.0% 713248: 0.2% 0: 0.0% 7339
gimplify.c:4586 (gimplify_modify_expr) 27040: 0.0% 0: 0.0% 686880: 0.2% 0: 0.0% 8924
emit-rtl.c:411 (get_reg_attrs) 761680: 0.3% 0: 0.0% 672: 0.0% 0: 0.0% 47647
cp/typeck.c:2431 (build_class_member_access_expr 438480: 0.1% 0: 0.0% 338256: 0.1% 0: 0.0% 16182
cp/parser.c:18861 (cp_parser_parameter_declarati 785480: 0.3% 0: 0.0% 0: 0.0% 0: 0.0% 19637
cp/decl.c:11403 (grokparms) 227760: 0.1% 0: 0.0% 557720: 0.2% 0: 0.0% 19637
gimple.c:206 (gimple_build_return) 22720: 0.0% 0: 0.0% 773440: 0.2% 0: 0.0% 9952
lra-eliminations.c:417 (lra_eliminate_regs_1) 860472: 0.3% 0: 0.0% 0: 0.0% 0: 0.0% 35853
fold-const.c:15795 (fold_build_cleanup_point_exp 293216: 0.1% 0: 0.0% 605888: 0.2% 0: 0.0% 28097
cp/pt.c:1493 (register_specialization) 0: 0.0% 0: 0.0% 901368: 0.3% 0: 0.0% 37557
config/i386/i386.c:25540 (ix86_expand_call) 907272: 0.3% 0: 0.0% 840: 0.0% 0: 0.0% 37838
cp/pt.c:242 (push_access_scope) 917360: 0.3% 0: 0.0% 0: 0.0% 0: 0.0% 22934
insn-emit.c:3001 (gen_pro_epilogue_adjust_stack_ 919160: 0.3% 0: 0.0% 88: 0.0% 0: 0.0% 52230
cp/class.c:6392 (layout_class_type) 0: 0.0% 0: 0.0% 921816: 0.3% 0: 0.0% 5487
gimple.c:570 (gimple_build_bind) 924928: 0.3% 0: 0.0% 64: 0.0% 0: 0.0% 14453
cp/semantics.c:366 (perform_or_defer_access_chec 929480: 0.3% 0: 0.0% 912: 0.0% 48968: 0.3% 6121
hash-table.h:599 (create_ggc) 941568: 0.3% 0: 0.0% 1056: 0.0% 0: 0.0% 19638
gimplify.c:8050 (gimplify_expr) 614560: 0.2% 0: 0.0% 341240: 0.1% 0: 0.0% 23895
tree.c:7024 (type_hash_canon) 93216: 0.0% 0: 0.0% 885920: 0.3% 0: 0.0% 61196
tree.c:4618 (build_nt_call_vec) 2064: 0.0% 0: 0.0% 990984: 0.3% 0: 0.0% 17718
expr.c:2366 (use_reg_mode) 1001024: 0.3% 0: 0.0% 832: 0.0% 0: 0.0% 62616
except.c:382 (init_eh_for_function) 40: 0.0% 1240: 0.0% 1002800: 0.3% 0: 0.0% 25102
except.c:383 (init_eh_for_function) 40: 0.0% 280: 0.0% 1003760: 0.3% 0: 0.0% 25102
cfg.c:99 (init_flow) 16016: 0.0% 0: 0.0% 1006200: 0.3% 0: 0.0% 9829
cfg.c:96 (init_flow) 16016: 0.0% 0: 0.0% 1006200: 0.3% 0: 0.0% 9829
dwarf2cfi.c:438 (new_cfi) 0: 0.0% 0: 0.0% 1026648: 0.3% 0: 0.0% 42777
hash-table.h:914 (expand) 0: 0.0% 7240: 0.0% 1041840: 0.3% 504: 0.0% 11
cp/parser.c:14182 (cp_parser_template_argument_l 1064744: 0.4% 0: 0.0% 4208: 0.0% 0: 0.0% 26815
dwarf2out.c:1026 (dwarf2out_alloc_current_fde) 0: 0.0% 0: 0.0% 1098048: 0.3% 0: 0.0% 9804
tree-ssa.c:1077 (init_tree_ssa) 159824: 0.1% 0: 0.0% 941024: 0.3% 0: 0.0% 9829
gimplify.c:2559 (gimplify_call_expr) 1102624: 0.4% 0: 0.0% 0: 0.0% 0: 0.0% 34457
gimple.c:725 (gimple_build_try) 1117480: 0.4% 0: 0.0% 784: 0.0% 0: 0.0% 19969
cp/tree.c:372 (build_local_temp) 39456: 0.0% 0: 0.0% 1082016: 0.3% 0: 0.0% 7788
cp/name-lookup.c:6114 (store_class_bindings) 1124712: 0.4% 167928: 0.1% 0: 0.0% 27976: 0.2% 5438
gimple.c:559 (gimple_build_nop) 150520: 0.1% 0: 0.0% 1011000: 0.3% 0: 0.0% 29038
c-family/c-semantics.c:50 (push_stmt_list) 200: 0.0% 186096: 0.1% 1161896: 0.3% 0: 0.0% 29239
tree-iterator.c:55 (alloc_stmt_list) 443008: 0.1% 0: 0.0% 719552: 0.2% 0: 0.0% 36330
cp/typeck.c:5478 (cp_build_addr_expr_1) 650656: 0.2% 0: 0.0% 513376: 0.1% 0: 0.0% 36376
gimple.c:1687 (gimple_copy) 143544: 0.0% 0: 0.0% 1037720: 0.3% 27584: 0.2% 12059
except.c:379 (init_eh_for_function) 48: 0.0% 0: 0.0% 1204848: 0.3% 0: 0.0% 25102
cp/pt.c:3967 (template_parms_to_args) 581896: 0.2% 0: 0.0% 667248: 0.2% 56: 0.0% 28602
emit-rtl.c:4580 (emit_barrier_after) 1313280: 0.4% 0: 0.0% 448: 0.0% 0: 0.0% 20527
config/i386/i386.c:17996 (ix86_expand_binary_ope 1350720: 0.5% 0: 0.0% 864: 0.0% 0: 0.0% 56316
hash-table.h:914 (expand) 326200: 0.1% 1156064: 0.4% 1051392: 0.3% 3352: 0.0% 91
cp/typeck.c:2970 (cp_build_indirect_ref) 734528: 0.2% 0: 0.0% 647424: 0.2% 0: 0.0% 43186
tree-ssa-operands.c:180 (create_vop_var) 205488: 0.1% 0: 0.0% 1209888: 0.4% 0: 0.0% 9829
gimple.c:537 (gimple_build_label) 682080: 0.2% 0: 0.0% 767368: 0.2% 0: 0.0% 25883
cp/tree.c:2632 (build_min_nt_loc) 6520: 0.0% 0: 0.0% 1488048: 0.4% 0: 0.0% 34510
tree-eh.c:113 (add_stmt_to_eh_lp_fn) 46992: 0.0% 40128: 0.0% 1496352: 0.4% 47984: 0.3% 2999
hash-table.h:914 (expand) 0: 0.0% 23696: 0.0% 1547992: 0.4% 872: 0.0% 19
tree-cfg.c:217 (init_empty_tree_cfg_for_function 25200: 0.0% 60816: 0.0% 1565256: 0.5% 0: 0.0% 9829
rtl.c:151 (rtvec_alloc) 1580496: 0.5% 0: 0.0% 30920: 0.0% 7608: 0.1% 68902
tree-cfg.c:222 (init_empty_tree_cfg_for_function 0: 0.0% 38304: 0.0% 1612968: 0.5% 0: 0.0% 9829
cp/tree.c:1809 (hash_tree_cons) 0: 0.0% 0: 0.0% 1641880: 0.5% 0: 0.0% 41047
reload1.c:2667 (eliminate_regs_1) 1659288: 0.6% 0: 0.0% 0: 0.0% 0: 0.0% 69137
cp/cvt.c:544 (convert_from_reference) 961664: 0.3% 0: 0.0% 712608: 0.2% 0: 0.0% 52321
lra-eliminations.c:403 (lra_eliminate_regs_1) 1689240: 0.6% 0: 0.0% 384: 0.0% 0: 0.0% 70401
cp/tree.c:2014 (ovl_cons) 719296: 0.2% 1408: 0.0% 997344: 0.3% 0: 0.0% 53689
tree.c:8152 (maybe_canonicalize_argtypes) 697240: 0.2% 0: 0.0% 1053840: 0.3% 0: 0.0% 43777
except.c:396 (gen_eh_region) 51480: 0.0% 0: 0.0% 1705616: 0.5% 0: 0.0% 19967
cp/pt.c:3817 (process_template_parm) 37696: 0.0% 0: 0.0% 1845736: 0.5% 0: 0.0% 12391
cfgrtl.c:5013 (init_rtl_bb_info) 1962960: 0.7% 0: 0.0% 960: 0.0% 0: 0.0% 81830
cp/lex.c:690 (cxx_make_type) 456: 0.0% 0: 0.0% 1994240: 0.6% 0: 0.0% 13123
emit-rtl.c:2561 (gen_label_rtx) 2008704: 0.7% 0: 0.0% 960: 0.0% 0: 0.0% 31401
cp/name-lookup.c:6084 (store_bindings) 2012704: 0.7% 671912: 0.2% 0: 0.0% 79608: 0.5% 17592
cp/lex.c:576 (retrofit_lang_decl) 192760: 0.1% 39640: 0.0% 1820620: 0.5% 81188: 0.5% 63842
symtab.c:1347 (set_section_for_node) 0: 0.0% 0: 0.0% 2035916: 0.6% 240108: 1.6% 9945
varasm.c:318 (get_section) 0: 0.0% 0: 0.0% 2036672: 0.6% 240160: 1.6% 9961
cp/search.c:1154 (build_baselink) 2052816: 0.7% 0: 0.0% 25632: 0.0% 0: 0.0% 43301
hash-table.h:914 (expand) 0: 0.0% 0: 0.0% 2081176: 0.6% 408: 0.0% 7
explow.c:193 (plus_constant) 2076144: 0.7% 0: 0.0% 12744: 0.0% 0: 0.0% 87037
emit-rtl.c:3898 (make_jump_insn_raw) 2198232: 0.7% 0: 0.0% 864: 0.0% 0: 0.0% 30543
cfgloop.c:346 (alloc_loop) 0: 0.0% 34344: 0.0% 2296944: 0.7% 0: 0.0% 10793
tree.c:8347 (build_method_type_directly) 682600: 0.2% 0: 0.0% 1630680: 0.5% 0: 0.0% 57832
c-family/c-semantics.c:119 (build_stmt) 806200: 0.3% 0: 0.0% 1512544: 0.4% 0: 0.0% 65092
cp/decl.c:930 (create_implicit_typedef) 0: 0.0% 0: 0.0% 2419840: 0.7% 0: 0.0% 15920
gimplify.c:4770 (gimplify_modify_expr) 146776: 0.0% 0: 0.0% 2314168: 0.7% 0: 0.0% 30264
tree-phinodes.c:140 (allocate_phi_node) 497608: 0.2% 0: 0.0% 2032792: 0.6% 75616: 0.5% 8688
cp/name-lookup.c:6186 (push_to_top_level) 2545576: 0.9% 0: 0.0% 528: 0.0% 0: 0.0% 28933
cp/decl.c:617 (poplevel) 0: 0.0% 0: 0.0% 2552792: 0.7% 0: 0.0% 29009
varasm.c:3699 (create_constant_pool) 2587992: 0.9% 0: 0.0% 792: 0.0% 78448: 0.5% 9806
tree-ssa.c:1078 (init_tree_ssa) 376728: 0.1% 0: 0.0% 2218128: 0.6% 78632: 0.5% 9829
cfgexpand.c:2331 (expand_call_stmt) 2599224: 0.9% 0: 0.0% 0: 0.0% 32: 0.0% 42777
cp/decl.c:13880 (save_function_data) 0: 0.0% 0: 0.0% 2627472: 0.8% 138288: 0.9% 17286
tree.c:10639 (build_call_1) 1363768: 0.5% 0: 0.0% 1299008: 0.4% 32: 0.0% 43341
emit-rtl.c:3918 (make_call_insn_raw) 2721816: 0.9% 0: 0.0% 2520: 0.0% 0: 0.0% 37838
cp/typeck.c:5346 (build_nop) 1122592: 0.4% 0: 0.0% 1636832: 0.5% 0: 0.0% 86232
config/i386/i386.c:25677 (ix86_init_machine_stat 112: 0.0% 0: 0.0% 2811312: 0.8% 0: 0.0% 25102
toplev.c:1036 (realloc_for_line_map) 0: 0.0% 1407064: 0.5% 2830560: 0.8% 100808: 0.7% 8132
cp/name-lookup.c:2011 (set_identifier_type_value 2830640: 1.0% 0: 0.0% 2000: 0.0% 0: 0.0% 70816
tree.c:1207 (copy_list) 0: 0.0% 0: 0.0% 2886952: 0.8% 0: 0.0% 22676
dwarf2cfi.c:463 (copy_cfi_row) 3007840: 1.0% 0: 0.0% 0: 0.0% 0: 0.0% 75196
cp/decl.c:13462 (start_preparsed_function) 0: 0.0% 0: 0.0% 3012120: 0.9% 0: 0.0% 25101
cp/class.c:3150 (maybe_add_class_template_decl_l 0: 0.0% 0: 0.0% 3035280: 0.9% 0: 0.0% 75882
tree-iterator.c:220 (tsi_link_after) 1744560: 0.6% 0: 0.0% 1300296: 0.4% 0: 0.0% 126869
cfg.c:222 (connect_src) 1216520: 0.4% 0: 0.0% 1963080: 0.6% 0: 0.0% 79490
stringpool.c:88 (alloc_node) 2376: 0.0% 0: 0.0% 3221504: 0.9% 0: 0.0% 36635
cp/pt.c:318 (build_template_info) 463200: 0.2% 0: 0.0% 2893376: 0.8% 0: 0.0% 104893
cfg.c:232 (connect_dest) 1250464: 0.4% 42664: 0.0% 2113600: 0.6% 0: 0.0% 83619
tree.c:11521 (create_artificial_label) 1442048: 0.5% 0: 0.0% 2250368: 0.7% 0: 0.0% 28847
cgraph.c:851 (create_edge) 0: 0.0% 0: 0.0% 3734536: 1.1% 0: 0.0% 35909
cp/decl.c:13563 (start_preparsed_function) 0: 0.0% 0: 0.0% 3815352: 1.1% 200808: 1.3% 25101
tree.c:7751 (build_pointer_type_for_mode) 840: 0.0% 0: 0.0% 3835440: 1.1% 0: 0.0% 22835
stringpool.c:66 (stringpool_ggc_alloc) 48305: 0.0% 0: 0.0% 4088082: 1.2% 485259: 3.2% 40141
cp/pt.c:19087 (get_partial_spec_bindings) 4147368: 1.4% 0: 0.0% 0: 0.0% 0: 0.0% 83449
cp/decl2.c:215 (cp_build_parm_decl) 412800: 0.1% 0: 0.0% 3781120: 1.1% 0: 0.0% 32765
function.c:4768 (allocate_struct_function) 168: 0.0% 0: 0.0% 4216968: 1.2% 0: 0.0% 25102
fold-const.c:7820 (build_fold_addr_expr_with_typ 2039616: 0.7% 0: 0.0% 2351104: 0.7% 0: 0.0% 137210
cfg.c:286 (unchecked_make_edge) 895832: 0.3% 1007496: 0.3% 3570896: 1.0% 0: 0.0% 97754
cp/pt.c:3636 (build_template_parm_index) 1082304: 0.4% 0: 0.0% 3469536: 1.0% 0: 0.0% 94830
config/i386/i386.c:17431 (ix86_expand_move) 4572696: 1.5% 0: 0.0% 3456: 0.0% 0: 0.0% 190673
rtl.c:317 (copy_rtx) 4680888: 1.6% 0: 0.0% 2400: 0.0% 0: 0.0% 195137
emit-rtl.c:366 (set_mem_attrs) 4682880: 1.6% 0: 0.0% 45440: 0.0% 0: 0.0% 118208
cp/lex.c:618 (cxx_dup_lang_specific_decl) 456: 0.0% 1728: 0.0% 5120712: 1.5% 155488: 1.0% 127061
function.c:5591 (record_insns) 5174136: 1.8% 0: 0.0% 528: 0.0% 156808: 1.0% 19601
tree.c:1476 (wide_int_to_tree) 0: 0.0% 0: 0.0% 5182064: 1.5% 38216: 0.3% 6332
tree.c:8190 (build_function_type) 2990400: 1.0% 0: 0.0% 2348640: 0.7% 0: 0.0% 31780
tree.c:1211 (copy_list) 350592: 0.1% 0: 0.0% 5003896: 1.4% 0: 0.0% 42186
cp/lex.c:682 (cxx_make_type) 44352: 0.0% 0: 0.0% 5370288: 1.6% 0: 0.0% 32230
cp/pt.c:8460 (push_tinst_level_loc) 5573664: 1.9% 0: 0.0% 140928: 0.0% 0: 0.0% 178581
cp/call.c:2997 (add_template_candidate_real) 6035280: 2.0% 0: 0.0% 0: 0.0% 8: 0.0% 129290
gimple.c:237 (gimple_build_call_1) 1412352: 0.5% 0: 0.0% 4815432: 1.4% 186488: 1.2% 41524
tree.c:7818 (build_reference_type_for_mode) 2352: 0.0% 0: 0.0% 6298656: 1.8% 0: 0.0% 37506
cp/lex.c:549 (build_lang_decl_loc) 766280: 0.3% 236016: 0.1% 5588968: 1.6% 0: 0.0% 41298
cgraph.h:2488 (allocate_cgraph_symbol) 0: 0.0% 0: 0.0% 6808648: 2.0% 0: 0.0% 17369
cp/name-lookup.c:6132 (push_to_top_level) 6942480: 2.3% 0: 0.0% 1440: 0.0% 694392: 4.6% 28933
cfg.c:148 (alloc_block) 3165968: 1.1% 0: 0.0% 4424680: 1.3% 0: 0.0% 72987
cp/name-lookup.c:1575 (begin_scope) 7722848: 2.6% 0: 0.0% 5712: 0.0% 0: 0.0% 69005
tree-inline.c:5007 (copy_tree_r) 1739032: 0.6% 0: 0.0% 6854296: 2.0% 0: 0.0% 225091
gimple-expr.c:486 (create_tmp_var_raw) 3137184: 1.1% 0: 0.0% 5774976: 1.7% 0: 0.0% 61890
tree.c:8339 (build_method_type_directly) 2866920: 1.0% 0: 0.0% 6848856: 2.0% 0: 0.0% 57832
emit-rtl.c:3941 (make_note_raw) 9722328: 3.3% 0: 0.0% 2408: 0.0% 0: 0.0% 173656
emit-rtl.c:453 (gen_rtx_EXPR_LIST) 9863616: 3.3% 0: 0.0% 2472: 0.0% 0: 0.0% 411087
emit-rtl.c:765 (gen_rtx_MEM) 9576072: 3.2% 0: 0.0% 331824: 0.1% 0: 0.0% 412829
tree-ssanames.c:166 (make_ssa_name_fn) 1862856: 0.6% 0: 0.0% 8313120: 2.4% 0: 0.0% 141333
cp/pt.c:11020 (tsubst_decl) 9984: 0.0% 0: 0.0% 10270464: 3.0% 0: 0.0% 80316
emit-rtl.c:440 (gen_raw_REG) 10388280: 3.5% 0: 0.0% 7488: 0.0% 0: 0.0% 433157
dwarf2cfi.c:466 (copy_cfi_row) 10828224: 3.7% 0: 0.0% 0: 0.0% 0: 0.0% 75196
tree.c:6573 (build_distinct_type_copy) 92232: 0.0% 0: 0.0% 11749248: 3.4% 0: 0.0% 70485
cp/pt.c:3696 (reduce_template_parm_level) 3376992: 1.1% 0: 0.0% 8647648: 2.5% 0: 0.0% 79136
tree-ssanames.c:102 (init_ssanames) 0: 0.0% 2262528: 0.8% 12834816: 3.7% 5032448: 33.5% 9829
cp/lex.c:674 (copy_type) 3732624: 1.3% 0: 0.0% 9547104: 2.8% 0: 0.0% 79046
tree-ssa-operands.c:293 (ssa_operand_alloc) 0: 0.0% 3709952: 1.3% 14661632: 4.2% 0: 0.0% 11545
cp/pt.c:7048 (coerce_template_parms) 14433896: 4.9% 0: 0.0% 608864: 0.2% 0: 0.0% 359052
cp/pt.c:10235 (tsubst_template_args) 13043072: 4.4% 0: 0.0% 3189640: 0.9% 0: 0.0% 378301
cp/parser.c:661 (cp_lexer_new_main) 0: 0.0% 16252944: 5.5% 16777224: 4.9% 24: 0.0% 6
cp/lex.c:636 (copy_decl) 1680: 0.0% 0: 0.0% 17675672: 5.1% 0: 0.0% 94930
emit-rtl.c:3846 (make_insn_raw) 18885184: 6.4% 0: 0.0% 11264: 0.0% 0: 0.0% 295257
emit-rtl.c:5706 (init_emit) 25240800: 8.5% 247000: 0.1% 5200: 0.0% 5412360: 36.1% 9805
--------------------------------------------------------------------------------------------------------------------------------
Total 295529288:100.0% 296440248:100.0% 345547514:100.0% 15003930:100.0% 10199015
--------------------------------------------------------------------------------------------------------------------------------
Alias oracle query stats:
refs_may_alias_p: 0 disambiguations, 0 queries
ref_maybe_used_by_call_p: 0 disambiguations, 0 queries
call_may_clobber_ref_p: 0 disambiguations, 0 queries
PTA query stats:
pt_solution_includes: 0 disambiguations, 0 queries
pt_solutions_intersect: 0 disambiguations, 0 queries
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-05-15 14:44 [PATCH, RFC] New memory usage statistics infrastructure Martin Liška
2015-05-15 14:53 ` Martin Liška
@ 2015-05-19 7:25 ` Jeff Law
2015-05-28 11:39 ` Thomas Schwinge
2015-05-29 16:54 ` Vidya Praveen
3 siblings, 0 replies; 15+ messages in thread
From: Jeff Law @ 2015-05-19 7:25 UTC (permalink / raw)
To: Martin Liška; +Cc: GCC Patches
On 05/15/2015 08:38 AM, Martin Liška wrote:
> Hello.
>
> Following patch attempts to rewrite memory reports for GCC's internal
> allocations
> so that it uses a new template type. The type shares parts which are
> currently duplicated,
> adds support for special 'counters' and introduces new support for
> hash-{set,map,table}.
>
> Transformation of the current code is a bit tricky as we internally used
> hash-table as main
> data structure which takes care of location-related allocations. As I
> want to add support even
> for hash tables (and all derived types), header files inclusion and
> forward declaration is utilized.
>
> Feel free to comment the patch, as well as missing features one may want
> to track by location sensitive
> memory allocation.
>
> Attachment contains sample output taken from tramp3d-v4.cpp.
>
> Thanks,
> Martin
>
> 0001-New-memory-allocation-statistics-infrastructure.patch
>
>
> From 7a9048ef36bddf17209acadc1dcab9fc48a7fd63 Mon Sep 17 00:00:00 2001
> From: mliska<mliska@suse.cz>
> Date: Tue, 5 May 2015 11:34:16 +0200
> Subject: [PATCH] New memory allocation statistics infrastructure.
>
> gcc/ChangeLog:
>
> 2015-05-05 Martin Liska<mliska@suse.cz>
>
> * Makefile.in: Add additional dependencies related to memory report
> enhancement.
> * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
> * bitmap.c (struct bitmap_descriptor_d): Remove.
> (struct loc): Likewise.
> (struct bitmap_desc_hasher): Likewise.
> (bitmap_desc_hasher::hash): Likewise.
> (bitmap_desc_hasher::equal): Likewise.
> (get_bitmap_descriptor): Likewise.
> (bitmap_register): User new memory descriptor API.
> (register_overhead): Likewise.
> (bitmap_find_bit): Register nsearches and search_iter statistics.
> (struct bitmap_output_info): Remove.
> (print_statistics): Likewise.
> (dump_bitmap_statistics): Use new memory descriptor.
> * bitmap.h (struct bitmap_usage): New class.
> * genmatch.c: Extend header file inclusion.
> * genpreds.c: Likewise.
> * ggc-common.c (struct ggc_usage): New class.
> (struct ggc_loc_desc_hasher): Remove.
> (ggc_loc_desc_hasher::hash): Likewise.
> (ggc_loc_desc_hasher::equal): Likewise.
> (struct ggc_ptr_hash_entry): Likewise.
> (struct ptr_hash_hasher): Likewise.
> (ptr_hash_hasher::hash): Likewise.
> (ptr_hash_hasher::equal): Likewise.
> (make_loc_descriptor): Likewise.
> (ggc_prune_ptr): Likewise.
> (dump_ggc_loc_statistics): Use new memory descriptor.
> (ggc_record_overhead): Likewise.
> (ggc_free_overhead): Likewise.
> (final_cmp_statistic): Remove.
> (cmp_statistic): Likewise.
> (ggc_add_statistics): Liekwise.
> (ggc_prune_overhead_list): Likewise.
> * hash-map-traits.h: New file.
> * hash-map.h (struct default_hashmap_traits): Move the traits to a
> separate header file.
> * hash-set.h: Pass memory statistics info to ctor.
> * hash-table.c (void dump_hash_table_loc_statistics): New function.
> * hash-table.h (hash_table::hash_table): Add new ctor arguments.
> (hash_table::~hash_table): Register memory release operation.
> (hash_table::alloc_entries): Handle memory allocation operation.
> (hash_table::expand): Likewise.
> * inchash.c (iterative_hash_hashval_t): Move implementation to header
> file.
> (iterative_hash_host_wide_int): Likewise.
> * inchash.h (class hash): Likewise.
> * mem-stats-traits.h: New file.
> * mem-stats.h: New file.
> (mem_location): Add new class.
> (mem_usage): Likewise.
> (mem_alloc_description): Likewise.
> * sese.c: Add new header file inclusision.
> * toplev.c (dump_memory_report): Add report for hash_table, hash_map
> and hash_set.
> * tree-sra.c: Add new header file inclusision.
> * vec.c (struct vec_descriptor): Remove.
> (hash_descriptor): Likewise.
> (struct vec_usage): Likewise.
> (struct ptr_hash_entry): Likewise.
> (hash_ptr): Likewise.
> (eq_ptr): Likewise.
> (vec_prefix::register_overhead): Use new memory descriptor API.
> (vec_prefix::release_overhead): Likewise.
> (add_statistics): Remove.
> (dump_vec_loc_statistics): Use new memory descriptor API.
> * vec.h (struct vec_prefix): Likewise.
> (va_heap::reserve): Likewise.
> (va_heap::release): Likewise.
Please check for overly-long lines. I spotted several, but didn't keep
them handy as I was working through the patch. ISTM that using the
script from contrib/ might help identify the overly long lines.
Overall it looks good -- I like the consistency in reporting. I think
if there's things missing, we ought to be able to add them incrementally.
My recommendation would be to take care of the line wrapping issues, run
it through the usual bootstrap and testing cycles and commit assuming
nothing is amiss.
jeff
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-05-15 14:44 [PATCH, RFC] New memory usage statistics infrastructure Martin Liška
2015-05-15 14:53 ` Martin Liška
2015-05-19 7:25 ` Jeff Law
@ 2015-05-28 11:39 ` Thomas Schwinge
2015-05-28 12:34 ` Martin Liška
2015-05-29 16:54 ` Vidya Praveen
3 siblings, 1 reply; 15+ messages in thread
From: Thomas Schwinge @ 2015-05-28 11:39 UTC (permalink / raw)
To: Martin Liška; +Cc: GCC Patches
[-- Attachment #1: Type: text/plain, Size: 1495 bytes --]
Hi!
On Fri, 15 May 2015 16:38:40 +0200, Martin Liška <mliska@suse.cz> wrote:
> Following patch attempts to rewrite memory reports for GCC's internal allocations
> [...]
(Got commtited to trunk in r223748.)
> * hash-map-traits.h: New file.
In that one you added a copyright/licensing header, but...
> * mem-stats-traits.h: New file.
> * mem-stats.h: New file.
... in these two you didn't (but should):
> --- /dev/null
> +++ b/gcc/hash-map-traits.h
> @@ -0,0 +1,104 @@
> +/* A hash map traits.
> + Copyright (C) 2015 Free Software Foundation, Inc.
> +
> +This file is part of GCC.
> +
> +GCC is free software; you can redistribute it and/or modify it under
> +the terms of [...]
> --- /dev/null
> +++ b/gcc/mem-stats-traits.h
> @@ -0,0 +1,20 @@
> +#ifndef GCC_MEM_STATS_TRAITS_H
> +#define GCC_MEM_STATS_TRAITS_H
> +
> +/* Memory allocation origin. */
> +enum mem_alloc_origin
> +{
> + HASH_TABLE,
> + HASH_MAP,
> + HASH_SET,
> + VEC,
> + BITMAP,
> + GGC,
> + MEM_ALLOC_ORIGIN_LENGTH
> +};
> +
> +/* Verbose names of the memory allocation origin. */
> +static const char * mem_alloc_origin_names[] = { "Hash tables", "Hash maps", "Hash sets",
> + "Heap vectors", "Bitmaps", "GGC memory" };
> +
> +#endif // GCC_MEM_STATS_TRAITS_H
> --- /dev/null
> +++ b/gcc/mem-stats.h
> @@ -0,0 +1,535 @@
> +#ifndef GCC_MEM_STATS_H
> +#define GCC_MEM_STATS_H
> +
> +#include "hash-map-traits.h"
> +[...]
Grüße,
Thomas
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 472 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-05-28 11:39 ` Thomas Schwinge
@ 2015-05-28 12:34 ` Martin Liška
2015-05-28 17:57 ` Jeff Law
0 siblings, 1 reply; 15+ messages in thread
From: Martin Liška @ 2015-05-28 12:34 UTC (permalink / raw)
To: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 1675 bytes --]
On 05/28/2015 01:15 PM, Thomas Schwinge wrote:
> Hi!
>
> On Fri, 15 May 2015 16:38:40 +0200, Martin Liška <mliska@suse.cz> wrote:
>> Following patch attempts to rewrite memory reports for GCC's internal allocations
>> [...]
>
> (Got commtited to trunk in r223748.)
>
>> * hash-map-traits.h: New file.
>
> In that one you added a copyright/licensing header, but...
>
>> * mem-stats-traits.h: New file.
>> * mem-stats.h: New file.
>
> ... in these two you didn't (but should):
>
>> --- /dev/null
>> +++ b/gcc/hash-map-traits.h
>> @@ -0,0 +1,104 @@
>> +/* A hash map traits.
>> + Copyright (C) 2015 Free Software Foundation, Inc.
>> +
>> +This file is part of GCC.
>> +
>> +GCC is free software; you can redistribute it and/or modify it under
>> +the terms of [...]
>
>> --- /dev/null
>> +++ b/gcc/mem-stats-traits.h
>> @@ -0,0 +1,20 @@
>> +#ifndef GCC_MEM_STATS_TRAITS_H
>> +#define GCC_MEM_STATS_TRAITS_H
>> +
>> +/* Memory allocation origin. */
>> +enum mem_alloc_origin
>> +{
>> + HASH_TABLE,
>> + HASH_MAP,
>> + HASH_SET,
>> + VEC,
>> + BITMAP,
>> + GGC,
>> + MEM_ALLOC_ORIGIN_LENGTH
>> +};
>> +
>> +/* Verbose names of the memory allocation origin. */
>> +static const char * mem_alloc_origin_names[] = { "Hash tables", "Hash maps", "Hash sets",
>> + "Heap vectors", "Bitmaps", "GGC memory" };
>> +
>> +#endif // GCC_MEM_STATS_TRAITS_H
>
>> --- /dev/null
>> +++ b/gcc/mem-stats.h
>> @@ -0,0 +1,535 @@
>> +#ifndef GCC_MEM_STATS_H
>> +#define GCC_MEM_STATS_H
>> +
>> +#include "hash-map-traits.h"
>> +[...]
>
>
> GrüÃe,
> Thomas
>
Hello.
Thank you for pointing about missing copyright.
Following patch adds that.
Ready for trunk?
Thanks,
Martin
[-- Attachment #2: 0001-Missing-copyright-for-mem-stats-header-files.patch --]
[-- Type: text/x-patch, Size: 2480 bytes --]
From 2abc4116e3a941dbd8e0cff22698b979c9c1c830 Mon Sep 17 00:00:00 2001
From: mliska <mliska@suse.cz>
Date: Thu, 28 May 2015 14:24:58 +0200
Subject: [PATCH] Missing copyright for mem-stats header files.
gcc/ChangeLog:
2015-05-28 Martin Liska <mliska@suse.cz>
* mem-stats-traits.h: Add copyright header.
* mem-stats.h: Likewise.
---
gcc/mem-stats-traits.h | 20 ++++++++++++++++++++
gcc/mem-stats.h | 20 ++++++++++++++++++++
2 files changed, 40 insertions(+)
diff --git a/gcc/mem-stats-traits.h b/gcc/mem-stats-traits.h
index de1614e..c5cb84a 100644
--- a/gcc/mem-stats-traits.h
+++ b/gcc/mem-stats-traits.h
@@ -1,3 +1,23 @@
+/* A memory statistics traits.
+ Copyright (C) 2015 Free Software Foundation, Inc.
+ Contributed by Martin Liska <mliska@suse.cz>
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
#ifndef GCC_MEM_STATS_TRAITS_H
#define GCC_MEM_STATS_TRAITS_H
diff --git a/gcc/mem-stats.h b/gcc/mem-stats.h
index ac47231..9e3dec0 100644
--- a/gcc/mem-stats.h
+++ b/gcc/mem-stats.h
@@ -1,3 +1,23 @@
+/* A memory statistics tracking infrastructure.
+ Copyright (C) 2015 Free Software Foundation, Inc.
+ Contributed by Martin Liska <mliska@suse.cz>
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
#ifndef GCC_MEM_STATS_H
#define GCC_MEM_STATS_H
--
2.1.4
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-05-28 12:34 ` Martin Liška
@ 2015-05-28 17:57 ` Jeff Law
2016-01-29 16:24 ` Patrick Palka
0 siblings, 1 reply; 15+ messages in thread
From: Jeff Law @ 2015-05-28 17:57 UTC (permalink / raw)
To: Martin Liška, gcc-patches
On 05/28/2015 06:29 AM, Martin Liška wrote:
>>
>
> Hello.
>
> Thank you for pointing about missing copyright.
> Following patch adds that.
>
> Ready for trunk?
Yes.
jeff
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-05-15 14:44 [PATCH, RFC] New memory usage statistics infrastructure Martin Liška
` (2 preceding siblings ...)
2015-05-28 11:39 ` Thomas Schwinge
@ 2015-05-29 16:54 ` Vidya Praveen
2015-06-01 11:38 ` Martin Liška
3 siblings, 1 reply; 15+ messages in thread
From: Vidya Praveen @ 2015-05-29 16:54 UTC (permalink / raw)
To: Martin Liška; +Cc: GCC Patches
Martin,
The following change:
@@ -2655,10 +2655,10 @@ s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
GCOV_OBJS = gcov.o
gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
- +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) build/hash-table.o
ggc-none.o $(LIBS) -o $@
seem to cause canadian cross build failure for arm and aarch64 on x86_64 as
build/hash-table.o and ggc-none.o are not built by the same compiler?
arm-none-linux-gnueabi-g++ -no-pie -g -O2 -DIN_GCC -fno-exceptions
-fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing
+-Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual
-pedantic -Wno-long-long -Wn
build/hash-table.o ggc-none.o libcommon.a ../libcpp/libcpp.a
../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ..
+/libdecnumber/libdecnumber.a -o gcov
build/hash-table.o: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
make[1]: *** [gcov] Error 1
Should it be:
- +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) hash-table.o
ggc-none.o $(LIBS) -o $@
instead?
VP.
On 15/05/15 15:38, Martin Liška wrote:
> Hello.
>
> Following patch attempts to rewrite memory reports for GCC's internal allocations
> so that it uses a new template type. The type shares parts which are currently duplicated,
> adds support for special 'counters' and introduces new support for hash-{set,map,table}.
>
> Transformation of the current code is a bit tricky as we internally used hash-table as main
> data structure which takes care of location-related allocations. As I want to add support even
> for hash tables (and all derived types), header files inclusion and forward declaration is utilized.
>
> Feel free to comment the patch, as well as missing features one may want to track by location sensitive
> memory allocation.
>
> Attachment contains sample output taken from tramp3d-v4.cpp.
>
> Thanks,
> Martin
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-05-29 16:54 ` Vidya Praveen
@ 2015-06-01 11:38 ` Martin Liška
2015-06-01 12:18 ` Richard Biener
0 siblings, 1 reply; 15+ messages in thread
From: Martin Liška @ 2015-06-01 11:38 UTC (permalink / raw)
To: Vidya Praveen; +Cc: GCC Patches
On 05/29/2015 06:09 PM, Vidya Praveen wrote:
>
> Martin,
>
> The following change:
>
> @@ -2655,10 +2655,10 @@ s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
>
> GCOV_OBJS = gcov.o
> gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) build/hash-table.o ggc-none.o $(LIBS) -o $@
>
>
> seem to cause canadian cross build failure for arm and aarch64 on x86_64 as
> build/hash-table.o and ggc-none.o are not built by the same compiler?
>
> arm-none-linux-gnueabi-g++ -no-pie -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing
> +-Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wn
> build/hash-table.o ggc-none.o libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ..
> +/libdecnumber/libdecnumber.a -o gcov
> build/hash-table.o: file not recognized: File format not recognized
> collect2: error: ld returned 1 exit status
> make[1]: *** [gcov] Error 1
>
>
> Should it be:
>
> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) hash-table.o ggc-none.o $(LIBS) -o $@
>
> instead?
Hello Vidya.
Thanks for pointing out. To be honest, I'm not a build system guru and it's hard for me to verify
that the change you suggest is the correct.
May I please ask you for sending a patch to mailing?
Thanks,
Martin
>
> VP.
>
>
> On 15/05/15 15:38, Martin Liška wrote:
>> Hello.
>>
>> Following patch attempts to rewrite memory reports for GCC's internal allocations
>> so that it uses a new template type. The type shares parts which are currently duplicated,
>> adds support for special 'counters' and introduces new support for hash-{set,map,table}.
>>
>> Transformation of the current code is a bit tricky as we internally used hash-table as main
>> data structure which takes care of location-related allocations. As I want to add support even
>> for hash tables (and all derived types), header files inclusion and forward declaration is utilized.
>>
>> Feel free to comment the patch, as well as missing features one may want to track by location sensitive
>> memory allocation.
>>
>> Attachment contains sample output taken from tramp3d-v4.cpp.
>>
>> Thanks,
>> Martin
>>
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-06-01 11:38 ` Martin Liška
@ 2015-06-01 12:18 ` Richard Biener
2015-06-01 14:08 ` Martin Liška
0 siblings, 1 reply; 15+ messages in thread
From: Richard Biener @ 2015-06-01 12:18 UTC (permalink / raw)
To: Martin Liška; +Cc: Vidya Praveen, GCC Patches
On Mon, Jun 1, 2015 at 1:38 PM, Martin Liška <mliska@suse.cz> wrote:
> On 05/29/2015 06:09 PM, Vidya Praveen wrote:
>>
>> Martin,
>>
>> The following change:
>>
>> @@ -2655,10 +2655,10 @@ s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
>>
>> GCOV_OBJS = gcov.o
>> gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
>> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
>> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) build/hash-table.o ggc-none.o $(LIBS) -o $@
>>
>>
>> seem to cause canadian cross build failure for arm and aarch64 on x86_64 as
>> build/hash-table.o and ggc-none.o are not built by the same compiler?
>>
>> arm-none-linux-gnueabi-g++ -no-pie -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing
>> +-Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wn
>> build/hash-table.o ggc-none.o libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ..
>> +/libdecnumber/libdecnumber.a -o gcov
>> build/hash-table.o: file not recognized: File format not recognized
>> collect2: error: ld returned 1 exit status
>> make[1]: *** [gcov] Error 1
>>
>>
>> Should it be:
>>
>> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
>> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) hash-table.o ggc-none.o $(LIBS) -o $@
>>
>> instead?
>
> Hello Vidya.
>
> Thanks for pointing out. To be honest, I'm not a build system guru and it's hard for me to verify
> that the change you suggest is the correct.
>
> May I please ask you for sending a patch to mailing?
gcov isn't a build but a host tool so the patch looks good to me.
Richard.
> Thanks,
> Martin
>
>>
>> VP.
>>
>>
>> On 15/05/15 15:38, Martin Liška wrote:
>>> Hello.
>>>
>>> Following patch attempts to rewrite memory reports for GCC's internal allocations
>>> so that it uses a new template type. The type shares parts which are currently duplicated,
>>> adds support for special 'counters' and introduces new support for hash-{set,map,table}.
>>>
>>> Transformation of the current code is a bit tricky as we internally used hash-table as main
>>> data structure which takes care of location-related allocations. As I want to add support even
>>> for hash tables (and all derived types), header files inclusion and forward declaration is utilized.
>>>
>>> Feel free to comment the patch, as well as missing features one may want to track by location sensitive
>>> memory allocation.
>>>
>>> Attachment contains sample output taken from tramp3d-v4.cpp.
>>>
>>> Thanks,
>>> Martin
>>>
>>
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-06-01 12:18 ` Richard Biener
@ 2015-06-01 14:08 ` Martin Liška
2015-06-01 14:22 ` Vidya Praveen
2015-06-01 15:36 ` Martin Liška
0 siblings, 2 replies; 15+ messages in thread
From: Martin Liška @ 2015-06-01 14:08 UTC (permalink / raw)
To: Richard Biener; +Cc: Vidya Praveen, GCC Patches
[-- Attachment #1: Type: text/plain, Size: 2874 bytes --]
On 06/01/2015 02:18 PM, Richard Biener wrote:
> On Mon, Jun 1, 2015 at 1:38 PM, Martin Liška <mliska@suse.cz> wrote:
>> On 05/29/2015 06:09 PM, Vidya Praveen wrote:
>>>
>>> Martin,
>>>
>>> The following change:
>>>
>>> @@ -2655,10 +2655,10 @@ s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
>>>
>>> GCOV_OBJS = gcov.o
>>> gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
>>> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
>>> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) build/hash-table.o ggc-none.o $(LIBS) -o $@
>>>
>>>
>>> seem to cause canadian cross build failure for arm and aarch64 on x86_64 as
>>> build/hash-table.o and ggc-none.o are not built by the same compiler?
>>>
>>> arm-none-linux-gnueabi-g++ -no-pie -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing
>>> +-Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wn
>>> build/hash-table.o ggc-none.o libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ..
>>> +/libdecnumber/libdecnumber.a -o gcov
>>> build/hash-table.o: file not recognized: File format not recognized
>>> collect2: error: ld returned 1 exit status
>>> make[1]: *** [gcov] Error 1
>>>
>>>
>>> Should it be:
>>>
>>> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
>>> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) hash-table.o ggc-none.o $(LIBS) -o $@
>>>
>>> instead?
>>
>> Hello Vidya.
>>
>> Thanks for pointing out. To be honest, I'm not a build system guru and it's hard for me to verify
>> that the change you suggest is the correct.
>>
>> May I please ask you for sending a patch to mailing?
>
> gcov isn't a build but a host tool so the patch looks good to me.
>
> Richard.
>
>> Thanks,
>> Martin
>>
>>>
>>> VP.
>>>
>>>
>>> On 15/05/15 15:38, Martin Liška wrote:
>>>> Hello.
>>>>
>>>> Following patch attempts to rewrite memory reports for GCC's internal allocations
>>>> so that it uses a new template type. The type shares parts which are currently duplicated,
>>>> adds support for special 'counters' and introduces new support for hash-{set,map,table}.
>>>>
>>>> Transformation of the current code is a bit tricky as we internally used hash-table as main
>>>> data structure which takes care of location-related allocations. As I want to add support even
>>>> for hash tables (and all derived types), header files inclusion and forward declaration is utilized.
>>>>
>>>> Feel free to comment the patch, as well as missing features one may want to track by location sensitive
>>>> memory allocation.
>>>>
>>>> Attachment contains sample output taken from tramp3d-v4.cpp.
>>>>
>>>> Thanks,
>>>> Martin
>>>>
>>>
>>
Ok.
I'm going to install following patch.
Thanks,
Martin
[-- Attachment #2: 0001-Fix-Makefile-dependencies.patch --]
[-- Type: text/x-patch, Size: 971 bytes --]
From 04939698092c834713bd83d49bc50a5ab31dbe79 Mon Sep 17 00:00:00 2001
From: mliska <mliska@suse.cz>
Date: Mon, 1 Jun 2015 16:03:30 +0200
Subject: [PATCH] Fix Makefile dependencies.
gcc/ChangeLog:
2015-06-01 Vidya Praveen <vidya.praveen@atmel.com>
* Makefile.in: Fix gcov dependencies that should
not point to a build folder.
---
gcc/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index b59b5d9..952f285 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -2667,7 +2667,7 @@ s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
GCOV_OBJS = gcov.o
gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) \
- build/hash-table.o ggc-none.o $(LIBS) -o $@
+ hash-table.o ggc-none.o $(LIBS) -o $@
GCOV_DUMP_OBJS = gcov-dump.o
gcov-dump$(exeext): $(GCOV_DUMP_OBJS) $(LIBDEPS)
+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_DUMP_OBJS) \
--
2.1.4
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-06-01 14:08 ` Martin Liška
@ 2015-06-01 14:22 ` Vidya Praveen
2015-06-01 16:35 ` Vidya Praveen
2015-06-01 15:36 ` Martin Liška
1 sibling, 1 reply; 15+ messages in thread
From: Vidya Praveen @ 2015-06-01 14:22 UTC (permalink / raw)
To: Martin Liška, Richard Biener; +Cc: GCC Patches
On 01/06/15 15:08, Martin Liška wrote:
> On 06/01/2015 02:18 PM, Richard Biener wrote:
>> On Mon, Jun 1, 2015 at 1:38 PM, Martin Liška <mliska@suse.cz> wrote:
>>> On 05/29/2015 06:09 PM, Vidya Praveen wrote:
>>>>
>>>> Martin,
>>>>
>>>> The following change:
>>>>
>>>> @@ -2655,10 +2655,10 @@ s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
>>>>
>>>> GCOV_OBJS = gcov.o
>>>> gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
>>>> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
>>>> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) build/hash-table.o ggc-none.o $(LIBS) -o $@
>>>>
>>>>
>>>> seem to cause canadian cross build failure for arm and aarch64 on x86_64 as
>>>> build/hash-table.o and ggc-none.o are not built by the same compiler?
>>>>
>>>> arm-none-linux-gnueabi-g++ -no-pie -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing
>>>> +-Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wn
>>>> build/hash-table.o ggc-none.o libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ..
>>>> +/libdecnumber/libdecnumber.a -o gcov
>>>> build/hash-table.o: file not recognized: File format not recognized
>>>> collect2: error: ld returned 1 exit status
>>>> make[1]: *** [gcov] Error 1
>>>>
>>>>
>>>> Should it be:
>>>>
>>>> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
>>>> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) hash-table.o ggc-none.o $(LIBS) -o $@
>>>>
>>>> instead?
>>>
>>> Hello Vidya.
>>>
>>> Thanks for pointing out. To be honest, I'm not a build system guru and it's hard for me to verify
>>> that the change you suggest is the correct.
>>>
>>> May I please ask you for sending a patch to mailing?
>>
>> gcov isn't a build but a host tool so the patch looks good to me.
>>
>> Richard.
>>
>>> Thanks,
>>> Martin
>>>
>>>>
>>>> VP.
>>>>
>>>>
>>>> On 15/05/15 15:38, Martin Liška wrote:
>>>>> Hello.
>>>>>
>>>>> Following patch attempts to rewrite memory reports for GCC's internal allocations
>>>>> so that it uses a new template type. The type shares parts which are currently duplicated,
>>>>> adds support for special 'counters' and introduces new support for hash-{set,map,table}.
>>>>>
>>>>> Transformation of the current code is a bit tricky as we internally used hash-table as main
>>>>> data structure which takes care of location-related allocations. As I want to add support even
>>>>> for hash tables (and all derived types), header files inclusion and forward declaration is utilized.
>>>>>
>>>>> Feel free to comment the patch, as well as missing features one may want to track by location sensitive
>>>>> memory allocation.
>>>>>
>>>>> Attachment contains sample output taken from tramp3d-v4.cpp.
>>>>>
>>>>> Thanks,
>>>>> Martin
>>>>>
>>>>
>>>
>
> Ok.
>
> I'm going to install following patch.
Martin,
I realized we require change in one more place. I'm just doing builds to verify
this.
VP.
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index b59b5d9..3d14938 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -2667,11 +2667,11 @@ s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
GCOV_OBJS = gcov.o
gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) \
- build/hash-table.o ggc-none.o $(LIBS) -o $@
+ hash-table.o ggc-none.o $(LIBS) -o $@
GCOV_DUMP_OBJS = gcov-dump.o
gcov-dump$(exeext): $(GCOV_DUMP_OBJS) $(LIBDEPS)
+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_DUMP_OBJS) \
- build/hash-table.o build/ggc-none.o\
+ hash-table.o ggc-none.o\
$(LIBS) -o $@
GCOV_TOOL_DEP_FILES = $(srcdir)/../libgcc/libgcov-util.c gcov-io.c $(GCOV_IO_H) \
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-06-01 14:08 ` Martin Liška
2015-06-01 14:22 ` Vidya Praveen
@ 2015-06-01 15:36 ` Martin Liška
1 sibling, 0 replies; 15+ messages in thread
From: Martin Liška @ 2015-06-01 15:36 UTC (permalink / raw)
To: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 3138 bytes --]
On 06/01/2015 04:08 PM, Martin Liška wrote:
> On 06/01/2015 02:18 PM, Richard Biener wrote:
>> On Mon, Jun 1, 2015 at 1:38 PM, Martin Liška <mliska@suse.cz> wrote:
>>> On 05/29/2015 06:09 PM, Vidya Praveen wrote:
>>>>
>>>> Martin,
>>>>
>>>> The following change:
>>>>
>>>> @@ -2655,10 +2655,10 @@ s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
>>>>
>>>> GCOV_OBJS = gcov.o
>>>> gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
>>>> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
>>>> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) build/hash-table.o ggc-none.o $(LIBS) -o $@
>>>>
>>>>
>>>> seem to cause canadian cross build failure for arm and aarch64 on x86_64 as
>>>> build/hash-table.o and ggc-none.o are not built by the same compiler?
>>>>
>>>> arm-none-linux-gnueabi-g++ -no-pie -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing
>>>> +-Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wn
>>>> build/hash-table.o ggc-none.o libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ..
>>>> +/libdecnumber/libdecnumber.a -o gcov
>>>> build/hash-table.o: file not recognized: File format not recognized
>>>> collect2: error: ld returned 1 exit status
>>>> make[1]: *** [gcov] Error 1
>>>>
>>>>
>>>> Should it be:
>>>>
>>>> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
>>>> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) hash-table.o ggc-none.o $(LIBS) -o $@
>>>>
>>>> instead?
>>>
>>> Hello Vidya.
>>>
>>> Thanks for pointing out. To be honest, I'm not a build system guru and it's hard for me to verify
>>> that the change you suggest is the correct.
>>>
>>> May I please ask you for sending a patch to mailing?
>>
>> gcov isn't a build but a host tool so the patch looks good to me.
>>
>> Richard.
>>
>>> Thanks,
>>> Martin
>>>
>>>>
>>>> VP.
>>>>
>>>>
>>>> On 15/05/15 15:38, Martin Liška wrote:
>>>>> Hello.
>>>>>
>>>>> Following patch attempts to rewrite memory reports for GCC's internal allocations
>>>>> so that it uses a new template type. The type shares parts which are currently duplicated,
>>>>> adds support for special 'counters' and introduces new support for hash-{set,map,table}.
>>>>>
>>>>> Transformation of the current code is a bit tricky as we internally used hash-table as main
>>>>> data structure which takes care of location-related allocations. As I want to add support even
>>>>> for hash tables (and all derived types), header files inclusion and forward declaration is utilized.
>>>>>
>>>>> Feel free to comment the patch, as well as missing features one may want to track by location sensitive
>>>>> memory allocation.
>>>>>
>>>>> Attachment contains sample output taken from tramp3d-v4.cpp.
>>>>>
>>>>> Thanks,
>>>>> Martin
>>>>>
>>>>
>>>
>
> Ok.
>
> I'm going to install following patch.
>
> Thanks,
> Martin
>
Hi.
Vidya notified me that I used a wrong email for his Changelog entry.
This is patch I'm going to install.
Thanks,
Martin
[-- Attachment #2: fix-changelog-entry.patch --]
[-- Type: text/x-patch, Size: 318 bytes --]
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index daf6476..63e69d2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,4 @@
-2015-06-01 Vidya Praveen <vidya.praveen@atmel.com>
+2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
* Makefile.in: Fix gcov dependencies that should
not point to a build folder.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-06-01 14:22 ` Vidya Praveen
@ 2015-06-01 16:35 ` Vidya Praveen
0 siblings, 0 replies; 15+ messages in thread
From: Vidya Praveen @ 2015-06-01 16:35 UTC (permalink / raw)
To: Martin Liška, Richard Biener; +Cc: GCC Patches, vidyapraveen
On 01/06/15 15:21, Vidya Praveen wrote:
> On 01/06/15 15:08, Martin Liška wrote:
>> On 06/01/2015 02:18 PM, Richard Biener wrote:
>>> On Mon, Jun 1, 2015 at 1:38 PM, Martin Liška <mliska@suse.cz> wrote:
>>>> On 05/29/2015 06:09 PM, Vidya Praveen wrote:
>>>>>
>>>>> Martin,
>>>>>
>>>>> The following change:
>>>>>
>>>>> @@ -2655,10 +2655,10 @@ s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
>>>>>
>>>>> GCOV_OBJS = gcov.o
>>>>> gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
>>>>> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
>>>>> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) build/hash-table.o ggc-none.o $(LIBS) -o $@
>>>>>
>>>>>
>>>>> seem to cause canadian cross build failure for arm and aarch64 on x86_64 as
>>>>> build/hash-table.o and ggc-none.o are not built by the same compiler?
>>>>>
>>>>> arm-none-linux-gnueabi-g++ -no-pie -g -O2 -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing
>>>>> +-Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wn
>>>>> build/hash-table.o ggc-none.o libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ..
>>>>> +/libdecnumber/libdecnumber.a -o gcov
>>>>> build/hash-table.o: file not recognized: File format not recognized
>>>>> collect2: error: ld returned 1 exit status
>>>>> make[1]: *** [gcov] Error 1
>>>>>
>>>>>
>>>>> Should it be:
>>>>>
>>>>> - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
>>>>> + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) hash-table.o ggc-none.o $(LIBS) -o $@
>>>>>
>>>>> instead?
>>>>
>>>> Hello Vidya.
>>>>
>>>> Thanks for pointing out. To be honest, I'm not a build system guru and it's hard for me to verify
>>>> that the change you suggest is the correct.
>>>>
>>>> May I please ask you for sending a patch to mailing?
>>>
>>> gcov isn't a build but a host tool so the patch looks good to me.
>>>
>>> Richard.
>>>
>>>> Thanks,
>>>> Martin
>>>>
>>>>>
>>>>> VP.
>>>>>
>>>>>
>>>>> On 15/05/15 15:38, Martin Liška wrote:
>>>>>> Hello.
>>>>>>
>>>>>> Following patch attempts to rewrite memory reports for GCC's internal allocations
>>>>>> so that it uses a new template type. The type shares parts which are currently duplicated,
>>>>>> adds support for special 'counters' and introduces new support for hash-{set,map,table}.
>>>>>>
>>>>>> Transformation of the current code is a bit tricky as we internally used hash-table as main
>>>>>> data structure which takes care of location-related allocations. As I want to add support even
>>>>>> for hash tables (and all derived types), header files inclusion and forward declaration is utilized.
>>>>>>
>>>>>> Feel free to comment the patch, as well as missing features one may want to track by location sensitive
>>>>>> memory allocation.
>>>>>>
>>>>>> Attachment contains sample output taken from tramp3d-v4.cpp.
>>>>>>
>>>>>> Thanks,
>>>>>> Martin
>>>>>>
>>>>>
>>>>
>>
>> Ok.
>>
>> I'm going to install following patch.
>
>
> Martin,
>
> I realized we require change in one more place. I'm just doing builds to verify
> this.
>
> VP.
>
> GCOV_OBJS = gcov.o
> gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
> +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) \
> - build/hash-table.o ggc-none.o $(LIBS) -o $@
> + hash-table.o ggc-none.o $(LIBS) -o $@
> GCOV_DUMP_OBJS = gcov-dump.o
> gcov-dump$(exeext): $(GCOV_DUMP_OBJS) $(LIBDEPS)
> +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_DUMP_OBJS) \
> - build/hash-table.o build/ggc-none.o\
> + hash-table.o ggc-none.o\
> $(LIBS) -o $@
>
> GCOV_TOOL_DEP_FILES = $(srcdir)/../libgcc/libgcov-util.c gcov-io.c $(GCOV_IO_H) \
>
Installing the following patch as it is obvious and same kind of change as the
the previous one (which was approved by richi). Verified by building canadian
cross of aarch64-none-linux-gnu and cross build of arm-none-eabi.
gcc/ChangeLog:
2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
* Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
rather than from gcc/build directory.
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 952f285..3d14938 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -2671,7 +2671,7 @@ gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
GCOV_DUMP_OBJS = gcov-dump.o
gcov-dump$(exeext): $(GCOV_DUMP_OBJS) $(LIBDEPS)
+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_DUMP_OBJS) \
- build/hash-table.o build/ggc-none.o\
+ hash-table.o ggc-none.o\
$(LIBS) -o $@
GCOV_TOOL_DEP_FILES = $(srcdir)/../libgcc/libgcov-util.c gcov-io.c $(GCOV_IO_H) \
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2015-05-28 17:57 ` Jeff Law
@ 2016-01-29 16:24 ` Patrick Palka
2016-02-01 13:57 ` Martin Liška
0 siblings, 1 reply; 15+ messages in thread
From: Patrick Palka @ 2016-01-29 16:24 UTC (permalink / raw)
To: Jeff Law; +Cc: Martin Liška, GCC Patches
On Thu, May 28, 2015 at 1:07 PM, Jeff Law <law@redhat.com> wrote:
> On 05/28/2015 06:29 AM, Martin Liška wrote:
>
>>>
>>
>> Hello.
>>
>> Thank you for pointing about missing copyright.
>> Following patch adds that.
>>
>> Ready for trunk?
>
> Yes.
> jeff
>
It looks like this patch was never committed. gcc/mem-stats.h and
gcc/mem-stats-traits.h don't yet have copyright headers.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH, RFC] New memory usage statistics infrastructure
2016-01-29 16:24 ` Patrick Palka
@ 2016-02-01 13:57 ` Martin Liška
0 siblings, 0 replies; 15+ messages in thread
From: Martin Liška @ 2016-02-01 13:57 UTC (permalink / raw)
To: Patrick Palka, Jeff Law; +Cc: GCC Patches
On 01/29/2016 05:24 PM, Patrick Palka wrote:
> On Thu, May 28, 2015 at 1:07 PM, Jeff Law <law@redhat.com> wrote:
>> On 05/28/2015 06:29 AM, Martin Liška wrote:
>>
>>>>
>>>
>>> Hello.
>>>
>>> Thank you for pointing about missing copyright.
>>> Following patch adds that.
>>>
>>> Ready for trunk?
>>
>> Yes.
>> jeff
>>
>
> It looks like this patch was never committed. gcc/mem-stats.h and
> gcc/mem-stats-traits.h don't yet have copyright headers.
>
Hi.
Thanks for pointing out, I've just installed the patch (w/ adding 2016 year to copyright header).
Martin
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2016-02-01 13:57 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-15 14:44 [PATCH, RFC] New memory usage statistics infrastructure Martin Liška
2015-05-15 14:53 ` Martin Liška
2015-05-19 7:25 ` Jeff Law
2015-05-28 11:39 ` Thomas Schwinge
2015-05-28 12:34 ` Martin Liška
2015-05-28 17:57 ` Jeff Law
2016-01-29 16:24 ` Patrick Palka
2016-02-01 13:57 ` Martin Liška
2015-05-29 16:54 ` Vidya Praveen
2015-06-01 11:38 ` Martin Liška
2015-06-01 12:18 ` Richard Biener
2015-06-01 14:08 ` Martin Liška
2015-06-01 14:22 ` Vidya Praveen
2015-06-01 16:35 ` Vidya Praveen
2015-06-01 15:36 ` Martin Liška
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).