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: 25257k -> 25241k
    Peak memory use before GGC: 9336k -> 9329k
    Peak memory use after GGC: 8648k -> 8641k
    Maximum of released memory in single GGC run: 2930k -> 2926k
    Garbage: 42982k -> 42520k
    Leak: 6094k -> 6088k
    Overhead: 5657k -> 5657k
    GGC runs: 364 -> 354

comparing combine.c compilation at -O1 level:
    Overall memory needed: 26621k -> 26577k
    Peak memory use before GGC: 9298k -> 9291k
    Peak memory use after GGC: 8737k -> 8730k
    Maximum of released memory in single GGC run: 2065k -> 2064k
    Garbage: 72424k -> 71614k
    Leak: 6490k -> 6484k
    Overhead: 11330k -> 11331k
    GGC runs: 579 -> 569

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29853k -> 29801k
    Peak memory use before GGC: 12738k -> 12705k
    Peak memory use after GGC: 12612k -> 12579k
    Maximum of released memory in single GGC run: 2584k -> 2578k
    Garbage: 87835k -> 87012k
    Leak: 6310k -> 6305k
    Overhead: 15974k -> 15974k
    GGC runs: 579 -> 570

comparing combine.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 21144k to 21396k, overall 1.19%
    Overall memory needed: 21144k -> 21396k
    Peak memory use before GGC: 13171k -> 13121k
    Peak memory use after GGC: 12612k -> 12579k
    Maximum of released memory in single GGC run: 3419k -> 3418k
    Garbage: 117803k -> 116881k
    Leak: 6818k -> 6813k
    Overhead: 21066k -> 21066k
    GGC runs: 647 -> 636

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

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 131180k -> 130240k
    Peak memory use before GGC: 89943k -> 89840k
    Peak memory use after GGC: 70593k -> 70491k
    Maximum of released memory in single GGC run: 42003k -> 40959k
    Garbage: 463117k -> 459069k
    Leak: 10990k -> 10954k
    Overhead: 74020k -> 74021k
    GGC runs: 465 -> 453

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 206076k -> 205748k
    Peak memory use before GGC: 105510k -> 105256k
    Peak memory use after GGC: 86160k -> 85907k
    Maximum of released memory in single GGC run: 35801k -> 35657k
    Garbage: 512770k -> 508436k
    Leak: 10910k -> 10882k
    Overhead: 82117k -> 82119k
    GGC runs: 386 -> 375

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 206076k -> 205756k
    Peak memory use before GGC: 105512k -> 105258k
    Peak memory use after GGC: 86162k -> 85909k
    Maximum of released memory in single GGC run: 35801k -> 35657k
    Garbage: 514050k -> 509710k
    Leak: 10954k -> 10926k
    Overhead: 82301k -> 82302k
    GGC runs: 395 -> 384

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 112008k -> 111960k
    Peak memory use before GGC: 88772k -> 88676k
    Peak memory use after GGC: 87648k -> 87634k
    Maximum of released memory in single GGC run: 19623k -> 19564k
    Garbage: 253933k -> 249098k
    Leak: 57113k -> 57105k
    Overhead: 45784k -> 45784k
    GGC runs: 369 -> 364

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 87755k to 87850k, overall 0.11%
    Overall memory needed: 94572k -> 94576k
    Peak memory use before GGC: 87755k -> 87850k
    Peak memory use after GGC: 86603k -> 86403k
    Maximum of released memory in single GGC run: 19231k -> 19363k
    Garbage: 599369k -> 589707k
    Leak: 59043k -> 59034k
    Overhead: 129873k -> 129867k
    GGC runs: 633 -> 627

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 87755k to 87850k, overall 0.11%
    Overall memory needed: 95416k -> 95200k
    Peak memory use before GGC: 87755k -> 87850k
    Peak memory use after GGC: 86604k -> 86403k
    Maximum of released memory in single GGC run: 19231k -> 19363k
    Garbage: 655871k -> 646311k
    Leak: 59630k -> 59621k
    Overhead: 154320k -> 154319k
    GGC runs: 686 -> 679

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 102656k -> 102704k
    Peak memory use before GGC: 94818k -> 94792k
    Peak memory use after GGC: 87983k -> 87880k
    Maximum of released memory in single GGC run: 19962k -> 19973k
    Garbage: 701488k -> 689573k
    Leak: 59966k -> 59958k
    Overhead: 166053k -> 166053k
    GGC runs: 663 -> 659

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2004-10-28 03:27:16.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2004-10-28 12:34:28.000000000 +0000
@@ -1,3 +1,35 @@
+2004-10-28  Aldy Hernandez  <aldyh@redhat.com>
+
+	* function.c (assign_parm_setup_block): Handle parallels correctly.
+
+2004-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	* final.c (shorten_branches): Initialize flags structure.
+
+2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* tree.c (int_cst_node, int_cst_hash_table): New variables.
+	(init_ttree): Initialize them.
+	(int_cst_hash_hash, int_cst_hash_eq): New hashing functions.
+	(build_int_cst_wide): Use hash table for oversized integers.
+
+2004-10-28  Nick Clifton  <nickc@redhat.com>
+
+	* config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define
+	begin_label.
+
+2004-10-27  Richard Henderson  <rth@redhat.com>
+
+	PR middle-end/18163
+	* expr.c (emit_group_load): Don't go force temporary for memory
+	or concat source.
+	(emit_group_store): Similarly.
+
+2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	PR other/18186
+	* common.opt (--param): Fix spelling of parameter.
+
 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
 
 	PR tree-opt/17529
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2004-10-28 03:27:19.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2004-10-28 12:34:32.000000000 +0000
@@ -1,3 +1,15 @@
+2004-10-27  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/17435
+	* call.c (convert_like_real): Fix formatting.
+	(initialize_reference): When binding a temporary to a base class,
+	ensure that the nominal copy made is to the derived class, not the
+	base class.
+
+	PR c++/18140
+	* parser.c (cp_parser_next_token_ends_template_argument_p): Do not
+	include ">>".
+
 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
 
 	* decl.c: Move the q after the %.

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]