A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Wed Mar 4 04:23: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: 8206k
Peak memory use before GGC: 1289k
Peak memory use after GGC: 1216k
Maximum of released memory in single GGC run: 138k
Garbage: 217k
Leak: 1219k
Overhead: 136k
GGC runs: 3
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1222k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1222k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O0 -g level:
Overall memory needed: 8454k
Peak memory use before GGC: 1317k
Peak memory use after GGC: 1243k
Maximum of released memory in single GGC run: 133k
Garbage: 218k
Leak: 1252k
Overhead: 141k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1222k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1222k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O1 level:
Overall memory needed: 8238k
Peak memory use before GGC: 1289k
Peak memory use after GGC: 1216k
Maximum of released memory in single GGC run: 133k
Garbage: 219k
Leak: 1219k
Overhead: 137k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1222k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1222k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O2 level:
Overall memory needed: 8454k
Peak memory use before GGC: 1289k
Peak memory use after GGC: 1216k
Maximum of released memory in single GGC run: 136k
Garbage: 225k
Leak: 1220k
Overhead: 138k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1223k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1223k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O3 level:
Overall memory needed: 8454k
Peak memory use before GGC: 1289k
Peak memory use after GGC: 1216k
Maximum of released memory in single GGC run: 136k
Garbage: 225k
Leak: 1220k
Overhead: 138k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1223k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1223k
Post-IPA-Overhead: 135k
comparing combine.c compilation at -O0 level:
Overall memory needed: 31986k
Peak memory use before GGC: 18016k
Peak memory use after GGC: 17807k
Maximum of released memory in single GGC run: 1831k
Garbage: 38927k
Leak: 5798k
Overhead: 5545k
GGC runs: 338
Pre-IPA-Garbage: 12215k
Pre-IPA-Leak: 19353k
Pre-IPA-Overhead: 2557k
Post-IPA-Garbage: 12215k
Post-IPA-Leak: 19353k
Post-IPA-Overhead: 2557k
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 34006k
Peak memory use before GGC: 19886k
Peak memory use after GGC: 19663k
Maximum of released memory in single GGC run: 1841k
Garbage: 39138k
Leak: 9087k
Overhead: 6363k
GGC runs: 320
Pre-IPA-Garbage: 12233k
Pre-IPA-Leak: 21626k
Pre-IPA-Overhead: 3047k
Post-IPA-Garbage: 12233k
Post-IPA-Leak: 21626k
Post-IPA-Overhead: 3047k
comparing combine.c compilation at -O1 level:
Overall memory needed: 30602k
Peak memory use before GGC: 15684k
Peak memory use after GGC: 15511k
Maximum of released memory in single GGC run: 1340k
Garbage: 46454k -> 46454k
Leak: 5778k
Overhead: 6142k -> 6143k
GGC runs: 403
Pre-IPA-Garbage: 13039k
Pre-IPA-Leak: 16848k
Pre-IPA-Overhead: 2469k
Post-IPA-Garbage: 13039k
Post-IPA-Leak: 16848k
Post-IPA-Overhead: 2469k
comparing combine.c compilation at -O2 level:
Overall memory needed: 31902k -> 31646k
Peak memory use before GGC: 15830k
Peak memory use after GGC: 15670k
Maximum of released memory in single GGC run: 1351k
Garbage: 60416k -> 60423k
Leak: 5808k
Overhead: 8197k -> 8198k
GGC runs: 466 -> 467
Pre-IPA-Garbage: 13181k
Pre-IPA-Leak: 16929k -> 16929k
Pre-IPA-Overhead: 2489k -> 2489k
Post-IPA-Garbage: 13181k
Post-IPA-Leak: 16929k -> 16929k
Post-IPA-Overhead: 2489k -> 2489k
comparing combine.c compilation at -O3 level:
Overall memory needed: 32234k
Peak memory use before GGC: 15984k
Peak memory use after GGC: 15749k
Maximum of released memory in single GGC run: 1637k
Garbage: 73269k -> 73270k
Leak: 7176k
Overhead: 9702k -> 9702k
GGC runs: 497
Pre-IPA-Garbage: 13181k
Pre-IPA-Leak: 16929k -> 16929k
Pre-IPA-Overhead: 2489k -> 2489k
Post-IPA-Garbage: 13181k
Post-IPA-Leak: 16929k -> 16929k
Post-IPA-Overhead: 2489k -> 2489k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 155294k
Peak memory use before GGC: 64851k
Peak memory use after GGC: 53783k
Maximum of released memory in single GGC run: 26838k
Garbage: 128371k
Leak: 8360k
Overhead: 16863k
GGC runs: 262
Pre-IPA-Garbage: 36903k
Pre-IPA-Leak: 55351k
Pre-IPA-Overhead: 8222k
Post-IPA-Garbage: 36903k
Post-IPA-Leak: 55351k
Post-IPA-Overhead: 8222k
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 156582k
Peak memory use before GGC: 66128k
Peak memory use after GGC: 55061k
Maximum of released memory in single GGC run: 26838k
Garbage: 128696k
Leak: 10011k
Overhead: 17319k
GGC runs: 257
Pre-IPA-Garbage: 36911k
Pre-IPA-Leak: 56892k
Pre-IPA-Overhead: 8557k
Post-IPA-Garbage: 36911k
Post-IPA-Leak: 56892k
Post-IPA-Overhead: 8557k
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 133306k -> 133302k
Peak memory use before GGC: 49848k
Peak memory use after GGC: 43292k
Maximum of released memory in single GGC run: 23087k
Garbage: 178949k
Leak: 7736k
Overhead: 24924k
GGC runs: 299
Pre-IPA-Garbage: 42194k
Pre-IPA-Leak: 42949k
Pre-IPA-Overhead: 7641k
Post-IPA-Garbage: 42194k
Post-IPA-Leak: 42949k
Post-IPA-Overhead: 7641k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 148658k -> 148654k
Peak memory use before GGC: 49813k
Peak memory use after GGC: 44951k
Maximum of released memory in single GGC run: 18102k
Garbage: 202596k
Leak: 15399k
Overhead: 30421k
GGC runs: 326
Pre-IPA-Garbage: 42262k
Pre-IPA-Leak: 42956k
Pre-IPA-Overhead: 7650k
Post-IPA-Garbage: 42262k
Post-IPA-Leak: 42956k
Post-IPA-Overhead: 7650k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 164630k -> 164654k
Peak memory use before GGC: 61633k
Peak memory use after GGC: 58663k
Maximum of released memory in single GGC run: 24089k
Garbage: 240476k
Leak: 7762k
Overhead: 33890k
GGC runs: 338
Pre-IPA-Garbage: 42262k
Pre-IPA-Leak: 42956k
Pre-IPA-Overhead: 7650k
Post-IPA-Garbage: 42262k
Post-IPA-Leak: 42956k
Post-IPA-Overhead: 7650k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 149148k -> 149156k
Peak memory use before GGC: 81832k
Peak memory use after GGC: 81020k
Maximum of released memory in single GGC run: 14704k
Garbage: 200269k
Leak: 51645k
Overhead: 27486k
GGC runs: 410
Pre-IPA-Garbage: 109710k
Pre-IPA-Leak: 87146k
Pre-IPA-Overhead: 14613k
Post-IPA-Garbage: 109710k
Post-IPA-Leak: 87146k
Post-IPA-Overhead: 14613k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 167176k -> 167148k
Peak memory use before GGC: 95412k
Peak memory use after GGC: 94467k
Maximum of released memory in single GGC run: 14896k
Garbage: 205290k
Leak: 78499k
Overhead: 34171k
GGC runs: 386
Pre-IPA-Garbage: 110075k
Pre-IPA-Leak: 103665k
Pre-IPA-Overhead: 18117k
Post-IPA-Garbage: 110075k
Post-IPA-Leak: 103665k
Post-IPA-Overhead: 18117k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Amount of produced GGC garbage increased from 262568k to 265027k, overall 0.94%
Overall memory needed: 103059k -> 104763k
Peak memory use before GGC: 79654k
Peak memory use after GGC: 78845k
Maximum of released memory in single GGC run: 14399k
Garbage: 262568k -> 265027k
Leak: 48112k -> 48120k
Overhead: 30345k -> 30541k
GGC runs: 490 -> 492
Amount of memory referenced pre-ipa increased from 81051k to 82605k, overall 1.92%
Pre-IPA-Garbage: 153109k -> 153144k
Pre-IPA-Leak: 81051k -> 82605k
Pre-IPA-Overhead: 18727k -> 18853k
Amount of memory referenced post-ipa increased from 81051k to 82605k, overall 1.92%
Post-IPA-Garbage: 153109k -> 153144k
Post-IPA-Leak: 81051k -> 82605k
Post-IPA-Overhead: 18727k -> 18853k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage increased from 315842k to 318573k, overall 0.86%
Overall memory needed: 103375k -> 104683k
Peak memory use before GGC: 79744k
Peak memory use after GGC: 78935k
Maximum of released memory in single GGC run: 14403k
Garbage: 315842k -> 318573k
Leak: 48137k -> 48137k
Overhead: 36821k -> 37036k
GGC runs: 562 -> 564
Amount of memory referenced pre-ipa increased from 80190k to 81954k, overall 2.20%
Pre-IPA-Garbage: 156950k -> 156991k
Pre-IPA-Leak: 80190k -> 81954k
Pre-IPA-Overhead: 19097k -> 19241k
Amount of memory referenced post-ipa increased from 80190k to 81954k, overall 2.20%
Post-IPA-Garbage: 156950k -> 156991k
Post-IPA-Leak: 80190k -> 81954k
Post-IPA-Overhead: 19097k -> 19241k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Amount of produced GGC garbage increased from 346942k to 349764k, overall 0.81%
Overall memory needed: 103463k -> 105103k
Peak memory use before GGC: 79744k
Peak memory use after GGC: 78935k
Maximum of released memory in single GGC run: 14403k
Garbage: 346942k -> 349764k
Leak: 48141k -> 48149k
Overhead: 40106k -> 40338k
GGC runs: 591
Amount of memory referenced pre-ipa increased from 80599k to 82391k, overall 2.22%
Pre-IPA-Garbage: 157012k -> 157052k
Pre-IPA-Leak: 80599k -> 82391k
Pre-IPA-Overhead: 19131k -> 19276k
Amount of memory referenced post-ipa increased from 80599k to 82391k, overall 2.22%
Post-IPA-Garbage: 157012k -> 157052k
Post-IPA-Leak: 80599k -> 82391k
Post-IPA-Overhead: 19131k -> 19276k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 362427k
Peak memory use before GGC: 78666k
Peak memory use after GGC: 49600k
Maximum of released memory in single GGC run: 37952k
Garbage: 142896k
Leak: 7236k
Overhead: 25331k
GGC runs: 87
Pre-IPA-Garbage: 12169k
Pre-IPA-Leak: 20189k
Pre-IPA-Overhead: 2241k
Post-IPA-Garbage: 12169k
Post-IPA-Leak: 20189k
Post-IPA-Overhead: 2241k
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 363219k -> 363223k
Peak memory use before GGC: 79363k
Peak memory use after GGC: 50297k
Maximum of released memory in single GGC run: 37936k
Garbage: 142961k
Leak: 9278k
Overhead: 25914k
GGC runs: 93
Pre-IPA-Garbage: 12171k
Pre-IPA-Leak: 20437k
Pre-IPA-Overhead: 2295k
Post-IPA-Garbage: 12171k
Post-IPA-Leak: 20437k
Post-IPA-Overhead: 2295k
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 226370k
Peak memory use before GGC: 72350k
Peak memory use after GGC: 66141k
Maximum of released memory in single GGC run: 32063k
Garbage: 214749k
Leak: 7613k
Overhead: 30605k
GGC runs: 95
Pre-IPA-Garbage: 45532k
Pre-IPA-Leak: 62930k
Pre-IPA-Overhead: 8724k
Post-IPA-Garbage: 45532k
Post-IPA-Leak: 62930k
Post-IPA-Overhead: 8724k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 490186k -> 492734k
Peak memory use before GGC: 72351k
Peak memory use after GGC: 66142k
Maximum of released memory in single GGC run: 33399k
Garbage: 256350k
Leak: 7614k
Overhead: 38675k
GGC runs: 105
Amount of memory referenced pre-ipa increased from 68842k to 71658k, overall 4.09%
Pre-IPA-Garbage: 102815k
Pre-IPA-Leak: 68842k -> 71658k
Pre-IPA-Overhead: 14260k -> 14333k
Amount of memory referenced post-ipa increased from 68842k to 71658k, overall 4.09%
Post-IPA-Garbage: 102815k
Post-IPA-Leak: 68842k -> 71658k
Post-IPA-Overhead: 14260k -> 14333k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Peak amount of GGC memory allocated before garbage collecting increased from 132762k to 135542k, overall 2.09%
Peak amount of GGC memory still allocated after garbage collecting increased from 122592k to 125371k, overall 2.27%
Amount of produced GGC garbage increased from 347045k to 347813k, overall 0.22%
Overall memory needed: 1017126k -> 1021630k
Peak memory use before GGC: 132762k -> 135542k
Peak memory use after GGC: 122592k -> 125371k
Maximum of released memory in single GGC run: 62793k
Garbage: 347045k -> 347813k
Leak: 9097k
Overhead: 44831k -> 44904k
GGC runs: 102 -> 101
Amount of memory referenced pre-ipa increased from 68842k to 71658k, overall 4.09%
Pre-IPA-Garbage: 102815k
Pre-IPA-Leak: 68842k -> 71658k
Pre-IPA-Overhead: 14260k -> 14333k
Amount of memory referenced post-ipa increased from 68842k to 71658k, overall 4.09%
Post-IPA-Garbage: 102815k
Post-IPA-Leak: 68842k -> 71658k
Post-IPA-Overhead: 14260k -> 14333k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2009-03-03 08:48:51.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2009-03-04 01:07:32.000000000 +0000
@@ -1,3 +1,43 @@
+2009-03-03 Steve Ellcey <sje@cup.hp.com>
+
+ PR middle-end/10109
+ * tm.texi (LIBCALL_VALUE): Update description.
+
+2009-03-03 Steve Ellcey <sje@cup.hp.com>
+
+ PR middle-end/34443
+ * doc/extend.texi (section): Update description.
+
+2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/39345
+ * tree-inline.c (remapped_type): New.
+ (can_be_nonlocal): Call remapped_type instead of remap_type.
+
+2009-03-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/39354
+ * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
+ TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
+
+2009-03-03 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/39272
+ * tree.c (tree_nonartificial_location): New function.
+ * tree.h (tree_nonartificial_location): Declare.
+ * builtins.c (expand_builtin_memory_chk): Provide location
+ of the call location for artificial function pieces.
+ (maybe_emit_chk_warning): Likewise.
+ (maybe_emit_sprintf_chk_warning): Likewise.
+ (maybe_emit_free_warning): Likewise.
+ * expr.c (expand_expr_real_1): Likewise.
+
+2009-03-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/39343
+ * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
+ COMPONENT_REF t has ARRAY_TYPE.
+
2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/39335
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