GCC memory consumption increased by recent patch!

gcctest@suse.de gcctest@suse.de
Thu Dec 9 22:27:00 GMT 2004


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: 25253k -> 25257k
    Peak memory use before GGC: 9310k
    Peak memory use after GGC: 8624k
    Maximum of released memory in single GGC run: 2912k
    Garbage: 42433k
    Leak: 6088k
    Overhead: 5717k
    GGC runs: 353

comparing combine.c compilation at -O1 level:
    Overall memory needed: 26125k
    Peak memory use before GGC: 9199k
    Peak memory use after GGC: 8723k
    Maximum of released memory in single GGC run: 2062k
    Garbage: 67984k
    Leak: 6484k
    Overhead: 10665k
    GGC runs: 545

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29965k -> 29961k
    Peak memory use before GGC: 12705k
    Peak memory use after GGC: 12578k
    Maximum of released memory in single GGC run: 2574k
    Garbage: 82170k
    Leak: 6299k
    Overhead: 14822k
    GGC runs: 547

comparing combine.c compilation at -O3 level:
    Overall memory needed: 20756k
    Peak memory use before GGC: 12987k
    Peak memory use after GGC: 12578k
    Maximum of released memory in single GGC run: 3411k
    Garbage: 111082k
    Leak: 6832k
    Overhead: 19898k
    GGC runs: 614

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 118468k
    Peak memory use before GGC: 79386k
    Peak memory use after GGC: 46137k
    Maximum of released memory in single GGC run: 43335k
    Garbage: 161982k
    Leak: 10609k
    Overhead: 21242k
    GGC runs: 296

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 132256k
    Peak memory use before GGC: 85238k
    Peak memory use after GGC: 70037k
    Maximum of released memory in single GGC run: 41132k
    Garbage: 449300k
    Leak: 10955k
    Overhead: 79597k
    GGC runs: 430

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 154184k -> 154180k
    Peak memory use before GGC: 101250k
    Peak memory use after GGC: 85450k
    Maximum of released memory in single GGC run: 42175k
    Garbage: 496321k
    Leak: 10875k
    Overhead: 87871k
    GGC runs: 364

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 154200k -> 154196k
    Peak memory use before GGC: 101251k
    Peak memory use after GGC: 85452k
    Maximum of released memory in single GGC run: 42175k
    Garbage: 497599k
    Leak: 10920k
    Overhead: 88052k
    GGC runs: 372

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 113408k -> 113400k
    Peak memory use before GGC: 89927k -> 89922k
    Peak memory use after GGC: 89033k -> 89028k
    Maximum of released memory in single GGC run: 19901k -> 19900k
    Garbage: 248762k -> 248777k
    Leak: 57794k -> 57790k
    Overhead: 45380k -> 45380k
    GGC runs: 362

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 95924k -> 95920k
    Peak memory use before GGC: 88924k -> 88919k
    Peak memory use after GGC: 87950k -> 87945k
    Maximum of released memory in single GGC run: 19406k
    Garbage: 552814k -> 552782k
    Leak: 59829k -> 59824k
    Overhead: 115300k -> 115300k
    GGC runs: 611

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 95924k -> 95920k
    Peak memory use before GGC: 88924k -> 88919k
    Peak memory use after GGC: 87951k -> 87945k
    Maximum of released memory in single GGC run: 19405k
    Garbage: 601727k -> 601740k
    Leak: 60410k -> 60406k
    Overhead: 137348k -> 137349k
    GGC runs: 653 -> 654

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 98404k to 98560k, overall 0.16%
    Overall memory needed: 98404k -> 98560k
    Peak memory use before GGC: 90321k -> 90316k
    Peak memory use after GGC: 88783k -> 88778k
    Maximum of released memory in single GGC run: 20095k
    Garbage: 641849k -> 641760k
    Leak: 60742k -> 60762k
    Overhead: 148778k -> 148777k
    GGC runs: 646 -> 647

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2004-12-09 17:08:15.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2004-12-09 21:22:20.000000000 +0000
@@ -1,3 +1,30 @@
+2004-12-09  Richard Sandiford  <rsandifo@redhat.com>
+
+	* simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether
+	the request subreg is entirely contained in the requested component.
+	(simplify_gen_subreg): Return null for CONCATs that are rejected
+	by simplify_subreg.
+	* expmed.c (store_bit_field): Create a temporary when changing the
+	value to an integer mode.
+
+2004-12-09  David Edelsohn  <edelsohn@gnu.org>
+
+	* real.c (ibm_extended): Correct comment.
+
+2004-12-09  Stan Shebs  <shebs@apple.com>
+
+	* config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros
+	formerly in darwin-tramp.asm.
+	* config/rs6000/darwin-tramp.asm: Include darwin-asm.h.
+	* config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros.
+	* config/rs6000/t-darwin: Add dependencies.
+
+2004-12-09  Richard Henderson  <rth@redhat.com>
+
+	PR target/17025
+	* config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New.
+	(test_qi_1, andqi_2): Do not promote to simode.
+
 2004-12-09  Andrew Pinski  <pinskia@physics.uc.edu>
 
 	PR tree-opt/18904
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2004-12-09 15:52:16.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2004-12-09 21:22:22.000000000 +0000
@@ -1,3 +1,13 @@
+2004-12-09  Matt Austern  <austern@apple.com>
+
+	PR c++/18514
+	* name-lookup.c (do_nonmember_using_decl): A real function
+	declaration takes precedence over an anticipated declaration.
+	
+2004-12-09  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+	* parser.c (cp_parser_member_declaration): Fix comment typo.
+
 2004-12-09  Alexandre Oliva  <aoliva@redhat.com>
 
 	PR c++/18757

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