This is the mail archive of the gcc-regression@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GCC memory consumption increased by recent patch!


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: 24661k
    Peak memory use before GGC: 9359k
    Peak memory use after GGC: 8673k
    Maximum of released memory in single GGC run: 2867k -> 2864k
    Garbage: 41755k -> 41665k
    Leak: 6411k -> 6395k
    Overhead: 5773k -> 5773k
    GGC runs: 327

comparing combine.c compilation at -O1 level:
    Overall memory needed: 25545k -> 25517k
    Peak memory use before GGC: 9236k
    Peak memory use after GGC: 8740k
    Maximum of released memory in single GGC run: 2028k
    Garbage: 60393k -> 60286k
    Leak: 6756k -> 6752k
    Overhead: 9906k -> 9904k
    GGC runs: 501 -> 500

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29153k -> 29149k
    Peak memory use before GGC: 12671k
    Peak memory use after GGC: 12545k
    Maximum of released memory in single GGC run: 2597k
    Garbage: 78307k -> 78219k
    Leak: 6593k
    Overhead: 13950k -> 13952k
    GGC runs: 508

comparing combine.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 31041k to 31573k, overall 1.71%
    Overall memory needed: 31041k -> 31573k
    Peak memory use before GGC: 12773k
    Peak memory use after GGC: 12545k
    Maximum of released memory in single GGC run: 3407k
    Garbage: 105652k -> 105570k
    Leak: 7120k -> 7104k
    Overhead: 18719k -> 18721k
    GGC runs: 576 -> 577

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

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 124852k -> 123904k
    Peak memory use before GGC: 78756k
    Peak memory use after GGC: 70103k
    Maximum of released memory in single GGC run: 40786k -> 40779k
    Garbage: 366747k -> 366124k
    Leak: 11361k
    Overhead: 69303k
    GGC runs: 396

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 147348k -> 147340k
    Peak memory use before GGC: 98356k
    Peak memory use after GGC: 83473k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 480617k -> 479990k
    Leak: 11242k
    Overhead: 84391k -> 84391k
    GGC runs: 340

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 147364k -> 147356k
    Peak memory use before GGC: 98358k
    Peak memory use after GGC: 83475k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 481426k -> 480803k
    Leak: 11279k
    Overhead: 84520k -> 84520k
    GGC runs: 346

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 111028k -> 111052k
    Peak memory use before GGC: 87201k -> 87156k
    Peak memory use after GGC: 85872k -> 85895k
    Maximum of released memory in single GGC run: 19555k -> 19511k
    Garbage: 246842k -> 246085k
    Leak: 55524k -> 55523k
    Overhead: 43327k -> 43324k
    GGC runs: 367 -> 366

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 103853k -> 103905k
    Peak memory use before GGC: 86089k -> 86014k
    Peak memory use after GGC: 85053k -> 85113k
    Maximum of released memory in single GGC run: 19025k -> 18951k
    Garbage: 434338k -> 433597k
    Leak: 56858k -> 56857k
    Overhead: 64549k -> 64546k
    GGC runs: 511

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 104073k -> 104129k
    Peak memory use before GGC: 86090k -> 86014k
    Peak memory use after GGC: 85053k -> 85114k
    Maximum of released memory in single GGC run: 19026k -> 18951k
    Garbage: 476511k -> 475756k
    Leak: 57426k -> 57425k
    Overhead: 74103k -> 74090k
    GGC runs: 573 -> 571

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Peak amount of GGC memory still allocated after garbage collectin increased from 85984k to 86193k, overall 0.24%
    Overall memory needed: 105145k -> 105205k
    Peak memory use before GGC: 87329k -> 87150k
    Peak memory use after GGC: 85984k -> 86193k
    Maximum of released memory in single GGC run: 19578k -> 19400k
    Garbage: 481163k -> 480391k
    Leak: 57572k -> 57571k
    Overhead: 74696k -> 74690k
    GGC runs: 558 -> 557

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-02-13 14:09:27.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-02-13 19:31:26.000000000 +0000
@@ -1,5 +1,11 @@
+2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
+
 2005-02-13  Jason Merrill  <jason@redhat.com>
 
+	[reverted temporarily]
+
 	PR mudflap/19319
 	* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
 	slot explicit.

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]