A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Wed May 6 22: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: 1540k
Pre-IPA-Overhead: 186k
Post-IPA-Garbage: 210k
Post-IPA-Leak: 1540k
Post-IPA-Overhead: 186k
comparing empty function compilation at -O0 -g level:
Overall memory needed: 8825k
Peak memory use before GGC: 1515k
Peak memory use after GGC: 1464k
Maximum of released memory in single GGC run: 86k
Garbage: 219k
Leak: 1570k
Overhead: 192k
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 -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: 8929k
Peak memory use before GGC: 1488k
Peak memory use after GGC: 1437k
Maximum of released memory in single GGC run: 92k
Garbage: 225k
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 -> 8925k
Peak memory use before GGC: 1488k
Peak memory use after GGC: 1437k
Maximum of released memory in single GGC run: 92k
Garbage: 225k
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:
Overall memory needed: 31457k
Peak memory use before GGC: 17484k
Peak memory use after GGC: 17020k
Maximum of released memory in single GGC run: 1913k
Garbage: 38030k
Leak: 7164k
Overhead: 5526k -> 5526k
GGC runs: 333
Pre-IPA-Garbage: 12539k
Pre-IPA-Leak: 18410k
Pre-IPA-Overhead: 2515k
Post-IPA-Garbage: 12539k
Post-IPA-Leak: 18410k
Post-IPA-Overhead: 2515k
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 33397k -> 33365k
Peak memory use before GGC: 19392k
Peak memory use after GGC: 18859k
Maximum of released memory in single GGC run: 1923k
Garbage: 38245k -> 38245k
Leak: 10450k
Overhead: 6339k -> 6339k
GGC runs: 316
Pre-IPA-Garbage: 12558k
Pre-IPA-Leak: 20659k
Pre-IPA-Overhead: 2998k
Post-IPA-Garbage: 12558k
Post-IPA-Leak: 20659k
Post-IPA-Overhead: 2998k
comparing combine.c compilation at -O1 level:
Overall memory needed: 31917k -> 31781k
Peak memory use before GGC: 16491k
Peak memory use after GGC: 16317k
Maximum of released memory in single GGC run: 1389k
Garbage: 44943k
Leak: 7164k
Overhead: 6323k -> 6323k
GGC runs: 382
Pre-IPA-Garbage: 12958k
Pre-IPA-Leak: 17629k
Pre-IPA-Overhead: 2512k
Post-IPA-Garbage: 12958k
Post-IPA-Leak: 17629k
Post-IPA-Overhead: 2512k
comparing combine.c compilation at -O2 level:
Overall memory needed: 33241k -> 33085k
Peak memory use before GGC: 16585k
Peak memory use after GGC: 16415k
Maximum of released memory in single GGC run: 1489k
Garbage: 56735k -> 56737k
Leak: 7191k
Overhead: 8197k -> 8197k
GGC runs: 442
Pre-IPA-Garbage: 13096k
Pre-IPA-Leak: 17716k
Pre-IPA-Overhead: 2528k
Post-IPA-Garbage: 13096k
Post-IPA-Leak: 17716k
Post-IPA-Overhead: 2528k
comparing combine.c compilation at -O3 level:
Overall memory needed: 33581k -> 33645k
Peak memory use before GGC: 16586k
Peak memory use after GGC: 16420k
Maximum of released memory in single GGC run: 1673k
Garbage: 67613k -> 67614k
Leak: 7227k
Overhead: 9712k -> 9712k
GGC runs: 468
Pre-IPA-Garbage: 13096k
Pre-IPA-Leak: 17716k
Pre-IPA-Overhead: 2528k
Post-IPA-Garbage: 13096k
Post-IPA-Leak: 17716k
Post-IPA-Overhead: 2528k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 152669k -> 152705k
Peak memory use before GGC: 65608k
Peak memory use after GGC: 52818k
Maximum of released memory in single GGC run: 26604k
Garbage: 129481k
Leak: 9591k
Overhead: 16876k
GGC runs: 259
Pre-IPA-Garbage: 40782k
Pre-IPA-Leak: 51017k
Pre-IPA-Overhead: 7764k
Post-IPA-Garbage: 40782k
Post-IPA-Leak: 51017k
Post-IPA-Overhead: 7764k
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 154017k -> 154013k
Peak memory use before GGC: 66873k
Peak memory use after GGC: 54081k
Maximum of released memory in single GGC run: 26604k
Garbage: 129818k
Leak: 11222k
Overhead: 17329k
GGC runs: 253
Pre-IPA-Garbage: 40791k
Pre-IPA-Leak: 52542k
Pre-IPA-Overhead: 8094k
Post-IPA-Garbage: 40791k
Post-IPA-Leak: 52542k
Post-IPA-Overhead: 8094k
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 137841k
Peak memory use before GGC: 54138k
Peak memory use after GGC: 43653k
Maximum of released memory in single GGC run: 17381k
Garbage: 178724k
Leak: 9181k
Overhead: 22974k -> 22974k
GGC runs: 290
Pre-IPA-Garbage: 45067k
Pre-IPA-Leak: 45088k
Pre-IPA-Overhead: 7589k
Post-IPA-Garbage: 45067k
Post-IPA-Leak: 45088k
Post-IPA-Overhead: 7589k
comparing insn-attrtab.c compilation at -O2 level:
Amount of produced GGC garbage increased from 212037k to 212745k, overall 0.33%
Overall memory needed: 201613k -> 201797k
Peak memory use before GGC: 53557k
Peak memory use after GGC: 43378k
Maximum of released memory in single GGC run: 18700k -> 18813k
Garbage: 212037k -> 212745k
Leak: 9196k
Overhead: 29422k -> 29528k
GGC runs: 324 -> 325
Pre-IPA-Garbage: 45129k
Pre-IPA-Leak: 45095k
Pre-IPA-Overhead: 7594k
Post-IPA-Garbage: 45129k
Post-IPA-Leak: 45095k
Post-IPA-Overhead: 7594k
comparing insn-attrtab.c compilation at -O3 level:
Amount of produced GGC garbage increased from 213251k to 213958k, overall 0.33%
Overall memory needed: 201537k -> 201501k
Peak memory use before GGC: 53562k
Peak memory use after GGC: 43382k
Maximum of released memory in single GGC run: 18646k -> 18758k
Garbage: 213251k -> 213958k
Leak: 9203k
Overhead: 29816k -> 29922k
GGC runs: 330 -> 331
Pre-IPA-Garbage: 45129k
Pre-IPA-Leak: 45095k
Pre-IPA-Overhead: 7594k
Post-IPA-Garbage: 45129k
Post-IPA-Leak: 45095k
Post-IPA-Overhead: 7594k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 145961k
Peak memory use before GGC: 81663k
Peak memory use after GGC: 80854k
Maximum of released memory in single GGC run: 13633k
Garbage: 197989k -> 197989k
Leak: 55608k
Overhead: 28464k -> 28464k
GGC runs: 447
Pre-IPA-Garbage: 110138k
Pre-IPA-Leak: 84667k
Pre-IPA-Overhead: 15210k
Post-IPA-Garbage: 110138k
Post-IPA-Leak: 84667k
Post-IPA-Overhead: 15210k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 164025k -> 163977k
Peak memory use before GGC: 95805k
Peak memory use after GGC: 94854k
Maximum of released memory in single GGC run: 13895k
Garbage: 203318k -> 203319k
Leak: 82700k -> 82699k
Overhead: 35027k -> 35027k
GGC runs: 419
Pre-IPA-Garbage: 110724k
Pre-IPA-Leak: 101188k
Pre-IPA-Overhead: 18715k
Post-IPA-Garbage: 110724k
Post-IPA-Leak: 101188k
Post-IPA-Overhead: 18715k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 108097k -> 108113k
Peak memory use before GGC: 82668k -> 82660k
Peak memory use after GGC: 81786k -> 81778k
Maximum of released memory in single GGC run: 13451k
Garbage: 258715k -> 258715k
Leak: 52401k -> 52393k
Overhead: 29710k -> 29710k
GGC runs: 513
Pre-IPA-Garbage: 150372k
Pre-IPA-Leak: 87178k
Pre-IPA-Overhead: 18330k -> 18330k
Post-IPA-Garbage: 150372k
Post-IPA-Leak: 87178k
Post-IPA-Overhead: 18330k -> 18330k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 109121k -> 109141k
Peak memory use before GGC: 82971k
Peak memory use after GGC: 82148k
Maximum of released memory in single GGC run: 13453k
Garbage: 299347k -> 299348k
Leak: 52487k
Overhead: 35309k -> 35309k
GGC runs: 567
Pre-IPA-Garbage: 154592k
Pre-IPA-Leak: 86244k
Pre-IPA-Overhead: 18642k
Post-IPA-Garbage: 154592k
Post-IPA-Leak: 86244k
Post-IPA-Overhead: 18642k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 108873k -> 108909k
Peak memory use before GGC: 83377k
Peak memory use after GGC: 82550k
Maximum of released memory in single GGC run: 13453k
Garbage: 318000k -> 318000k
Leak: 52486k
Overhead: 37620k -> 37620k
GGC runs: 582
Pre-IPA-Garbage: 154653k
Pre-IPA-Leak: 86665k
Pre-IPA-Overhead: 18668k
Post-IPA-Garbage: 154653k
Post-IPA-Leak: 86665k
Post-IPA-Overhead: 18668k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 358809k -> 358769k
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: 25005k
GGC runs: 86
Pre-IPA-Garbage: 12037k
Pre-IPA-Leak: 18627k
Pre-IPA-Overhead: 2448k
Post-IPA-Garbage: 12037k
Post-IPA-Leak: 18627k
Post-IPA-Overhead: 2448k
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 359633k -> 358621k
Peak memory use before GGC: 78856k
Peak memory use after GGC: 49791k
Maximum of released memory in single GGC run: 37041k
Garbage: 140123k
Leak: 9708k
Overhead: 25574k
GGC runs: 94
Pre-IPA-Garbage: 12039k
Pre-IPA-Leak: 18873k
Pre-IPA-Overhead: 2501k
Post-IPA-Garbage: 12039k
Post-IPA-Leak: 18873k
Post-IPA-Overhead: 2501k
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 207361k -> 206981k
Peak memory use before GGC: 71011k
Peak memory use after GGC: 66115k
Maximum of released memory in single GGC run: 35381k
Garbage: 210888k
Leak: 9405k
Overhead: 31867k
GGC runs: 94
Pre-IPA-Garbage: 39202k
Pre-IPA-Leak: 63828k
Pre-IPA-Overhead: 7142k
Post-IPA-Garbage: 39202k
Post-IPA-Leak: 63828k
Post-IPA-Overhead: 7142k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 529553k -> 526193k
Peak memory use before GGC: 70831k
Peak memory use after GGC: 66115k
Maximum of released memory in single GGC run: 37550k
Garbage: 267163k
Leak: 9152k
Overhead: 40049k
GGC runs: 106
Pre-IPA-Garbage: 89543k
Pre-IPA-Leak: 80531k
Pre-IPA-Overhead: 11392k
Post-IPA-Garbage: 89543k
Post-IPA-Leak: 80531k
Post-IPA-Overhead: 11392k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1249437k -> 1250737k
Peak memory use before GGC: 131401k
Peak memory use after GGC: 123130k
Maximum of released memory in single GGC run: 49333k
Garbage: 342807k
Leak: 10574k
Overhead: 44260k
GGC runs: 106
Pre-IPA-Garbage: 89543k
Pre-IPA-Leak: 80531k
Pre-IPA-Overhead: 11392k
Post-IPA-Garbage: 89543k
Post-IPA-Leak: 80531k
Post-IPA-Overhead: 11392k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-haydn-memory/x86_64/mem-result/ChangeLog 2009-05-06 10:59:43.000000000 +0000
+++ /usr/src/SpecTests/sandbox-haydn-memory/gcc/gcc/ChangeLog 2009-05-06 20:18:19.000000000 +0000
@@ -1,3 +1,63 @@
+2009-05-06 Janis Johnson <janis187@us.ibm.com>
+
+ PR middle-end/39986
+ * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
+ decode_decimal64, encode_decimal128, decode_decimal128): Avoid
+ 32-bit memcpy into long.
+
+2009-05-06 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
+ (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
+ new_reg_loc_descr.
+ (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
+ instead of appending DW_OP_deref*.
+
+2009-05-06 Michael Matz <matz@suse.de>
+
+ PR middle-end/40021
+ * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
+ (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
+
+2009-05-06 Rafael Avila de Espindola <espindola@google.com>
+
+ * Makefile.in (install-plugin): Fix srcdir handling.
+
+2009-05-06 Andrey Belevantsev <abel@ispras.ru>
+
+ * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
+ when processing for not_regs_needed bitmap.
+ * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
+ handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
+ handling it for rhs.
+
+2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md (unnamed inc/dec peephole): Use
+ optimize_insn_for_size_p instead
+ of optimize_size.
+ * config/i386/predicates.md (incdec_operand): Likewise.
+ (aligned_operand): Likewise.
+ * config/i386/sse.md (divv8sf3): Likewise.
+ (sqrtv8sf2): Likewise.
+
+2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
+
+ * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
+
+2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
+ ssemodesuffixf2c with avxmodesuffixf2c.
+
+2009-05-06 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/40032
+ * c-decl.c (grokdeclarator): Handle incomplete type of unnamed
+ field.
+
2009-05-05 Jakub Jelinek <jakub@redhat.com>
* tree.h: Remove DECL_BY_REFERENCE from private_flag 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