A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Sat Oct 4 18:59:00 GMT 2008
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: 8183k
Peak memory use before GGC: 1291k
Peak memory use after GGC: 1217k
Maximum of released memory in single GGC run: 134k
Garbage: 218k
Leak: 1221k
Overhead: 136k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1224k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1224k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O0 -g level:
Overall memory needed: 8427k
Peak memory use before GGC: 1319k
Peak memory use after GGC: 1245k
Maximum of released memory in single GGC run: 133k
Garbage: 220k
Leak: 1254k
Overhead: 141k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1224k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1224k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O1 level:
Overall memory needed: 8239k
Peak memory use before GGC: 1291k
Peak memory use after GGC: 1217k
Maximum of released memory in single GGC run: 134k
Garbage: 221k
Leak: 1221k
Overhead: 137k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1224k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1224k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O2 level:
Overall memory needed: 8451k
Peak memory use before GGC: 1291k
Peak memory use after GGC: 1218k
Maximum of released memory in single GGC run: 135k
Garbage: 226k
Leak: 1221k
Overhead: 138k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1224k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1224k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O3 level:
Overall memory needed: 8455k
Peak memory use before GGC: 1291k
Peak memory use after GGC: 1218k
Maximum of released memory in single GGC run: 135k
Garbage: 226k
Leak: 1221k
Overhead: 138k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1224k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1224k
Post-IPA-Overhead: 135k
comparing combine.c compilation at -O0 level:
Overall memory needed: 31991k
Peak memory use before GGC: 18010k
Peak memory use after GGC: 17797k
Maximum of released memory in single GGC run: 1825k
Garbage: 39142k
Leak: 5800k
Overhead: 5267k
GGC runs: 337
Pre-IPA-Garbage: 12405k
Pre-IPA-Leak: 19411k
Pre-IPA-Overhead: 2624k
Post-IPA-Garbage: 12405k
Post-IPA-Leak: 19411k
Post-IPA-Overhead: 2624k
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 34019k
Peak memory use before GGC: 19916k
Peak memory use after GGC: 19653k
Maximum of released memory in single GGC run: 1834k
Garbage: 39427k
Leak: 9089k
Overhead: 6084k
GGC runs: 320
Pre-IPA-Garbage: 12504k
Pre-IPA-Leak: 21684k
Pre-IPA-Overhead: 3114k
Post-IPA-Garbage: 12504k
Post-IPA-Leak: 21684k
Post-IPA-Overhead: 3114k
comparing combine.c compilation at -O1 level:
Overall memory needed: 30751k -> 30767k
Peak memory use before GGC: 15674k
Peak memory use after GGC: 15504k
Maximum of released memory in single GGC run: 1380k
Garbage: 46606k -> 46607k
Leak: 5775k
Overhead: 6087k -> 6087k
GGC runs: 401
Pre-IPA-Garbage: 13144k
Pre-IPA-Leak: 16897k
Pre-IPA-Overhead: 2532k
Post-IPA-Garbage: 13144k
Post-IPA-Leak: 16897k
Post-IPA-Overhead: 2532k
comparing combine.c compilation at -O2 level:
Overall memory needed: 31511k -> 31663k
Peak memory use before GGC: 15818k
Peak memory use after GGC: 15657k
Maximum of released memory in single GGC run: 1356k
Garbage: 60644k -> 60665k
Leak: 5950k -> 5950k
Overhead: 8145k -> 8148k
GGC runs: 470
Pre-IPA-Garbage: 13307k
Pre-IPA-Leak: 16979k
Pre-IPA-Overhead: 2553k
Post-IPA-Garbage: 13307k
Post-IPA-Leak: 16979k
Post-IPA-Overhead: 2553k
comparing combine.c compilation at -O3 level:
Overall memory needed: 31779k -> 31935k
Peak memory use before GGC: 15818k
Peak memory use after GGC: 15657k
Maximum of released memory in single GGC run: 1794k
Garbage: 76152k -> 76139k
Leak: 5822k
Overhead: 9938k -> 9938k
GGC runs: 506
Pre-IPA-Garbage: 13307k
Pre-IPA-Leak: 16979k
Pre-IPA-Overhead: 2553k
Post-IPA-Garbage: 13307k
Post-IPA-Leak: 16979k
Post-IPA-Overhead: 2553k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 156827k
Peak memory use before GGC: 65230k
Peak memory use after GGC: 53275k
Maximum of released memory in single GGC run: 27424k
Garbage: 130808k
Leak: 8497k
Overhead: 16158k
GGC runs: 263
Pre-IPA-Garbage: 38214k
Pre-IPA-Leak: 55917k
Pre-IPA-Overhead: 8653k
Post-IPA-Garbage: 38214k
Post-IPA-Leak: 55917k
Post-IPA-Overhead: 8653k
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 158099k
Peak memory use before GGC: 66504k
Peak memory use after GGC: 54546k
Maximum of released memory in single GGC run: 27425k
Garbage: 131286k
Leak: 10147k
Overhead: 16613k
GGC runs: 255
Pre-IPA-Garbage: 38271k
Pre-IPA-Leak: 57459k
Pre-IPA-Overhead: 8989k
Post-IPA-Garbage: 38271k
Post-IPA-Leak: 57459k
Post-IPA-Overhead: 8989k
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 134827k
Peak memory use before GGC: 50202k
Peak memory use after GGC: 43295k
Maximum of released memory in single GGC run: 22951k
Garbage: 181074k
Leak: 7875k
Overhead: 25327k
GGC runs: 302
Pre-IPA-Garbage: 43191k
Pre-IPA-Leak: 43443k
Pre-IPA-Overhead: 8052k
Post-IPA-Garbage: 43191k
Post-IPA-Leak: 43443k
Post-IPA-Overhead: 8052k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 149799k
Peak memory use before GGC: 50205k
Peak memory use after GGC: 44284k
Maximum of released memory in single GGC run: 21469k
Garbage: 212260k
Leak: 7882k
Overhead: 30905k
GGC runs: 333
Pre-IPA-Garbage: 43263k
Pre-IPA-Leak: 43449k
Pre-IPA-Overhead: 8061k
Post-IPA-Garbage: 43263k
Post-IPA-Leak: 43449k
Post-IPA-Overhead: 8061k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 164703k
Peak memory use before GGC: 61826k
Peak memory use after GGC: 58726k
Maximum of released memory in single GGC run: 23616k
Garbage: 242488k
Leak: 7889k
Overhead: 34347k
GGC runs: 339
Pre-IPA-Garbage: 43263k
Pre-IPA-Leak: 43449k
Pre-IPA-Overhead: 8061k
Post-IPA-Garbage: 43263k
Post-IPA-Leak: 43449k
Post-IPA-Overhead: 8061k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 151245k
Peak memory use before GGC: 82965k
Peak memory use after GGC: 82143k
Maximum of released memory in single GGC run: 14701k
Garbage: 205266k
Leak: 52055k
Overhead: 27261k
GGC runs: 415
Pre-IPA-Garbage: 111126k
Pre-IPA-Leak: 88527k
Pre-IPA-Overhead: 14978k
Post-IPA-Garbage: 111126k
Post-IPA-Leak: 88527k
Post-IPA-Overhead: 14978k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 169181k
Peak memory use before GGC: 96592k
Peak memory use after GGC: 95634k
Maximum of released memory in single GGC run: 15130k
Garbage: 210899k
Leak: 78618k
Overhead: 33924k
GGC runs: 387
Pre-IPA-Garbage: 111748k
Pre-IPA-Leak: 105042k
Pre-IPA-Overhead: 18481k
Post-IPA-Garbage: 111748k
Post-IPA-Leak: 105042k
Post-IPA-Overhead: 18481k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 111201k
Peak memory use before GGC: 84209k
Peak memory use after GGC: 83371k
Maximum of released memory in single GGC run: 14981k
Garbage: 282272k -> 282374k
Leak: 49367k -> 49367k
Overhead: 32309k -> 32318k
GGC runs: 502
Pre-IPA-Garbage: 159782k
Pre-IPA-Leak: 88164k
Pre-IPA-Overhead: 20278k
Post-IPA-Garbage: 159782k
Post-IPA-Leak: 88164k
Post-IPA-Overhead: 20278k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 112725k -> 112689k
Peak memory use before GGC: 85982k
Peak memory use after GGC: 85115k
Maximum of released memory in single GGC run: 14965k
Garbage: 336381k -> 336645k
Leak: 49421k -> 49437k
Overhead: 38870k -> 38883k
GGC runs: 569 -> 568
Pre-IPA-Garbage: 163775k
Pre-IPA-Leak: 88524k
Pre-IPA-Overhead: 20771k
Post-IPA-Garbage: 163775k
Post-IPA-Leak: 88524k
Post-IPA-Overhead: 20771k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Amount of produced GGC garbage increased from 367195k to 367651k, overall 0.12%
Overall memory needed: 113689k -> 113753k
Peak memory use before GGC: 86670k
Peak memory use after GGC: 85729k
Maximum of released memory in single GGC run: 14965k
Garbage: 367195k -> 367651k
Leak: 49424k -> 49423k
Overhead: 42042k -> 42175k
GGC runs: 595 -> 596
Pre-IPA-Garbage: 163855k
Pre-IPA-Leak: 89183k
Pre-IPA-Overhead: 20824k
Post-IPA-Garbage: 163855k
Post-IPA-Leak: 89183k
Post-IPA-Overhead: 20824k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 365539k
Peak memory use before GGC: 78518k
Peak memory use after GGC: 49452k
Maximum of released memory in single GGC run: 38186k
Garbage: 144651k
Leak: 7110k
Overhead: 24890k
GGC runs: 87
Pre-IPA-Garbage: 12561k
Pre-IPA-Leak: 20191k
Pre-IPA-Overhead: 2242k
Post-IPA-Garbage: 12561k
Post-IPA-Leak: 20191k
Post-IPA-Overhead: 2242k
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 366331k
Peak memory use before GGC: 79215k
Peak memory use after GGC: 50149k
Maximum of released memory in single GGC run: 38171k
Garbage: 144752k
Leak: 9152k
Overhead: 25474k
GGC runs: 93
Pre-IPA-Garbage: 12569k
Pre-IPA-Leak: 20440k
Pre-IPA-Overhead: 2296k
Post-IPA-Garbage: 12569k
Post-IPA-Leak: 20440k
Post-IPA-Overhead: 2296k
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 244983k
Peak memory use before GGC: 73624k
Peak memory use after GGC: 66143k
Maximum of released memory in single GGC run: 34721k
Garbage: 222459k
Leak: 7807k
Overhead: 30741k
GGC runs: 97
Pre-IPA-Garbage: 48348k
Pre-IPA-Leak: 63005k
Pre-IPA-Overhead: 8907k
Post-IPA-Garbage: 48348k
Post-IPA-Leak: 63005k
Post-IPA-Overhead: 8907k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 372123k
Peak memory use before GGC: 73624k
Peak memory use after GGC: 66143k
Maximum of released memory in single GGC run: 36044k
Garbage: 250448k
Leak: 7901k
Overhead: 36820k
GGC runs: 106
Pre-IPA-Garbage: 107058k
Pre-IPA-Leak: 76121k
Pre-IPA-Overhead: 15359k
Post-IPA-Garbage: 107058k
Post-IPA-Leak: 76121k
Post-IPA-Overhead: 15359k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1026651k
Peak memory use before GGC: 141898k
Peak memory use after GGC: 129175k
Maximum of released memory in single GGC run: 62686k
Garbage: 362576k
Leak: 9383k
Overhead: 45335k
GGC runs: 103
Pre-IPA-Garbage: 107058k
Pre-IPA-Leak: 76121k
Pre-IPA-Overhead: 15359k
Post-IPA-Garbage: 107058k
Post-IPA-Leak: 76121k
Post-IPA-Overhead: 15359k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-10-03 21:13:49.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-10-04 14:36:31.000000000 +0000
@@ -1,3 +1,16 @@
+2008-10-04 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
+ instead of pointer equality.
+ (vn_nary_op_eq): Likewise.
+
+2008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
+ condition.
+ (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
+ TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
+
2008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
* config/i386/winnt.c (i386_pe_strip_name_encoding_full):
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