------- Comment #26 from rguenth at gcc dot gnu dot org 2008-01-08 11:06 ------- We do a _lot_ of calls to var_ann during the compilation:
Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 39.79 30.12 30.12 1311048 0.00 0.00 ggc_alloc_stat 12.62 39.67 9.55 34186814 0.00 0.00 add_vars_for_offset 5.77 44.04 4.37 331206978 0.00 0.00 var_ann so var_ann is not inlined despite of it being declared as such. 0.00 0.00 35522/331206978 add_to_addressable_set [318] 1.58 0.00 119702754/331206978 add_virtual_operand [12] 2.79 0.00 211468702/331206978 add_vars_for_offset [17] [39] 5.8 4.37 0.00 331206978 var_ann [39] 0.00 0.00 119615/96446282 htab_find_with_hash <cycle 34> [46] So, the add_vars_for_offset loop is resposible for most of the calls (unsurprisingly), and most of the calls are not for global vars. Making sure this call gets inlined brings another 5s of compile-time. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34683