A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Tue May 19 17:25:00 GMT 2009
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: 8801k
Peak memory use before GGC: 1488k
Peak memory use after GGC: 1437k
Maximum of released memory in single GGC run: 85k
Garbage: 218k
Leak: 1537k
Overhead: 187k
GGC runs: 4
Pre-IPA-Garbage: 210k
Pre-IPA-Leak: 1539k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 210k
Post-IPA-Leak: 1539k
Post-IPA-Overhead: 186k
comparing empty function compilation at -O0 -g level:
Overall memory needed: 8825k
Peak memory use before GGC: 1516k
Peak memory use after GGC: 1464k
Maximum of released memory in single GGC run: 87k
Garbage: 219k
Leak: 1570k
Overhead: 192k
GGC runs: 4
Pre-IPA-Garbage: 210k
Pre-IPA-Leak: 1539k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 210k
Post-IPA-Leak: 1539k
Post-IPA-Overhead: 186k
comparing empty function compilation at -O1 level:
Overall memory needed: 8909k -> 8929k
Peak memory use before GGC: 1488k
Peak memory use after GGC: 1437k
Maximum of released memory in single GGC run: 87k
Garbage: 220k
Leak: 1537k
Overhead: 188k
GGC runs: 4
Pre-IPA-Garbage: 210k
Pre-IPA-Leak: 1540k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 210k
Post-IPA-Leak: 1540k
Post-IPA-Overhead: 186k
comparing empty function compilation at -O2 level:
Overall memory needed: 8925k -> 8929k
Peak memory use before GGC: 1488k
Peak memory use after GGC: 1437k
Maximum of released memory in single GGC run: 92k
Garbage: 226k
Leak: 1537k
Overhead: 189k
GGC runs: 4
Pre-IPA-Garbage: 210k
Pre-IPA-Leak: 1540k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 210k
Post-IPA-Leak: 1540k
Post-IPA-Overhead: 186k
comparing empty function compilation at -O3 level:
Overall memory needed: 8933k
Peak memory use before GGC: 1488k
Peak memory use after GGC: 1437k
Maximum of released memory in single GGC run: 92k
Garbage: 226k
Leak: 1537k
Overhead: 189k
GGC runs: 4
Pre-IPA-Garbage: 210k
Pre-IPA-Leak: 1540k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 210k
Post-IPA-Leak: 1540k
Post-IPA-Overhead: 186k
comparing combine.c compilation at -O0 level:
Amount of memory still referenced at the end of compilation increased from 7155k to 7171k, overall 0.22%
Overall memory needed: 31445k
Peak memory use before GGC: 17469k
Peak memory use after GGC: 17020k
Maximum of released memory in single GGC run: 1910k
Garbage: 37902k -> 37903k
Leak: 7155k -> 7171k
Overhead: 5492k -> 5492k
GGC runs: 330 -> 331
Pre-IPA-Garbage: 12539k
Pre-IPA-Leak: 18401k
Pre-IPA-Overhead: 2507k
Post-IPA-Garbage: 12539k
Post-IPA-Leak: 18401k
Post-IPA-Overhead: 2507k
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 33369k
Peak memory use before GGC: 19377k
Peak memory use after GGC: 18859k
Maximum of released memory in single GGC run: 1920k
Garbage: 38118k
Leak: 10441k
Overhead: 6305k
GGC runs: 315
Pre-IPA-Garbage: 12558k
Pre-IPA-Leak: 20650k
Pre-IPA-Overhead: 2989k
Post-IPA-Garbage: 12558k
Post-IPA-Leak: 20650k
Post-IPA-Overhead: 2989k
comparing combine.c compilation at -O1 level:
Overall memory needed: 31837k -> 31873k
Peak memory use before GGC: 16476k
Peak memory use after GGC: 16310k
Maximum of released memory in single GGC run: 1378k
Garbage: 45344k
Leak: 7156k
Overhead: 6390k
GGC runs: 387
Pre-IPA-Garbage: 12959k
Pre-IPA-Leak: 17620k
Pre-IPA-Overhead: 2503k
Post-IPA-Garbage: 12959k
Post-IPA-Leak: 17620k
Post-IPA-Overhead: 2503k
comparing combine.c compilation at -O2 level:
Overall memory needed: 32949k -> 32801k
Peak memory use before GGC: 16540k
Peak memory use after GGC: 16375k
Maximum of released memory in single GGC run: 1488k
Garbage: 56233k -> 56233k
Leak: 7188k
Overhead: 8012k -> 8012k
GGC runs: 441
Pre-IPA-Garbage: 13011k
Pre-IPA-Leak: 17643k
Pre-IPA-Overhead: 2509k
Post-IPA-Garbage: 13011k
Post-IPA-Leak: 17643k
Post-IPA-Overhead: 2509k
comparing combine.c compilation at -O3 level:
Overall memory needed: 33317k -> 33345k
Peak memory use before GGC: 16507k
Peak memory use after GGC: 16341k
Maximum of released memory in single GGC run: 1671k
Garbage: 65046k
Leak: 7211k
Overhead: 9285k -> 9285k
GGC runs: 471
Pre-IPA-Garbage: 13011k
Pre-IPA-Leak: 17643k
Pre-IPA-Overhead: 2509k
Post-IPA-Garbage: 13011k
Post-IPA-Leak: 17643k
Post-IPA-Overhead: 2509k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 152505k
Peak memory use before GGC: 65254k
Peak memory use after GGC: 52818k
Maximum of released memory in single GGC run: 26250k
Garbage: 128573k
Leak: 9587k
Overhead: 16691k
GGC runs: 259
Pre-IPA-Garbage: 40782k
Pre-IPA-Leak: 51014k
Pre-IPA-Overhead: 7761k
Post-IPA-Garbage: 40782k
Post-IPA-Leak: 51014k
Post-IPA-Overhead: 7761k
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 153849k -> 153817k
Peak memory use before GGC: 66520k
Peak memory use after GGC: 54081k
Maximum of released memory in single GGC run: 26251k
Garbage: 128911k
Leak: 11219k
Overhead: 17144k
GGC runs: 253
Pre-IPA-Garbage: 40791k
Pre-IPA-Leak: 52539k
Pre-IPA-Overhead: 8091k
Post-IPA-Garbage: 40791k
Post-IPA-Leak: 52539k
Post-IPA-Overhead: 8091k
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 154557k
Peak memory use before GGC: 54960k
Peak memory use after GGC: 44890k
Maximum of released memory in single GGC run: 17233k
Garbage: 180932k
Leak: 9178k
Overhead: 23406k
GGC runs: 298
Pre-IPA-Garbage: 45067k
Pre-IPA-Leak: 45085k
Pre-IPA-Overhead: 7586k
Post-IPA-Garbage: 45067k
Post-IPA-Leak: 45085k
Post-IPA-Overhead: 7586k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 202221k -> 202225k
Peak memory use before GGC: 54409k
Peak memory use after GGC: 44641k
Maximum of released memory in single GGC run: 18696k
Garbage: 211482k
Leak: 9192k
Overhead: 29278k
GGC runs: 331
Pre-IPA-Garbage: 45129k
Pre-IPA-Leak: 45092k
Pre-IPA-Overhead: 7591k
Post-IPA-Garbage: 45129k
Post-IPA-Leak: 45092k
Post-IPA-Overhead: 7591k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 202237k -> 202013k
Peak memory use before GGC: 54409k
Peak memory use after GGC: 44641k -> 44637k
Maximum of released memory in single GGC run: 18695k
Garbage: 212704k
Leak: 9199k
Overhead: 29669k -> 29669k
GGC runs: 339
Pre-IPA-Garbage: 45129k
Pre-IPA-Leak: 45092k
Pre-IPA-Overhead: 7591k
Post-IPA-Garbage: 45129k
Post-IPA-Leak: 45092k
Post-IPA-Overhead: 7591k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 146249k -> 146241k
Peak memory use before GGC: 81679k
Peak memory use after GGC: 80870k
Maximum of released memory in single GGC run: 13632k
Garbage: 197869k
Leak: 55413k
Overhead: 28228k
GGC runs: 446
Pre-IPA-Garbage: 110139k
Pre-IPA-Leak: 84472k
Pre-IPA-Overhead: 14999k
Post-IPA-Garbage: 110139k
Post-IPA-Leak: 84472k
Post-IPA-Overhead: 14999k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 163949k -> 164025k
Peak memory use before GGC: 95820k
Peak memory use after GGC: 94870k
Maximum of released memory in single GGC run: 13895k
Garbage: 203199k -> 203199k
Leak: 82504k
Overhead: 34791k -> 34791k
GGC runs: 418
Pre-IPA-Garbage: 110724k
Pre-IPA-Leak: 100993k
Pre-IPA-Overhead: 18504k
Post-IPA-Garbage: 110724k
Post-IPA-Leak: 100993k
Post-IPA-Overhead: 18504k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 107245k -> 107221k
Peak memory use before GGC: 81696k
Peak memory use after GGC: 80883k
Maximum of released memory in single GGC run: 13475k
Garbage: 258273k -> 258272k
Leak: 52212k
Overhead: 29617k -> 29617k
GGC runs: 515
Pre-IPA-Garbage: 149433k
Pre-IPA-Leak: 85868k
Pre-IPA-Overhead: 17968k -> 17968k
Post-IPA-Garbage: 149433k
Post-IPA-Leak: 85868k
Post-IPA-Overhead: 17968k -> 17968k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 106941k -> 106933k
Peak memory use before GGC: 81622k
Peak memory use after GGC: 80162k
Maximum of released memory in single GGC run: 13479k
Garbage: 296591k -> 296581k
Leak: 52286k
Overhead: 34674k -> 34672k
GGC runs: 561
Pre-IPA-Garbage: 152496k
Pre-IPA-Leak: 84974k
Pre-IPA-Overhead: 18178k
Post-IPA-Garbage: 152496k
Post-IPA-Leak: 84974k
Post-IPA-Overhead: 18178k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 107473k -> 107469k
Peak memory use before GGC: 82083k
Peak memory use after GGC: 80167k
Maximum of released memory in single GGC run: 13479k
Garbage: 313952k
Leak: 52289k
Overhead: 37003k -> 37003k
GGC runs: 581
Pre-IPA-Garbage: 152496k
Pre-IPA-Leak: 84978k
Pre-IPA-Overhead: 18178k
Post-IPA-Garbage: 152496k
Post-IPA-Leak: 84978k
Post-IPA-Overhead: 18178k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 358809k -> 358569k
Peak memory use before GGC: 78173k
Peak memory use after GGC: 49107k
Maximum of released memory in single GGC run: 37057k
Garbage: 140058k
Leak: 7711k
Overhead: 25004k
GGC runs: 86
Pre-IPA-Garbage: 12038k
Pre-IPA-Leak: 18626k
Pre-IPA-Overhead: 2447k
Post-IPA-Garbage: 12038k
Post-IPA-Leak: 18626k
Post-IPA-Overhead: 2447k
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 358417k -> 358449k
Peak memory use before GGC: 78856k
Peak memory use after GGC: 49791k
Maximum of released memory in single GGC run: 37041k
Garbage: 140124k
Leak: 9707k
Overhead: 25573k
GGC runs: 94
Pre-IPA-Garbage: 12040k
Pre-IPA-Leak: 18873k
Pre-IPA-Overhead: 2500k
Post-IPA-Garbage: 12040k
Post-IPA-Leak: 18873k
Post-IPA-Overhead: 2500k
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 208753k -> 208637k
Peak memory use before GGC: 74131k
Peak memory use after GGC: 69415k
Maximum of released memory in single GGC run: 35390k
Garbage: 215892k
Leak: 9258k
Overhead: 32795k
GGC runs: 95
Pre-IPA-Garbage: 39202k
Pre-IPA-Leak: 63682k
Pre-IPA-Overhead: 6995k
Post-IPA-Garbage: 39202k
Post-IPA-Leak: 63682k
Post-IPA-Overhead: 6995k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 532041k -> 530177k
Peak memory use before GGC: 74132k
Peak memory use after GGC: 69415k
Maximum of released memory in single GGC run: 37541k
Garbage: 255641k
Leak: 9008k
Overhead: 38354k
GGC runs: 106
Pre-IPA-Garbage: 89544k
Pre-IPA-Leak: 80238k
Pre-IPA-Overhead: 11099k
Post-IPA-Garbage: 89544k
Post-IPA-Leak: 80238k
Post-IPA-Overhead: 11099k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1234121k -> 1234769k
Peak memory use before GGC: 134702k
Peak memory use after GGC: 126430k
Maximum of released memory in single GGC run: 54316k
Garbage: 340034k
Leak: 10282k
Overhead: 43411k
GGC runs: 106
Pre-IPA-Garbage: 89544k
Pre-IPA-Leak: 80238k
Pre-IPA-Overhead: 11099k
Post-IPA-Garbage: 89544k
Post-IPA-Leak: 80238k
Post-IPA-Overhead: 11099k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-haydn-memory/x86_64/mem-result/ChangeLog 2009-05-19 01:03:57.000000000 +0000
+++ /usr/src/SpecTests/sandbox-haydn-memory/gcc/gcc/ChangeLog 2009-05-19 15:17:40.000000000 +0000
@@ -1,3 +1,20 @@
+2009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
+
+2009-05-19 Ben Elliston <bje@au.ibm.com>
+
+ * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
+ assignments with memcpy calls.
+ (add_fdes): Likewise.
+ (binary_search_unencoded_fdes): Likewise.
+ (linear_search_fdes): Eliminate type puns.
+
+2009-05-19 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
+ not falsely claim to have propagated into all uses.
+
2009-05-19 Ben Elliston <bje@au.ibm.com>
* doc/invoke.texi (C Dialect Options): Update OpenMP specification
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