A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Fri Mar 14 23:54: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: 8152k -> 8153k
Peak memory use before GGC: 1103k
Peak memory use after GGC: 1000k
Maximum of released memory in single GGC run: 130k
Garbage: 239k
Leak: 956k
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: 8168k -> 8169k
Peak memory use before GGC: 1130k
Peak memory use after GGC: 1035k
Maximum of released memory in single GGC run: 130k
Garbage: 241k
Leak: 989k
Overhead: 85k
GGC runs: 4
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O1 level:
Overall memory needed: 8204k -> 8205k
Peak memory use before GGC: 1103k
Peak memory use after GGC: 1000k
Maximum of released memory in single GGC run: 132k
Garbage: 241k
Leak: 957k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 228k
Pre-IPA-Leak: 959k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 228k
Post-IPA-Leak: 959k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O2 level:
Overall memory needed: 8224k -> 8225k
Peak memory use before GGC: 1103k
Peak memory use after GGC: 1000k
Maximum of released memory in single GGC run: 135k
Garbage: 245k
Leak: 958k
Overhead: 82k
GGC runs: 2
Pre-IPA-Garbage: 228k
Pre-IPA-Leak: 960k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 228k
Post-IPA-Leak: 960k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O3 level:
Overall memory needed: 8224k -> 8225k
Peak memory use before GGC: 1103k
Peak memory use after GGC: 1000k
Maximum of released memory in single GGC run: 135k
Garbage: 245k
Leak: 958k
Overhead: 82k
GGC runs: 2
Pre-IPA-Garbage: 228k
Pre-IPA-Leak: 960k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 228k
Post-IPA-Leak: 960k
Post-IPA-Overhead: 79k
comparing combine.c compilation at -O0 level:
Overall memory needed: 22640k -> 22641k
Peak memory use before GGC: 7808k
Peak memory use after GGC: 7189k
Maximum of released memory in single GGC run: 1550k
Garbage: 37868k
Leak: 5517k
Overhead: 4635k
GGC runs: 372
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 24672k -> 24669k
Peak memory use before GGC: 9648k
Peak memory use after GGC: 8948k
Maximum of released memory in single GGC run: 1838k
Garbage: 38188k
Leak: 8383k
Overhead: 5263k
GGC runs: 342
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O1 level:
Overall memory needed: 32840k -> 32841k
Peak memory use before GGC: 16263k
Peak memory use after GGC: 16080k
Maximum of released memory in single GGC run: 1380k -> 1379k
Garbage: 51562k -> 51570k
Leak: 5656k -> 5656k
Overhead: 5805k -> 5805k
GGC runs: 439
Pre-IPA-Garbage: 13925k
Pre-IPA-Leak: 17092k
Pre-IPA-Overhead: 2119k
Post-IPA-Garbage: 13925k
Post-IPA-Leak: 17092k
Post-IPA-Overhead: 2119k
comparing combine.c compilation at -O2 level:
Overall memory needed: 34660k -> 34661k
Peak memory use before GGC: 16364k
Peak memory use after GGC: 16197k
Maximum of released memory in single GGC run: 1316k -> 1315k
Garbage: 70945k -> 71002k
Leak: 5995k -> 5995k
Overhead: 8075k -> 8078k
GGC runs: 507
Pre-IPA-Garbage: 14079k
Pre-IPA-Leak: 17155k
Pre-IPA-Overhead: 2133k
Post-IPA-Garbage: 14079k
Post-IPA-Leak: 17155k
Post-IPA-Overhead: 2133k
comparing combine.c compilation at -O3 level:
Overall memory needed: 38464k -> 38465k
Peak memory use before GGC: 16500k
Peak memory use after GGC: 16202k
Maximum of released memory in single GGC run: 2010k
Garbage: 87899k -> 87974k
Leak: 6039k -> 6039k
Overhead: 10011k -> 10016k
GGC runs: 544
Pre-IPA-Garbage: 14081k
Pre-IPA-Leak: 17167k
Pre-IPA-Overhead: 2134k
Post-IPA-Garbage: 14081k
Post-IPA-Leak: 17167k
Post-IPA-Overhead: 2134k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 137436k -> 137437k
Peak memory use before GGC: 57004k
Peak memory use after GGC: 31462k
Maximum of released memory in single GGC run: 33255k
Garbage: 128871k
Leak: 8133k
Overhead: 14369k
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: 138684k -> 138681k
Peak memory use before GGC: 58147k
Peak memory use after GGC: 32604k
Maximum of released memory in single GGC run: 33257k
Garbage: 128867k
Leak: 10062k
Overhead: 14724k
GGC runs: 288
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 142864k -> 142865k
Peak memory use before GGC: 56224k
Peak memory use after GGC: 49987k
Maximum of released memory in single GGC run: 23976k
Garbage: 205052k
Leak: 9280k
Overhead: 24747k
GGC runs: 315
Pre-IPA-Garbage: 50357k
Pre-IPA-Leak: 49682k
Pre-IPA-Overhead: 7543k
Post-IPA-Garbage: 50357k
Post-IPA-Leak: 49682k
Post-IPA-Overhead: 7543k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 184412k -> 184425k
Peak memory use before GGC: 56855k
Peak memory use after GGC: 51575k
Maximum of released memory in single GGC run: 22891k
Garbage: 245594k -> 245601k
Leak: 10364k
Overhead: 30386k -> 30386k
GGC runs: 346
Pre-IPA-Garbage: 50429k
Pre-IPA-Leak: 49685k
Pre-IPA-Overhead: 7551k
Post-IPA-Garbage: 50429k
Post-IPA-Leak: 49685k
Post-IPA-Overhead: 7551k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 190256k -> 190253k
Peak memory use before GGC: 66401k
Peak memory use after GGC: 62285k
Maximum of released memory in single GGC run: 23390k -> 23391k
Garbage: 269298k -> 269304k
Leak: 10403k
Overhead: 32174k -> 32174k
GGC runs: 346
Pre-IPA-Garbage: 50429k
Pre-IPA-Leak: 49685k
Pre-IPA-Overhead: 7551k
Post-IPA-Garbage: 50429k
Post-IPA-Leak: 49685k
Post-IPA-Overhead: 7551k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 148733k -> 148690k
Peak memory use before GGC: 84449k
Peak memory use after GGC: 83613k
Maximum of released memory in single GGC run: 16993k
Garbage: 200804k
Leak: 48035k
Overhead: 23982k
GGC runs: 417
Pre-IPA-Garbage: 109751k
Pre-IPA-Leak: 71096k
Pre-IPA-Overhead: 12096k
Post-IPA-Garbage: 109751k
Post-IPA-Leak: 71096k
Post-IPA-Overhead: 12096k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 169317k -> 169318k
Peak memory use before GGC: 96105k
Peak memory use after GGC: 95153k
Maximum of released memory in single GGC run: 17493k
Garbage: 206431k
Leak: 69718k
Overhead: 28959k
GGC runs: 390
Pre-IPA-Garbage: 110395k
Pre-IPA-Leak: 84377k
Pre-IPA-Overhead: 14672k
Post-IPA-Garbage: 110395k
Post-IPA-Leak: 84377k
Post-IPA-Overhead: 14672k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 122223k -> 122221k
Peak memory use before GGC: 83951k
Peak memory use after GGC: 83111k
Maximum of released memory in single GGC run: 16213k
Garbage: 288622k -> 288582k
Leak: 47320k -> 47318k
Overhead: 29242k -> 29237k
GGC runs: 512
Pre-IPA-Garbage: 154817k
Pre-IPA-Leak: 87733k
Pre-IPA-Overhead: 17481k
Post-IPA-Garbage: 154817k
Post-IPA-Leak: 87733k
Post-IPA-Overhead: 17481k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage increased from 354021k to 354382k, overall 0.10%
Overall memory needed: 124743k -> 124709k
Peak memory use before GGC: 84146k -> 84160k
Peak memory use after GGC: 83312k
Maximum of released memory in single GGC run: 16215k
Garbage: 354021k -> 354382k
Leak: 48418k -> 48410k
Overhead: 36215k -> 36234k
GGC runs: 584 -> 585
Pre-IPA-Garbage: 157364k
Pre-IPA-Leak: 87884k
Pre-IPA-Overhead: 17762k
Post-IPA-Garbage: 157364k
Post-IPA-Leak: 87884k
Post-IPA-Overhead: 17762k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Amount of produced GGC garbage increased from 377249k to 377957k, overall 0.19%
Overall memory needed: 127579k -> 127549k
Peak memory use before GGC: 85427k
Peak memory use after GGC: 84551k
Maximum of released memory in single GGC run: 16587k
Garbage: 377249k -> 377957k
Leak: 48998k -> 48993k
Overhead: 38301k -> 38361k
GGC runs: 608 -> 610
Pre-IPA-Garbage: 160081k
Pre-IPA-Leak: 88167k
Pre-IPA-Overhead: 18011k
Post-IPA-Garbage: 160081k
Post-IPA-Leak: 88167k
Post-IPA-Overhead: 18011k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 380450k -> 380452k
Peak memory use before GGC: 101215k
Peak memory use after GGC: 56868k
Maximum of released memory in single GGC run: 50583k
Garbage: 178905k
Leak: 6103k
Overhead: 30783k
GGC runs: 107
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 381242k -> 381244k
Peak memory use before GGC: 101845k
Peak memory use after GGC: 57499k
Maximum of released memory in single GGC run: 50582k
Garbage: 179020k
Leak: 7833k
Overhead: 31215k
GGC runs: 111
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Amount of produced GGC garbage increased from 234302k to 234583k, overall 0.12%
Overall memory needed: 437136k -> 437337k
Peak memory use before GGC: 78692k
Peak memory use after GGC: 70441k
Maximum of released memory in single GGC run: 37596k
Garbage: 234302k -> 234583k
Leak: 15907k
Overhead: 35590k -> 35646k
GGC runs: 106
Pre-IPA-Garbage: 52926k
Pre-IPA-Leak: 49237k
Pre-IPA-Overhead: 7120k
Post-IPA-Garbage: 52926k
Post-IPA-Leak: 49237k
Post-IPA-Overhead: 7120k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Amount of produced GGC garbage increased from 245093k to 245354k, overall 0.11%
Overall memory needed: 355596k -> 358069k
Peak memory use before GGC: 75428k
Peak memory use after GGC: 70442k
Maximum of released memory in single GGC run: 32242k -> 32234k
Garbage: 245093k -> 245354k
Leak: 16080k -> 16079k
Overhead: 38768k -> 38822k
GGC runs: 117
Pre-IPA-Garbage: 91838k
Pre-IPA-Leak: 77295k
Pre-IPA-Overhead: 11793k
Post-IPA-Garbage: 91838k
Post-IPA-Leak: 77295k
Post-IPA-Overhead: 11793k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1198648k -> 1198713k
Peak memory use before GGC: 136589k
Peak memory use after GGC: 127947k
Maximum of released memory in single GGC run: 59911k
Garbage: 369974k
Leak: 24893k
Overhead: 49889k
GGC runs: 104
Pre-IPA-Garbage: 91838k
Pre-IPA-Leak: 77295k
Pre-IPA-Overhead: 11793k
Post-IPA-Garbage: 91838k
Post-IPA-Leak: 77295k
Post-IPA-Overhead: 11793k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-03-14 16:58:02.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-03-14 20:36:21.000000000 +0000
@@ -1,3 +1,20 @@
+2008-03-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/34172
+ * tree-flow.h (refs_may_alias_p): Declare.
+ (get_single_def_stmt): Likewise.
+ (get_single_def_stmt_from_phi): Likewise.
+ (get_single_def_stmt_with_phi): Likewise.
+ * tree-dfa.c (refs_may_alias_p): New function.
+ (get_single_def_stmt): Likewise.
+ (get_single_def_stmt_from_phi): Likewise.
+ (get_single_def_stmt_with_phi): Likewise.
+ * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
+ (vn_reference_lookup_1): New helper function.
+ (vn_reference_lookup): Walk the virtual use-def chain to
+ continue searching for a match if the def does not alias the
+ reference we are looking for.
+
2008-03-14 David Edelsohn <edelsohn@gnu.org>
* doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
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