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: 24649k -> 24653k
    Peak memory use before GGC: 9354k
    Peak memory use after GGC: 8668k
    Maximum of released memory in single GGC run: 2864k
    Garbage: 41669k
    Leak: 6391k
    Overhead: 5772k
    GGC runs: 328

comparing combine.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 25513k to 25541k, overall 0.11%
    Overall memory needed: 25513k -> 25541k
    Peak memory use before GGC: 9231k
    Peak memory use after GGC: 8736k
    Maximum of released memory in single GGC run: 2028k -> 2029k
    Garbage: 60441k -> 60295k
    Leak: 6752k -> 6751k
    Overhead: 9920k -> 9904k
    GGC runs: 502 -> 501

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29557k -> 29561k
    Peak memory use before GGC: 12666k
    Peak memory use after GGC: 12540k
    Maximum of released memory in single GGC run: 2597k
    Garbage: 78642k -> 78450k
    Leak: 6589k -> 6588k
    Overhead: 14076k -> 14032k
    GGC runs: 515 -> 513

comparing combine.c compilation at -O3 level:
    Overall memory needed: 20232k -> 20236k
    Peak memory use before GGC: 12769k
    Peak memory use after GGC: 12540k
    Maximum of released memory in single GGC run: 3407k
    Garbage: 106110k -> 105847k
    Leak: 7111k -> 7096k
    Overhead: 18852k -> 18831k
    GGC runs: 581

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 114132k
    Peak memory use before GGC: 74743k
    Peak memory use after GGC: 45489k
    Maximum of released memory in single GGC run: 39341k
    Garbage: 152665k
    Leak: 10979k
    Overhead: 19970k
    GGC runs: 274

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 124248k
    Peak memory use before GGC: 78751k
    Peak memory use after GGC: 70098k
    Maximum of released memory in single GGC run: 40780k
    Garbage: 366124k -> 366123k
    Leak: 11356k
    Overhead: 69302k -> 69302k
    GGC runs: 396

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 147420k
    Peak memory use before GGC: 98352k
    Peak memory use after GGC: 83469k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 480572k -> 480550k
    Leak: 11237k
    Overhead: 84549k -> 84546k
    GGC runs: 340

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 147412k
    Peak memory use before GGC: 98354k
    Peak memory use after GGC: 83470k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 481454k -> 481356k
    Leak: 11278k -> 11275k
    Overhead: 84701k -> 84675k
    GGC runs: 346

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 111048k
    Peak memory use before GGC: 87151k
    Peak memory use after GGC: 85890k
    Maximum of released memory in single GGC run: 19511k
    Garbage: 246099k
    Leak: 55517k
    Overhead: 43324k
    GGC runs: 366

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Amount of memory still referenced at the end of compilation increased from 56774k to 56851k, overall 0.14%
    Overall memory needed: 103889k -> 103893k
    Peak memory use before GGC: 86009k
    Peak memory use after GGC: 85108k
    Maximum of released memory in single GGC run: 18951k
    Garbage: 433691k -> 433610k
    Leak: 56774k -> 56851k
    Overhead: 64560k -> 64544k
    GGC runs: 511

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 104893k -> 104897k
    Peak memory use before GGC: 86009k
    Peak memory use after GGC: 85109k
    Maximum of released memory in single GGC run: 18950k
    Garbage: 476285k -> 476185k
    Leak: 57372k -> 57419k
    Overhead: 74299k -> 74274k
    GGC runs: 574 -> 573

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 105981k
    Peak memory use before GGC: 87145k
    Peak memory use after GGC: 86188k
    Maximum of released memory in single GGC run: 19399k
    Garbage: 480878k -> 480821k
    Leak: 57556k -> 57558k
    Overhead: 74886k -> 74874k
    GGC runs: 557

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-02-10 13:15:22.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-02-11 03:23:44.000000000 +0000
@@ -1,3 +1,65 @@
+2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
+	signal trampolines.
+
+2005-02-10  David Daney  <ddaney@avtrex.com>
+
+	* config/alpha/linux-unwind.h: Add exception clause to copyright.
+	* config/i386/linux-unwind.h: Likewise.
+	* config/ia64/linux-unwind.h: Likewise.
+	* config/mips/linux-unwind.h: Likewise.
+	* config/pa/linux-unwind.h: Likewise.
+	* config/rs6000/linux-unwind.h: Likewise.
+	* config/s390/linux-unwind.h: Likewise.
+	* config/sh/linux-unwind.h: Likewise.
+	* config/sparc/linux-unwind.h: Likewise.
+
+2005-02-10  Steven Bosscher  <stevenb@suse.de>
+
+	PR tree-optimization/17549
+	* tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
+	TER to replace a DEF with its expression if the DEF and the
+	rhs of the expression we replace into have the same root
+	variable.
+
+2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
+
+	* config/mips/mips.md: Fix the placement of the match_scratch in the
+	lea64 peephole2.
+
+2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
+	Fix comment typos.
+
+2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
+
+	* tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
+	(strip_offset): Handle addresses.
+	(add_address_candidates): Use strip_offset.
+	(difference_cost): Reflect strip_offset change.
+	(force_var_cost, difference_cost): Strip nops.
+
+2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
+
+	* builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
+	tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
+	config/cris/cris-protos.h, config/cris/cris.c: Update
+	copyright.
+
+2005-02-10  Jeff Law  <law@redhat.com>
+
+	* tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
+	(lookup_avail_expr): Similarly.
+
+2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
+
+	* builtins.c (fold_builtin_powi): New function.
+	(fold_builtin_1): Call it.
+
 2005-02-10  Steven Bosscher  <stevenb@suse.de>
 
 	PR documentation/19309

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]