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, 12 Feb 2005 04:31:31 +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:
Amount of memory still referenced at the end of compilation increased from 6391k to 6410k, overall 0.30%
Overall memory needed: 24653k -> 24657k
Peak memory use before GGC: 9354k -> 9358k
Peak memory use after GGC: 8668k -> 8672k
Maximum of released memory in single GGC run: 2864k
Garbage: 41669k -> 41650k
Leak: 6391k -> 6410k
Overhead: 5772k -> 5773k
GGC runs: 328 -> 327
comparing combine.c compilation at -O1 level:
Overall memory needed: 25541k -> 25509k
Peak memory use before GGC: 9231k -> 9235k
Peak memory use after GGC: 8736k -> 8739k
Maximum of released memory in single GGC run: 2029k -> 2028k
Garbage: 60295k -> 60284k
Leak: 6751k -> 6755k
Overhead: 9904k -> 9904k
GGC runs: 501 -> 500
comparing combine.c compilation at -O2 level:
Overall memory allocated via mmap and sbrk increased from 28805k to 29153k, overall 1.21%
Overall memory needed: 28805k -> 29153k
Peak memory use before GGC: 12666k -> 12670k
Peak memory use after GGC: 12540k -> 12544k
Maximum of released memory in single GGC run: 2597k
Garbage: 78450k -> 78459k
Leak: 6588k -> 6591k
Overhead: 14032k -> 14032k
GGC runs: 513 -> 511
comparing combine.c compilation at -O3 level:
Overall memory needed: 31585k -> 31573k
Peak memory use before GGC: 12769k -> 12772k
Peak memory use after GGC: 12540k -> 12544k
Maximum of released memory in single GGC run: 3407k
Garbage: 105847k -> 105855k
Leak: 7096k -> 7099k
Overhead: 18831k -> 18832k
GGC runs: 581
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 114132k -> 114136k
Peak memory use before GGC: 74743k -> 74746k
Peak memory use after GGC: 45489k -> 45492k
Maximum of released memory in single GGC run: 39341k -> 39340k
Garbage: 152665k -> 152670k
Leak: 10979k -> 10983k
Overhead: 19970k -> 19970k
GGC runs: 274
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 124248k -> 124228k
Peak memory use before GGC: 78751k -> 78755k
Peak memory use after GGC: 70098k -> 70102k
Maximum of released memory in single GGC run: 40780k -> 40779k
Garbage: 366123k -> 366124k
Leak: 11356k -> 11360k
Overhead: 69302k -> 69303k
GGC runs: 396
comparing insn-attrtab.c compilation at -O2 level:
Amount of memory still referenced at the end of compilation increased from 11237k to 11249k, overall 0.10%
Overall memory needed: 147420k -> 147352k
Peak memory use before GGC: 98352k -> 98359k
Peak memory use after GGC: 83469k -> 83476k
Maximum of released memory in single GGC run: 39384k
Garbage: 480550k -> 480527k
Leak: 11237k -> 11249k
Overhead: 84546k -> 84546k
GGC runs: 340
comparing insn-attrtab.c compilation at -O3 level:
Amount of memory still referenced at the end of compilation increased from 11275k to 11286k, overall 0.10%
Overall memory needed: 147412k -> 147372k
Peak memory use before GGC: 98354k -> 98361k
Peak memory use after GGC: 83470k -> 83478k
Maximum of released memory in single GGC run: 39384k
Garbage: 481356k -> 481342k
Leak: 11275k -> 11286k
Overhead: 84675k -> 84676k
GGC runs: 346
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 111048k -> 111052k
Peak memory use before GGC: 87151k -> 87155k
Peak memory use after GGC: 85890k -> 85894k
Maximum of released memory in single GGC run: 19511k
Garbage: 246094k -> 246084k
Leak: 55517k -> 55521k
Overhead: 43324k -> 43324k
GGC runs: 366
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 103897k -> 103893k
Peak memory use before GGC: 86009k -> 86013k
Peak memory use after GGC: 85108k -> 85112k
Maximum of released memory in single GGC run: 18951k
Garbage: 433609k -> 433536k
Leak: 56851k -> 56855k
Overhead: 64544k -> 64544k
GGC runs: 511
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 104113k -> 104121k
Peak memory use before GGC: 86009k -> 86013k
Peak memory use after GGC: 85109k -> 85113k
Maximum of released memory in single GGC run: 18950k -> 18951k
Garbage: 476184k -> 476214k
Leak: 57419k -> 57423k
Overhead: 74274k -> 74277k
GGC runs: 573
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 105205k
Peak memory use before GGC: 87145k -> 87149k
Peak memory use after GGC: 86188k -> 86192k
Maximum of released memory in single GGC run: 19399k -> 19400k
Garbage: 480820k -> 480837k
Leak: 57558k -> 57560k
Overhead: 74874k -> 74876k
GGC runs: 557
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2005-02-11 22:14:03.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2005-02-12 03:32:49.000000000 +0000
@@ -1,3 +1,33 @@
+2005-02-12 Hans-Peter Nilsson <hp@axis.com>
+
+ PR regression/19898.
+ * config/cris/cris.c (cris_notice_update_cc): When testing if insn
+ changes cc_status, use apply modified_in_p to part of cc_status
+ and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
+ body.
+
+2005-02-11 Richard Henderson <rth@redhat.com>
+
+ * tree-complex.c (expand_complex_libcall): New.
+ (expand_complex_multiplication): Use it for c99 compliance.
+ (expand_complex_division): Likewise.
+ * fold-const.c (fold_complex_add, fold_complex_mult): New.
+ (fold): Call them.
+ * builtins.c (built_in_names): Remove const.
+ * tree.c (build_common_builtin_nodes): Build complex arithmetic
+ builtins.
+ * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
+ (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
+ (built_in_names): Remove const.
+ * c-common.c (c_common_type_for_mode): Handle complex modes.
+ * flags.h, toplev.c (flag_complex_method): Rename from
+ flag_complex_divide_method.
+ * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
+ __mulsc3, __muldc3, __mulxc3, __multc3): New.
+ * libgcc2.h: Declare them.
+ * libgcc-std.ver: Export them.
+ * mklibgcc.in (lib2funcs): Build them.
+
2005-02-11 Steven Bosscher <stevenb@suse.de>
PR tree-optimization/19876
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.