Comment # 16 on bug 1202027 from
(In reply to Richard Biener from comment #15)
> (In reply to Martin Li������ka from comment #14)
> > These functions are affected:
> > 
> >  ;; Function hash_table<default_hash_traits<tree_node*>, false,
> > xcallocator>::find_empty_slot_for_expand
> > (_ZN10hash_tableI19default_hash_traitsIP9tree_nodeELb0E11xcallocatorE26find_e
> > mpty_slot_for_expandEj, funcdef_no=3135, decl_uid=118436, cgraph_uid=2254,
> > symbol_order=2435)
> 
> That's a tree hash (I think using pointer hashing).
> 
> >  ;; Function hash_table<default_hash_traits<tree_node*>, false,
> > xcallocator>::find_slot_with_hash
> > (_ZN10hash_tableI19default_hash_traitsIP9tree_nodeELb0E11xcallocatorE19find_s
> > lot_with_hashERKS2_j13insert_option, funcdef_no=2928, decl_uid=118365,
> > cgraph_uid=2047, symbol_order=2228)
> >  ;; Function hash_table_mod2 (_Z15hash_table_mod2jj, funcdef_no=1065,
> > decl_uid=33219, cgraph_uid=354, symbol_order=368)
> 
> But this suggests the actual table load differs?!
> 
> >  ;; Function hash_table<hash_map<tree_node*, tree_node*>::hash_entry, false,
> > xcallocator>::find_empty_slot_for_expand
> > (_ZN10hash_tableIN8hash_mapIP9tree_nodeS2_21simple_hashmap_traitsI19default_h
> > ash_traitsIS2_ES2_EE10hash_entryELb0E11xcallocatorE26find_empty_slot_for_expa
> > ndEj, funcdef_no=3327, decl_uid=112248, cgraph_uid=2446, symbol_order=2623)
> >  ;; Function hash_table<hash_map<tree_node*, tree_node*>::hash_entry, false,
> > xcallocator>::find_slot_with_hash
> > (_ZN10hash_tableIN8hash_mapIP9tree_nodeS2_21simple_hashmap_traitsI19default_h
> > ash_traitsIS2_ES2_EE10hash_entryELb0E11xcallocatorE19find_slot_with_hashERKS2
> > _j13insert_option, funcdef_no=3056, decl_uid=112177, cgraph_uid=2175,
> > symbol_order=2352)
> >  ;; Function hash_table<hash_map<tree_node*, tree_node*>::hash_entry, false,
> > xcallocator>::find_with_hash
> > (_ZN10hash_tableIN8hash_mapIP9tree_nodeS2_21simple_hashmap_traitsI19default_h
> > ash_traitsIS2_ES2_EE10hash_entryELb0E11xcallocatorE14find_with_hashERKS2_j,
> > funcdef_no=3048, decl_uid=112166, cgraph_uid=2167, symbol_order=2344)
> >  ;; Function hash_table<default_hash_traits<tree_node*>, false,
> > xcallocator>::find_with_hash
> > (_ZN10hash_tableI19default_hash_traitsIP9tree_nodeELb0E11xcallocatorE14find_w
> > ith_hashERKS2_j, funcdef_no=2698, decl_uid=118471, cgraph_uid=1818,
> > symbol_order=2019)
> >  ;; Function get_terminal_width (_Z18get_terminal_widthv, funcdef_no=1638,
> > decl_uid=40874, cgraph_uid=752, symbol_order=778)
> >  ;; Function hash_table<indirect_string_hasher>::find_slot_with_hash
> > (_ZN10hash_tableI22indirect_string_hasherLb0E11xcallocatorE19find_slot_with_h
> > ashERKPKcj13insert_option, funcdef_no=3536, decl_uid=133145,
> > cgraph_uid=2647, symbol_order=2952)
> >  ;; Function ggc_internal_cleared_alloc
> > (_Z26ggc_internal_cleared_allocmPFvPvEmm, funcdef_no=1531, decl_uid=30171,
> > cgraph_uid=670, symbol_order=708)
> >  ;; Function ggc_internal_alloc (_Z18ggc_internal_allocmPFvPvEmm,
> > funcdef_no=2551, decl_uid=30102, cgraph_uid=1662, symbol_order=1833)
> 
> And these suggest the same - do we see the invocation count of
> ggc_internal_alloc and does that differ?

Yes, it is:

 ;; Function ggc_internal_alloc (_Z18ggc_internal_allocmPFvPvEmm,
funcdef_no=2551, decl_uid=30102, cgraph_uid=1662, symbol_order=1833)
...
-Read edge from 0 to 2, count:1113521085
+Read edge from 0 to 2, count:1113521086
 Read edge from 3 to 5, count:60717
 Read edge from 4 to 5, count:14486906
-Read edge from 4 to 14, count:1098973462
+Read edge from 4 to 14, count:1098973463

The first edge is entry count.

> 
> >  ;; Function ggc_round_alloc_size_1 (_ZL22ggc_round_alloc_size_1mPmS_,
> > funcdef_no=2548, decl_uid=116089, cgraph_uid=1659, symbol_order=1830)
> >  ;; Function hash_table<int_cst_hasher>::find_slot_with_hash
> > (_ZN10hash_tableI14int_cst_hasherLb0E11xcallocatorE19find_slot_with_hashERKP9
> > tree_nodej13insert_option, funcdef_no=4799, decl_uid=145332,
> > cgraph_uid=3868, symbol_order=4076)
> >  ;; Function generic_wide_int<wide_int_ref_storage<true, false> >::sign_mask
> > (_ZNK16generic_wide_intI20wide_int_ref_storageILb1ELb0EEE9sign_maskEv,
> > funcdef_no=4766, decl_uid=17596, cgraph_uid=3835, symbol_order=4043)
> >  ;; Function hash_table<int_cst_hasher>::find_slot
> > (_ZN10hash_tableI14int_cst_hasherLb0E11xcallocatorE9find_slotERKP9tree_node13
> > insert_option, funcdef_no=4313, decl_uid=145328, cgraph_uid=3382,
> > symbol_order=3590)
> >  ;; Function generic_wide_int<wide_int_storage>::elt
> > (_ZNK16generic_wide_intI16wide_int_storageE3eltEj, funcdef_no=4291,
> > decl_uid=16632, cgraph_uid=3360, symbol_order=3568)
> >  ;; Function wi::neg_p<generic_wide_int<wide_int_storage> >
> > (_ZN2wi5neg_pI16generic_wide_intI16wide_int_storageEEEbRKT_6signop,
> > funcdef_no=4290, decl_uid=148263, cgraph_uid=3359, symbol_order=3567)
> >  ;; Function make_int_cst (_Z12make_int_cstii, funcdef_no=3624,
> > decl_uid=102817, cgraph_uid=2697, symbol_order=2893)
> >  ;; Function wide_int_to_tree_1
> > (_ZL18wide_int_to_tree_1P9tree_nodeRK16generic_wide_intI20wide_int_ref_storag
> > eILb0ELb1EEE, funcdef_no=3573, decl_uid=149059, cgraph_uid=2646,
> > symbol_order=2842)
> >  ;; Function cache_wide_int_in_type_cache
> > (_ZL28cache_wide_int_in_type_cacheP9tree_nodeRK16generic_wide_intI16wide_int_
> > storageEii, funcdef_no=3572, decl_uid=149054, cgraph_uid=2645,
> > symbol_order=2841)
> >  ;; Function int_cst_hasher::equal
> > (_ZN14int_cst_hasher5equalEP9tree_nodeS1_, funcdef_no=3571, decl_uid=144691,
> > cgraph_uid=2644, symbol_order=2840)
> >  ;; Function int_cst_hasher::hash (_ZN14int_cst_hasher4hashEP9tree_node,
> > funcdef_no=3570, decl_uid=144688, cgraph_uid=2643, symbol_order=2839)
> >  ;; Function build_new_int_cst
> > (_ZL17build_new_int_cstP9tree_nodeRK16generic_wide_intI16wide_int_storageE,
> > funcdef_no=3563, decl_uid=148268, cgraph_uid=2636, symbol_order=2832)
> >  ;; Function get_int_cst_ext_nunits
> > (_ZL22get_int_cst_ext_nunitsP9tree_nodeRK16generic_wide_intI16wide_int_storag
> > eE, funcdef_no=3562, decl_uid=148261, cgraph_uid=2635, symbol_order=2831)
> >  ;; Function hash_table_mod1 (_Z15hash_table_mod1jj, funcdef_no=1064,
> > decl_uid=33214, cgraph_uid=353, symbol_order=367)
> >  ;; Function iterative_hash_host_wide_int
> > (_Z28iterative_hash_host_wide_intlj, funcdef_no=1014, decl_uid=32338,
> > cgraph_uid=349, symbol_order=362)
> >  ;; Function default_elf_asm_output_ascii
> > (_Z28default_elf_asm_output_asciiP8_IO_FILEPKcj, funcdef_no=2992,
> > decl_uid=128822, cgraph_uid=2049, symbol_order=2260)
> >  ;; Function cpp_interpret_integer
> > (_Z21cpp_interpret_integerP10cpp_readerPK9cpp_tokenj, funcdef_no=299,
> > decl_uid=14009, cgraph_uid=202, symbol_order=220)
> >  ;; Function nonexistent_file_hash_eq (_ZL24nonexistent_file_hash_eqPKvS0_,
> > funcdef_no=320, decl_uid=15648, cgraph_uid=223, symbol_order=243)
> >  ;; Function filename_cmp (filename_cmp, funcdef_no=25, decl_uid=3122,
> > cgraph_uid=26, symbol_order=25)
> >  ;; Function htab_find_slot_with_hash (htab_find_slot_with_hash,
> > funcdef_no=42, decl_uid=3888, cgraph_uid=43, symbol_order=45)
> >  ;; Function htab_find_with_hash (htab_find_with_hash, funcdef_no=40,
> > decl_uid=3883, cgraph_uid=41, symbol_order=43)
> >  ;; Function find_empty_slot_for_expand (find_empty_slot_for_expand,
> > funcdef_no=38, decl_uid=3946, cgraph_uid=39, symbol_order=41)
> >  ;; Function htab_mod_m2 (htab_mod_m2, funcdef_no=29, decl_uid=3936,
> > cgraph_uid=30, symbol_order=32)
> 
> in the end most of the above could be secondary order effects by getting
> different profile for different generated code?  We profile the stage2
> compiler after all?

Is a different generated code expected? Yes, we profile stage2 compiler.


You are receiving this mail because: