A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Sat Jan 19 02:12:00 GMT 2008
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: 1096k
Peak memory use after GGC: 994k
Maximum of released memory in single GGC run: 129k
Garbage: 237k
Leak: 951k
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: 1123k
Peak memory use after GGC: 1021k
Maximum of released memory in single GGC run: 131k
Garbage: 239k -> 239k
Leak: 984k
Overhead: 84k -> 84k
GGC runs: 3
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O1 level:
Overall memory needed: 8211k
Peak memory use before GGC: 1096k
Peak memory use after GGC: 994k
Maximum of released memory in single GGC run: 131k
Garbage: 239k
Leak: 952k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 226k
Pre-IPA-Leak: 954k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 226k
Post-IPA-Leak: 954k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O2 level:
Overall memory needed: 8231k
Peak memory use before GGC: 1096k
Peak memory use after GGC: 994k
Maximum of released memory in single GGC run: 134k
Garbage: 243k
Leak: 953k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 226k
Pre-IPA-Leak: 955k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 226k
Post-IPA-Leak: 955k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O3 level:
Overall memory needed: 8231k
Peak memory use before GGC: 1096k
Peak memory use after GGC: 994k
Maximum of released memory in single GGC run: 134k
Garbage: 243k
Leak: 953k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 226k
Pre-IPA-Leak: 955k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 226k
Post-IPA-Leak: 955k
Post-IPA-Overhead: 79k
comparing combine.c compilation at -O0 level:
Overall memory needed: 22703k
Peak memory use before GGC: 7809k
Peak memory use after GGC: 7186k
Maximum of released memory in single GGC run: 1550k
Garbage: 37949k
Leak: 5506k
Overhead: 4649k
GGC runs: 371
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O0 -g level:
Amount of memory still referenced at the end of compilation increased from 8320k to 8380k, overall 0.72%
Overall memory needed: 24707k
Peak memory use before GGC: 9648k
Peak memory use after GGC: 8954k
Maximum of released memory in single GGC run: 1838k
Garbage: 38291k -> 38291k
Leak: 8320k -> 8380k
Overhead: 5276k -> 5276k
GGC runs: 342
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O1 level:
Overall memory needed: 33103k
Peak memory use before GGC: 16345k
Peak memory use after GGC: 16161k
Maximum of released memory in single GGC run: 1362k
Garbage: 51471k
Leak: 5660k
Overhead: 5782k
GGC runs: 443
Pre-IPA-Garbage: 13923k
Pre-IPA-Leak: 17182k
Pre-IPA-Overhead: 2129k
Post-IPA-Garbage: 13923k
Post-IPA-Leak: 17182k
Post-IPA-Overhead: 2129k
comparing combine.c compilation at -O2 level:
Overall memory needed: 35931k
Peak memory use before GGC: 16446k
Peak memory use after GGC: 16280k
Maximum of released memory in single GGC run: 1316k
Garbage: 71130k
Leak: 5986k
Overhead: 8064k
GGC runs: 512
Pre-IPA-Garbage: 14080k
Pre-IPA-Leak: 17247k
Pre-IPA-Overhead: 2144k
Post-IPA-Garbage: 14080k
Post-IPA-Leak: 17247k
Post-IPA-Overhead: 2144k
comparing combine.c compilation at -O3 level:
Overall memory needed: 39043k
Peak memory use before GGC: 16623k
Peak memory use after GGC: 16301k
Maximum of released memory in single GGC run: 2063k
Garbage: 93127k
Leak: 6109k
Overhead: 10687k
GGC runs: 546
Pre-IPA-Garbage: 14086k
Pre-IPA-Leak: 17267k
Pre-IPA-Overhead: 2146k
Post-IPA-Garbage: 14086k
Post-IPA-Leak: 17267k
Post-IPA-Overhead: 2146k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 137443k
Peak memory use before GGC: 56999k
Peak memory use after GGC: 31456k
Maximum of released memory in single GGC run: 33256k
Garbage: 128624k
Leak: 8382k
Overhead: 14368k
GGC runs: 293
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O0 -g level:
Amount of memory still referenced at the end of compilation increased from 10042k to 10057k, overall 0.15%
Overall memory needed: 138695k -> 138735k
Peak memory use before GGC: 58141k
Peak memory use after GGC: 32598k
Maximum of released memory in single GGC run: 33256k
Garbage: 128840k -> 128862k
Leak: 10042k -> 10057k
Overhead: 14724k -> 14724k
GGC runs: 289
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 144723k
Peak memory use before GGC: 56211k
Peak memory use after GGC: 49983k
Maximum of released memory in single GGC run: 23976k
Garbage: 206434k
Leak: 9275k
Overhead: 24742k
GGC runs: 315
Pre-IPA-Garbage: 50355k
Pre-IPA-Leak: 49676k
Pre-IPA-Overhead: 7543k
Post-IPA-Garbage: 50355k
Post-IPA-Leak: 49676k
Post-IPA-Overhead: 7543k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 188011k -> 188015k
Peak memory use before GGC: 56850k
Peak memory use after GGC: 51570k
Maximum of released memory in single GGC run: 22370k
Garbage: 246629k
Leak: 10362k
Overhead: 30342k
GGC runs: 346
Pre-IPA-Garbage: 50427k
Pre-IPA-Leak: 49680k
Pre-IPA-Overhead: 7550k
Post-IPA-Garbage: 50427k
Post-IPA-Leak: 49680k
Post-IPA-Overhead: 7550k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 192771k -> 192799k
Peak memory use before GGC: 68033k
Peak memory use after GGC: 62277k
Maximum of released memory in single GGC run: 22875k
Garbage: 274537k
Leak: 10399k
Overhead: 32137k
GGC runs: 348
Pre-IPA-Garbage: 50427k
Pre-IPA-Leak: 49680k
Pre-IPA-Overhead: 7550k
Post-IPA-Garbage: 50427k
Post-IPA-Leak: 49680k
Post-IPA-Overhead: 7550k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 149509k -> 149537k
Peak memory use before GGC: 84849k
Peak memory use after GGC: 84008k
Maximum of released memory in single GGC run: 17149k
Garbage: 201068k
Leak: 48173k
Overhead: 24079k
GGC runs: 417
Pre-IPA-Garbage: 109656k
Pre-IPA-Leak: 71361k
Pre-IPA-Overhead: 12151k
Post-IPA-Garbage: 109656k
Post-IPA-Leak: 71361k
Post-IPA-Overhead: 12151k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Amount of memory still referenced at the end of compilation increased from 69786k to 69898k, overall 0.16%
Overall memory needed: 168861k -> 169409k
Peak memory use before GGC: 96061k
Peak memory use after GGC: 95110k
Maximum of released memory in single GGC run: 17205k
Garbage: 206565k -> 206714k
Leak: 69786k -> 69898k
Overhead: 29065k -> 29065k
GGC runs: 391
Pre-IPA-Garbage: 110300k
Pre-IPA-Leak: 84641k
Pre-IPA-Overhead: 14727k
Post-IPA-Garbage: 110300k
Post-IPA-Leak: 84641k
Post-IPA-Overhead: 14727k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 123359k -> 123363k
Peak memory use before GGC: 84526k
Peak memory use after GGC: 83679k
Maximum of released memory in single GGC run: 16324k
Garbage: 290593k
Leak: 47424k
Overhead: 29408k
GGC runs: 515
Pre-IPA-Garbage: 155089k
Pre-IPA-Leak: 88338k
Pre-IPA-Overhead: 17593k
Post-IPA-Garbage: 155089k
Post-IPA-Leak: 88338k
Post-IPA-Overhead: 17593k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 124211k
Peak memory use before GGC: 84748k
Peak memory use after GGC: 83908k
Maximum of released memory in single GGC run: 16363k
Garbage: 357675k
Leak: 48356k
Overhead: 36419k
GGC runs: 588
Pre-IPA-Garbage: 158354k
Pre-IPA-Leak: 88467k
Pre-IPA-Overhead: 17939k
Post-IPA-Garbage: 158354k
Post-IPA-Leak: 88467k
Post-IPA-Overhead: 17939k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 126919k
Peak memory use before GGC: 85966k
Peak memory use after GGC: 85090k
Maximum of released memory in single GGC run: 16722k
Garbage: 384952k
Leak: 48972k
Overhead: 38683k
GGC runs: 616
Pre-IPA-Garbage: 161155k
Pre-IPA-Leak: 88746k
Pre-IPA-Overhead: 18193k
Post-IPA-Garbage: 161155k
Post-IPA-Leak: 88746k
Post-IPA-Overhead: 18193k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 380432k
Peak memory use before GGC: 101209k
Peak memory use after GGC: 56862k
Maximum of released memory in single GGC run: 50583k
Garbage: 178951k
Leak: 6098k
Overhead: 30783k
GGC runs: 106
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Amount of memory still referenced at the end of compilation increased from 7800k to 7828k, overall 0.36%
Overall memory needed: 381232k
Peak memory use before GGC: 101839k
Peak memory use after GGC: 57493k
Maximum of released memory in single GGC run: 50582k
Garbage: 179056k -> 179066k
Leak: 7800k -> 7828k
Overhead: 31215k -> 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: 440583k -> 438483k
Peak memory use before GGC: 78857k
Peak memory use after GGC: 70436k
Maximum of released memory in single GGC run: 37753k
Garbage: 234534k
Leak: 16073k
Overhead: 35581k
GGC runs: 105
Pre-IPA-Garbage: 52924k
Pre-IPA-Leak: 49245k
Pre-IPA-Overhead: 7121k
Post-IPA-Garbage: 52924k
Post-IPA-Leak: 49245k
Post-IPA-Overhead: 7121k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 359567k -> 359811k
Peak memory use before GGC: 75423k
Peak memory use after GGC: 70437k
Maximum of released memory in single GGC run: 32251k
Garbage: 245332k
Leak: 16245k
Overhead: 38769k
GGC runs: 116
Pre-IPA-Garbage: 91836k
Pre-IPA-Leak: 77290k
Pre-IPA-Overhead: 11793k
Post-IPA-Garbage: 91836k
Post-IPA-Leak: 77290k
Post-IPA-Overhead: 11793k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1312955k -> 1314011k
Peak memory use before GGC: 136584k
Peak memory use after GGC: 127942k
Maximum of released memory in single GGC run: 59911k
Garbage: 371518k
Leak: 24376k
Overhead: 49888k
GGC runs: 103
Pre-IPA-Garbage: 91836k
Pre-IPA-Leak: 77290k
Pre-IPA-Overhead: 11793k
Post-IPA-Garbage: 91836k
Post-IPA-Leak: 77290k
Post-IPA-Overhead: 11793k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-01-18 03:05:40.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-01-18 21:27:51.000000000 +0000
@@ -1,3 +1,32 @@
+2008-01-18 Ian Lance Taylor <iant@google.com>
+
+ * common.opt: Add fmerge-debug-strings.
+ * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
+ flag_merge_debug_strings rather than flag_merge_constants.
+ * doc/invoke.texi (Option Summary): Mention
+ -fmerge-debug-strings.
+ (Debugging Options): Document -fmerge-debug-strings.
+
+2008-01-18 Ian Lance Taylor <iant@google.com>
+
+ PR c++/33407
+ * tree.h (DECL_IS_OPERATOR_NEW): Define.
+ (struct tree_function_decl): Add new field operator_new_flag.
+ * tree-inline.c (expand_call_inline): When inlining a call to
+ operator new, force the return value to go into a variable, and
+ set DECL_NO_TBAA_P on that variable.
+ * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
+
+2008-01-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR debug/34484
+ * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
+ DWARF2_DEBUGGING_INFO.
+ (dwarf2out_note_section_used): Ditto. Add prototype.
+ (have_multiple_function_sections, text_section_used,
+ cold_text_section_used, *cold_text_sections): Move declarations
+ before their uses.
+
2007-01-17 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2008-01-16 14:07:34.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2008-01-18 21:27:51.000000000 +0000
@@ -1,3 +1,10 @@
+2008-01-18 Ian Lance Taylor <iant@google.com>
+
+ PR c++/33407
+ * decl.c (duplicate_decls): Copy DECL_IS_OPERATOR_NEW flag.
+ (grok_op_properties): For NEW_EXPR and VEC_NEW_EXPR set
+ DECL_IS_OPERATOR_NEW flag.
+
2008-01-16 Richard Guenther <rguenther@suse.de>
PR c++/33819
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