------- Comment #3 from rguenth at gcc dot gnu dot org 2008-05-19 09:42 -------
This testcase has 1025 loops we create pre-headers for. We insert tons of
asserts for non-NULL pointers due to dereferences (>3074) which all cause
new PHI nodes to be registered during insertion (and nearly the whole program
is rewritten). But most of the time/memory is probably spent within SCEV
analysis (indeed, starting with 4.3 we reset the SCEV cache on each
invocation of adjust_range_with_scev).
>From detailed mem-report we see that also reassociation is causing quite some
garbage:
tree-phinodes.c:155 (allocate_phi_node) 11491552: 0.5% 0:
0.0% 0: 0.0% 454880: 0.4% 29364
fold-const.c:6254 (extract_muldiv_1) 35618816: 1.7% 0:
0.0% 0: 0.0% 0: 0.0% 556544
fold-const.c:2516 (fold_convert) 36274032: 1.7% 0:
0.0% 0: 0.0% 4030448: 4.0% 503806
fold-const.c:7473 (fold_plusminus_mult_expr) 45185024: 2.1% 0:
0.0% 0: 0.0% 0: 0.0% 706016
fold-const.c:1592 (associate_trees) 131797504: 6.2% 0:
0.0% 0: 0.0% 0: 0.0% 2059336
fold-const.c:9743 (fold_binary) 131862976: 6.2% 0:
0.0% 0: 0.0% 0: 0.0% 2060359
tree-chrec.h:149 (build_polynomial_chrec) 183160824: 8.6% 0:
0.0% 0: 0.0% 16650984:16.4% 2081373
tree-chrec.h:149 (build_polynomial_chrec) 198801152: 9.3% 0:
0.0% 0: 0.0% 18072832:17.8% 2259104
fold-const.c:1453 (negate_expr) 445240224:20.9% 0:
0.0% 0: 0.0% 49471136:48.6% 6183892
tree-chrec.c:325 (chrec_fold_plus_1) 782040448:36.7% 0:
0.0% 0: 0.0% 0: 0.0% 12219382
Total 2132008624 486260114
4194416 101771994 59795791
source location Garbage Freed
Leak Overhead Times
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36262