This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
GCC memory consumption increased by recent patch!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Sat, 14 May 2005 14:55:37 +0000
- Subject: GCC memory consumption increased by recent patch!
Hi,
Comparing memory consumption on compilation of combine.i and generate-3.4.ii I got:
comparing combine.c compilation at -O0 level:
Overall memory needed: 25000k
Peak memory use before GGC: 9434k
Peak memory use after GGC: 8746k
Maximum of released memory in single GGC run: 2798k
Garbage: 42297k
Leak: 6479k
Overhead: 5872k
GGC runs: 327
comparing combine.c compilation at -O1 level:
Peak amount of GGC memory allocated before garbage collecting increased from 8884k to 8961k, overall 0.87%
Overall memory needed: 27360k -> 27400k
Peak memory use before GGC: 8884k -> 8961k
Peak memory use after GGC: 8543k
Maximum of released memory in single GGC run: 2230k -> 2228k
Garbage: 63369k -> 63055k
Leak: 6839k
Overhead: 7719k -> 7600k
GGC runs: 522 -> 519
comparing combine.c compilation at -O2 level:
Overall memory needed: 19892k
Peak memory use before GGC: 12790k
Peak memory use after GGC: 12534k
Maximum of released memory in single GGC run: 2624k
Garbage: 87971k -> 87676k
Leak: 6654k
Overhead: 11049k -> 10938k
GGC runs: 537 -> 536
comparing combine.c compilation at -O3 level:
Overall memory needed: 22508k -> 22424k
Peak memory use before GGC: 14396k
Peak memory use after GGC: 12941k
Maximum of released memory in single GGC run: 3073k
Garbage: 122530k -> 122068k
Leak: 7133k -> 7117k
Overhead: 15261k -> 15065k
GGC runs: 611 -> 610
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 85872k
Peak memory use before GGC: 74238k
Peak memory use after GGC: 45259k
Maximum of released memory in single GGC run: 38092k
Garbage: 154411k
Leak: 11423k
Overhead: 19887k
GGC runs: 267
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 103528k -> 103284k
Peak memory use before GGC: 81336k
Peak memory use after GGC: 66510k
Maximum of released memory in single GGC run: 35980k -> 35976k
Garbage: 308184k -> 307315k
Leak: 11466k
Overhead: 37959k -> 37567k
GGC runs: 385
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 140460k -> 140456k
Peak memory use before GGC: 107782k
Peak memory use after GGC: 82775k
Maximum of released memory in single GGC run: 35344k
Garbage: 404698k -> 403821k
Leak: 11434k
Overhead: 50826k -> 50431k
GGC runs: 336
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 140496k
Peak memory use before GGC: 107783k
Peak memory use after GGC: 82778k
Maximum of released memory in single GGC run: 35344k
Garbage: 405477k -> 404598k
Leak: 11457k
Overhead: 50949k -> 50552k
GGC runs: 343
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 112060k
Peak memory use before GGC: 87417k
Peak memory use after GGC: 86002k
Maximum of released memory in single GGC run: 20638k
Garbage: 247927k
Leak: 53802k
Overhead: 43074k
GGC runs: 372
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 94624k
Peak memory use before GGC: 86531k
Peak memory use after GGC: 85006k
Maximum of released memory in single GGC run: 20329k
Garbage: 601216k -> 598898k
Leak: 57910k -> 57906k
Overhead: 76690k -> 75697k
GGC runs: 622 -> 620
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 95380k -> 95416k
Peak memory use before GGC: 86532k
Peak memory use after GGC: 85006k
Maximum of released memory in single GGC run: 20329k
Garbage: 706515k -> 704181k
Leak: 58791k
Overhead: 95451k -> 94499k
GGC runs: 748 -> 746
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 95804k -> 95808k
Peak memory use before GGC: 87454k
Peak memory use after GGC: 86288k
Maximum of released memory in single GGC run: 20589k
Garbage: 682929k -> 680685k
Leak: 58921k
Overhead: 94244k -> 93317k
GGC runs: 710 -> 709
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2005-05-14 08:14:20.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2005-05-14 13:52:30.000000000 +0000
@@ -1,5 +1,18 @@
2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
+ * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
+ root_var_init, type_var_init): Use VEC instead of VARRAY.
+ * tree-ssa-live.h (tree_partition_associator_d): Change the
+ type of trees to VEC(tree,heap)*.
+ (tpa_tree): Use VEC instead of VARRAY.
+
+2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * fold-const.c (div_if_zero_remainder): New function.
+ (try_move_mult_to_index): Use it.
+
+2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
+
* tree-eh.c (leh_tf_state): Change the type of dest_array to
VEC(tree,heap)*.
(maybe_record_in_goto_queue, lower_try_finally_onedest,
I am friendly script caring about memory consumption in GCC. Please contact
jh@suse.cz if something is going wrong.
The results can be reproduced by building compiler with
--enable-gather-detailed-mem-stats targetting x86-64 and compiling preprocessed
combine.c or testcase from PR8632 with:
-fmem-report --param=ggc-min-heapsize=1024 --param=ggc-min-expand=1 -Ox -Q
The memory consumption summary appears in the dump after detailed listing of
the places they are allocated in. Peak memory consumption is actually computed
by looking for maximal value in {GC XXXX -> YYYY} report.
Yours testing script.