A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Wed Dec 12 19:20:00 GMT 2007
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: 6632k
Peak memory use before GGC: 1095k
Peak memory use after GGC: 993k
Maximum of released memory in single GGC run: 129k
Garbage: 237k
Leak: 951k
Overhead: 80k
GGC runs: 2
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O0 -g level:
Overall memory needed: 6648k
Peak memory use before GGC: 1122k
Peak memory use after GGC: 1020k
Maximum of released memory in single GGC run: 131k
Garbage: 239k
Leak: 983k
Overhead: 84k
GGC runs: 3
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O1 level:
Overall memory needed: 6692k
Peak memory use before GGC: 1095k
Peak memory use after GGC: 993k
Maximum of released memory in single GGC run: 131k
Garbage: 239k
Leak: 951k
Overhead: 80k
GGC runs: 2
Pre-IPA-Garbage: 226k
Pre-IPA-Leak: 954k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 226k
Post-IPA-Leak: 954k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O2 level:
Overall memory needed: 6712k
Peak memory use before GGC: 1095k
Peak memory use after GGC: 994k
Maximum of released memory in single GGC run: 134k
Garbage: 242k
Leak: 952k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 226k
Pre-IPA-Leak: 954k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 226k
Post-IPA-Leak: 954k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O3 level:
Overall memory needed: 6712k
Peak memory use before GGC: 1095k
Peak memory use after GGC: 994k
Maximum of released memory in single GGC run: 134k
Garbage: 242k
Leak: 952k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 226k
Pre-IPA-Leak: 954k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 226k
Post-IPA-Leak: 954k
Post-IPA-Overhead: 79k
comparing combine.c compilation at -O0 level:
Overall memory needed: 21176k
Peak memory use before GGC: 7806k
Peak memory use after GGC: 7185k
Maximum of released memory in single GGC run: 1550k
Garbage: 37872k -> 37872k
Leak: 5512k
Overhead: 4577k -> 4577k
GGC runs: 371
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 23180k
Peak memory use before GGC: 9647k -> 9645k
Peak memory use after GGC: 8953k
Maximum of released memory in single GGC run: 1838k
Garbage: 38233k -> 38235k
Leak: 8317k
Overhead: 5204k -> 5204k
GGC runs: 342
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O1 level:
Overall memory needed: 31680k -> 31628k
Peak memory use before GGC: 16359k -> 16344k
Peak memory use after GGC: 16190k -> 16160k
Maximum of released memory in single GGC run: 1367k
Garbage: 51670k -> 51683k
Leak: 5659k -> 5659k
Overhead: 5719k -> 5720k
GGC runs: 442 -> 443
Pre-IPA-Garbage: 13922k -> 13922k
Pre-IPA-Leak: 17125k -> 17126k
Pre-IPA-Overhead: 2069k -> 2069k
Post-IPA-Garbage: 13922k -> 13922k
Post-IPA-Leak: 17125k -> 17126k
Post-IPA-Overhead: 2069k -> 2069k
comparing combine.c compilation at -O2 level:
Overall memory allocated via mmap and sbrk increased from 33564k to 34528k, overall 2.87%
Overall memory needed: 33564k -> 34528k
Peak memory use before GGC: 16445k
Peak memory use after GGC: 16278k -> 16279k
Maximum of released memory in single GGC run: 1316k
Garbage: 71696k -> 71700k
Leak: 5989k -> 5985k
Overhead: 8064k -> 8064k
GGC runs: 511 -> 512
Pre-IPA-Garbage: 14079k -> 14079k
Pre-IPA-Leak: 17189k -> 17190k
Pre-IPA-Overhead: 2082k -> 2082k
Post-IPA-Garbage: 14079k -> 14079k
Post-IPA-Leak: 17189k -> 17190k
Post-IPA-Overhead: 2082k -> 2082k
comparing combine.c compilation at -O3 level:
Amount of memory still referenced at the end of compilation increased from 6097k to 6109k, overall 0.20%
Overall memory needed: 37884k -> 37864k
Peak memory use before GGC: 16668k -> 16580k
Peak memory use after GGC: 16388k -> 16300k
Maximum of released memory in single GGC run: 2119k -> 2120k
Garbage: 93655k -> 93662k
Leak: 6097k -> 6109k
Overhead: 10663k -> 10663k
GGC runs: 547 -> 546
Pre-IPA-Garbage: 14084k -> 14085k
Pre-IPA-Leak: 17209k -> 17210k
Pre-IPA-Overhead: 2085k -> 2085k
Post-IPA-Garbage: 14084k -> 14085k
Post-IPA-Leak: 17209k -> 17210k
Post-IPA-Overhead: 2085k -> 2085k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 135920k
Peak memory use before GGC: 56998k
Peak memory use after GGC: 31455k
Maximum of released memory in single GGC run: 33256k
Garbage: 128179k
Leak: 8380k
Overhead: 13927k
GGC runs: 292
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 137176k
Peak memory use before GGC: 58140k
Peak memory use after GGC: 32597k
Maximum of released memory in single GGC run: 33256k
Garbage: 128410k
Leak: 10040k
Overhead: 14283k
GGC runs: 289
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 143184k
Peak memory use before GGC: 56210k
Peak memory use after GGC: 49982k
Maximum of released memory in single GGC run: 23977k
Garbage: 206550k
Leak: 9274k
Overhead: 23998k
GGC runs: 315
Pre-IPA-Garbage: 50355k
Pre-IPA-Leak: 49319k
Pre-IPA-Overhead: 7133k
Post-IPA-Garbage: 50355k
Post-IPA-Leak: 49319k
Post-IPA-Overhead: 7133k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 186588k
Peak memory use before GGC: 56852k
Peak memory use after GGC: 51572k
Maximum of released memory in single GGC run: 22735k
Garbage: 248134k
Leak: 10361k
Overhead: 29756k
GGC runs: 347
Pre-IPA-Garbage: 50426k
Pre-IPA-Leak: 49323k
Pre-IPA-Overhead: 7140k
Post-IPA-Garbage: 50426k
Post-IPA-Leak: 49323k
Post-IPA-Overhead: 7140k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 190944k
Peak memory use before GGC: 68526k
Peak memory use after GGC: 62279k
Maximum of released memory in single GGC run: 23235k
Garbage: 276085k
Leak: 10399k
Overhead: 31632k
GGC runs: 349
Pre-IPA-Garbage: 50426k
Pre-IPA-Leak: 49323k
Pre-IPA-Overhead: 7140k
Post-IPA-Garbage: 50426k
Post-IPA-Leak: 49323k
Post-IPA-Overhead: 7140k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 147442k -> 147446k
Peak memory use before GGC: 84523k
Peak memory use after GGC: 83686k
Maximum of released memory in single GGC run: 16844k
Garbage: 202407k
Leak: 48152k
Overhead: 23847k
GGC runs: 420
Pre-IPA-Garbage: 111123k
Pre-IPA-Leak: 71212k
Pre-IPA-Overhead: 12089k
Post-IPA-Garbage: 111123k
Post-IPA-Leak: 71212k
Post-IPA-Overhead: 12089k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 168258k
Peak memory use before GGC: 96488k
Peak memory use after GGC: 95531k
Maximum of released memory in single GGC run: 17652k
Garbage: 207935k
Leak: 69765k
Overhead: 28833k
GGC runs: 392
Pre-IPA-Garbage: 111767k
Pre-IPA-Leak: 84492k
Pre-IPA-Overhead: 14665k
Post-IPA-Garbage: 111767k
Post-IPA-Leak: 84492k
Post-IPA-Overhead: 14665k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 122027k
Peak memory use before GGC: 84497k
Peak memory use after GGC: 83659k
Maximum of released memory in single GGC run: 16328k
Garbage: 294285k
Leak: 47403k
Overhead: 29140k
GGC runs: 521
Pre-IPA-Garbage: 156483k
Pre-IPA-Leak: 88226k
Pre-IPA-Overhead: 17299k
Post-IPA-Garbage: 156483k
Post-IPA-Leak: 88226k
Post-IPA-Overhead: 17299k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 125015k
Peak memory use before GGC: 84722k
Peak memory use after GGC: 83877k
Maximum of released memory in single GGC run: 16327k
Garbage: 366261k
Leak: 48339k
Overhead: 36614k
GGC runs: 599
Pre-IPA-Garbage: 159741k
Pre-IPA-Leak: 88354k
Pre-IPA-Overhead: 17629k
Post-IPA-Garbage: 159741k
Post-IPA-Leak: 88354k
Post-IPA-Overhead: 17629k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 129847k
Peak memory use before GGC: 85929k
Peak memory use after GGC: 85071k
Maximum of released memory in single GGC run: 16721k
Garbage: 397016k
Leak: 48866k
Overhead: 39213k
GGC runs: 626
Pre-IPA-Garbage: 162532k
Pre-IPA-Leak: 88634k
Pre-IPA-Overhead: 17876k
Post-IPA-Garbage: 162532k
Post-IPA-Leak: 88634k
Post-IPA-Overhead: 17876k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 378596k
Peak memory use before GGC: 101208k
Peak memory use after GGC: 56862k
Maximum of released memory in single GGC run: 50582k
Garbage: 178902k
Leak: 6097k
Overhead: 30781k
GGC runs: 106
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 379392k
Peak memory use before GGC: 101839k
Peak memory use after GGC: 57492k
Maximum of released memory in single GGC run: 50583k
Garbage: 179007k
Leak: 7799k
Overhead: 31213k
GGC runs: 111
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 437740k
Peak memory use before GGC: 78857k
Peak memory use after GGC: 70436k
Maximum of released memory in single GGC run: 37753k
Garbage: 235356k
Leak: 16073k
Overhead: 35563k
GGC runs: 105
Pre-IPA-Garbage: 52924k
Pre-IPA-Leak: 49244k
Pre-IPA-Overhead: 7011k
Post-IPA-Garbage: 52924k
Post-IPA-Leak: 49244k
Post-IPA-Overhead: 7011k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 358192k
Peak memory use before GGC: 75422k
Peak memory use after GGC: 70436k
Maximum of released memory in single GGC run: 32245k
Garbage: 246837k
Leak: 16245k
Overhead: 38881k
GGC runs: 116
Pre-IPA-Garbage: 91835k
Pre-IPA-Leak: 77069k
Pre-IPA-Overhead: 11353k
Post-IPA-Garbage: 91835k
Post-IPA-Leak: 77069k
Post-IPA-Overhead: 11353k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1312616k
Peak memory use before GGC: 136584k
Peak memory use after GGC: 127941k
Maximum of released memory in single GGC run: 59911k
Garbage: 371407k
Leak: 24376k
Overhead: 48461k
GGC runs: 103
Pre-IPA-Garbage: 91835k
Pre-IPA-Leak: 77069k
Pre-IPA-Overhead: 11353k
Post-IPA-Garbage: 91835k
Post-IPA-Leak: 77069k
Post-IPA-Overhead: 11353k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2007-12-12 09:37:34.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2007-12-12 14:42:20.000000000 +0000
@@ -1,3 +1,10 @@
+2007-12-12 Aldy Hernandez <aldyh@redhat.com>
+
+ PR tree-optimization/32901
+ * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we
+ are assigning from a constant constructor.
+ Fix wrapping in function comment.
+
2007-12-12 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_O_constraint_str): Limit the range
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