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: Mon, 29 Nov 2004 21:00:53 +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: 25329k
Peak memory use before GGC: 9329k
Peak memory use after GGC: 8641k
Maximum of released memory in single GGC run: 2926k
Garbage: 42603k
Leak: 6088k
Overhead: 5744k
GGC runs: 354
comparing combine.c compilation at -O1 level:
Overall memory needed: 25913k -> 25889k
Peak memory use before GGC: 9200k
Peak memory use after GGC: 8722k
Maximum of released memory in single GGC run: 2062k
Garbage: 67807k
Leak: 6485k
Overhead: 10640k
GGC runs: 544
comparing combine.c compilation at -O2 level:
Overall memory needed: 29965k -> 29969k
Peak memory use before GGC: 12705k
Peak memory use after GGC: 12579k
Maximum of released memory in single GGC run: 2575k
Garbage: 82118k
Leak: 6305k
Overhead: 14853k
GGC runs: 547
comparing combine.c compilation at -O3 level:
Overall memory needed: 20144k
Peak memory use before GGC: 13004k
Peak memory use after GGC: 12579k
Maximum of released memory in single GGC run: 3412k
Garbage: 110893k
Leak: 6849k
Overhead: 19851k
GGC runs: 612
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 118468k
Peak memory use before GGC: 79386k
Peak memory use after GGC: 46137k
Maximum of released memory in single GGC run: 43335k
Garbage: 162034k
Leak: 10610k
Overhead: 21250k
GGC runs: 295
comparing insn-attrtab.c compilation at -O1 level:
Overall memory allocated via mmap and sbrk increased from 126984k to 131528k, overall 3.58%
Overall memory needed: 126984k -> 131528k
Peak memory use before GGC: 85228k
Peak memory use after GGC: 70039k
Maximum of released memory in single GGC run: 41127k
Garbage: 444430k
Leak: 10956k
Overhead: 79425k
GGC runs: 426
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 154168k -> 154172k
Peak memory use before GGC: 101239k
Peak memory use after GGC: 85452k
Maximum of released memory in single GGC run: 42306k
Garbage: 491396k
Leak: 10876k
Overhead: 87683k
GGC runs: 358
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 154228k
Peak memory use before GGC: 101241k
Peak memory use after GGC: 85454k
Maximum of released memory in single GGC run: 42306k
Garbage: 492684k
Leak: 10923k
Overhead: 87871k
GGC runs: 366
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 112876k
Peak memory use before GGC: 89414k
Peak memory use after GGC: 88516k
Maximum of released memory in single GGC run: 19743k
Garbage: 249133k
Leak: 57170k
Overhead: 45266k
GGC runs: 363
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 95400k
Peak memory use before GGC: 88439k
Peak memory use after GGC: 87429k
Maximum of released memory in single GGC run: 19392k
Garbage: 554116k
Leak: 59207k
Overhead: 116261k
GGC runs: 613
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 95400k
Peak memory use before GGC: 88439k
Peak memory use after GGC: 87429k
Maximum of released memory in single GGC run: 19392k
Garbage: 600913k
Leak: 59790k
Overhead: 137674k
GGC runs: 655
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 103092k
Peak memory use before GGC: 95525k
Peak memory use after GGC: 88741k
Maximum of released memory in single GGC run: 20197k
Garbage: 640534k
Leak: 60117k
Overhead: 148777k
GGC runs: 649
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2004-11-29 15:22:55.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2004-11-29 19:56:04.000000000 +0000
@@ -1,3 +1,39 @@
+2004-11-29 Daniel Jacobowitz <dan@codesourcery.com>
+
+ PR c/7544
+ * Makefile.in (c-lang.o): Update dependencies.
+ * c-lang.c: Include "c-pragma.h".
+ (finish_file): Call maybe_apply_pending_pragma_weaks.
+ * c-pragma.c (maybe_apply_pending_pragma_weaks): New function.
+ * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype.
+
+2004-11-29 Richard Henderson <rth@redhat.com>
+
+ PR target/17224
+ * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets
+ outside the referenced object.
+
+2004-11-29 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use
+ EDGE_PRED instead of PHI_ARG_EDGE.
+ * tree-ssa-live.c: Likewise.
+ * tree-ssa-loop-manip.c: Likewise.
+ * tree-ssa.c: Likewise.
+
+ * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by
+ simplifying edge manipulation.
+
+ * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using
+ EDGE_COUNT.
+
+ * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge
+ only when needed.
+
+ * cfg.c (flow_obstack): Remove.
+ (flow_firstobj): Likewise.
+ (init_flow): Remove all uses of flow_obstack.
+
2004-11-29 Alan Modra <amodra@bigpond.net.au>
* varasm.c (default_elf_select_section_1): Only pass DECL_P decl
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2004-11-29 15:22:57.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2004-11-29 19:56:11.000000000 +0000
@@ -1,3 +1,9 @@
+2004-11-29 Daniel Jacobowitz <dan@codesourcery.com>
+
+ PR c/7544
+ * Make-lang.in (cp/decl2.o): Update dependencies.
+ * decl2.c (finish_file): Call maybe_apply_pending_pragma_weaks.
+
2004-11-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/18652
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.