A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Wed Nov 26 00:24: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: 8209k
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: 8453k
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: 8237k
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: 8453k -> 8465k
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: 8457k -> 8469k
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: 31989k
Peak memory use before GGC: 18018k
Peak memory use after GGC: 17801k
Maximum of released memory in single GGC run: 1839k
Garbage: 39406k
Leak: 5800k
Overhead: 5220k
GGC runs: 337
Pre-IPA-Garbage: 12408k
Pre-IPA-Leak: 19349k
Pre-IPA-Overhead: 2559k
Post-IPA-Garbage: 12408k
Post-IPA-Leak: 19349k
Post-IPA-Overhead: 2559k
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 34009k
Peak memory use before GGC: 19938k
Peak memory use after GGC: 19657k
Maximum of released memory in single GGC run: 1849k
Garbage: 39703k
Leak: 9082k
Overhead: 6038k
GGC runs: 321
Pre-IPA-Garbage: 12507k
Pre-IPA-Leak: 21623k
Pre-IPA-Overhead: 3049k
Post-IPA-Garbage: 12507k
Post-IPA-Leak: 21623k
Post-IPA-Overhead: 3049k
comparing combine.c compilation at -O1 level:
Overall memory needed: 30613k -> 30621k
Peak memory use before GGC: 15682k
Peak memory use after GGC: 15507k
Maximum of released memory in single GGC run: 1341k
Garbage: 46800k
Leak: 5780k
Overhead: 6013k
GGC runs: 402
Pre-IPA-Garbage: 13147k
Pre-IPA-Leak: 16845k
Pre-IPA-Overhead: 2472k
Post-IPA-Garbage: 13147k
Post-IPA-Leak: 16845k
Post-IPA-Overhead: 2472k
comparing combine.c compilation at -O2 level:
Overall memory needed: 31285k
Peak memory use before GGC: 15825k -> 15823k
Peak memory use after GGC: 15662k -> 15660k
Maximum of released memory in single GGC run: 1355k
Garbage: 60537k -> 60479k
Leak: 5809k -> 5809k
Overhead: 8022k -> 8017k
GGC runs: 467 -> 468
Pre-IPA-Garbage: 13310k
Pre-IPA-Leak: 16927k
Pre-IPA-Overhead: 2491k
Post-IPA-Garbage: 13310k
Post-IPA-Leak: 16927k
Post-IPA-Overhead: 2491k
comparing combine.c compilation at -O3 level:
Overall memory needed: 31733k -> 31913k
Peak memory use before GGC: 15915k -> 15911k
Peak memory use after GGC: 15756k -> 15752k
Maximum of released memory in single GGC run: 1630k -> 1629k
Garbage: 72942k -> 72899k
Leak: 7136k -> 7136k
Overhead: 9455k -> 9449k
GGC runs: 497 -> 496
Pre-IPA-Garbage: 13310k
Pre-IPA-Leak: 16927k
Pre-IPA-Overhead: 2491k
Post-IPA-Garbage: 13310k
Post-IPA-Leak: 16927k
Post-IPA-Overhead: 2491k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 155449k
Peak memory use before GGC: 65230k
Peak memory use after GGC: 53275k
Maximum of released memory in single GGC run: 27424k
Garbage: 130437k
Leak: 8497k
Overhead: 15723k
GGC runs: 263
Pre-IPA-Garbage: 38215k
Pre-IPA-Leak: 55487k
Pre-IPA-Overhead: 8223k
Post-IPA-Garbage: 38215k
Post-IPA-Leak: 55487k
Post-IPA-Overhead: 8223k
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 156721k
Peak memory use before GGC: 66504k
Peak memory use after GGC: 54546k
Maximum of released memory in single GGC run: 27425k
Garbage: 130915k
Leak: 10147k
Overhead: 16179k
GGC runs: 255
Pre-IPA-Garbage: 38272k
Pre-IPA-Leak: 57029k
Pre-IPA-Overhead: 8558k
Post-IPA-Garbage: 38272k
Post-IPA-Leak: 57029k
Post-IPA-Overhead: 8558k
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 133421k -> 133417k
Peak memory use before GGC: 50200k
Peak memory use after GGC: 43294k
Maximum of released memory in single GGC run: 22951k
Garbage: 180981k
Leak: 7873k
Overhead: 24529k
GGC runs: 301
Pre-IPA-Garbage: 43193k
Pre-IPA-Leak: 43086k
Pre-IPA-Overhead: 7642k
Post-IPA-Garbage: 43193k
Post-IPA-Leak: 43086k
Post-IPA-Overhead: 7642k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 148821k -> 148817k
Peak memory use before GGC: 50204k
Peak memory use after GGC: 45013k
Maximum of released memory in single GGC run: 17964k
Garbage: 204641k
Leak: 15536k
Overhead: 29999k
GGC runs: 326
Pre-IPA-Garbage: 43265k
Pre-IPA-Leak: 43092k
Pre-IPA-Overhead: 7651k
Post-IPA-Garbage: 43265k
Post-IPA-Leak: 43092k
Post-IPA-Overhead: 7651k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 162701k -> 162725k
Peak memory use before GGC: 61826k
Peak memory use after GGC: 58725k
Maximum of released memory in single GGC run: 23617k
Garbage: 242524k
Leak: 7899k
Overhead: 33465k
GGC runs: 339
Pre-IPA-Garbage: 43265k
Pre-IPA-Leak: 43092k
Pre-IPA-Overhead: 7651k
Post-IPA-Garbage: 43265k
Post-IPA-Leak: 43092k
Post-IPA-Overhead: 7651k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 151223k
Peak memory use before GGC: 82979k
Peak memory use after GGC: 82156k
Maximum of released memory in single GGC run: 14701k
Garbage: 205105k
Leak: 52176k
Overhead: 26930k
GGC runs: 414
Pre-IPA-Garbage: 111171k
Pre-IPA-Leak: 88399k
Pre-IPA-Overhead: 14825k
Post-IPA-Garbage: 111171k
Post-IPA-Leak: 88399k
Post-IPA-Overhead: 14825k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 169143k
Peak memory use before GGC: 96605k
Peak memory use after GGC: 95648k
Maximum of released memory in single GGC run: 15130k
Garbage: 210824k
Leak: 78743k
Overhead: 33595k
GGC runs: 388
Pre-IPA-Garbage: 111792k
Pre-IPA-Leak: 104914k
Pre-IPA-Overhead: 18328k
Post-IPA-Garbage: 111792k
Post-IPA-Leak: 104914k
Post-IPA-Overhead: 18328k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 111247k -> 111263k
Peak memory use before GGC: 84260k
Peak memory use after GGC: 83418k
Maximum of released memory in single GGC run: 14981k
Garbage: 282059k -> 282059k
Leak: 49477k
Overhead: 31619k -> 31619k
GGC runs: 502
Pre-IPA-Garbage: 159815k
Pre-IPA-Leak: 88122k
Pre-IPA-Overhead: 19891k
Post-IPA-Garbage: 159815k
Post-IPA-Leak: 88122k
Post-IPA-Overhead: 19891k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage increased from 336659k to 338408k, overall 0.52%
Overall memory needed: 112647k -> 112663k
Peak memory use before GGC: 86021k
Peak memory use after GGC: 85169k
Maximum of released memory in single GGC run: 14964k
Garbage: 336659k -> 338408k
Leak: 49533k -> 49533k
Overhead: 38163k -> 38385k
GGC runs: 569 -> 571
Pre-IPA-Garbage: 163805k
Pre-IPA-Leak: 88488k
Pre-IPA-Overhead: 20369k
Post-IPA-Garbage: 163805k
Post-IPA-Leak: 88488k
Post-IPA-Overhead: 20369k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Amount of produced GGC garbage increased from 367933k to 370632k, overall 0.73%
Overall memory needed: 113667k -> 113703k
Peak memory use before GGC: 86641k
Peak memory use after GGC: 85783k
Maximum of released memory in single GGC run: 14964k
Garbage: 367933k -> 370632k
Leak: 49543k -> 49535k
Overhead: 41490k -> 41726k
GGC runs: 598
Pre-IPA-Garbage: 163885k
Pre-IPA-Leak: 89146k
Pre-IPA-Overhead: 20421k
Post-IPA-Garbage: 163885k
Post-IPA-Leak: 89146k
Post-IPA-Overhead: 20421k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 361912k -> 361913k
Peak memory use before GGC: 78518k
Peak memory use after GGC: 49453k
Maximum of released memory in single GGC run: 38186k
Garbage: 144651k
Leak: 7110k
Overhead: 24889k
GGC runs: 87
Pre-IPA-Garbage: 12561k
Pre-IPA-Leak: 20190k
Pre-IPA-Overhead: 2241k
Post-IPA-Garbage: 12561k
Post-IPA-Leak: 20190k
Post-IPA-Overhead: 2241k
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 362700k -> 362701k
Peak memory use before GGC: 79215k
Peak memory use after GGC: 50149k
Maximum of released memory in single GGC run: 38170k
Garbage: 144752k
Leak: 9152k
Overhead: 25473k
GGC runs: 93
Pre-IPA-Garbage: 12569k
Pre-IPA-Leak: 20439k
Pre-IPA-Overhead: 2295k
Post-IPA-Garbage: 12569k
Post-IPA-Leak: 20439k
Post-IPA-Overhead: 2295k
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 227661k
Peak memory use before GGC: 73624k
Peak memory use after GGC: 66143k
Maximum of released memory in single GGC run: 34735k
Garbage: 222492k
Leak: 7551k
Overhead: 30652k
GGC runs: 97
Pre-IPA-Garbage: 48348k
Pre-IPA-Leak: 63005k
Pre-IPA-Overhead: 8797k
Post-IPA-Garbage: 48348k
Post-IPA-Leak: 63005k
Post-IPA-Overhead: 8797k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 358481k -> 358485k
Peak memory use before GGC: 73624k
Peak memory use after GGC: 66143k
Maximum of released memory in single GGC run: 36061k
Garbage: 251005k
Leak: 7553k
Overhead: 36772k
GGC runs: 106
Pre-IPA-Garbage: 107058k
Pre-IPA-Leak: 75901k
Pre-IPA-Overhead: 14919k
Post-IPA-Garbage: 107058k
Post-IPA-Leak: 75901k
Post-IPA-Overhead: 14919k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1026609k
Peak memory use before GGC: 141898k
Peak memory use after GGC: 129175k
Maximum of released memory in single GGC run: 62763k
Garbage: 365514k
Leak: 9099k
Overhead: 44902k
GGC runs: 103
Pre-IPA-Garbage: 107058k
Pre-IPA-Leak: 75901k
Pre-IPA-Overhead: 14919k
Post-IPA-Garbage: 107058k
Post-IPA-Leak: 75901k
Post-IPA-Overhead: 14919k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-11-25 04:15:57.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-11-25 20:54:40.000000000 +0000
@@ -1,3 +1,28 @@
+2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
+ Joey Ye <joey.ye@intel.com>
+
+ PR middle-end/37843
+ * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
+ false if we need to align the outgoing stack.
+ (ix86_update_stack_boundary): Check parm_stack_boundary.
+
+2008-11-25 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/38151
+ PR middle-end/38236
+ * tree-ssa-alias.c (struct alias_info): Remove written_vars.
+ Remove dereferenced_ptrs_store and dereferenced_ptrs_load
+ in favor of dereferenced_ptrs.
+ (init_alias_info): Adjust.
+ (delete_alias_info): Likewise.
+ (compute_flow_insensitive_aliasing): Properly
+ include all aliased variables.
+ (update_alias_info_1): Use dereferenced_ptrs.
+ (setup_pointers_and_addressables): Likewise.
+ (get_smt_for): Honor ref-all pointers and pointers with known alias
+ set properly.
+ * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
+
2008-11-25 Uros Bizjak <ubizjak@gmail.com>
PR target/38254
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