GCC memory consumption increased by recent patch!

gcctest@suse.de gcctest@suse.de
Wed Oct 6 14:20: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: 25265k
    Peak memory use before GGC: 9345k
    Peak memory use after GGC: 8656k
    Maximum of released memory in single GGC run: 2939k
    Garbage: 43112k
    Leak: 6090k
    Overhead: 5691k
    GGC runs: 363

comparing combine.c compilation at -O1 level:
    Overall memory needed: 26717k
    Peak memory use before GGC: 9436k
    Peak memory use after GGC: 8872k
    Maximum of released memory in single GGC run: 2071k
    Garbage: 73090k -> 73084k
    Leak: 6677k
    Overhead: 11485k -> 11485k
    GGC runs: 576

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29833k -> 29829k
    Peak memory use before GGC: 12772k
    Peak memory use after GGC: 12612k
    Maximum of released memory in single GGC run: 2596k
    Garbage: 88258k -> 88266k
    Leak: 6431k
    Overhead: 16029k -> 16029k
    GGC runs: 578

comparing combine.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 21432k to 21480k, overall 0.22%
    Overall memory needed: 21432k -> 21480k
    Peak memory use before GGC: 13438k -> 13436k
    Peak memory use after GGC: 12724k -> 12722k
    Maximum of released memory in single GGC run: 3454k
    Garbage: 118671k -> 118669k
    Leak: 7000k
    Overhead: 21231k -> 21231k
    GGC runs: 643

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 118920k
    Peak memory use before GGC: 79664k
    Peak memory use after GGC: 46309k
    Maximum of released memory in single GGC run: 43569k
    Garbage: 163565k
    Leak: 10644k
    Overhead: 20606k
    GGC runs: 307

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 129756k
    Peak memory use before GGC: 90827k
    Peak memory use after GGC: 70898k
    Maximum of released memory in single GGC run: 42067k
    Garbage: 461322k
    Leak: 11075k
    Overhead: 74572k
    GGC runs: 460

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 209916k
    Peak memory use before GGC: 105788k
    Peak memory use after GGC: 86457k
    Maximum of released memory in single GGC run: 35975k
    Garbage: 510717k -> 510723k
    Leak: 10957k
    Overhead: 82616k -> 82616k
    GGC runs: 384

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 209916k
    Peak memory use before GGC: 105797k
    Peak memory use after GGC: 86466k
    Maximum of released memory in single GGC run: 35975k
    Garbage: 512106k -> 512100k
    Leak: 11011k
    Overhead: 82804k -> 82804k
    GGC runs: 393

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 113448k
    Peak memory use before GGC: 90536k
    Peak memory use after GGC: 89158k
    Maximum of released memory in single GGC run: 20157k
    Garbage: 262107k
    Leak: 59481k
    Overhead: 47299k
    GGC runs: 375

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 107932k
    Peak memory use before GGC: 95134k
    Peak memory use after GGC: 88446k
    Maximum of released memory in single GGC run: 19483k
    Garbage: 699635k
    Leak: 61537k
    Overhead: 132310k
    GGC runs: 626

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 108368k -> 108352k
    Peak memory use before GGC: 95135k
    Peak memory use after GGC: 88446k
    Maximum of released memory in single GGC run: 19484k
    Garbage: 750854k -> 750876k
    Leak: 62089k
    Overhead: 155124k -> 155124k
    GGC runs: 661 -> 663

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 113660k
    Peak memory use before GGC: 99940k
    Peak memory use after GGC: 89670k
    Maximum of released memory in single GGC run: 20199k
    Garbage: 848038k
    Leak: 62506k
    Overhead: 165241k
    GGC runs: 640

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2004-10-06 05:21:44.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2004-10-06 13:10:57.000000000 +0000
@@ -1,3 +1,14 @@
+2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	PR target/16007
+	* doc/install.texi (*-*-solaris2*): Mention potential problem
+	with Sun assembler + GNU linker and C++ programs.
+	Document status of binutils 2.15 release.
+
+2004-10-06  Jan Hubicka  <jh@suse.cz>
+
+	* cse.c (cse_main): Kill push/pop context.
+
 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
 
 	* pretty-print.c: Include tree.h.

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