A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Tue May 5 20:20: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: 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 -> 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 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 -> 38030k
Leak: 7164k
Overhead: 5526k -> 5526k
GGC runs: 333 -> 332
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
Peak memory use before GGC: 19392k
Peak memory use after GGC: 18859k
Maximum of released memory in single GGC run: 1923k
Garbage: 38245k
Leak: 10450k
Overhead: 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: 31969k -> 32005k
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:
Amount of memory still referenced at the end of compilation increased from 7179k to 7191k, overall 0.17%
Overall memory needed: 33085k -> 33365k
Peak memory use before GGC: 16585k
Peak memory use after GGC: 16415k
Maximum of released memory in single GGC run: 1489k
Garbage: 56737k -> 56734k
Leak: 7179k -> 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: 33449k -> 33613k
Peak memory use before GGC: 16586k
Peak memory use after GGC: 16420k
Maximum of released memory in single GGC run: 1673k
Garbage: 67613k
Leak: 7227k
Overhead: 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: 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: 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 -> 137845k
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
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:
Overall memory needed: 201581k
Peak memory use before GGC: 53557k
Peak memory use after GGC: 43378k
Maximum of released memory in single GGC run: 18700k
Garbage: 212037k
Leak: 9196k
Overhead: 29422k
GGC runs: 324
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:
Overall memory needed: 201509k -> 201501k
Peak memory use before GGC: 53562k
Peak memory use after GGC: 43382k
Maximum of released memory in single GGC run: 18646k
Garbage: 213251k
Leak: 9203k
Overhead: 29815k -> 29815k
GGC runs: 330
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: 145981k -> 145965k
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: 164053k -> 163893k
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
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: 108001k -> 108045k
Peak memory use before GGC: 82668k
Peak memory use after GGC: 81786k
Maximum of released memory in single GGC run: 13451k
Garbage: 258715k
Leak: 52401k
Overhead: 29710k -> 29710k
GGC runs: 513
Pre-IPA-Garbage: 150372k
Pre-IPA-Leak: 87178k
Pre-IPA-Overhead: 18330k
Post-IPA-Garbage: 150372k
Post-IPA-Leak: 87178k
Post-IPA-Overhead: 18330k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 109261k -> 109129k
Peak memory use before GGC: 82971k
Peak memory use after GGC: 82148k
Maximum of released memory in single GGC run: 13453k
Garbage: 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: 109017k -> 108901k
Peak memory use before GGC: 83377k
Peak memory use after GGC: 82550k
Maximum of released memory in single GGC run: 13453k
Garbage: 317995k -> 317999k
Leak: 52486k -> 52480k
Overhead: 37619k -> 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: 358877k -> 358897k
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: 358613k -> 359633k
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: 207549k -> 207281k
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: 527873k -> 528929k
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: 1249781k -> 1248897k
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-05 09:02:27.000000000 +0000
+++ /usr/src/SpecTests/sandbox-haydn-memory/gcc/gcc/ChangeLog 2009-05-05 18:12:33.000000000 +0000
@@ -1,3 +1,31 @@
+2009-05-05 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/40022
+ * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
+ the only vuse.
+ (phivn_valid_p): Fix tuplification error, simplify.
+ (phiprop_insert_phi): Add dumps.
+ (propagate_with_phi): Simplify.
+
+2009-05-05 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/40023
+ * builtins.c (gimplify_va_arg_expr): Properly build the
+ address.
+
+2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
+
+ * tree.h (strip_float_extensions): Remove duplicate declaration.
+ (build_low_bits_mask, debug_fold_checksum, expand_function_end,
+ expand_function_start, stack_protect_prologue, stack_protect_epilogue,
+ block_ultimate_origin): Rearrange the declarations line to match the
+ comment that indicates the .c file which the functions are defined.
+ (dwarf2out_*, set_decl_rtl): Add comment.
+ (get_base_address): Adjust comment.
+ (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
+ declarations line and add comment.
+ (is_builtin_name): Add blank after function name, for clarity.
+
2009-05-04 Joseph Myers <joseph@codesourcery.com>
* attribs.c (decl_attributes): Use %qE for identifiers in
--- /usr/src/SpecTests/sandbox-haydn-memory/x86_64/mem-result/ChangeLog.cp 2009-05-05 09:02:26.000000000 +0000
+++ /usr/src/SpecTests/sandbox-haydn-memory/gcc/gcc/cp/ChangeLog 2009-05-05 18:12:33.000000000 +0000
@@ -1,3 +1,12 @@
+2009-05-05 Nathan Sidwell <nathan@codesourcery.com>
+
+ * typeck.c (cp_build_compound_expr): Require RHS to have a known
+ type.
+ * class.c (resolve_address_of_overloaded_function): Use
+ OVL_CURRENT for error message.
+ (instantiate_type): Forbid COMPOUND_EXPRs and remove code dealing
+ with them. Do not copy the node.
+
2009-05-05 Jakub Jelinek <jakub@redhat.com>
PR c++/40013
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