http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375
--- Comment #125 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-05-11 08:44:51 UTC --- (In reply to comment #122) > oprofile shows: > 139188 15.6963 lto1 lto1 > uniquify_nodes > 66390 7.4868 lto1 lto1 > estimate_edge_growth > 52815 5.9560 lto1 lto1 > VEC_edge_growth_cache_entry_base_length > 47137 5.3157 lto1 lto1 > iterative_hash_hashval_t > 34037 3.8384 lto1 lto1 > htab_find_slot_with_hash > 33604 3.7895 lto1 lto1 > bp_unpack_value > 26584 2.9979 lto1 lto1 > do_estimate_growth_1 > 21410 2.4144 lto1 lto1 > ggc_set_mark > 17124 1.9311 lto1 lto1 > inflate_fast > 14464 1.6311 lto1 lto1 > streamer_read_uhwi > 14204 1.6018 lto1 lto1 > lookup_page_table_entry > 11430 1.2890 libc-2.11.1.so libc-2.11.1.so memset > 11405 1.2861 lto1 lto1 > streamer_read_hwi_in_range > 11286 1.2727 lto1 lto1 > gt_ggc_mx_lang_tree_node > 11017 1.2424 lto1 lto1 > iterative_hash_gimple_type > 10851 1.2237 lto1 lto1 > pointer_map_insert > 10674 1.2037 lto1 lto1 > lto_input_tree > 10536 1.1881 lto1 lto1 > ht_lookup_with_hash > 10269 1.1580 lto1 lto1 > streamer_read_uchar > 9972 1.1245 lto1 lto1 > streamer_read_uchar > 9089 1.0250 libc-2.11.1.so libc-2.11.1.so > _int_malloc > 9086 1.0246 lto1 lto1 alloc_page > 6603 0.7446 lto1 lto1 > VEC_edge_growth_cache_entry_base_index > > looks like uniquify_nodes got out of control? Well - the obvious possibly "slow" part of uniquify nodes is that it walks all fields of record/union types. So - do you have a more detailed profile of uniquify_nodes?