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, gcc-regression at gcc dot gnu dot org
- Date: Mon, 19 May 2008 03:29:16 +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:
Amount of produced GGC garbage increased from 238k to 238k, overall 0.14%
Overall memory needed: 8181k
Peak memory use before GGC: 1104k -> 1105k
Peak memory use after GGC: 1001k
Maximum of released memory in single GGC run: 129k
Garbage: 238k -> 238k
Leak: 958k -> 959k
Overhead: 80k -> 80k
GGC runs: 2
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O0 -g level:
Amount of produced GGC garbage increased from 240k to 241k, overall 0.14%
Overall memory needed: 8197k
Peak memory use before GGC: 1132k
Peak memory use after GGC: 1035k -> 1036k
Maximum of released memory in single GGC run: 128k
Garbage: 240k -> 241k
Leak: 991k -> 992k
Overhead: 85k -> 85k
GGC runs: 4
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O1 level:
Amount of produced GGC garbage increased from 240k to 240k, overall 0.14%
Overall memory needed: 8253k
Peak memory use before GGC: 1104k -> 1105k
Peak memory use after GGC: 1001k
Maximum of released memory in single GGC run: 130k -> 131k
Garbage: 240k -> 240k
Leak: 959k -> 959k
Overhead: 81k -> 81k
GGC runs: 2
Amount of produced pre-ipa-GGC garbage increased from 228k to 228k, overall 0.15%
Pre-IPA-Garbage: 228k -> 228k
Pre-IPA-Leak: 961k -> 962k
Pre-IPA-Overhead: 79k -> 79k
Amount of produced post-ipa-GGC garbage increased from 228k to 228k, overall 0.15%
Post-IPA-Garbage: 228k -> 228k
Post-IPA-Leak: 961k -> 962k
Post-IPA-Overhead: 79k -> 79k
comparing empty function compilation at -O2 level:
Amount of produced GGC garbage increased from 244k to 244k, overall 0.14%
Overall memory needed: 8273k
Peak memory use before GGC: 1105k
Peak memory use after GGC: 1001k -> 1002k
Maximum of released memory in single GGC run: 135k -> 134k
Garbage: 244k -> 244k
Leak: 960k -> 960k
Overhead: 82k -> 82k
GGC runs: 2
Amount of produced pre-ipa-GGC garbage increased from 228k to 228k, overall 0.15%
Pre-IPA-Garbage: 228k -> 228k
Pre-IPA-Leak: 962k -> 962k
Pre-IPA-Overhead: 79k -> 79k
Amount of produced post-ipa-GGC garbage increased from 228k to 228k, overall 0.15%
Post-IPA-Garbage: 228k -> 228k
Post-IPA-Leak: 962k -> 962k
Post-IPA-Overhead: 79k -> 79k
comparing empty function compilation at -O3 level:
Amount of produced GGC garbage increased from 244k to 244k, overall 0.14%
Overall memory needed: 8273k
Peak memory use before GGC: 1105k
Peak memory use after GGC: 1001k -> 1002k
Maximum of released memory in single GGC run: 135k -> 134k
Garbage: 244k -> 244k
Leak: 960k -> 960k
Overhead: 82k -> 82k
GGC runs: 2
Amount of produced pre-ipa-GGC garbage increased from 228k to 228k, overall 0.15%
Pre-IPA-Garbage: 228k -> 228k
Pre-IPA-Leak: 962k -> 962k
Pre-IPA-Overhead: 79k -> 79k
Amount of produced post-ipa-GGC garbage increased from 228k to 228k, overall 0.15%
Post-IPA-Garbage: 228k -> 228k
Post-IPA-Leak: 962k -> 962k
Post-IPA-Overhead: 79k -> 79k
comparing combine.c compilation at -O0 level:
Overall memory needed: 22633k -> 22629k
Peak memory use before GGC: 7774k
Peak memory use after GGC: 7150k
Maximum of released memory in single GGC run: 1545k
Garbage: 37789k -> 37775k
Leak: 5479k -> 5479k
Overhead: 4616k -> 4616k
GGC runs: 371
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O0 -g level:
Peak amount of GGC memory allocated before garbage collecting increased from 9689k to 9708k, overall 0.20%
Overall memory needed: 24713k -> 24717k
Peak memory use before GGC: 9689k -> 9708k
Peak memory use after GGC: 9046k -> 9047k
Maximum of released memory in single GGC run: 1831k -> 1832k
Garbage: 38140k -> 38144k
Leak: 8673k -> 8674k
Overhead: 5412k -> 5412k
GGC runs: 341
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O1 level:
Overall memory needed: 32769k
Peak memory use before GGC: 16182k
Peak memory use after GGC: 16018k
Maximum of released memory in single GGC run: 1376k -> 1375k
Garbage: 51456k -> 51456k
Leak: 5647k -> 5648k
Overhead: 5730k -> 5730k
GGC runs: 439
Pre-IPA-Garbage: 13899k -> 13900k
Pre-IPA-Leak: 16974k -> 16974k
Pre-IPA-Overhead: 2086k
Post-IPA-Garbage: 13899k -> 13900k
Post-IPA-Leak: 16974k -> 16974k
Post-IPA-Overhead: 2086k
comparing combine.c compilation at -O2 level:
Overall memory needed: 34545k
Peak memory use before GGC: 16272k
Peak memory use after GGC: 16110k
Maximum of released memory in single GGC run: 1303k -> 1304k
Garbage: 71656k -> 71657k
Leak: 5979k -> 5971k
Overhead: 8072k -> 8072k
GGC runs: 509
Pre-IPA-Garbage: 14051k -> 14052k
Pre-IPA-Leak: 17038k -> 17038k
Pre-IPA-Overhead: 2099k
Post-IPA-Garbage: 14051k -> 14052k
Post-IPA-Leak: 17038k -> 17038k
Post-IPA-Overhead: 2099k
comparing combine.c compilation at -O3 level:
Overall memory needed: 38705k -> 38701k
Peak memory use before GGC: 16365k
Peak memory use after GGC: 16126k
Maximum of released memory in single GGC run: 2440k
Garbage: 91551k -> 91537k
Leak: 6035k -> 6035k
Overhead: 10610k -> 10609k
GGC runs: 544
Pre-IPA-Garbage: 14053k -> 14054k
Pre-IPA-Leak: 17049k -> 17049k
Pre-IPA-Overhead: 2101k
Post-IPA-Garbage: 14053k -> 14054k
Post-IPA-Leak: 17049k -> 17049k
Post-IPA-Overhead: 2101k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 137445k -> 137449k
Peak memory use before GGC: 56958k -> 56959k
Peak memory use after GGC: 31384k -> 31385k
Maximum of released memory in single GGC run: 33223k
Garbage: 128389k -> 128387k
Leak: 8355k -> 8355k
Overhead: 14291k -> 14291k
GGC runs: 291
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 138733k
Peak memory use before GGC: 58160k -> 58161k
Peak memory use after GGC: 32585k -> 32586k
Maximum of released memory in single GGC run: 33224k
Garbage: 128896k -> 128896k
Leak: 9933k -> 9933k
Overhead: 14731k -> 14731k
GGC runs: 289 -> 288
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 142361k -> 142357k
Peak memory use before GGC: 56075k -> 56076k
Peak memory use after GGC: 49743k
Maximum of released memory in single GGC run: 23959k -> 23960k
Garbage: 204997k -> 204998k
Leak: 9260k -> 9261k
Overhead: 24455k -> 24455k
GGC runs: 315
Pre-IPA-Garbage: 50365k -> 50366k
Pre-IPA-Leak: 49268k -> 49269k
Pre-IPA-Overhead: 7416k -> 7416k
Post-IPA-Garbage: 50365k -> 50366k
Post-IPA-Leak: 49268k -> 49269k
Post-IPA-Overhead: 7416k -> 7416k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 184389k -> 184385k
Peak memory use before GGC: 56658k
Peak memory use after GGC: 51343k -> 51344k
Maximum of released memory in single GGC run: 22853k -> 22852k
Garbage: 246596k -> 246596k
Leak: 10337k -> 10337k
Overhead: 30363k -> 30363k
GGC runs: 345
Pre-IPA-Garbage: 50437k -> 50437k
Pre-IPA-Leak: 49272k -> 49273k
Pre-IPA-Overhead: 7423k -> 7423k
Post-IPA-Garbage: 50437k -> 50437k
Post-IPA-Leak: 49272k -> 49273k
Post-IPA-Overhead: 7423k -> 7423k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 190873k -> 190677k
Peak memory use before GGC: 68990k
Peak memory use after GGC: 64797k
Maximum of released memory in single GGC run: 24862k
Garbage: 273788k -> 273789k
Leak: 10372k -> 10373k
Overhead: 32269k -> 32269k
GGC runs: 345
Pre-IPA-Garbage: 50437k -> 50437k
Pre-IPA-Leak: 49272k -> 49273k
Pre-IPA-Overhead: 7423k -> 7423k
Post-IPA-Garbage: 50437k -> 50437k
Post-IPA-Leak: 49272k -> 49273k
Post-IPA-Overhead: 7423k -> 7423k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 144021k -> 144100k
Peak memory use before GGC: 80333k
Peak memory use after GGC: 79537k -> 79538k
Maximum of released memory in single GGC run: 14817k -> 14816k
Garbage: 197259k -> 197265k
Leak: 47150k -> 47151k
Overhead: 24078k -> 24079k
GGC runs: 418
Pre-IPA-Garbage: 107899k -> 107899k
Pre-IPA-Leak: 69071k -> 69071k
Pre-IPA-Overhead: 12017k -> 12017k
Post-IPA-Garbage: 107899k -> 107899k
Post-IPA-Leak: 69071k -> 69071k
Post-IPA-Overhead: 12017k -> 12017k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 166193k -> 166192k
Peak memory use before GGC: 92916k -> 92917k
Peak memory use after GGC: 91996k
Maximum of released memory in single GGC run: 15518k
Garbage: 202906k -> 202908k
Leak: 71539k -> 71539k
Overhead: 30438k -> 30437k
GGC runs: 389
Pre-IPA-Garbage: 108542k -> 108542k
Pre-IPA-Leak: 83804k -> 83804k
Pre-IPA-Overhead: 15320k -> 15320k
Post-IPA-Garbage: 108542k -> 108542k
Post-IPA-Leak: 83804k -> 83804k
Post-IPA-Overhead: 15320k -> 15320k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 118985k -> 118977k
Peak memory use before GGC: 79481k
Peak memory use after GGC: 78687k -> 78688k
Maximum of released memory in single GGC run: 14455k
Garbage: 287446k -> 287462k
Leak: 46302k -> 46302k
Overhead: 28530k -> 28531k
GGC runs: 519 -> 520
Pre-IPA-Garbage: 151112k -> 151112k
Pre-IPA-Leak: 83059k -> 83060k
Pre-IPA-Overhead: 16674k -> 16674k
Post-IPA-Garbage: 151112k -> 151112k
Post-IPA-Leak: 83059k -> 83060k
Post-IPA-Overhead: 16674k -> 16674k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 121241k -> 121185k
Peak memory use before GGC: 79507k
Peak memory use after GGC: 78720k
Maximum of released memory in single GGC run: 14458k -> 14457k
Garbage: 356223k -> 356222k
Leak: 47708k -> 47707k
Overhead: 35682k -> 35684k
GGC runs: 597 -> 596
Pre-IPA-Garbage: 152713k -> 152715k
Pre-IPA-Leak: 82936k -> 82937k
Pre-IPA-Overhead: 16810k -> 16810k
Post-IPA-Garbage: 152713k -> 152715k
Post-IPA-Leak: 82936k -> 82937k
Post-IPA-Overhead: 16810k -> 16810k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 124249k -> 124253k
Peak memory use before GGC: 80999k -> 81000k
Peak memory use after GGC: 80197k -> 80198k
Maximum of released memory in single GGC run: 14780k
Garbage: 383485k -> 383315k
Leak: 48106k -> 48114k
Overhead: 38004k -> 37980k
GGC runs: 621
Pre-IPA-Garbage: 155338k -> 155340k
Pre-IPA-Leak: 83220k -> 83221k
Pre-IPA-Overhead: 17052k -> 17052k
Post-IPA-Garbage: 155338k -> 155340k
Post-IPA-Leak: 83220k -> 83221k
Post-IPA-Overhead: 17052k -> 17052k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 380362k -> 380349k
Peak memory use before GGC: 100958k
Peak memory use after GGC: 56611k -> 56612k
Maximum of released memory in single GGC run: 50583k -> 50582k
Garbage: 178453k -> 178453k
Leak: 6103k -> 6104k
Overhead: 30541k -> 30541k
GGC runs: 107 -> 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: 381202k -> 381193k
Peak memory use before GGC: 101651k
Peak memory use after GGC: 57304k -> 57305k
Maximum of released memory in single GGC run: 50583k -> 50582k
Garbage: 178568k -> 178616k
Leak: 8132k -> 8133k
Overhead: 31124k -> 31125k
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: 398541k -> 398589k
Peak memory use before GGC: 75052k
Peak memory use after GGC: 68956k
Maximum of released memory in single GGC run: 34951k -> 34950k
Garbage: 237663k -> 237663k
Leak: 13678k -> 13678k
Overhead: 30716k
GGC runs: 106
Pre-IPA-Garbage: 47276k -> 47276k
Pre-IPA-Leak: 65129k -> 65130k
Pre-IPA-Overhead: 6423k -> 6423k
Post-IPA-Garbage: 47276k -> 47276k
Post-IPA-Leak: 65129k -> 65130k
Post-IPA-Overhead: 6423k -> 6423k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 303445k -> 303269k
Peak memory use before GGC: 74966k -> 74967k
Peak memory use after GGC: 68956k -> 68957k
Maximum of released memory in single GGC run: 31581k -> 31580k
Garbage: 252153k -> 252152k
Leak: 13851k -> 13852k
Overhead: 33834k -> 33834k
GGC runs: 118
Pre-IPA-Garbage: 99280k -> 99281k
Pre-IPA-Leak: 82247k -> 82247k
Pre-IPA-Overhead: 10465k -> 10465k
Post-IPA-Garbage: 99280k -> 99281k
Post-IPA-Leak: 82247k -> 82247k
Post-IPA-Overhead: 10465k -> 10465k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1079381k -> 1079589k
Peak memory use before GGC: 141304k
Peak memory use after GGC: 131199k
Maximum of released memory in single GGC run: 55803k -> 55802k
Garbage: 343000k -> 343000k
Leak: 22001k -> 22001k
Overhead: 37524k -> 37524k
GGC runs: 102
Pre-IPA-Garbage: 99280k -> 99281k
Pre-IPA-Leak: 82247k -> 82247k
Pre-IPA-Overhead: 10465k -> 10465k
Post-IPA-Garbage: 99280k -> 99281k
Post-IPA-Leak: 82247k -> 82247k
Post-IPA-Overhead: 10465k -> 10465k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-05-18 19:12:19.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-05-18 23:34:48.000000000 +0000
@@ -1,3 +1,25 @@
+2008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/35509
+
+ * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
+ Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
+ (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
+ (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
+ (fold_builtin_1): Likewise.
+ * builtins.def (BUILT_IN_ISINF_SIGN): New.
+ c-common.c (check_builtin_function_arguments): Handle
+ BUILT_IN_ISINF_SIGN.
+ * doc/extend.texi: Document __builtin_isinf_sign.
+ * fold-const.c (operand_equal_p): Handle COND_EXPR.
+
+
+2008-05-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
+ EH cleanup at the end of the pass, search for those that have been
+ turned into forwarder blocks and do the cleanup on their successor.
+
2008-05-18 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_gimple_expr): Allow conversions from
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.