http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375
--- Comment #94 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-05-20 15:30:38 UTC --- Callgrinding htab_find_slot_with_hash leads to: 2,535,276,742 < /libiberty/hashtab.c:htab_find_slot'2 (27545437x) [//lto1] 84,947,655,239 < /libiberty/hashtab.c:htab_find_slot (52919141x) [//lto1] 7,097,218,396 * /libiberty/hashtab.c:htab_find_slot_with_hash [//lto1] 172,769,366 < /gcc/gimple.c:iterative_hash_gimple_type'2 (1062343x) [//lto1] 172,240,553 < /gcc/gimple.c:iterative_hash_canonical_type'2 (1385651x) [//lto1] 577,192,890 < /gcc/gimple.c:iterative_hash_gimple_type (3503598x) [//lto1] 272,475,796 < /gcc/gimple.c:visit'2 (2487924x) [//lto1] 5,719,882,429 < /gcc/gimple.c:gimple_type_hash (54720792x) [//lto1] 220,431,173 < /gcc/gimple.c:iterative_hash_canonical_type (1878732x) [//lto1] 1,049,746,336 < /gcc/gimple.c:visit (10902158x) [//lto1] 1,366,941,564 * /libiberty/hashtab.c:htab_find_slot'2 [//lto1] 1,663,235,593 < /gcc/gimple.c:gimple_register_canonical_type (1841890x) [//lto1] 9,524,617,674 < /gcc/lto-streamer-in.c:lto_input_location (11940149x) [//lto1] 88,359,773,304 < /gcc/gimple.c:gimple_register_type_1 (6184225x) [//lto1] 919,314,384 < /gcc/tree.c:build_int_cst_wide (2665535x) [//lto1] 337,283,088 < /gcc/cgraph.c:cgraph_get_node_or_alias (2410404x) [//lto1] 1,856,067,526 < /gcc/lto/lto.c:remember_with_vars (10704387x) [//lto1] 265,696,672 < /gcc/lto-symtab.c:lto_symtab_register_decl (2471602x) [//lto1] 1,020,331,990 < /gcc/lto-symtab.c:lto_symtab_get (10402341x) [//lto1] 952,544,538 * /libiberty/hashtab.c:htab_find_slot [//lto1] So gimple_type_hash (54 million), input_locaiton and remember_with_vars (with about 10 million) seems to be major (ab)users of hashing now. For malloc abuse, the major source is pointer_map_create (66 million calls), and vec_heap_o_reserve_1 (23 million) and obstack_begin (22 million) that leads to... 30,424,353,893 < /gcc/gimple.c:gimple_type_eq (18852945x) [//lto1] 5,578,574,652 < /gcc/gimple.c:gimple_type_hash (3452343x) [//lto1] 401,735,124 * /gcc/pointer-set.c:pointer_map_create [//lto1]