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: Thu, 23 Sep 2004 09:41:33 +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: 24113k
Peak memory use before GGC: 9295k
Peak memory use after GGC: 8606k
Maximum of released memory in single GGC run: 2870k
Garbage: 42610k
Leak: 6105k
Overhead: 5587k
GGC runs: 364
comparing combine.c compilation at -O1 level:
Overall memory needed: 25561k
Peak memory use before GGC: 9375k
Peak memory use after GGC: 8797k
Maximum of released memory in single GGC run: 2030k -> 2031k
Garbage: 68672k -> 68663k
Leak: 6671k -> 6672k
Overhead: 11044k -> 11043k
GGC runs: 578 -> 576
comparing combine.c compilation at -O2 level:
Overall memory needed: 28869k -> 28881k
Peak memory use before GGC: 12771k
Peak memory use after GGC: 12612k
Maximum of released memory in single GGC run: 2521k -> 2525k
Garbage: 83753k -> 83780k
Leak: 6425k -> 6426k
Overhead: 15589k -> 15590k
GGC runs: 572
comparing combine.c compilation at -O3 level:
Overall memory needed: 20564k -> 20548k
Peak memory use before GGC: 13015k
Peak memory use after GGC: 12692k -> 12691k
Maximum of released memory in single GGC run: 3360k -> 3362k
Garbage: 111476k -> 111479k
Leak: 6943k -> 6941k
Overhead: 20622k -> 20617k
GGC runs: 640 -> 638
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 116476k
Peak memory use before GGC: 77100k
Peak memory use after GGC: 45185k
Maximum of released memory in single GGC run: 42129k
Garbage: 159513k
Leak: 10643k
Overhead: 19805k
GGC runs: 310
comparing insn-attrtab.c compilation at -O1 level:
Overall memory allocated via mmap and sbrk increased from 132920k to 133128k, overall 0.16%
Overall memory needed: 132920k -> 133128k
Peak memory use before GGC: 93160k -> 93161k
Peak memory use after GGC: 71527k -> 71528k
Maximum of released memory in single GGC run: 41234k
Garbage: 452497k -> 452513k
Leak: 11076k
Overhead: 73595k -> 73596k
GGC runs: 462 -> 461
comparing insn-attrtab.c compilation at -O2 level:
Overall memory allocated via mmap and sbrk increased from 207344k to 207680k, overall 0.16%
Overall memory needed: 207344k -> 207680k
Peak memory use before GGC: 108724k -> 108720k
Peak memory use after GGC: 87091k -> 87087k
Maximum of released memory in single GGC run: 35979k -> 34490k
Garbage: 505009k -> 502023k
Leak: 11217k -> 11209k
Overhead: 83704k -> 82989k
GGC runs: 385 -> 383
comparing insn-attrtab.c compilation at -O3 level:
Overall memory allocated via mmap and sbrk increased from 207344k to 207680k, overall 0.16%
Overall memory needed: 207344k -> 207680k
Peak memory use before GGC: 108729k
Peak memory use after GGC: 87096k
Maximum of released memory in single GGC run: 35979k -> 34491k
Garbage: 506097k -> 503097k
Leak: 11263k -> 11263k
Overhead: 84096k -> 83380k
GGC runs: 394 -> 392
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 115352k
Peak memory use before GGC: 92230k
Peak memory use after GGC: 90024k
Maximum of released memory in single GGC run: 20138k
Garbage: 269032k
Leak: 60278k
Overhead: 47201k
GGC runs: 383
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 109420k -> 109432k
Peak memory use before GGC: 95749k
Peak memory use after GGC: 88881k
Maximum of released memory in single GGC run: 19568k
Garbage: 588973k -> 588928k
Leak: 62423k -> 62427k
Overhead: 130834k -> 130835k
GGC runs: 607
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 110388k
Peak memory use before GGC: 95750k
Peak memory use after GGC: 88882k
Maximum of released memory in single GGC run: 19569k
Garbage: 642082k -> 641827k
Leak: 62984k -> 62981k
Overhead: 154142k -> 154097k
GGC runs: 635
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 108032k -> 108088k
Peak memory use before GGC: 91495k -> 91498k
Peak memory use after GGC: 90193k -> 90197k
Maximum of released memory in single GGC run: 20251k
Garbage: 672995k -> 672736k
Leak: 63388k -> 63378k
Overhead: 163212k -> 163164k
GGC runs: 628
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2004-09-22 20:19:28.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2004-09-23 08:31:11.000000000 +0000
@@ -1,3 +1,76 @@
+2004-09-22 Eric Christopher <echristo@redhat.com>
+
+ * builtins.c (simplify_builtin_va_start): Remove.
+ (simplify_builtin): Ditto.
+ (fold_builtin_strchr): Ditto.
+ (simplify_builtin_*): Rename remainders to fold_builtin_*.
+ (expand_builtin): Fix up for above changes.
+ (fold_builtin_1): Add new folders. Change for above.
+ (expand_builtin_va_start): Call fold_builtin_next_arg.
+ * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
+ * tree.h: Remove prototype for simplify_builtin.
+
+2004-09-23 Jan Hubicka <jh@suse.cz>
+
+ PR debug/17389
+ * dwarf2out.c (dwarf2out_finish): Deal with nested functions
+ of fully inlined functions.
+ * tree-inline.c (inline_forbidden_p_1): Nested functions can be
+ inlined.
+
+ * cfgexpand.c (add_reg_br_prob_note): New function.
+ (expand_gimple_cond_expr): Use it.
+ (tree_expand_cfg): No longer kill the profile.
+ * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
+ only if it is present.
+ * passes.c (rest_of_handle_loop_optimize): Kill the profile.
+ * predict.c (combine_predictions_for_insn): Set the probabilities
+ based on REG_BR_PROB note if present.
+ * predict.c (branch_prob): Profile is read only with
+ flag_branch_probabilities.
+
+2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
+
+ * aclocal.m4: Add in gettext's m4 includes.
+ (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
+ * configure.ac: Add in check for iconv.h
+ * configure: Regenerate.
+
+2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
+
+ * aclocal.m4: Update for rename of gettext-sister.m4.
+
+2004-09-22 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/17587
+ * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
+ (insert_aux): Instead of here.
+
+2004-09-22 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/16721
+ * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
+ * tree-ssa-alias.c (create_memory_tag): Move setting of
+ TREE_THIS_VOLATILE ...
+ (get_tmt_for): ... here.
+
+2004-09-22 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.md (cmove splitter): Fix formatting.
+ (conditional_trap expander): Reject inappropriate CCmodes.
+ (conditional trap insn): Use V9 syntax if possible.
+
+2004-09-22 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ PR c/16566
+ * c-typeck.c (build_component_ref): Don't special-case
+ COMPOUND_EXPR.
+
+2004-09-22 Frank Ch. Eigler <fche@redhat.com>
+
+ * dominance.c (verify_dominators): Don't SEGV if recount_dominator
+ returns NULL.
+
2004-09-22 Kazu Hirata <kazu@cs.umass.edu>
* doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
@@ -8,7 +81,7 @@
* config/darwin.c (darwin_make_decl_one_only)
Allow coalesced symbol to appear in static archive's table of contents
-
+
2004-09-22 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/17512
@@ -104,7 +177,7 @@
the initial lattice value.
(substitute_and_fold): Transfer equivalences discovered into
SSA_NAME_EQUIV.
-
+
* tree.h (SSA_NAME_EQUIV): Add comments.
(SET_SSA_NAME_EQUIV): Similarly.
@@ -123,12 +196,12 @@
* tree.def (VEC_COND_EXPR): New tree node.
* tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
-
+
2004-09-21 Stan Shebs <shebs@apple.com>
* config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
* config/rs6000/darwin-world.asm: Likewise.
-
+
2004-09-21 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa.c (verify_def): Use print_generic_stmt,
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.