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: 25245k
    Peak memory use before GGC: 9329k
    Peak memory use after GGC: 8641k
    Maximum of released memory in single GGC run: 2926k
    Garbage: 42520k
    Leak: 6088k
    Overhead: 5657k
    GGC runs: 354

comparing combine.c compilation at -O1 level:
    Overall memory needed: 26565k
    Peak memory use before GGC: 9256k
    Peak memory use after GGC: 8733k
    Maximum of released memory in single GGC run: 2067k
    Garbage: 70549k
    Leak: 6484k
    Overhead: 11476k
    GGC runs: 563

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29853k
    Peak memory use before GGC: 12705k
    Peak memory use after GGC: 12579k
    Maximum of released memory in single GGC run: 2579k
    Garbage: 85991k
    Leak: 6305k
    Overhead: 16184k
    GGC runs: 567

comparing combine.c compilation at -O3 level:
    Overall memory needed: 21092k
    Peak memory use before GGC: 13091k
    Peak memory use after GGC: 12579k
    Maximum of released memory in single GGC run: 3420k
    Garbage: 115186k
    Leak: 6845k
    Overhead: 21275k
    GGC runs: 631

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 118512k
    Peak memory use before GGC: 79408k
    Peak memory use after GGC: 46137k
    Maximum of released memory in single GGC run: 43357k
    Garbage: 161090k
    Leak: 10609k
    Overhead: 20460k
    GGC runs: 295

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 130240k
    Peak memory use before GGC: 86893k
    Peak memory use after GGC: 70491k
    Maximum of released memory in single GGC run: 40959k
    Garbage: 445811k
    Leak: 10954k
    Overhead: 75545k
    GGC runs: 451

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 205748k
    Peak memory use before GGC: 102310k
    Peak memory use after GGC: 85907k
    Maximum of released memory in single GGC run: 35657k
    Garbage: 495175k
    Leak: 10882k
    Overhead: 83644k
    GGC runs: 373

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 205748k
    Peak memory use before GGC: 102312k
    Peak memory use after GGC: 85909k
    Maximum of released memory in single GGC run: 35657k
    Garbage: 496448k
    Leak: 10926k
    Overhead: 83828k
    GGC runs: 382

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Overall memory allocated via mmap and sbrk increased from 111956k to 112780k, overall 0.74%
  Peak amount of GGC memory allocated before garbage collecting increased from 88676k to 89431k, overall 0.85%
  Peak amount of GGC memory still allocated after garbage collectin increased from 87634k to 88443k, overall 0.92%
  Amount of produced GGC garbage increased from 249098k to 250076k, overall 0.39%
    Overall memory needed: 111956k -> 112780k
    Peak memory use before GGC: 88676k -> 89431k
    Peak memory use after GGC: 87634k -> 88443k
    Maximum of released memory in single GGC run: 19564k -> 19812k
    Garbage: 249098k -> 250076k
    Leak: 57105k -> 57105k
    Overhead: 45784k -> 45836k
    GGC runs: 364 -> 363

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 94576k to 95348k, overall 0.82%
  Peak amount of GGC memory allocated before garbage collecting increased from 87850k to 88431k, overall 0.66%
  Peak amount of GGC memory still allocated after garbage collectin increased from 86403k to 87373k, overall 1.12%
  Amount of produced GGC garbage increased from 592152k to 595962k, overall 0.64%
  Amount of memory still referenced at the end of compilation increased from 59030k to 59137k, overall 0.18%
    Overall memory needed: 94576k -> 95348k
    Peak memory use before GGC: 87850k -> 88431k
    Peak memory use after GGC: 86403k -> 87373k
    Maximum of released memory in single GGC run: 19363k -> 19437k
    Garbage: 592152k -> 595962k
    Leak: 59030k -> 59137k
    Overhead: 132417k -> 133333k
    GGC runs: 627 -> 629

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 95216k to 95732k, overall 0.54%
  Peak amount of GGC memory allocated before garbage collecting increased from 87850k to 88431k, overall 0.66%
  Peak amount of GGC memory still allocated after garbage collectin increased from 86403k to 87373k, overall 1.12%
  Amount of produced GGC garbage increased from 649821k to 652217k, overall 0.37%
  Amount of memory still referenced at the end of compilation increased from 59617k to 59736k, overall 0.20%
    Overall memory needed: 95216k -> 95732k
    Peak memory use before GGC: 87850k -> 88431k
    Peak memory use after GGC: 86403k -> 87373k
    Maximum of released memory in single GGC run: 19363k -> 19437k
    Garbage: 649821k -> 652217k
    Leak: 59617k -> 59736k
    Overhead: 158740k -> 158335k
    GGC runs: 677 -> 675

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 102808k to 103228k, overall 0.41%
  Peak amount of GGC memory allocated before garbage collecting increased from 94792k to 95610k, overall 0.86%
  Peak amount of GGC memory still allocated after garbage collectin increased from 87880k to 88661k, overall 0.89%
  Amount of produced GGC garbage increased from 693804k to 700218k, overall 0.92%
  Amount of memory still referenced at the end of compilation increased from 59953k to 60123k, overall 0.28%
    Overall memory needed: 102808k -> 103228k
    Peak memory use before GGC: 94792k -> 95610k
    Peak memory use after GGC: 87880k -> 88661k
    Maximum of released memory in single GGC run: 19973k -> 20248k
    Garbage: 693804k -> 700218k
    Leak: 59953k -> 60123k
    Overhead: 170913k -> 172118k
    GGC runs: 659 -> 664

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2004-10-31 02:45:03.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2004-10-31 12:03:56.000000000 +0000
@@ -1,3 +1,19 @@
+2004-10-31  Jason Merrill  <jason@redhat.com>
+
+	PR middle-end/17526
+	* tree-gimple.c (is_gimple_mem_rhs): Also require a val for
+	aggregate types that are not BLKmode.
+
+2004-10-30  Ziemowit Laski  <zlaski@apple.com>
+
+	* c-common.h (objc_lookup_ivar): Add second parameter to
+	prototype.
+	* c-typeck.c (build_external_ref): After looking up symbol,
+	pass it to objc_lookup_ivar() to decide whether it or the
+	ivar should be used, rather than deciding the issue locally.
+	* stub-objc.c (objc_lookup_ivar): Add an OTHER parameter,
+	which is simply returned in the non-ObjC case.
+
 2004-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
 
 	* sdbout.c (sdbout_symbol): Do not output type .def statements

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]