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: Thu, 28 May 2009 13:21:49 +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: 90k
Garbage: 223k
Leak: 1537k
Overhead: 188k
GGC runs: 4
Pre-IPA-Garbage: 212k
Pre-IPA-Leak: 1540k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 212k
Post-IPA-Leak: 1540k
Post-IPA-Overhead: 186k
comparing empty function compilation at -O2 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: 90k
Garbage: 228k
Leak: 1537k
Overhead: 189k
GGC runs: 5
Pre-IPA-Garbage: 212k
Pre-IPA-Leak: 1540k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 212k
Post-IPA-Leak: 1540k
Post-IPA-Overhead: 186k
comparing empty function compilation at -O3 level:
Overall memory needed: 8929k -> 8933k
Peak memory use before GGC: 1488k
Peak memory use after GGC: 1437k
Maximum of released memory in single GGC run: 90k
Garbage: 228k
Leak: 1537k
Overhead: 189k
GGC runs: 5
Pre-IPA-Garbage: 212k
Pre-IPA-Leak: 1540k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 212k
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: 31457k
Peak memory use before GGC: 17478k
Peak memory use after GGC: 17029k
Maximum of released memory in single GGC run: 1911k
Garbage: 37895k
Leak: 7155k -> 7171k
Overhead: 5491k -> 5490k
GGC runs: 331
Pre-IPA-Garbage: 12530k
Pre-IPA-Leak: 18411k
Pre-IPA-Overhead: 2504k
Post-IPA-Garbage: 12530k
Post-IPA-Leak: 18411k
Post-IPA-Overhead: 2504k
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 33369k -> 33401k
Peak memory use before GGC: 19386k
Peak memory use after GGC: 18869k
Maximum of released memory in single GGC run: 1920k
Garbage: 38110k
Leak: 10441k
Overhead: 6303k
GGC runs: 315
Pre-IPA-Garbage: 12549k
Pre-IPA-Leak: 20660k
Pre-IPA-Overhead: 2986k
Post-IPA-Garbage: 12549k
Post-IPA-Leak: 20660k
Post-IPA-Overhead: 2986k
comparing combine.c compilation at -O1 level:
Overall memory needed: 31965k -> 31993k
Peak memory use before GGC: 16555k
Peak memory use after GGC: 16383k
Maximum of released memory in single GGC run: 1378k
Garbage: 45806k
Leak: 7156k
Overhead: 6440k -> 6440k
GGC runs: 388
Pre-IPA-Garbage: 13405k
Pre-IPA-Leak: 17702k
Pre-IPA-Overhead: 2552k
Post-IPA-Garbage: 13405k
Post-IPA-Leak: 17702k
Post-IPA-Overhead: 2552k
comparing combine.c compilation at -O2 level:
Overall memory needed: 32877k -> 32857k
Peak memory use before GGC: 16628k
Peak memory use after GGC: 16454k
Maximum of released memory in single GGC run: 1488k
Garbage: 56651k -> 56651k
Leak: 7188k
Overhead: 8057k -> 8057k
GGC runs: 441
Pre-IPA-Garbage: 13435k
Pre-IPA-Leak: 17724k
Pre-IPA-Overhead: 2555k
Post-IPA-Garbage: 13435k
Post-IPA-Leak: 17724k
Post-IPA-Overhead: 2555k
comparing combine.c compilation at -O3 level:
Overall memory needed: 37029k -> 36769k
Peak memory use before GGC: 16726k -> 16727k
Peak memory use after GGC: 16557k
Maximum of released memory in single GGC run: 1690k
Garbage: 82481k -> 82563k
Leak: 7249k
Overhead: 11238k -> 11245k
GGC runs: 529
Pre-IPA-Garbage: 13435k
Pre-IPA-Leak: 17759k
Pre-IPA-Overhead: 2555k
Post-IPA-Garbage: 13435k
Post-IPA-Leak: 17759k
Post-IPA-Overhead: 2555k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 152505k
Peak memory use before GGC: 65254k
Peak memory use after GGC: 52818k
Maximum of released memory in single GGC run: 26250k
Garbage: 128569k
Leak: 9587k
Overhead: 16691k
GGC runs: 258
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: 128907k
Leak: 11219k
Overhead: 17144k
GGC runs: 252
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: 154577k -> 154545k
Peak memory use before GGC: 54972k
Peak memory use after GGC: 44902k
Maximum of released memory in single GGC run: 17233k
Garbage: 181124k
Leak: 9178k
Overhead: 23427k
GGC runs: 298
Pre-IPA-Garbage: 45256k
Pre-IPA-Leak: 45116k
Pre-IPA-Overhead: 7607k
Post-IPA-Garbage: 45256k
Post-IPA-Leak: 45116k
Post-IPA-Overhead: 7607k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 202245k
Peak memory use before GGC: 54418k
Peak memory use after GGC: 44649k
Maximum of released memory in single GGC run: 18696k
Garbage: 211672k
Leak: 9193k
Overhead: 29299k -> 29299k
GGC runs: 331
Pre-IPA-Garbage: 45281k
Pre-IPA-Leak: 45120k
Pre-IPA-Overhead: 7609k
Post-IPA-Garbage: 45281k
Post-IPA-Leak: 45120k
Post-IPA-Overhead: 7609k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 205469k -> 205457k
Peak memory use before GGC: 54430k
Peak memory use after GGC: 44662k -> 44658k
Maximum of released memory in single GGC run: 18680k
Garbage: 229953k -> 230035k
Leak: 9211k
Overhead: 31199k -> 31207k
GGC runs: 352
Pre-IPA-Garbage: 45281k
Pre-IPA-Leak: 45120k
Pre-IPA-Overhead: 7609k
Post-IPA-Garbage: 45281k
Post-IPA-Leak: 45120k
Post-IPA-Overhead: 7609k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 146197k -> 146249k
Peak memory use before GGC: 81786k
Peak memory use after GGC: 80976k
Maximum of released memory in single GGC run: 13627k
Garbage: 193638k
Leak: 55413k
Overhead: 28735k
GGC runs: 439
Pre-IPA-Garbage: 105757k
Pre-IPA-Leak: 84540k
Pre-IPA-Overhead: 15486k
Post-IPA-Garbage: 105757k
Post-IPA-Leak: 84540k
Post-IPA-Overhead: 15486k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 164149k -> 164037k
Peak memory use before GGC: 95912k
Peak memory use after GGC: 94960k
Maximum of released memory in single GGC run: 13877k
Garbage: 198961k -> 198961k
Leak: 82505k
Overhead: 35297k
GGC runs: 410
Pre-IPA-Garbage: 106343k
Pre-IPA-Leak: 101060k
Pre-IPA-Overhead: 18992k
Post-IPA-Garbage: 106343k
Post-IPA-Leak: 101060k
Post-IPA-Overhead: 18992k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 108733k -> 108749k
Peak memory use before GGC: 82625k
Peak memory use after GGC: 81801k
Maximum of released memory in single GGC run: 13771k
Garbage: 270247k -> 270248k
Leak: 52220k
Overhead: 31613k -> 31613k
GGC runs: 528
Pre-IPA-Garbage: 154364k
Pre-IPA-Leak: 86837k
Pre-IPA-Overhead: 19157k -> 19157k
Post-IPA-Garbage: 154364k
Post-IPA-Leak: 86837k
Post-IPA-Overhead: 19157k -> 19157k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 108161k -> 108137k
Peak memory use before GGC: 82646k
Peak memory use after GGC: 80941k
Maximum of released memory in single GGC run: 13774k
Garbage: 308998k -> 309000k
Leak: 52323k
Overhead: 36913k -> 36913k
GGC runs: 574
Pre-IPA-Garbage: 157397k
Pre-IPA-Leak: 85927k -> 85926k
Pre-IPA-Overhead: 19369k -> 19369k
Post-IPA-Garbage: 157397k
Post-IPA-Leak: 85927k -> 85926k
Post-IPA-Overhead: 19369k -> 19369k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 114481k -> 114385k
Peak memory use before GGC: 83113k
Peak memory use after GGC: 81047k
Maximum of released memory in single GGC run: 13774k
Garbage: 343348k
Leak: 52360k
Overhead: 41128k -> 41128k
GGC runs: 616
Pre-IPA-Garbage: 157397k
Pre-IPA-Leak: 85931k -> 85930k
Pre-IPA-Overhead: 19369k -> 19369k
Post-IPA-Garbage: 157397k
Post-IPA-Leak: 85931k -> 85930k
Post-IPA-Overhead: 19369k -> 19369k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 358845k -> 358725k
Peak memory use before GGC: 78173k
Peak memory use after GGC: 49107k
Maximum of released memory in single GGC run: 37057k
Garbage: 140190k
Leak: 7711k
Overhead: 24960k
GGC runs: 86
Pre-IPA-Garbage: 12171k
Pre-IPA-Leak: 18626k
Pre-IPA-Overhead: 2403k
Post-IPA-Garbage: 12171k
Post-IPA-Leak: 18626k
Post-IPA-Overhead: 2403k
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 359441k -> 358409k
Peak memory use before GGC: 78856k
Peak memory use after GGC: 49791k
Maximum of released memory in single GGC run: 37041k
Garbage: 140255k
Leak: 9707k
Overhead: 25529k
GGC runs: 94
Pre-IPA-Garbage: 12173k
Pre-IPA-Leak: 18873k
Pre-IPA-Overhead: 2456k
Post-IPA-Garbage: 12173k
Post-IPA-Leak: 18873k
Post-IPA-Overhead: 2456k
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 308821k -> 308921k
Peak memory use before GGC: 80235k
Peak memory use after GGC: 69462k
Maximum of released memory in single GGC run: 38514k
Garbage: 225540k
Leak: 9462k
Overhead: 32458k
GGC runs: 96
Pre-IPA-Garbage: 41119k
Pre-IPA-Leak: 63974k
Pre-IPA-Overhead: 7105k
Post-IPA-Garbage: 41119k
Post-IPA-Leak: 63974k
Post-IPA-Overhead: 7105k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 514705k -> 517441k
Peak memory use before GGC: 80260k
Peak memory use after GGC: 69463k
Maximum of released memory in single GGC run: 39109k
Garbage: 268248k
Leak: 9463k
Overhead: 42139k
GGC runs: 108
Pre-IPA-Garbage: 90152k
Pre-IPA-Leak: 80240k
Pre-IPA-Overhead: 11095k
Post-IPA-Garbage: 90152k
Post-IPA-Leak: 80240k
Post-IPA-Overhead: 11095k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1031153k -> 1031253k
Peak memory use before GGC: 135102k
Peak memory use after GGC: 126444k
Maximum of released memory in single GGC run: 54329k
Garbage: 329142k
Leak: 10302k
Overhead: 42368k
GGC runs: 106
Pre-IPA-Garbage: 90152k
Pre-IPA-Leak: 80240k
Pre-IPA-Overhead: 11095k
Post-IPA-Garbage: 90152k
Post-IPA-Leak: 80240k
Post-IPA-Overhead: 11095k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-haydn-memory/x86_64/mem-result/ChangeLog 2009-05-28 07:48:48.000000000 +0000
+++ /usr/src/SpecTests/sandbox-haydn-memory/gcc/gcc/ChangeLog 2009-05-28 11:03:49.000000000 +0000
@@ -1,3 +1,26 @@
+2009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ PR target/37216
+
+ * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
+ macro definition for support of three-operand format aligned
+ .comm directive in assembler on cygwin/pe/mingw target OS.
+ * configure: Regenerate.
+ * config.h: Regenerate.
+
+ * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
+ aligned form of .comm directive if -mpe-aligned-commons is in effect.
+ * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
+
+ * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
+ * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
+
+2009-05-28 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/40254
+ * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
+ in analysis of basic blocks.
+
2009-05-28 Adam Nemet <anemet@caviumnetworks.com>
PR middle-end/33699
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.