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]

Some aspect of 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:
  Amount of produced GGC garbage increased from 41664k to 41763k, overall 0.24%
    Overall memory needed: 24669k -> 24673k
    Peak memory use before GGC: 9358k
    Peak memory use after GGC: 8673k
    Maximum of released memory in single GGC run: 2863k -> 2867k
    Garbage: 41664k -> 41763k
    Leak: 6395k
    Overhead: 5773k -> 5773k
    GGC runs: 327

comparing combine.c compilation at -O1 level:
  Amount of produced GGC garbage increased from 60532k to 60629k, overall 0.16%
    Overall memory needed: 25521k -> 25513k
    Peak memory use before GGC: 9235k -> 9237k
    Peak memory use after GGC: 8740k
    Maximum of released memory in single GGC run: 2026k
    Garbage: 60532k -> 60629k
    Leak: 6756k
    Overhead: 9936k -> 9937k
    GGC runs: 500 -> 501

comparing combine.c compilation at -O2 level:
  Amount of produced GGC garbage increased from 78473k to 78576k, overall 0.13%
    Overall memory needed: 29153k -> 29161k
    Peak memory use before GGC: 12670k
    Peak memory use after GGC: 12544k
    Maximum of released memory in single GGC run: 2597k
    Garbage: 78473k -> 78576k
    Leak: 6593k
    Overhead: 13978k -> 13978k
    GGC runs: 510

comparing combine.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 31505k to 31589k, overall 0.27%
    Overall memory needed: 31505k -> 31589k
    Peak memory use before GGC: 12773k
    Peak memory use after GGC: 12544k
    Maximum of released memory in single GGC run: 3434k
    Garbage: 105794k -> 105895k
    Leak: 7120k
    Overhead: 18743k -> 18743k
    GGC runs: 577

comparing insn-attrtab.c compilation at -O0 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 74747k to 75034k, overall 0.38%
  Amount of produced GGC garbage increased from 152668k to 153279k, overall 0.40%
    Overall memory needed: 114136k
    Peak memory use before GGC: 74747k -> 75034k
    Peak memory use after GGC: 45493k
    Maximum of released memory in single GGC run: 39340k -> 39627k
    Garbage: 152668k -> 153279k
    Leak: 10984k
    Overhead: 19970k -> 19970k
    GGC runs: 274 -> 273

comparing insn-attrtab.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 123624k to 124152k, overall 0.43%
  Amount of produced GGC garbage increased from 370048k to 370669k, overall 0.17%
    Overall memory needed: 123624k -> 124152k
    Peak memory use before GGC: 78747k
    Peak memory use after GGC: 70087k
    Maximum of released memory in single GGC run: 40781k -> 40787k
    Garbage: 370048k -> 370669k
    Leak: 11361k
    Overhead: 69439k -> 69439k
    GGC runs: 398

comparing insn-attrtab.c compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 147756k to 138092k, overall -7.00%
  Amount of produced GGC garbage increased from 483932k to 484557k, overall 0.13%
    Overall memory needed: 147756k -> 138092k
    Peak memory use before GGC: 97758k
    Peak memory use after GGC: 83478k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 483932k -> 484557k
    Leak: 11242k
    Overhead: 84528k -> 84528k
    GGC runs: 342

comparing insn-attrtab.c compilation at -O3 level:
  Amount of produced GGC garbage increased from 484744k to 485374k, overall 0.13%
    Overall memory needed: 147792k -> 147800k
    Peak memory use before GGC: 97759k
    Peak memory use after GGC: 83480k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 484744k -> 485374k
    Leak: 11279k
    Overhead: 84658k -> 84658k
    GGC runs: 348

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Amount of produced GGC garbage increased from 246085k to 246842k, overall 0.31%
    Overall memory needed: 111056k -> 111028k
    Peak memory use before GGC: 87156k -> 87201k
    Peak memory use after GGC: 85895k -> 85872k
    Maximum of released memory in single GGC run: 19511k -> 19555k
    Garbage: 246085k -> 246842k
    Leak: 55523k -> 55524k
    Overhead: 43324k -> 43327k
    GGC runs: 366 -> 367

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Amount of produced GGC garbage increased from 435965k to 436719k, overall 0.17%
    Overall memory needed: 103909k -> 103853k
    Peak memory use before GGC: 86014k -> 86089k
    Peak memory use after GGC: 85113k -> 85053k
    Maximum of released memory in single GGC run: 18951k -> 19025k
    Garbage: 435965k -> 436719k
    Leak: 56857k -> 56858k
    Overhead: 65091k -> 65094k
    GGC runs: 513

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Amount of produced GGC garbage increased from 479185k to 479929k, overall 0.16%
    Overall memory needed: 104149k -> 104093k
    Peak memory use before GGC: 86014k -> 86090k
    Peak memory use after GGC: 85114k -> 85053k
    Maximum of released memory in single GGC run: 18951k -> 19026k
    Garbage: 479185k -> 479929k
    Leak: 57424k -> 57425k
    Overhead: 74698k -> 74695k
    GGC runs: 572

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 87150k to 87329k, overall 0.21%
  Amount of produced GGC garbage increased from 483943k to 484720k, overall 0.16%
    Overall memory needed: 105205k -> 105133k
    Peak memory use before GGC: 87150k -> 87329k
    Peak memory use after GGC: 86193k -> 85984k
    Maximum of released memory in single GGC run: 19400k -> 19578k
    Garbage: 483943k -> 484720k
    Leak: 57595k -> 57588k
    Overhead: 75313k -> 75314k
    GGC runs: 559 -> 561

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-02-17 04:30:36.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-02-17 08:36:51.000000000 +0000
@@ -1,3 +1,9 @@
+2005-02-17  Jason Merrill  <jason@redhat.com>
+
+	PR mudflap/19319, c++/19317
+	* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
+	slot explicit.
+
 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
 
 	* doc/install.texi (Specific): Update link for Darwin-specific
@@ -56,7 +62,7 @@
 
 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
-	* doc/install.texi (sparc-sun-solaris2*): Document required
+	* doc/install.texi (sparc-sun-solaris2*): Document required GMP
 	configure settings on Solaris 7 and later.
 
 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
@@ -287,11 +293,6 @@
 
 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.
-
 	PR c++/16405
 	* fold-const.c (fold_indirect_ref_1): Split out from...
 	(build_fold_indirect_ref): Here.

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]