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: Fri, 21 Jan 2005 04:04:16 +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: 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.