GCC memory consumption increased by recent patch!

gcctest@suse.de gcctest@suse.de
Sat Oct 23 22:07: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: 25261k
    Peak memory use before GGC: 9336k
    Peak memory use after GGC: 8647k
    Maximum of released memory in single GGC run: 2930k
    Garbage: 42982k
    Leak: 6089k
    Overhead: 5652k
    GGC runs: 364

comparing combine.c compilation at -O1 level:
    Overall memory needed: 26737k -> 26741k
    Peak memory use before GGC: 9434k
    Peak memory use after GGC: 8871k
    Maximum of released memory in single GGC run: 2062k -> 2061k
    Garbage: 72146k -> 72114k
    Leak: 6676k -> 6675k
    Overhead: 11460k -> 11451k
    GGC runs: 577

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29941k -> 29913k
    Peak memory use before GGC: 12772k
    Peak memory use after GGC: 12612k
    Maximum of released memory in single GGC run: 2580k -> 2576k
    Garbage: 87329k -> 87340k
    Leak: 6430k -> 6430k
    Overhead: 16004k -> 16009k
    GGC runs: 576

comparing combine.c compilation at -O3 level:
  Amount of memory still referenced at the end of compilation increased from 6999k to 7014k, overall 0.21%
    Overall memory needed: 21464k -> 21468k
    Peak memory use before GGC: 13349k
    Peak memory use after GGC: 12723k
    Maximum of released memory in single GGC run: 3440k
    Garbage: 117307k -> 117310k
    Leak: 6999k -> 7014k
    Overhead: 21177k -> 21187k
    GGC runs: 643 -> 642

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 118640k
    Peak memory use before GGC: 79535k
    Peak memory use after GGC: 46180k
    Maximum of released memory in single GGC run: 43441k
    Garbage: 163172k
    Leak: 10643k
    Overhead: 20458k
    GGC runs: 307

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 130588k
    Peak memory use before GGC: 90811k
    Peak memory use after GGC: 70897k
    Maximum of released memory in single GGC run: 42004k
    Garbage: 462709k
    Leak: 11074k
    Overhead: 74729k
    GGC runs: 463

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 209828k
    Peak memory use before GGC: 105776k
    Peak memory use after GGC: 86461k
    Maximum of released memory in single GGC run: 35798k
    Garbage: 512273k
    Leak: 10964k
    Overhead: 82804k
    GGC runs: 385

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 209836k
    Peak memory use before GGC: 105780k
    Peak memory use after GGC: 86466k
    Maximum of released memory in single GGC run: 35798k
    Garbage: 513567k
    Leak: 11010k
    Overhead: 82991k
    GGC runs: 394

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 112008k
    Peak memory use before GGC: 88771k
    Peak memory use after GGC: 87648k
    Maximum of released memory in single GGC run: 19623k
    Garbage: 254154k
    Leak: 58644k
    Overhead: 45995k
    GGC runs: 367

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 100944k -> 100972k
    Peak memory use before GGC: 87755k
    Peak memory use after GGC: 86603k
    Maximum of released memory in single GGC run: 19232k
    Garbage: 595110k -> 595154k
    Leak: 60773k -> 60773k
    Overhead: 130163k -> 130170k
    GGC runs: 603 -> 602

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 101960k -> 101932k
    Peak memory use before GGC: 87755k
    Peak memory use after GGC: 86603k
    Maximum of released memory in single GGC run: 19231k
    Garbage: 648505k -> 648489k
    Leak: 61351k -> 61351k
    Overhead: 153792k -> 153799k
    GGC runs: 636

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 109636k
    Peak memory use before GGC: 94953k
    Peak memory use after GGC: 89119k
    Maximum of released memory in single GGC run: 19979k
    Garbage: 694678k -> 694665k
    Leak: 61702k -> 61702k
    Overhead: 165583k -> 165586k
    GGC runs: 630

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2004-10-23 15:25:58.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2004-10-23 20:55:11.000000000 +0000
@@ -1,3 +1,21 @@
+2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* dbxout.c (dbxout_function_decl): Don't use
+	DBX_OUTPUT_FUNCTION_END.
+	* system.h: Poison DBX_OUTPUT_FUNCTION_END.
+	* doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
+
+2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	PR middle-end/17967
+	* tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
+
+2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
+
+	* tree-ssa-dom.c (record_equality): Use loop depth to determine
+	which way to record the equality as well.
+	(loop_depth_of_name): New function.
+
 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
 	PR middle-end/17793

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