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: 24625k
    Peak memory use before GGC: 9345k
    Peak memory use after GGC: 8659k
    Maximum of released memory in single GGC run: 2864k
    Garbage: 41728k
    Leak: 6379k
    Overhead: 5777k
    GGC runs: 329

comparing combine.c compilation at -O1 level:
  Amount of produced GGC garbage increased from 65778k to 66017k, overall 0.36%
    Overall memory needed: 27017k -> 26733k
    Peak memory use before GGC: 9227k -> 9223k
    Peak memory use after GGC: 8728k -> 8716k
    Maximum of released memory in single GGC run: 2025k -> 2024k
    Garbage: 65778k -> 66017k
    Leak: 6748k -> 6750k
    Overhead: 10435k -> 10461k
    GGC runs: 518 -> 520

comparing combine.c compilation at -O2 level:
  Amount of produced GGC garbage increased from 79803k to 80113k, overall 0.39%
    Overall memory needed: 29545k -> 29525k
    Peak memory use before GGC: 12666k
    Peak memory use after GGC: 12540k
    Maximum of released memory in single GGC run: 2533k -> 2551k
    Garbage: 79803k -> 80113k
    Leak: 6579k -> 6574k
    Overhead: 14295k -> 14288k
    GGC runs: 519 -> 524

comparing combine.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 20152k to 20276k, overall 0.62%
  Amount of produced GGC garbage increased from 107748k to 108234k, overall 0.45%
  Amount of memory still referenced at the end of compilation increased from 7077k to 7095k, overall 0.26%
    Overall memory needed: 20152k -> 20276k
    Peak memory use before GGC: 12812k -> 12790k
    Peak memory use after GGC: 12540k
    Maximum of released memory in single GGC run: 3347k -> 3352k
    Garbage: 107748k -> 108234k
    Leak: 7077k -> 7095k
    Overhead: 18990k -> 19010k
    GGC runs: 586 -> 589

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 117548k
    Peak memory use before GGC: 78062k
    Peak memory use after GGC: 45542k
    Maximum of released memory in single GGC run: 42606k
    Garbage: 159298k
    Leak: 10950k
    Overhead: 20804k
    GGC runs: 274

comparing insn-attrtab.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 128728k to 128868k, overall 0.11%
    Overall memory needed: 128728k -> 128868k
    Peak memory use before GGC: 83579k -> 83555k
    Peak memory use after GGC: 69298k -> 69270k
    Maximum of released memory in single GGC run: 40616k -> 43037k
    Garbage: 441377k -> 441543k
    Leak: 11295k
    Overhead: 77391k -> 77410k
    GGC runs: 406

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 153424k -> 153560k
    Peak memory use before GGC: 99340k -> 99316k
    Peak memory use after GGC: 84461k -> 84432k
    Maximum of released memory in single GGC run: 41524k -> 41526k
    Garbage: 487881k -> 488010k
    Leak: 11218k -> 11217k
    Overhead: 85488k -> 85501k
    GGC runs: 342

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 153396k -> 153408k
    Peak memory use before GGC: 99342k -> 99318k
    Peak memory use after GGC: 84462k -> 84434k
    Maximum of released memory in single GGC run: 41525k -> 41527k
    Garbage: 488909k -> 489044k
    Leak: 11256k -> 11255k
    Overhead: 85635k -> 85648k
    GGC runs: 348

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 111088k
    Peak memory use before GGC: 86883k
    Peak memory use after GGC: 85933k
    Maximum of released memory in single GGC run: 19283k
    Garbage: 246358k
    Leak: 55492k
    Overhead: 43354k
    GGC runs: 367

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Amount of produced GGC garbage increased from 456274k to 456850k, overall 0.13%
    Overall memory needed: 104625k -> 104585k
    Peak memory use before GGC: 85965k
    Peak memory use after GGC: 84929k
    Maximum of released memory in single GGC run: 18947k
    Garbage: 456274k -> 456850k
    Leak: 56812k -> 56813k
    Overhead: 66452k -> 66475k
    GGC runs: 541

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Amount of produced GGC garbage increased from 490949k to 491582k, overall 0.13%
    Overall memory needed: 104685k -> 104649k
    Peak memory use before GGC: 85965k
    Peak memory use after GGC: 84929k
    Maximum of released memory in single GGC run: 18947k
    Garbage: 490949k -> 491582k
    Leak: 57401k -> 57399k
    Overhead: 75935k -> 75939k
    GGC runs: 587 -> 590

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Amount of produced GGC garbage increased from 506354k to 507078k, overall 0.14%
    Overall memory needed: 112417k -> 112393k
    Peak memory use before GGC: 92703k
    Peak memory use after GGC: 86223k
    Maximum of released memory in single GGC run: 19712k
    Garbage: 506354k -> 507078k
    Leak: 57572k -> 57568k
    Overhead: 77457k -> 77505k
    GGC runs: 574

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-01-20 19:07:27.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-01-21 03:03:12.000000000 +0000
@@ -1,3 +1,67 @@
+2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	PR target/18701
+	* combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
+
+2005-01-20  Paul Brook  <paul@codesourcery.com>
+
+	* doc/rtl.texi: Document value extension requirements for CONST_INT.
+
+2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
+	label is first in a sequence of labels.
+
+	* tree-cfg.c (tree_verify_flow_info): Fix a typo.
+
+2005-01-20  Janis Johnson  <janis187@us.ibm.com>
+	    Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+	* doc/sourcebuild.texi (Test Directives): New.
+
+2005-01-20  Roger Sayle  <roger@eyesopen.com>
+
+	* real.c (real_floor): Don't leave the result uninitialized when
+	mode is VOIDMode, but return the unrounded intermediate value.
+	(real_ceil): Likewise.
+
+2005-01-20  Paul Brook  <paul@codesourcery.com>
+
+	* config/arm/arm.md (insv): Use gen_int_mode.
+
+2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	* config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
+	* config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
+	* config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
+	* config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
+	* config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
+
+2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
+
+	Fix PR debug/19124
+	* dwarf2out.c (concat_loc_descriptor): We don't know we can use
+	fbreg, so we have to assume we can't.
+	(loc_descriptor_from_tree_1): Ditto.
+	(containing_function_has_frame_base): New function.
+	(add_location_or_const_value_attribute): Use it.
+	Also try to generate a frame_base from a single element location
+	list.
+	
+2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+	PR tree-optimization/15349
+	* timevar.def (TV_TREE_MERGE_PHI): New.
+	* tree-cfg.c (tree_forwarder_block_p): Add a new argument
+	PHI_WANTED.
+	(remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
+	calls to tree_forwarder_block_p.
+	(remove_forwarder_block_with_phi, merge_phi_nodes,
+	gate_merge_phi, pass_merge_phi): New.
+	* tree-optimize.c (init_tree_optimization_passes): Add
+	pass_merge_phi.
+	* tree-pass.h: Add an extern for pass_merge_phi;
+
 2005-01-20  Richard Henderson  <rth@redhat.com>
 
 	PR target/19418
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2005-01-20 08:44:30.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2005-01-21 03:03:14.000000000 +0000
@@ -1,3 +1,11 @@
+2005-01-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+	PR c++/19208
+	* pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
+	at least once.
+	(tsubst): Use fold_decl_constant_value in place of a bare call to
+	integral_constant_value.
+
 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
 
 	* typeck.c (more_qualified_p): Remove.

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]