A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Fri May 2 16:27: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: 8151k
Peak memory use before GGC: 1103k
Peak memory use after GGC: 999k
Maximum of released memory in single GGC run: 129k
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: 8167k
Peak memory use before GGC: 1131k
Peak memory use after GGC: 1033k
Maximum of released memory in single GGC run: 128k
Garbage: 242k
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: 8203k
Peak memory use before GGC: 1103k
Peak memory use after GGC: 999k
Maximum of released memory in single GGC run: 131k
Garbage: 241k
Leak: 957k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 229k
Pre-IPA-Leak: 959k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 229k
Post-IPA-Leak: 959k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O2 level:
Overall memory needed: 8223k
Peak memory use before GGC: 1104k
Peak memory use after GGC: 999k
Maximum of released memory in single GGC run: 134k
Garbage: 245k
Leak: 958k
Overhead: 82k
GGC runs: 2
Pre-IPA-Garbage: 229k
Pre-IPA-Leak: 960k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 229k
Post-IPA-Leak: 960k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O3 level:
Overall memory needed: 8223k
Peak memory use before GGC: 1104k
Peak memory use after GGC: 999k
Maximum of released memory in single GGC run: 134k
Garbage: 245k
Leak: 958k
Overhead: 82k
GGC runs: 2
Pre-IPA-Garbage: 229k
Pre-IPA-Leak: 960k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 229k
Post-IPA-Leak: 960k
Post-IPA-Overhead: 79k
comparing combine.c compilation at -O0 level:
Overall memory needed: 22611k
Peak memory use before GGC: 7771k
Peak memory use after GGC: 7148k
Maximum of released memory in single GGC run: 1545k
Garbage: 37781k
Leak: 5479k
Overhead: 4618k
GGC runs: 371
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 24699k
Peak memory use before GGC: 9706k
Peak memory use after GGC: 9044k
Maximum of released memory in single GGC run: 1831k
Garbage: 38152k
Leak: 8673k
Overhead: 5414k
GGC runs: 341
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O1 level:
Amount of memory still referenced at the end of compilation increased from 5614k to 5647k, overall 0.58%
Overall memory needed: 32831k
Peak memory use before GGC: 16259k
Peak memory use after GGC: 16096k
Maximum of released memory in single GGC run: 1378k -> 1375k
Garbage: 51489k -> 51457k
Leak: 5614k -> 5647k
Overhead: 5809k
GGC runs: 441
Pre-IPA-Garbage: 13899k
Pre-IPA-Leak: 17090k
Pre-IPA-Overhead: 2132k
Post-IPA-Garbage: 13899k
Post-IPA-Leak: 17090k
Post-IPA-Overhead: 2132k
comparing combine.c compilation at -O2 level:
Amount of memory still referenced at the end of compilation increased from 5943k to 5975k, overall 0.55%
Overall memory needed: 34603k
Peak memory use before GGC: 16359k
Peak memory use after GGC: 16189k
Maximum of released memory in single GGC run: 1307k -> 1304k
Garbage: 71685k -> 71655k
Leak: 5943k -> 5975k
Overhead: 8157k -> 8158k
GGC runs: 510
Pre-IPA-Garbage: 14051k
Pre-IPA-Leak: 17154k
Pre-IPA-Overhead: 2147k
Post-IPA-Garbage: 14051k
Post-IPA-Leak: 17154k
Post-IPA-Overhead: 2147k
comparing combine.c compilation at -O3 level:
Amount of memory still referenced at the end of compilation increased from 6004k to 6034k, overall 0.50%
Overall memory needed: 38767k
Peak memory use before GGC: 16440k
Peak memory use after GGC: 16204k
Maximum of released memory in single GGC run: 2440k
Garbage: 91515k -> 91485k
Leak: 6004k -> 6034k
Overhead: 10695k
GGC runs: 546
Pre-IPA-Garbage: 14053k
Pre-IPA-Leak: 17165k
Pre-IPA-Overhead: 2148k
Post-IPA-Garbage: 14053k
Post-IPA-Leak: 17165k
Post-IPA-Overhead: 2148k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 137431k
Peak memory use before GGC: 56956k
Peak memory use after GGC: 31382k
Maximum of released memory in single GGC run: 33223k
Garbage: 128386k
Leak: 8354k
Overhead: 14292k
GGC runs: 293
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 138719k
Peak memory use before GGC: 58158k
Peak memory use after GGC: 32583k
Maximum of released memory in single GGC run: 33224k
Garbage: 128900k
Leak: 9932k
Overhead: 14732k
GGC runs: 289
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O1 level:
Amount of memory still referenced at the end of compilation increased from 9249k to 9259k, overall 0.11%
Overall memory needed: 142879k
Peak memory use before GGC: 56178k -> 56181k
Peak memory use after GGC: 49957k -> 49960k
Maximum of released memory in single GGC run: 23959k
Garbage: 205099k -> 205088k
Leak: 9249k -> 9259k
Overhead: 24744k
GGC runs: 316
Pre-IPA-Garbage: 50366k
Pre-IPA-Leak: 49651k
Pre-IPA-Overhead: 7555k
Post-IPA-Garbage: 50366k
Post-IPA-Leak: 49651k
Post-IPA-Overhead: 7555k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 184091k -> 184087k
Peak memory use before GGC: 56787k -> 56790k
Peak memory use after GGC: 51558k -> 51560k
Maximum of released memory in single GGC run: 22852k -> 22853k
Garbage: 246601k -> 246591k
Leak: 10327k -> 10337k
Overhead: 30638k
GGC runs: 346
Pre-IPA-Garbage: 50438k
Pre-IPA-Leak: 49654k
Pre-IPA-Overhead: 7563k
Post-IPA-Garbage: 50438k
Post-IPA-Leak: 49654k
Post-IPA-Overhead: 7563k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 191323k
Peak memory use before GGC: 69203k -> 69206k
Peak memory use after GGC: 65011k -> 65014k
Maximum of released memory in single GGC run: 24862k
Garbage: 273819k -> 273809k
Leak: 10361k -> 10371k
Overhead: 32554k
GGC runs: 345
Pre-IPA-Garbage: 50438k
Pre-IPA-Leak: 49654k
Pre-IPA-Overhead: 7563k
Post-IPA-Garbage: 50438k
Post-IPA-Leak: 49654k
Post-IPA-Overhead: 7563k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 144044k -> 144076k
Peak memory use before GGC: 80332k
Peak memory use after GGC: 79536k
Maximum of released memory in single GGC run: 14817k
Garbage: 197305k -> 197295k
Leak: 47159k -> 47169k
Overhead: 24144k
GGC runs: 418
Pre-IPA-Garbage: 107934k
Pre-IPA-Leak: 69091k
Pre-IPA-Overhead: 12082k
Post-IPA-Garbage: 107934k
Post-IPA-Leak: 69091k
Post-IPA-Overhead: 12082k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 166168k
Peak memory use before GGC: 92915k
Peak memory use after GGC: 91995k
Maximum of released memory in single GGC run: 15518k
Garbage: 202955k -> 202945k
Leak: 71548k -> 71558k
Overhead: 30503k
GGC runs: 388
Pre-IPA-Garbage: 108577k
Pre-IPA-Leak: 83824k
Pre-IPA-Overhead: 15386k
Post-IPA-Garbage: 108577k
Post-IPA-Leak: 83824k
Post-IPA-Overhead: 15386k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 119135k -> 119139k
Peak memory use before GGC: 79872k
Peak memory use after GGC: 79079k
Maximum of released memory in single GGC run: 14455k
Garbage: 287583k -> 287572k
Leak: 46293k -> 46303k
Overhead: 29818k -> 29818k
GGC runs: 517
Pre-IPA-Garbage: 151102k
Pre-IPA-Leak: 83607k
Pre-IPA-Overhead: 17520k
Post-IPA-Garbage: 151102k
Post-IPA-Leak: 83607k
Post-IPA-Overhead: 17520k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 121275k
Peak memory use before GGC: 79798k
Peak memory use after GGC: 78977k
Maximum of released memory in single GGC run: 14457k
Garbage: 356329k -> 356318k
Leak: 47697k -> 47707k
Overhead: 37070k -> 37070k
GGC runs: 596
Pre-IPA-Garbage: 152722k
Pre-IPA-Leak: 83471k
Pre-IPA-Overhead: 17688k
Post-IPA-Garbage: 152722k
Post-IPA-Leak: 83471k
Post-IPA-Overhead: 17688k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 124379k
Peak memory use before GGC: 81053k
Peak memory use after GGC: 80233k
Maximum of released memory in single GGC run: 14780k
Garbage: 383317k -> 383307k
Leak: 48121k -> 48131k
Overhead: 39408k -> 39408k
GGC runs: 618
Pre-IPA-Garbage: 155353k
Pre-IPA-Leak: 83756k
Pre-IPA-Overhead: 17939k
Post-IPA-Garbage: 155353k
Post-IPA-Leak: 83756k
Post-IPA-Overhead: 17939k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 380348k
Peak memory use before GGC: 100956k
Peak memory use after GGC: 56609k
Maximum of released memory in single GGC run: 50583k
Garbage: 178454k
Leak: 6101k
Overhead: 30540k
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: 381196k
Peak memory use before GGC: 101649k
Peak memory use after GGC: 57302k
Maximum of released memory in single GGC run: 50583k
Garbage: 178569k
Leak: 8130k
Overhead: 31123k
GGC runs: 110
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 393123k
Peak memory use before GGC: 76378k
Peak memory use after GGC: 70368k
Maximum of released memory in single GGC run: 35020k
Garbage: 238055k
Leak: 13675k
Overhead: 32176k
GGC runs: 105
Pre-IPA-Garbage: 47314k
Pre-IPA-Leak: 67574k
Pre-IPA-Overhead: 7555k
Post-IPA-Garbage: 47314k
Post-IPA-Leak: 67574k
Post-IPA-Overhead: 7555k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 309451k
Peak memory use before GGC: 76378k
Peak memory use after GGC: 70368k
Maximum of released memory in single GGC run: 31602k
Garbage: 252498k
Leak: 13849k
Overhead: 35290k
GGC runs: 118
Pre-IPA-Garbage: 99940k
Pre-IPA-Leak: 77333k
Pre-IPA-Overhead: 12228k
Post-IPA-Garbage: 99940k
Post-IPA-Leak: 77333k
Post-IPA-Overhead: 12228k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1200515k
Peak memory use before GGC: 138640k
Peak memory use after GGC: 127950k
Maximum of released memory in single GGC run: 59910k
Garbage: 374918k
Leak: 24123k
Overhead: 49943k
GGC runs: 104
Pre-IPA-Garbage: 99940k
Pre-IPA-Leak: 77333k
Pre-IPA-Overhead: 12228k
Post-IPA-Garbage: 99940k
Post-IPA-Leak: 77333k
Post-IPA-Overhead: 12228k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-05-01 22:10:03.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-05-02 13:14:58.000000000 +0000
@@ -1,3 +1,11 @@
+2008-05-01 Jan Hubicka <jh@suse.cz>
+
+ PR bootstrap/36100
+ * ipa-inline.c (inline_generate_summary): Make static.
+ (inline_transform): Do not call inlining at -O0; make static.
+ * passes.c (execute_todo): Add sanity check.
+ (execute_one_ipa_transform_pass): Execute proper flags.
+
2008-05-01 Eric Botcazou <ebotcazou@adacore.com>
* tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
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