Hi, oprofiling compilation of empty file I get: 48319 59.8126 no-vmlinux /no-vmlinux 3057 3.7842 ld-2.11.1.so do_lookup_x 2935 3.6331 libc-2.11.1.so memset 2921 3.6158 ld-2.11.1.so _dl_relocate_object 1589 1.9670 as /usr/bin/as 1270 1.5721 ld-2.11.1.so _dl_lookup_symbol_x 953 1.1797 cc1 ggc_alloc_stat 671 0.8306 libc-2.11.1.so _int_malloc 610 0.7551 ld-2.11.1.so strcmp 595 0.7365 cc1 ira_init 594 0.7353 libc-2.11.1.so strlen 493 0.6103 cc1 add_builtin_function_common.147729 491 0.6078 cc1 decl_attributes 483 0.5979 libc-2.11.1.so memcpy 452 0.5595 libc-2.11.1.so strcmp 446 0.5521 cc1 init_reg_sets_1.190433 400 0.4951 cc1 pop_scope
It is a lot of dynamic linking. Porifling cc1 binary only it is: 953 8.2525 ggc_alloc_stat 595 5.1524 ira_init 493 4.2691 add_builtin_function_common.147729 491 4.2518 decl_attributes 446 3.8621 init_reg_sets_1.190433 400 3.4638 pop_scope 387 3.3512 ix86_hard_regno_mode_ok 362 3.1347 c_write_global_declarations_1.9246.5242 357 3.0914 do_multiply.182320 328 2.8403 do_add.182279 302 2.6152 rtx_cost 293 2.5372 make_node_stat 258 2.2342 ix86_memory_move_cost.386116.7474 256 2.2168 do_divide.182325 255 2.2082 ht_lookup_with_hash 236 2.0436 ix86_rtx_costs.386572.6577 231 2.0003 bind.9267 223 1.9311 normalize.182203 212 1.8358 iterative_hash 194 1.6799 recog 176 1.5241 htab_find_with_hash 168 1.4548 tree_code_size 167 1.4461 def_builtin_1.17388.constprop.16.4002 132 1.1431 copy_node_stat 125 1.0824 is_attribute_with_length_p._part.7.371469 94 0.8140 debug_nothing_tree 90 0.7794 main 88 0.7620 build_int_cst_wide 80 0.6928 c_builtin_function I guess especially ira initialization can be esially done lazilly on demand like we I for regclass some time ago? The may_move_*_costs can be computed when needed for given mode first time. Note that this is LTO build, so ira_init gets cross module inlining of functions called once into it. Honza -- Summary: ira_initialization and buitins construction taking too much of startup time Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hubicka at gcc dot gnu dot org GCC host triplet: x86_64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44440