This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
GCC memory consumption increased by recent patch!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Tue, 22 Feb 2005 04:16:06 +0000
- Subject: 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.