This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
A recent patch increased GCC's memory consumption!
- From: gcctest at suse dot de
- To: jh at suse dot cz, hubicka at ucw dot cz, gcc-regression at gcc dot gnu dot org
- Date: Wed, 13 May 2009 22:00:32 +0000
- Subject: A recent patch increased GCC's memory consumption!
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 empty function compilation at -O0 level:
Overall memory needed: 8801k
Peak memory use before GGC: 1488k
Peak memory use after GGC: 1437k
Maximum of released memory in single GGC run: 85k
Garbage: 218k
Leak: 1537k
Overhead: 187k
GGC runs: 4
Pre-IPA-Garbage: 210k
Pre-IPA-Leak: 1539k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 210k
Post-IPA-Leak: 1539k
Post-IPA-Overhead: 186k
comparing empty function compilation at -O0 -g level:
Overall memory needed: 8825k
Peak memory use before GGC: 1516k
Peak memory use after GGC: 1464k
Maximum of released memory in single GGC run: 87k
Garbage: 219k
Leak: 1570k
Overhead: 192k
GGC runs: 4
Pre-IPA-Garbage: 210k
Pre-IPA-Leak: 1539k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 210k
Post-IPA-Leak: 1539k
Post-IPA-Overhead: 186k
comparing empty function compilation at -O1 level:
Overall memory needed: 8929k
Peak memory use before GGC: 1488k
Peak memory use after GGC: 1437k
Maximum of released memory in single GGC run: 87k
Garbage: 221k
Leak: 1537k
Overhead: 188k
GGC runs: 4
Pre-IPA-Garbage: 210k
Pre-IPA-Leak: 1540k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 210k
Post-IPA-Leak: 1540k
Post-IPA-Overhead: 186k
comparing empty function compilation at -O2 level:
Overall memory needed: 8929k -> 8925k
Peak memory use before GGC: 1488k
Peak memory use after GGC: 1437k
Maximum of released memory in single GGC run: 92k
Garbage: 226k
Leak: 1537k
Overhead: 189k
GGC runs: 4
Pre-IPA-Garbage: 210k
Pre-IPA-Leak: 1540k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 210k
Post-IPA-Leak: 1540k
Post-IPA-Overhead: 186k
comparing empty function compilation at -O3 level:
Overall memory needed: 8925k -> 8933k
Peak memory use before GGC: 1488k
Peak memory use after GGC: 1437k
Maximum of released memory in single GGC run: 92k
Garbage: 226k
Leak: 1537k
Overhead: 189k
GGC runs: 4
Pre-IPA-Garbage: 210k
Pre-IPA-Leak: 1540k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 210k
Post-IPA-Leak: 1540k
Post-IPA-Overhead: 186k
comparing combine.c compilation at -O0 level:
Amount of memory still referenced at the end of compilation increased from 7155k to 7171k, overall 0.22%
Overall memory needed: 31445k
Peak memory use before GGC: 17469k
Peak memory use after GGC: 17020k
Maximum of released memory in single GGC run: 1910k
Garbage: 37902k -> 37903k
Leak: 7155k -> 7171k
Overhead: 5492k -> 5492k
GGC runs: 330 -> 331
Pre-IPA-Garbage: 12539k
Pre-IPA-Leak: 18401k
Pre-IPA-Overhead: 2507k
Post-IPA-Garbage: 12539k
Post-IPA-Leak: 18401k
Post-IPA-Overhead: 2507k
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 33401k
Peak memory use before GGC: 19377k
Peak memory use after GGC: 18859k
Maximum of released memory in single GGC run: 1920k
Garbage: 38118k
Leak: 10441k
Overhead: 6305k -> 6305k
GGC runs: 315
Pre-IPA-Garbage: 12558k
Pre-IPA-Leak: 20650k
Pre-IPA-Overhead: 2989k
Post-IPA-Garbage: 12558k
Post-IPA-Leak: 20650k
Post-IPA-Overhead: 2989k
comparing combine.c compilation at -O1 level:
Overall memory needed: 31781k -> 31869k
Peak memory use before GGC: 16476k
Peak memory use after GGC: 16310k
Maximum of released memory in single GGC run: 1378k
Garbage: 45344k
Leak: 7155k
Overhead: 6390k -> 6390k
GGC runs: 387
Pre-IPA-Garbage: 12959k
Pre-IPA-Leak: 17620k
Pre-IPA-Overhead: 2503k
Post-IPA-Garbage: 12959k
Post-IPA-Leak: 17620k
Post-IPA-Overhead: 2503k
comparing combine.c compilation at -O2 level:
Overall memory needed: 32817k -> 33033k
Peak memory use before GGC: 16539k
Peak memory use after GGC: 16375k
Maximum of released memory in single GGC run: 1489k
Garbage: 56246k
Leak: 7188k
Overhead: 8014k -> 8015k
GGC runs: 442
Pre-IPA-Garbage: 13011k
Pre-IPA-Leak: 17643k
Pre-IPA-Overhead: 2509k
Post-IPA-Garbage: 13011k
Post-IPA-Leak: 17643k
Post-IPA-Overhead: 2509k
comparing combine.c compilation at -O3 level:
Overall memory needed: 33433k -> 33317k
Peak memory use before GGC: 16508k
Peak memory use after GGC: 16341k
Maximum of released memory in single GGC run: 1672k
Garbage: 65057k
Leak: 7211k
Overhead: 9286k -> 9286k
GGC runs: 471
Pre-IPA-Garbage: 13011k
Pre-IPA-Leak: 17643k
Pre-IPA-Overhead: 2509k
Post-IPA-Garbage: 13011k
Post-IPA-Leak: 17643k
Post-IPA-Overhead: 2509k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 152469k -> 152501k
Peak memory use before GGC: 65254k
Peak memory use after GGC: 52818k
Maximum of released memory in single GGC run: 26250k
Garbage: 128573k
Leak: 9587k
Overhead: 16691k
GGC runs: 259
Pre-IPA-Garbage: 40782k
Pre-IPA-Leak: 51014k
Pre-IPA-Overhead: 7761k
Post-IPA-Garbage: 40782k
Post-IPA-Leak: 51014k
Post-IPA-Overhead: 7761k
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 153817k
Peak memory use before GGC: 66520k
Peak memory use after GGC: 54081k
Maximum of released memory in single GGC run: 26251k
Garbage: 128911k
Leak: 11219k
Overhead: 17144k
GGC runs: 253
Pre-IPA-Garbage: 40791k
Pre-IPA-Leak: 52539k
Pre-IPA-Overhead: 8091k
Post-IPA-Garbage: 40791k
Post-IPA-Leak: 52539k
Post-IPA-Overhead: 8091k
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 154685k
Peak memory use before GGC: 54960k
Peak memory use after GGC: 44890k
Maximum of released memory in single GGC run: 17233k
Garbage: 180932k
Leak: 9178k
Overhead: 23406k
GGC runs: 298
Pre-IPA-Garbage: 45067k
Pre-IPA-Leak: 45085k
Pre-IPA-Overhead: 7586k
Post-IPA-Garbage: 45067k
Post-IPA-Leak: 45085k
Post-IPA-Overhead: 7586k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 202233k -> 202017k
Peak memory use before GGC: 54409k
Peak memory use after GGC: 44640k
Maximum of released memory in single GGC run: 18700k
Garbage: 211511k
Leak: 9192k
Overhead: 29281k -> 29281k
GGC runs: 331
Pre-IPA-Garbage: 45129k
Pre-IPA-Leak: 45092k
Pre-IPA-Overhead: 7591k
Post-IPA-Garbage: 45129k
Post-IPA-Leak: 45092k
Post-IPA-Overhead: 7591k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 202049k -> 202233k
Peak memory use before GGC: 54409k
Peak memory use after GGC: 44640k
Maximum of released memory in single GGC run: 18698k
Garbage: 212732k
Leak: 9199k
Overhead: 29673k -> 29673k
GGC runs: 339
Pre-IPA-Garbage: 45129k
Pre-IPA-Leak: 45092k
Pre-IPA-Overhead: 7591k
Post-IPA-Garbage: 45129k
Post-IPA-Leak: 45092k
Post-IPA-Overhead: 7591k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 145925k -> 145917k
Peak memory use before GGC: 81663k
Peak memory use after GGC: 80854k
Maximum of released memory in single GGC run: 13633k
Garbage: 197870k -> 197870k
Leak: 55388k
Overhead: 28221k
GGC runs: 447
Pre-IPA-Garbage: 110139k
Pre-IPA-Leak: 84448k
Pre-IPA-Overhead: 14991k
Post-IPA-Garbage: 110139k
Post-IPA-Leak: 84448k
Post-IPA-Overhead: 14991k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 163849k -> 163885k
Peak memory use before GGC: 95804k
Peak memory use after GGC: 94854k
Maximum of released memory in single GGC run: 13895k
Garbage: 203198k -> 203198k
Leak: 82480k
Overhead: 34783k -> 34783k
GGC runs: 419
Pre-IPA-Garbage: 110724k
Pre-IPA-Leak: 100969k
Pre-IPA-Overhead: 18496k
Post-IPA-Garbage: 110724k
Post-IPA-Leak: 100969k
Post-IPA-Overhead: 18496k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 107297k -> 107309k
Peak memory use before GGC: 81692k
Peak memory use after GGC: 80879k -> 80871k
Maximum of released memory in single GGC run: 13476k
Garbage: 258326k -> 258326k
Leak: 52198k
Overhead: 29637k -> 29637k
GGC runs: 515
Pre-IPA-Garbage: 149436k
Pre-IPA-Leak: 85862k
Pre-IPA-Overhead: 17966k
Post-IPA-Garbage: 149436k
Post-IPA-Leak: 85862k
Post-IPA-Overhead: 17966k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 106877k -> 107325k
Peak memory use before GGC: 81618k -> 81617k
Peak memory use after GGC: 80159k
Maximum of released memory in single GGC run: 13480k
Garbage: 296591k -> 296591k
Leak: 52281k
Overhead: 34690k -> 34690k
GGC runs: 561
Pre-IPA-Garbage: 152499k
Pre-IPA-Leak: 84967k
Pre-IPA-Overhead: 18176k
Post-IPA-Garbage: 152499k
Post-IPA-Leak: 84967k
Post-IPA-Overhead: 18176k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 107505k
Peak memory use before GGC: 82078k
Peak memory use after GGC: 80162k
Maximum of released memory in single GGC run: 13480k
Garbage: 313881k -> 313882k
Leak: 52290k
Overhead: 37002k -> 37002k
GGC runs: 581
Pre-IPA-Garbage: 152499k
Pre-IPA-Leak: 84971k
Pre-IPA-Overhead: 18177k
Post-IPA-Garbage: 152499k
Post-IPA-Leak: 84971k
Post-IPA-Overhead: 18177k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 358697k -> 358725k
Peak memory use before GGC: 78173k
Peak memory use after GGC: 49107k
Maximum of released memory in single GGC run: 37057k
Garbage: 140058k
Leak: 7711k
Overhead: 25004k
GGC runs: 86
Pre-IPA-Garbage: 12038k
Pre-IPA-Leak: 18626k
Pre-IPA-Overhead: 2447k
Post-IPA-Garbage: 12038k
Post-IPA-Leak: 18626k
Post-IPA-Overhead: 2447k
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 358425k -> 359561k
Peak memory use before GGC: 78856k
Peak memory use after GGC: 49791k
Maximum of released memory in single GGC run: 37041k
Garbage: 140124k
Leak: 9707k
Overhead: 25573k
GGC runs: 94
Pre-IPA-Garbage: 12040k
Pre-IPA-Leak: 18873k
Pre-IPA-Overhead: 2500k
Post-IPA-Garbage: 12040k
Post-IPA-Leak: 18873k
Post-IPA-Overhead: 2500k
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 208641k -> 208637k
Peak memory use before GGC: 74131k
Peak memory use after GGC: 69415k
Maximum of released memory in single GGC run: 35390k
Garbage: 215892k
Leak: 9258k
Overhead: 32795k
GGC runs: 95
Pre-IPA-Garbage: 39202k
Pre-IPA-Leak: 63682k
Pre-IPA-Overhead: 6995k
Post-IPA-Garbage: 39202k
Post-IPA-Leak: 63682k
Post-IPA-Overhead: 6995k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 533557k -> 530229k
Peak memory use before GGC: 74132k
Peak memory use after GGC: 69415k
Maximum of released memory in single GGC run: 37540k
Garbage: 255641k
Leak: 9008k
Overhead: 38354k
GGC runs: 106
Pre-IPA-Garbage: 89544k
Pre-IPA-Leak: 80238k
Pre-IPA-Overhead: 11099k
Post-IPA-Garbage: 89544k
Post-IPA-Leak: 80238k
Post-IPA-Overhead: 11099k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1234989k -> 1234013k
Peak memory use before GGC: 134702k
Peak memory use after GGC: 126430k
Maximum of released memory in single GGC run: 54316k
Garbage: 340036k
Leak: 10282k
Overhead: 43411k
GGC runs: 106
Pre-IPA-Garbage: 89544k
Pre-IPA-Leak: 80238k
Pre-IPA-Overhead: 11099k
Post-IPA-Garbage: 89544k
Post-IPA-Leak: 80238k
Post-IPA-Overhead: 11099k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-haydn-memory/x86_64/mem-result/ChangeLog 2009-05-13 08:04:03.000000000 +0000
+++ /usr/src/SpecTests/sandbox-haydn-memory/gcc/gcc/ChangeLog 2009-05-13 19:52:51.000000000 +0000
@@ -1,3 +1,25 @@
+2009-05-13 Janis Johnson <janis187@us.ibm.com>
+
+ * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
+ (handle_stdc_pragma): Use new enum constant names.
+ (handle_pragma_float_const_decimal64): Ditto.
+
+2009-05-13 Ian Lance Taylor <iant@google.com>
+
+ * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
+ tree.def.
+
+2009-05-13 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
+ * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
+ multilibs.
+ * config/m68k/m68k.h (FL_UCLINUX): Define.
+
+2009-05-13 Jan Hubicka <jh@suse.cz>
+
+ * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
+
2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
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.