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: Fri, 29 Feb 2008 23:08:28 +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:
Overall memory needed: 8151k
Peak memory use before GGC: 1097k
Peak memory use after GGC: 995k
Maximum of released memory in single GGC run: 129k
Garbage: 238k
Leak: 952k
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: 1125k
Peak memory use after GGC: 1031k
Maximum of released memory in single GGC run: 128k
Garbage: 240k
Leak: 985k
Overhead: 84k
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: 1097k
Peak memory use after GGC: 995k
Maximum of released memory in single GGC run: 131k
Garbage: 240k
Leak: 953k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 227k
Pre-IPA-Leak: 955k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 227k
Post-IPA-Leak: 955k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O2 level:
Overall memory needed: 8223k
Peak memory use before GGC: 1098k
Peak memory use after GGC: 995k
Maximum of released memory in single GGC run: 134k
Garbage: 243k
Leak: 954k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 227k
Pre-IPA-Leak: 956k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 227k
Post-IPA-Leak: 956k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O3 level:
Overall memory needed: 8223k
Peak memory use before GGC: 1098k
Peak memory use after GGC: 995k
Maximum of released memory in single GGC run: 134k
Garbage: 243k
Leak: 954k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 227k
Pre-IPA-Leak: 956k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 227k
Post-IPA-Leak: 956k
Post-IPA-Overhead: 79k
comparing combine.c compilation at -O0 level:
Overall memory needed: 22699k
Peak memory use before GGC: 7810k
Peak memory use after GGC: 7187k
Maximum of released memory in single GGC run: 1550k
Garbage: 37932k
Leak: 5515k
Overhead: 4649k
GGC runs: 372
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 24707k
Peak memory use before GGC: 9648k
Peak memory use after GGC: 8955k
Maximum of released memory in single GGC run: 1838k
Garbage: 38271k
Leak: 8380k
Overhead: 5276k
GGC runs: 343
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O1 level:
Amount of produced GGC garbage increased from 51449k to 52138k, overall 1.34%
Overall memory needed: 32935k -> 32939k
Peak memory use before GGC: 16345k
Peak memory use after GGC: 16161k
Maximum of released memory in single GGC run: 1362k -> 1382k
Garbage: 51449k -> 52138k
Leak: 5660k
Overhead: 5777k -> 5832k
GGC runs: 444
Pre-IPA-Garbage: 13922k
Pre-IPA-Leak: 17182k
Pre-IPA-Overhead: 2129k
Post-IPA-Garbage: 13922k
Post-IPA-Leak: 17182k
Post-IPA-Overhead: 2129k
comparing combine.c compilation at -O2 level:
Amount of produced GGC garbage increased from 71179k to 72059k, overall 1.24%
Overall memory needed: 35731k
Peak memory use before GGC: 16447k
Peak memory use after GGC: 16280k
Maximum of released memory in single GGC run: 1317k
Garbage: 71179k -> 72059k
Leak: 5986k
Overhead: 8077k -> 8146k
GGC runs: 511 -> 512
Pre-IPA-Garbage: 14079k
Pre-IPA-Leak: 17247k
Pre-IPA-Overhead: 2144k
Post-IPA-Garbage: 14079k
Post-IPA-Leak: 17247k
Post-IPA-Overhead: 2144k
comparing combine.c compilation at -O3 level:
Amount of produced GGC garbage increased from 88677k to 89590k, overall 1.03%
Overall memory needed: 38723k
Peak memory use before GGC: 16616k
Peak memory use after GGC: 16293k
Maximum of released memory in single GGC run: 2041k -> 2069k
Garbage: 88677k -> 89590k
Leak: 6039k
Overhead: 10002k -> 10073k
GGC runs: 544 -> 546
Pre-IPA-Garbage: 14085k
Pre-IPA-Leak: 17258k
Pre-IPA-Overhead: 2145k
Post-IPA-Garbage: 14085k
Post-IPA-Leak: 17258k
Post-IPA-Overhead: 2145k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 137439k
Peak memory use before GGC: 57000k
Peak memory use after GGC: 31457k
Maximum of released memory in single GGC run: 33256k
Garbage: 128611k
Leak: 8383k
Overhead: 14368k
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: 138703k
Peak memory use before GGC: 58142k
Peak memory use after GGC: 32599k
Maximum of released memory in single GGC run: 33256k
Garbage: 128862k
Leak: 10058k
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: 142971k
Peak memory use before GGC: 56212k
Peak memory use after GGC: 49987k
Maximum of released memory in single GGC run: 23977k
Garbage: 206428k -> 206485k
Leak: 9276k
Overhead: 24742k -> 24747k
GGC runs: 315
Pre-IPA-Garbage: 50356k
Pre-IPA-Leak: 49677k
Pre-IPA-Overhead: 7543k
Post-IPA-Garbage: 50356k
Post-IPA-Leak: 49677k
Post-IPA-Overhead: 7543k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 184527k -> 184563k
Peak memory use before GGC: 56854k
Peak memory use after GGC: 51574k
Maximum of released memory in single GGC run: 22909k
Garbage: 247266k -> 247345k
Leak: 10363k
Overhead: 30401k -> 30406k
GGC runs: 346 -> 347
Pre-IPA-Garbage: 50428k
Pre-IPA-Leak: 49681k
Pre-IPA-Overhead: 7550k
Post-IPA-Garbage: 50428k
Post-IPA-Leak: 49681k
Post-IPA-Overhead: 7550k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 190651k -> 190263k
Peak memory use before GGC: 68037k -> 68033k
Peak memory use after GGC: 62281k
Maximum of released memory in single GGC run: 23405k
Garbage: 275121k -> 275217k
Leak: 10400k
Overhead: 32191k -> 32199k
GGC runs: 348 -> 350
Pre-IPA-Garbage: 50428k
Pre-IPA-Leak: 49681k
Pre-IPA-Overhead: 7550k
Post-IPA-Garbage: 50428k
Post-IPA-Leak: 49681k
Post-IPA-Overhead: 7550k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 148408k -> 148416k
Peak memory use before GGC: 84242k
Peak memory use after GGC: 83407k
Maximum of released memory in single GGC run: 16731k
Garbage: 200926k
Leak: 48024k
Overhead: 23992k
GGC runs: 417
Pre-IPA-Garbage: 109791k
Pre-IPA-Leak: 71152k
Pre-IPA-Overhead: 12099k
Post-IPA-Garbage: 109791k
Post-IPA-Leak: 71152k
Post-IPA-Overhead: 12099k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 169708k -> 169712k
Peak memory use before GGC: 96213k
Peak memory use after GGC: 95248k
Maximum of released memory in single GGC run: 17546k
Garbage: 206565k
Leak: 69707k
Overhead: 28969k
GGC runs: 390
Pre-IPA-Garbage: 110434k
Pre-IPA-Leak: 84433k
Pre-IPA-Overhead: 14675k
Post-IPA-Garbage: 110434k
Post-IPA-Leak: 84433k
Post-IPA-Overhead: 14675k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Amount of produced GGC garbage increased from 290109k to 290923k, overall 0.28%
Overall memory needed: 122812k -> 122808k
Peak memory use before GGC: 84151k
Peak memory use after GGC: 83317k
Maximum of released memory in single GGC run: 16272k
Garbage: 290109k -> 290923k
Leak: 47431k -> 47432k
Overhead: 29317k -> 29395k
GGC runs: 513 -> 514
Pre-IPA-Garbage: 155013k
Pre-IPA-Leak: 87948k
Pre-IPA-Overhead: 17503k
Post-IPA-Garbage: 155013k
Post-IPA-Leak: 87948k
Post-IPA-Overhead: 17503k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage increased from 355257k to 356275k, overall 0.29%
Overall memory needed: 124564k
Peak memory use before GGC: 84382k -> 84336k
Peak memory use after GGC: 83500k
Maximum of released memory in single GGC run: 16273k
Garbage: 355257k -> 356275k
Leak: 48431k -> 48430k
Overhead: 36160k -> 36259k
GGC runs: 591 -> 592
Pre-IPA-Garbage: 157657k
Pre-IPA-Leak: 88098k
Pre-IPA-Overhead: 17796k
Post-IPA-Garbage: 157657k
Post-IPA-Leak: 88098k
Post-IPA-Overhead: 17796k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Amount of produced GGC garbage increased from 381361k to 382399k, overall 0.27%
Overall memory needed: 127260k -> 127256k
Peak memory use before GGC: 85615k -> 85619k
Peak memory use after GGC: 84751k
Maximum of released memory in single GGC run: 16624k
Garbage: 381361k -> 382399k
Leak: 48886k
Overhead: 38401k -> 38500k
GGC runs: 612 -> 613
Pre-IPA-Garbage: 160395k
Pre-IPA-Leak: 88381k
Pre-IPA-Overhead: 18046k
Post-IPA-Garbage: 160395k
Post-IPA-Leak: 88381k
Post-IPA-Overhead: 18046k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 380437k
Peak memory use before GGC: 101210k
Peak memory use after GGC: 56863k
Maximum of released memory in single GGC run: 50583k
Garbage: 178904k
Leak: 6099k
Overhead: 30782k
GGC runs: 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: 381241k
Peak memory use before GGC: 101840k
Peak memory use after GGC: 57494k
Maximum of released memory in single GGC run: 50582k
Garbage: 179019k
Leak: 7829k
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:
Overall memory needed: 437583k -> 437659k
Peak memory use before GGC: 78686k
Peak memory use after GGC: 70437k
Maximum of released memory in single GGC run: 37594k
Garbage: 234297k
Leak: 15903k
Overhead: 35589k
GGC runs: 105
Pre-IPA-Garbage: 52925k
Pre-IPA-Leak: 49233k
Pre-IPA-Overhead: 7120k
Post-IPA-Garbage: 52925k
Post-IPA-Leak: 49233k
Post-IPA-Overhead: 7120k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 357379k -> 357043k
Peak memory use before GGC: 75424k
Peak memory use after GGC: 70438k
Maximum of released memory in single GGC run: 32243k
Garbage: 245000k
Leak: 16075k
Overhead: 38757k
GGC runs: 116
Pre-IPA-Garbage: 91836k
Pre-IPA-Leak: 77291k
Pre-IPA-Overhead: 11793k
Post-IPA-Garbage: 91836k
Post-IPA-Leak: 77291k
Post-IPA-Overhead: 11793k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1196107k -> 1197947k
Peak memory use before GGC: 136585k
Peak memory use after GGC: 127943k
Maximum of released memory in single GGC run: 59911k
Garbage: 371518k
Leak: 24889k
Overhead: 49888k
GGC runs: 103
Pre-IPA-Garbage: 91836k
Pre-IPA-Leak: 77291k
Pre-IPA-Overhead: 11793k
Post-IPA-Garbage: 91836k
Post-IPA-Leak: 77291k
Post-IPA-Overhead: 11793k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-02-29 03:51:37.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-02-29 19:50:47.000000000 +0000
@@ -1,3 +1,37 @@
+2008-02-29 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
+
+2008-02-29 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/ieee754-df.S (muldf3): Use RET macros.
+
+2008-02-29 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
+ vn_lookup_or_add.
+ * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
+ value for comparing for a store match.
+ (simplify_unary_expression): Do nothing for SSA_NAMEs.
+ (try_to_simplify): Do not do a full-blown reference lookup.
+
+2008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
+ (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
+
+ * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
+
+2008-02-29 Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-loop-linear.c (try_interchange_loops): Compare memory access
+ strides against cache sizes.
+
+2008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_secondary_reload): Handle loading a float
+ constant to fpul.
+
2008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
* simplify-rtx.c (simplify_unary_operation_1): Extend the handling
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.