A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Tue Aug 16 07:20:00 GMT 2005
Hi,
I am a friendly script caring about memory consumption in GCC. Please
contact jh@suse.cz if something is going wrong.
Comparing memory consumption on compilation of combine.i, insn-attrtab.i,
and generate-3.4.ii I got:
comparing combine.c compilation at -O0 level:
Overall memory needed: 24825k
Peak memory use before GGC: 9590k
Peak memory use after GGC: 8937k
Maximum of released memory in single GGC run: 2739k
Garbage: 40379k
Leak: 6698k
Overhead: 5813k
GGC runs: 317
comparing combine.c compilation at -O1 level:
Amount of produced GGC garbage increased from 60560k to 60633k, overall 0.12%
Overall memory needed: 26812k
Peak memory use before GGC: 17359k
Peak memory use after GGC: 17173k
Maximum of released memory in single GGC run: 2373k
Garbage: 60560k -> 60633k
Leak: 7082k
Overhead: 7606k -> 7620k
GGC runs: 389
comparing combine.c compilation at -O2 level:
Overall memory needed: 26812k
Peak memory use before GGC: 17361k
Peak memory use after GGC: 17173k
Maximum of released memory in single GGC run: 2459k
Garbage: 75209k -> 75281k
Leak: 7432k
Overhead: 9893k -> 9907k
GGC runs: 459
comparing combine.c compilation at -O3 level:
Amount of produced GGC garbage increased from 106472k to 106597k, overall 0.12%
Overall memory needed: 26812k
Peak memory use before GGC: 18416k
Peak memory use after GGC: 18108k
Maximum of released memory in single GGC run: 3496k
Garbage: 106472k -> 106597k
Leak: 7537k
Overhead: 13560k -> 13585k
GGC runs: 518
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 81076k
Peak memory use before GGC: 69691k
Peak memory use after GGC: 45002k
Maximum of released memory in single GGC run: 36475k
Garbage: 147322k
Leak: 9851k
Overhead: 19857k
GGC runs: 251
comparing insn-attrtab.c compilation at -O1 level:
Amount of produced GGC garbage increased from 290390k to 290800k, overall 0.14%
Overall memory needed: 112512k -> 112112k
Peak memory use before GGC: 94162k
Peak memory use after GGC: 83709k
Maximum of released memory in single GGC run: 32587k
Garbage: 290390k -> 290800k
Leak: 10077k
Overhead: 36716k -> 36798k
GGC runs: 245
comparing insn-attrtab.c compilation at -O2 level:
Amount of produced GGC garbage increased from 335822k to 336231k, overall 0.12%
Overall memory needed: 120324k
Peak memory use before GGC: 94288k
Peak memory use after GGC: 83882k
Maximum of released memory in single GGC run: 32535k
Garbage: 335822k -> 336231k
Leak: 10087k
Overhead: 44964k -> 45046k
GGC runs: 273
comparing insn-attrtab.c compilation at -O3 level:
Amount of produced GGC garbage increased from 336378k to 336787k, overall 0.12%
Overall memory needed: 120444k
Peak memory use before GGC: 94313k
Peak memory use after GGC: 83907k
Maximum of released memory in single GGC run: 32855k
Garbage: 336378k -> 336787k
Leak: 10106k
Overhead: 45113k -> 45195k
GGC runs: 275
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 118616k
Peak memory use before GGC: 95329k
Peak memory use after GGC: 94374k
Maximum of released memory in single GGC run: 20170k
Garbage: 226620k
Leak: 49361k
Overhead: 36902k
GGC runs: 342
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 105708k
Peak memory use before GGC: 94383k
Peak memory use after GGC: 93446k
Maximum of released memory in single GGC run: 19454k
Garbage: 573947k -> 573986k
Leak: 55682k
Overhead: 68217k -> 68225k
GGC runs: 491
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 105724k
Peak memory use before GGC: 94383k
Peak memory use after GGC: 93446k
Maximum of released memory in single GGC run: 19454k
Garbage: 647605k -> 647561k
Leak: 56454k -> 56455k
Overhead: 78853k -> 78860k
GGC runs: 547 -> 546
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 109532k -> 109528k
Peak memory use before GGC: 95464k
Peak memory use after GGC: 94518k
Maximum of released memory in single GGC run: 19608k
Garbage: 700604k -> 700641k
Leak: 57432k
Overhead: 83615k -> 83622k
GGC runs: 553
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2005-08-15 19:27:15.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2005-08-16 06:11:36.000000000 +0000
@@ -1,3 +1,39 @@
+2005-08-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/23369
+ * fold-const.c (build_range_check): Disable optimization for function
+ pointer expressions on targets that require function pointer
+ canonicalization.
+
+2005-08-15 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * simplify-rtx.c (simplify_const_relational_operation): When
+ extracting arguments of a COMPARE, recompute the mode as well.
+
+2005-08-15 Ian Lance Taylor <ian@airs.com>
+
+ * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
+
+2005-08-15 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/mov.md (movqi_op): Immediates can't be moved to
+ the stack.
+ (movsi_splittable): Allow, but split, moves to the stack.
+ * config/m32c/m32c.c (m32c_split_move): Always split moves to the
+ stack.
+
+2005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
+ * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
+ * system.h (HOST_PTR_PRINTF): Don't define, poison it.
+
+ * bitmap.c, c-decl.c, config/i386/i386-interix.h,
+ config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
+ Delete HOST_PTR_PRINTF.
+
+ * configure, config.in: Regenerate.
+
2005-08-15 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (QHSI): New mode macro.
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2005-08-16 00:01:02.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2005-08-16 06:11:37.000000000 +0000
@@ -1,3 +1,7 @@
+2005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
+
2005-08-15 Fariborz Jahanian <fjahanian@apple.com>
* cp-tree.h (can_convert_arg, fn_type_unification): New argument.
The results can be reproduced by building a 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.
Your testing script.
More information about the Gcc-regression
mailing list