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: Sun, 18 Mar 2007 04:53:24 +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: 7385k -> 7381k
Peak memory use before GGC: 2260k
Peak memory use after GGC: 1949k
Maximum of released memory in single GGC run: 311k
Garbage: 446k
Leak: 2283k
Overhead: 456k
GGC runs: 3
comparing empty function compilation at -O0 -g level:
Overall memory needed: 7401k
Peak memory use before GGC: 2288k
Peak memory use after GGC: 1977k
Maximum of released memory in single GGC run: 311k
Garbage: 449k
Leak: 2316k
Overhead: 461k
GGC runs: 3
comparing empty function compilation at -O1 level:
Overall memory needed: 7509k
Peak memory use before GGC: 2260k
Peak memory use after GGC: 1949k
Maximum of released memory in single GGC run: 311k
Garbage: 452k
Leak: 2286k
Overhead: 457k
GGC runs: 4
comparing empty function compilation at -O2 level:
Overall memory needed: 7577k -> 7517k
Peak memory use before GGC: 2261k
Peak memory use after GGC: 1950k
Maximum of released memory in single GGC run: 311k
Garbage: 455k
Leak: 2286k
Overhead: 457k
GGC runs: 4
comparing empty function compilation at -O3 level:
Overall memory needed: 7577k -> 7517k
Peak memory use before GGC: 2261k
Peak memory use after GGC: 1950k
Maximum of released memory in single GGC run: 311k
Garbage: 455k
Leak: 2286k
Overhead: 457k
GGC runs: 4
comparing combine.c compilation at -O0 level:
Overall memory needed: 17725k -> 17721k
Peak memory use before GGC: 9262k
Peak memory use after GGC: 8849k
Maximum of released memory in single GGC run: 2578k
Garbage: 37152k
Leak: 6578k
Overhead: 5053k
GGC runs: 282
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 19861k
Peak memory use before GGC: 10877k
Peak memory use after GGC: 10509k
Maximum of released memory in single GGC run: 2351k
Garbage: 37718k
Leak: 9471k
Overhead: 5759k
GGC runs: 269
comparing combine.c compilation at -O1 level:
Overall memory needed: 35257k -> 35261k
Peak memory use before GGC: 19331k
Peak memory use after GGC: 19125k
Maximum of released memory in single GGC run: 2177k
Garbage: 56861k
Leak: 6607k
Overhead: 6313k
GGC runs: 353
comparing combine.c compilation at -O2 level:
Amount of produced GGC garbage increased from 68421k to 69274k, overall 1.25%
Overall memory needed: 37509k -> 37585k
Peak memory use before GGC: 19371k
Peak memory use after GGC: 19177k
Maximum of released memory in single GGC run: 2164k -> 2170k
Garbage: 68421k -> 69274k
Leak: 6735k -> 6739k
Overhead: 8049k -> 8155k
GGC runs: 407 -> 406
comparing combine.c compilation at -O3 level:
Peak amount of GGC memory allocated before garbage collecting increased from 19525k to 19559k, overall 0.17%
Amount of produced GGC garbage increased from 88297k to 90724k, overall 2.75%
Overall memory needed: 41873k -> 42681k
Peak memory use before GGC: 19525k -> 19559k
Peak memory use after GGC: 19263k
Maximum of released memory in single GGC run: 3035k -> 3644k
Garbage: 88297k -> 90724k
Leak: 6837k -> 6841k
Overhead: 10831k -> 11158k
GGC runs: 430 -> 429
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 102969k
Peak memory use before GGC: 68624k
Peak memory use after GGC: 44728k
Maximum of released memory in single GGC run: 36429k
Garbage: 131233k
Leak: 9581k
Overhead: 16927k
GGC runs: 212
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 104201k
Peak memory use before GGC: 69786k
Peak memory use after GGC: 45996k
Maximum of released memory in single GGC run: 36430k
Garbage: 132452k
Leak: 11289k
Overhead: 17324k
GGC runs: 209
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 145577k -> 147585k
Peak memory use before GGC: 85946k
Peak memory use after GGC: 80068k
Maximum of released memory in single GGC run: 32842k
Garbage: 265258k
Leak: 9401k
Overhead: 27688k
GGC runs: 227
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 193413k -> 193409k
Peak memory use before GGC: 87233k
Peak memory use after GGC: 80138k
Maximum of released memory in single GGC run: 30051k
Garbage: 301440k -> 301513k
Leak: 9399k
Overhead: 33331k -> 33341k
GGC runs: 248
comparing insn-attrtab.c compilation at -O3 level:
Overall memory allocated via mmap and sbrk increased from 189605k to 193469k, overall 2.04%
Overall memory needed: 189605k -> 193469k
Peak memory use before GGC: 87247k
Peak memory use after GGC: 80152k
Maximum of released memory in single GGC run: 30112k
Garbage: 302087k -> 302169k
Leak: 9404k
Overhead: 33530k -> 33541k
GGC runs: 247
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 147352k -> 147372k
Peak memory use before GGC: 90241k
Peak memory use after GGC: 89347k
Maximum of released memory in single GGC run: 17774k
Garbage: 208227k
Leak: 49207k
Overhead: 23914k
GGC runs: 411
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 165192k -> 165172k
Peak memory use before GGC: 102847k
Peak memory use after GGC: 101829k
Maximum of released memory in single GGC run: 18128k
Garbage: 214756k
Leak: 72521k
Overhead: 29811k
GGC runs: 385
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 141840k -> 141828k
Peak memory use before GGC: 101826k
Peak memory use after GGC: 100807k
Maximum of released memory in single GGC run: 17236k
Garbage: 344927k
Leak: 49939k
Overhead: 30478k
GGC runs: 528
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage increased from 374002k to 376382k, overall 0.64%
Overall memory needed: 143772k -> 143708k
Peak memory use before GGC: 102424k
Peak memory use after GGC: 101409k
Maximum of released memory in single GGC run: 17233k
Garbage: 374002k -> 376382k
Leak: 50978k -> 51029k
Overhead: 34486k -> 34785k
GGC runs: 564 -> 566
comparing Gerald's testcase PR8361 compilation at -O3 level:
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 244575k -> 244573k
Peak memory use before GGC: 80960k
Peak memory use after GGC: 58699k
Maximum of released memory in single GGC run: 44133k
Garbage: 144344k
Leak: 7611k
Overhead: 24815k
GGC runs: 79
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 245411k -> 245409k
Peak memory use before GGC: 81606k
Peak memory use after GGC: 59345k
Maximum of released memory in single GGC run: 44122k
Garbage: 144515k
Leak: 9378k
Overhead: 25310k
GGC runs: 89
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 244977k -> 245201k
Peak memory use before GGC: 85157k
Peak memory use after GGC: 74845k
Maximum of released memory in single GGC run: 36137k
Garbage: 222621k
Leak: 20854k
Overhead: 30548k
GGC runs: 81
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 498565k
Peak memory use before GGC: 79831k
Peak memory use after GGC: 74845k
Maximum of released memory in single GGC run: 33438k
Garbage: 229668k -> 229668k
Leak: 20944k
Overhead: 32630k
GGC runs: 91
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1215421k
Peak memory use before GGC: 201747k
Peak memory use after GGC: 190209k
Maximum of released memory in single GGC run: 80686k
Garbage: 363594k
Leak: 46310k
Overhead: 46513k
GGC runs: 71
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2007-03-17 10:21:47.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2007-03-18 02:53:27.000000000 +0000
@@ -1,3 +1,45 @@
+2007-03-16 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/29922
+ * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
+ (get_representative): Removed.
+ (value_dies_in_block_x): Update for rvuse removal.
+ (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
+ (compute_antic_aux): Handle when PHI nodes appear in
+ non-single-successors.
+ (dump_bitmap_of_names): Removed.
+ (compute_antic_safe): Renamed and removed rvuse calculation.
+ Calculate only antic safe.
+ (insert_into_preds_of_block): Remove assert.
+ (execute_pre): Update for renamed functions.
+ (defer_or_phi_translate_block): New function.
+
+2007-03-17 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
+ config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
+ typos.
+ * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
+ Follow spelling conventions.
+
+ * tree-data-ref.h: Remove the prototype for analyze_array.
+
+2007-03-17 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/31041
+ * tree-vect-transform.c (get_initial_def_for_induction): Call
+ force_gimple_operand.
+
+2007-03-17 Olga Golovanevsky <olga@il.ibm.com>
+
+ * ipa-type-escape.c (look_for_casts) : Revert code to use
+ handled_component_p due to ada test a-numaux.adb.
+
+2007-03-17 Kazu Hirata <kazu@codesourcery.com>
+
+ * final.c (final_scan_insn): Alter the condition of a
+ conditional trap if we have nonstandard CC.
+
2007-03-16 Alexandre Oliva <aoliva@redhat.com>
* configure.ac: Remove excess quoting from asm line 0 test.
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2007-03-17 10:21:47.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2007-03-18 02:53:25.000000000 +0000
@@ -1,3 +1,7 @@
+2007-03-17 Kazu Hirata <kazu@codesourcery.com>
+
+ * cp-tree.def, parser.c, pt.c: Fix comment typos.
+
2007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* cvt.c (cp_convert_and_check) : Define.
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.