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: 24669k -> 24673k
    Peak memory use before GGC: 9358k
    Peak memory use after GGC: 8673k
    Maximum of released memory in single GGC run: 2863k
    Garbage: 41664k
    Leak: 6395k
    Overhead: 5772k
    GGC runs: 327

comparing combine.c compilation at -O1 level:
    Overall memory needed: 25521k
    Peak memory use before GGC: 9225k
    Peak memory use after GGC: 8740k
    Maximum of released memory in single GGC run: 2026k
    Garbage: 60443k -> 60428k
    Leak: 6755k
    Overhead: 9933k -> 9931k
    GGC runs: 501 -> 500

comparing combine.c compilation at -O2 level:
    Overall memory needed: 28905k -> 28901k
    Peak memory use before GGC: 12670k
    Peak memory use after GGC: 12544k
    Maximum of released memory in single GGC run: 2597k
    Garbage: 78378k -> 78374k
    Leak: 6593k
    Overhead: 13973k -> 13974k
    GGC runs: 510

comparing combine.c compilation at -O3 level:
  Amount of memory still referenced at the end of compilation increased from 7104k to 7177k, overall 1.03%
    Overall memory needed: 31545k
    Peak memory use before GGC: 12773k
    Peak memory use after GGC: 12544k
    Maximum of released memory in single GGC run: 3434k
    Garbage: 105659k -> 105579k
    Leak: 7104k -> 7177k
    Overhead: 18737k -> 18736k
    GGC runs: 577

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

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 124000k -> 123584k
    Peak memory use before GGC: 78747k
    Peak memory use after GGC: 70087k
    Maximum of released memory in single GGC run: 40780k
    Garbage: 369645k -> 369646k
    Leak: 11361k
    Overhead: 69421k -> 69421k
    GGC runs: 398

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 147644k
    Peak memory use before GGC: 97758k
    Peak memory use after GGC: 83478k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 483554k -> 483554k
    Leak: 11242k
    Overhead: 84511k -> 84511k
    GGC runs: 342

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 147696k
    Peak memory use before GGC: 97759k
    Peak memory use after GGC: 83480k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 484361k -> 484361k
    Leak: 11279k
    Overhead: 84640k -> 84640k
    GGC runs: 348

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 111056k -> 111060k
    Peak memory use before GGC: 87156k -> 87161k
    Peak memory use after GGC: 85895k -> 85900k
    Maximum of released memory in single GGC run: 19511k
    Garbage: 246036k -> 246197k
    Leak: 55506k -> 55513k
    Overhead: 43254k -> 43275k
    GGC runs: 366

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 103909k -> 103929k
    Peak memory use before GGC: 86014k -> 86019k
    Peak memory use after GGC: 85113k -> 85119k
    Maximum of released memory in single GGC run: 18951k -> 18950k
    Garbage: 435750k -> 435900k
    Leak: 56840k -> 56846k
    Overhead: 65009k -> 65031k
    GGC runs: 513 -> 512

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 104149k -> 104129k
    Peak memory use before GGC: 86014k -> 86019k
    Peak memory use after GGC: 85114k -> 85119k
    Maximum of released memory in single GGC run: 18951k -> 18950k
    Garbage: 478931k -> 479102k
    Leak: 57408k -> 57414k
    Overhead: 74613k -> 74628k
    GGC runs: 572 -> 573

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 105205k -> 105217k
    Peak memory use before GGC: 87150k -> 87156k
    Peak memory use after GGC: 86193k -> 86199k
    Maximum of released memory in single GGC run: 19400k
    Garbage: 483658k -> 483826k
    Leak: 57571k -> 57577k
    Overhead: 75221k -> 75209k
    GGC runs: 559 -> 560

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-02-21 21:53:24.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-02-22 03:14:58.000000000 +0000
@@ -1,3 +1,16 @@
+2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
+
+	PR tree-optimization/19786
+	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
+	tag to another's may-alias bitmap when adding to the other's list.
+
+2005-02-21  DJ Delorie  <dj@redhat.com>
+
+	* tree-ssa-loop-ivopts.c (computation_cost): Start register
+	numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
+	registers in unsupported ways.
+	* expmed.c (init_expmed): Likewise.
+	
 2005-02-21  Stan Cox  <scox@redhat.com>
 
 	* config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2005-02-20 17:52:40.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2005-02-22 03:17:00.000000000 +0000
@@ -1,3 +1,31 @@
+2005-02-21  Douglas Gregor  <dgregor@cs.indiana.edu>
+	
+	PR c++/19076
+	PR c++/6628
+	* cp-tree.h (cp_apply_type_quals_to_decl): Declared.
+	* decl.c (grokdeclarator): Pedwarn about qualifying a function
+	type. 
+	Add qualifiers when declaring a typedef of a function type.
+	Member function pointers pick up the qualifiers of the typedef
+	used to declare them.
+        Don't complain about creating cv-qualified function types.
+	Complain about qualified function typedefs that are used to
+	declare non-static member functions or free functions.
+	Use cp_apply_type_quals_to_decl.
+	(start_preparsed_function): Use cp_apply_type_quals_to_decl.
+	(grokclassfn): Use cp_apply_type_quals_to_decl.
+	* error.c (dump_type_suffix): Print qualifiers for function
+	types. 
+	* pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
+	(tsubst): When substituting a function type into a member
+	pointer type, pass along the qualifiers.
+	(unify): Unify member pointers to member function pointers.
+	* tree.c (cp_build_qualified_type_real): Function types may be
+	qualified. This includes restrict qualifiers.
+	* typeck.c (cp_apply_type_quals_to_decl): New function to replace
+	use of c_apply_type_quals_to_decl. Drops qualifiers that are being
+	added to function types.
+
 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
 
 	PR 18785

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]