This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Huge compile time & run time performance regression 3.3 -> HEAD
- From: Richard Guenther <rguenth at tat dot physik dot uni-tuebingen dot de>
- To: gcc at gcc dot gnu dot org
- Date: Sun, 18 May 2003 21:21:36 +0200 (CEST)
- Subject: Re: Huge compile time & run time performance regression 3.3 -> HEAD
On Sun, 18 May 2003, Richard Guenther wrote:
> On Sun, 18 May 2003, Richard Guenther wrote:
>
> > Hi!
> >
> > As 3.3 is now out, I start comparing 3.3 to HEAD wrt compile time
> > performance and performance of the resulting code. As always these
> > comparisons are for a POOMA based scientific application.
> >
> > I experience a 100% compile time regression (673.50s -> 1284.48s) and
> > a 12% runtime performance regression (150s -> 171s) when comparing
> > gcc3.3 to HEAD.
> >
> > Time reports follow, the most prominent regressions are expand, global CSE
> > (>300%!), loop analysis and branch prediction.
>
> Top of a profile of gcc3.4 is
>
> Flat profile:
>
> Each sample counts as 0.01 seconds.
> % cumulative self self total
> time seconds seconds calls s/call s/call name
> 7.47 79.18 79.18 906 0.09 0.09 compute_store_table
> 6.92 152.54 73.36 262785751 0.00 0.00 expr_equiv_p
> 6.76 224.21 71.67 170098 0.00 0.00 fixup_var_refs_insns
> 5.58 283.38 59.17 12865 0.00 0.00 loop_regs_scan
> 4.39 329.97 46.59 364279 0.00 0.00 compute_transp
> 4.10 373.46 43.49 308470718 0.00 0.00
> splay_tree_splay_helper
> 3.27 408.15 34.69 201411415 0.00 0.00 fixup_var_refs_1
> 3.02 440.22 32.07 192083288 0.00 0.00 true_dependence
> 2.88 470.76 30.54 232168274 0.00 0.00
> mems_in_disjoint_alias_sets_p
Compared to a 3.3 profile:
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
8.08 45.30 45.30 272942 0.17 0.17 compute_transp
7.15 85.38 40.08 263012170 0.00 0.00
splay_tree_splay_helper
5.62 116.92 31.54 165540544 0.00 0.00 true_dependence
4.72 143.36 26.44 203228718 0.00 0.00
mems_in_disjoint_alias_sets_p
3.80 164.68 21.32 171556 0.12 0.12 clear_table
3.61 184.92 20.24 9131 2.22 2.69 loop_regs_update
3.46 204.34 19.42 3012195 0.01 0.01
invalid_mode_change_p
3.04 221.36 17.02 605912 0.03 0.04 htab_traverse
2.65 236.24 14.88 372632 0.04 0.04 alloc_page
2.05 247.74 11.50 3644058 0.00 0.01
gt_ggc_mx_lang_tree_node
1.81 257.88 10.14 4977 2.04 2.20 unroll_loop
1.80 267.97 10.09 1344607967 0.00 0.00
splay_tree_compare_ints
1.80 278.04 10.07 105168704 0.00 0.00
htab_find_slot_with_hash
1.59 286.94 8.90 5214165 0.00 0.00 loop_invariant_p
gcc3.4
> 6.92 152.54 73.36 262785751 0.00 0.00 expr_equiv_p
seems to be the culprit.
Full gcc3.3 profile at
http://www.tat.physik.uni-tuebingen.de/~rguenth/gcc/profile_33.gz
Richard.