GCC memory consumption increased by recent patch!

gcctest@suse.de gcctest@suse.de
Fri Feb 25 06:30:00 GMT 2005


Hi,
Comparing memory consumption on compilation of combine.i and generate-3.4.ii I got:


comparing combine.c compilation at -O0 level:
    Overall memory needed: 24665k -> 24669k
    Peak memory use before GGC: 9358k
    Peak memory use after GGC: 8673k
    Maximum of released memory in single GGC run: 2863k
    Garbage: 41664k
    Leak: 6395k
    Overhead: 5772k
    GGC runs: 327

comparing combine.c compilation at -O1 level:
    Overall memory needed: 24429k -> 24425k
    Peak memory use before GGC: 8673k
    Peak memory use after GGC: 8093k
    Maximum of released memory in single GGC run: 2026k
    Garbage: 58465k
    Leak: 6755k
    Overhead: 9677k
    GGC runs: 499

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29141k
    Peak memory use before GGC: 12670k
    Peak memory use after GGC: 12544k
    Maximum of released memory in single GGC run: 2597k
    Garbage: 77939k
    Leak: 6593k
    Overhead: 13795k
    GGC runs: 516

comparing combine.c compilation at -O3 level:
    Overall memory needed: 30945k -> 30929k
    Peak memory use before GGC: 12773k
    Peak memory use after GGC: 12544k
    Maximum of released memory in single GGC run: 3426k
    Garbage: 105098k
    Leak: 7199k
    Overhead: 18547k
    GGC runs: 579

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 114136k
    Peak memory use before GGC: 74747k
    Peak memory use after GGC: 45493k
    Maximum of released memory in single GGC run: 39340k
    Garbage: 152668k
    Leak: 10984k
    Overhead: 19970k
    GGC runs: 274

comparing insn-attrtab.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 123984k to 124400k, overall 0.34%
    Overall memory needed: 123984k -> 124400k
    Peak memory use before GGC: 78641k
    Peak memory use after GGC: 70035k
    Maximum of released memory in single GGC run: 40780k
    Garbage: 369107k
    Leak: 11361k
    Overhead: 69092k
    GGC runs: 398

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 149140k -> 149144k
    Peak memory use before GGC: 97603k
    Peak memory use after GGC: 83422k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 483019k
    Leak: 11242k
    Overhead: 84182k
    GGC runs: 342

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 149176k
    Peak memory use before GGC: 97605k
    Peak memory use after GGC: 83424k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 483826k
    Leak: 11279k
    Overhead: 84311k
    GGC runs: 348

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 111060k
    Peak memory use before GGC: 87161k
    Peak memory use after GGC: 85900k
    Maximum of released memory in single GGC run: 19511k
    Garbage: 246197k
    Leak: 55513k
    Overhead: 43275k
    GGC runs: 366

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 103905k -> 103921k
    Peak memory use before GGC: 86019k
    Peak memory use after GGC: 85119k
    Maximum of released memory in single GGC run: 18950k
    Garbage: 434013k
    Leak: 56846k
    Overhead: 64715k
    GGC runs: 511

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 104129k -> 104133k
    Peak memory use before GGC: 86019k
    Peak memory use after GGC: 85119k
    Maximum of released memory in single GGC run: 18950k
    Garbage: 477214k
    Leak: 57413k
    Overhead: 74344k
    GGC runs: 570

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 105201k -> 105205k
    Peak memory use before GGC: 87156k
    Peak memory use after GGC: 86199k
    Maximum of released memory in single GGC run: 19400k
    Garbage: 482400k
    Leak: 57585k
    Overhead: 75040k
    GGC runs: 559

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-02-24 17:34:33.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-02-24 23:30:32.000000000 +0000
@@ -1,5 +1,65 @@
 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
 
+	PR target/14619
+	* config/cris/cris.c (cris_target_asm_function_prologue): Create
+	dwarf2 label manually and put it after, not before the prologue.
+
+2005-02-24  David Edelsohn  <edelsohn@gnu.org>
+
+	PR target/19019
+	* reload.c (operands_match_p): Only increment register number for
+	SCALAR_INT_MODE_P modes in multiple hard registers.
+
+	* config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
+	Fix formatting.
+
+2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+	* ChangeLog.5: Fix log message typo(s).
+	* ChangeLog.7: Likewise.
+	* ChangeLog.tree-ssa: Likewise.
+	* cfgexpand.c: Fix comment typo(s).
+	* conflict.c: Likewise.
+	* defaults.h: Likewise.
+	* dwarf2out.c: Likewise.
+	* gcse.c: Likewise.
+	* ggc-page.c: Likewise.
+	* tree-eh.c: Likewise.
+	* tree-ssa-dom.c: Likewise.
+
+2005-02-24  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/19019
+	* mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
+	* config/rs6000/darwin-ldouble.c: Only use the .symver directives
+	if SHARED is defined.
+
+	PR target/20196
+	* config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
+	allow splitting only if operands 0 and 3 don't overlap.
+
+2005-02-24  Richard Henderson  <rth@redhat.com>
+
+	PR middle-end/19953
+	* builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
+	(fold_builtin_1): Call them.
+	* fold-const.c (fold_complex_mult_parts): Split out from ...
+	(fold_complex_mult): ... here.  Fix typo in both imaginary case.
+	(fold_complex_div_parts, fold_complex_div): New.
+	(fold): Use them.
+	* tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
+
+2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+	* tree-ssa-ccp.c (visit_assignment): Verify that result of
+	VIEW_CONVERT_EXPR is_gimple_min_invariant.
+
+	* print-tree.c (print_node_brief): Print LABEL_DECL_UID.
+	(print_node): Likewise.
+	Print TYPE_SIZES_GIMPLIFIED.
+
+2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
+
 	* config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
 	("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
 	operands as commutative in constraints.
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2005-02-24 03:16:09.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2005-02-24 23:30:32.000000000 +0000
@@ -1,3 +1,14 @@
+2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+	* call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
+	parser.c: Fix comment typo(s).
+
+2005-02-24  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/20175
+	* decl.c (reshape_init): Don't warn about missing braces if STRING_CST
+	initializes a char/wchar_t array.
+
 2005-02-23  Mark Mitchell  <mark@codesourcery.com>
 
 	PR c++/19878

I am friendly script caring about memory consumption in GCC.  Please contact
jh@suse.cz if something is going wrong.

The results can be reproduced by building 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.

Yours testing script.



More information about the Gcc-regression mailing list