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: 17776k
    Peak memory use before GGC: 9294k
    Peak memory use after GGC: 8606k
    Maximum of released memory in single GGC run: 2870k
    Garbage: 42611k
    Leak: 6103k
    Overhead: 5586k
    GGC runs: 365

comparing combine.c compilation at -O1 level:
    Overall memory needed: 18660k
    Peak memory use before GGC: 9786k
    Peak memory use after GGC: 8800k
    Maximum of released memory in single GGC run: 2068k
    Garbage: 80496k -> 80496k
    Leak: 6669k
    Overhead: 14316k -> 14316k
    GGC runs: 598

comparing combine.c compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 22224k to 22272k, overall 0.22%
  Amount of memory still referenced at the end of compilation increased from 6412k to 6424k, overall 0.19%
    Overall memory needed: 22224k -> 22272k
    Peak memory use before GGC: 12769k
    Peak memory use after GGC: 12610k
    Maximum of released memory in single GGC run: 2578k
    Garbage: 96593k -> 96605k
    Leak: 6412k -> 6424k
    Overhead: 19112k -> 19132k
    GGC runs: 587

comparing combine.c compilation at -O3 level:
    Overall memory needed: 24468k -> 23752k
    Peak memory use before GGC: 13443k
    Peak memory use after GGC: 12733k
    Maximum of released memory in single GGC run: 3484k
    Garbage: 129467k -> 129502k
    Leak: 6991k -> 6990k
    Overhead: 25312k -> 25298k
    GGC runs: 651 -> 650

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 132860k
    Peak memory use before GGC: 77100k
    Peak memory use after GGC: 45185k
    Maximum of released memory in single GGC run: 42129k
    Garbage: 159511k
    Leak: 10618k
    Overhead: 19798k
    GGC runs: 310

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 150312k
    Peak memory use before GGC: 97475k
    Peak memory use after GGC: 71695k
    Maximum of released memory in single GGC run: 41239k
    Garbage: 491599k
    Leak: 11052k
    Overhead: 85803k
    GGC runs: 469

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 224512k
    Peak memory use before GGC: 113028k
    Peak memory use after GGC: 87248k
    Maximum of released memory in single GGC run: 35988k
    Garbage: 544301k -> 544311k
    Leak: 11207k -> 11207k
    Overhead: 95951k -> 95955k
    GGC runs: 389

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 224504k
    Peak memory use before GGC: 113029k
    Peak memory use after GGC: 87248k
    Maximum of released memory in single GGC run: 35988k
    Garbage: 546681k -> 546684k
    Leak: 11271k -> 11271k
    Overhead: 96738k -> 96739k
    GGC runs: 398

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 114844k
    Peak memory use before GGC: 92009k
    Peak memory use after GGC: 90476k
    Maximum of released memory in single GGC run: 20897k
    Garbage: 274942k
    Leak: 59855k
    Overhead: 35160k
    GGC runs: 556

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 126236k
    Peak memory use before GGC: 96401k
    Peak memory use after GGC: 89741k
    Maximum of released memory in single GGC run: 20069k
    Garbage: 695316k -> 695316k
    Leak: 62395k
    Overhead: 151705k
    GGC runs: 820

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 127448k
    Peak memory use before GGC: 96402k
    Peak memory use after GGC: 89741k
    Maximum of released memory in single GGC run: 20070k
    Garbage: 763256k -> 763256k
    Leak: 62960k
    Overhead: 182224k
    GGC runs: 854

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 126236k
    Peak memory use before GGC: 92886k
    Peak memory use after GGC: 90752k
    Maximum of released memory in single GGC run: 20814k
    Garbage: 805937k -> 805938k
    Leak: 63365k
    Overhead: 195460k -> 195460k
    GGC runs: 841

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2004-09-15 20:40:32.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2004-09-16 01:02:35.000000000 +0000
@@ -1,3 +1,52 @@
+2004-09-13  Jan Hubicka  <jh@suse.cz>
+
+	* predict.c (expr_expected_value, strip_builtin_expect): New function.
+	(tree_predict_by_opcode): Use it.
+	(tree_estimate_probability): Add, for now disabled,
+	strip_builtin_expect call.
+
+2004-09-15  James E Wilson  <wilson@specifixinc.com>
+
+	PR target/17455
+	* config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
+	if current_function_decl is a sibcall.
+
+2004-09-15  Mark Mitchell  <mark@codesourcery.com>
+
+	* varasm.c (default_function_rdodata_section): Make sure to pass
+	along a decl for a link-once section.
+
+2004-09-15  Richard Henderson  <rth@redhat.com>
+
+	* tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
+	warning with code disable.  Fix formatting.
+
+2004-09-15  Steven Bosscher  <stevenb@suse.de>
+
+	* Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
+	* tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
+        after propagating into an ADDR_EXPR.
+
+2004-09-15  Andrew Pinski  <apinski@apple.com>
+
+	PR rtl-opt/17427
+	* gcse.c (process_insert_insn): insn_invalid_p has side effects.
+	Move it out of gcc_assert.
+
+2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+	* attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
+	except.c, fold-const.c, function.c, langhooks.c, params.c,
+	reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
+	tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
+	for quoting in diagnostics going through pretty-print.c.  Use ''
+	for quoting in other diagnostic text.
+	* langhooks.c: Include intl.h.  Mark text locating diagnostics for
+	translation.
+	* Makefile.in (langhooks.o): Update dependencies.
+	* pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
+	formats.
+
 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
 
 	* configure.ac: Check for COMDAT support.  Robustify check for

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]