A recent patch increased GCC's memory consumption!

gcctest@suse.de gcctest@suse.de
Sun Jul 24 12:45:00 GMT 2005


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 combine.c compilation at -O0 level:
    Overall memory needed: 24769k -> 24785k
    Peak memory use before GGC: 9586k -> 9590k
    Peak memory use after GGC: 8934k -> 8937k
    Maximum of released memory in single GGC run: 2754k
    Garbage: 41357k -> 41375k
    Leak: 6712k -> 6688k
    Overhead: 5818k -> 5819k
    GGC runs: 321 -> 320

comparing combine.c compilation at -O1 level:
    Overall memory needed: 26808k -> 26812k
    Peak memory use before GGC: 17359k -> 17362k
    Peak memory use after GGC: 17170k -> 17173k
    Maximum of released memory in single GGC run: 2401k -> 2402k
    Garbage: 66314k -> 66321k
    Leak: 7186k -> 7189k
    Overhead: 7738k -> 7739k
    GGC runs: 415 -> 416

comparing combine.c compilation at -O2 level:
    Overall memory needed: 26808k -> 26812k
    Peak memory use before GGC: 17360k -> 17365k
    Peak memory use after GGC: 17170k -> 17173k
    Maximum of released memory in single GGC run: 2503k
    Garbage: 84766k -> 84762k
    Leak: 7426k -> 7429k
    Overhead: 10301k -> 10301k
    GGC runs: 482

comparing combine.c compilation at -O3 level:
    Overall memory needed: 26808k -> 26812k
    Peak memory use before GGC: 17609k -> 17612k
    Peak memory use after GGC: 17170k -> 17173k
    Maximum of released memory in single GGC run: 3341k
    Garbage: 115637k -> 115671k
    Leak: 7496k -> 7499k
    Overhead: 13508k -> 13509k
    GGC runs: 533

comparing insn-attrtab.c compilation at -O0 level:
  Amount of memory still referenced at the end of compilation increased from 9848k to 10091k, overall 2.47%
    Overall memory needed: 81640k -> 81648k
    Peak memory use before GGC: 70259k -> 70263k
    Peak memory use after GGC: 44999k -> 45002k
    Maximum of released memory in single GGC run: 37046k -> 37047k
    Garbage: 148903k -> 148650k
    Leak: 9848k -> 10091k
    Overhead: 19858k -> 19859k
    GGC runs: 251 -> 250

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 112204k -> 112144k
    Peak memory use before GGC: 94382k -> 94385k
    Peak memory use after GGC: 83703k -> 83706k
    Maximum of released memory in single GGC run: 32776k
    Garbage: 294408k -> 294410k
    Leak: 10071k -> 10074k
    Overhead: 36804k -> 36804k
    GGC runs: 250

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 122820k -> 123328k
    Peak memory use before GGC: 113428k -> 113431k
    Peak memory use after GGC: 83667k -> 83670k
    Maximum of released memory in single GGC run: 32461k
    Garbage: 380606k -> 380608k
    Leak: 10184k -> 10188k
    Overhead: 48618k -> 48619k
    GGC runs: 279

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 123344k -> 123348k
    Peak memory use before GGC: 113453k -> 113456k
    Peak memory use after GGC: 83690k -> 83693k
    Maximum of released memory in single GGC run: 32774k
    Garbage: 381125k -> 381122k
    Leak: 10201k -> 10204k
    Overhead: 48671k -> 48672k
    GGC runs: 282

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 118612k -> 118616k
    Peak memory use before GGC: 95313k -> 95321k
    Peak memory use after GGC: 94369k -> 94374k
    Maximum of released memory in single GGC run: 20155k -> 20159k
    Garbage: 227782k -> 227774k
    Leak: 49416k -> 49422k
    Overhead: 37224k -> 37225k
    GGC runs: 344

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 105500k -> 105524k
    Peak memory use before GGC: 94269k -> 94274k
    Peak memory use after GGC: 93333k -> 93338k
    Maximum of released memory in single GGC run: 19336k
    Garbage: 600754k -> 600783k
    Leak: 55683k -> 55689k
    Overhead: 69710k -> 69714k
    GGC runs: 524

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 105520k -> 105536k
    Peak memory use before GGC: 94269k -> 94274k
    Peak memory use after GGC: 93334k -> 93339k
    Maximum of released memory in single GGC run: 19336k
    Garbage: 683214k -> 683179k
    Leak: 56600k -> 56607k
    Overhead: 80951k -> 80947k
    GGC runs: 587

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 108356k -> 108368k
    Peak memory use before GGC: 95459k -> 95464k
    Peak memory use after GGC: 94513k -> 94518k
    Maximum of released memory in single GGC run: 19608k
    Garbage: 729492k -> 729520k
    Leak: 56835k -> 56841k
    Overhead: 84613k -> 84629k
    GGC runs: 596

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-07-24 00:46:55.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-07-24 11:37:34.000000000 +0000
@@ -1,3 +1,22 @@
+2005-07-24  Ira Rosen  <irar@il.ibm.com>
+
+        PR tree-optimization/22526
+        * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
+        of the zero node.
+
+2005-07-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+	* builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
+	that C99 reserve for future use. Use it to define clog10,
+	clog10f and clog10l.
+
+2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
+	* configure.ac: Check for -Wmissing-format-attribute.
+	
+	* configure: Regenerate.
+
 2005-07-23  Richard Henderson  <rth@redhat.com>
 
 	PR tree-optimization/22623


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