This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
A recent patch increased GCC's memory consumption!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Thu, 04 May 2006 16:07:36 +0000
- Subject: A recent patch increased GCC's memory consumption!
Hi,
I am a friendly script caring about memory consumption in GCC. Please
contact jh@suse.cz if something is going wrong.
Comparing memory consumption on compilation of combine.i, insn-attrtab.i,
and generate-3.4.ii I got:
comparing combine.c compilation at -O0 level:
Overall memory needed: 25068k -> 25088k
Peak memory use before GGC: 9509k
Peak memory use after GGC: 8897k
Maximum of released memory in single GGC run: 2602k
Garbage: 38655k
Leak: 6733k
Overhead: 5889k
GGC runs: 304
comparing combine.c compilation at -O1 level:
Overall memory needed: 26892k
Peak memory use before GGC: 17430k
Peak memory use after GGC: 17251k
Maximum of released memory in single GGC run: 2284k -> 2285k
Garbage: 58930k -> 58927k
Leak: 6870k -> 6869k
Overhead: 7056k -> 7055k
GGC runs: 376
comparing combine.c compilation at -O2 level:
Amount of memory still referenced at the end of compilation increased from 6988k to 6997k, overall 0.13%
Overall memory needed: 26892k
Peak memory use before GGC: 17434k
Peak memory use after GGC: 17251k
Maximum of released memory in single GGC run: 2395k -> 2385k
Garbage: 82965k -> 82952k
Leak: 6988k -> 6997k
Overhead: 9713k -> 9702k
GGC runs: 443
comparing combine.c compilation at -O3 level:
Amount of produced GGC garbage increased from 113641k to 113841k, overall 0.18%
Overall memory needed: 25992k
Peak memory use before GGC: 18584k
Peak memory use after GGC: 17898k
Maximum of released memory in single GGC run: 3500k -> 3520k
Garbage: 113641k -> 113841k
Leak: 7086k -> 7088k
Overhead: 13231k -> 13256k
GGC runs: 494
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 82164k
Peak memory use before GGC: 69036k
Peak memory use after GGC: 44790k
Maximum of released memory in single GGC run: 36009k
Garbage: 140381k
Leak: 9901k
Overhead: 20394k
GGC runs: 239
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 105936k -> 105932k
Peak memory use before GGC: 85573k -> 85570k
Peak memory use after GGC: 79525k -> 79522k
Maximum of released memory in single GGC run: 32269k
Garbage: 282742k -> 282719k
Leak: 10065k -> 10061k
Overhead: 33382k -> 33387k
GGC runs: 239
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 109900k -> 109992k
Peak memory use before GGC: 90000k -> 89997k
Peak memory use after GGC: 81927k -> 81924k
Maximum of released memory in single GGC run: 30718k -> 30719k
Garbage: 330288k -> 330178k
Leak: 10051k -> 10048k
Overhead: 40629k -> 40620k
GGC runs: 265
comparing insn-attrtab.c compilation at -O3 level:
Testing has produced no results
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 118248k
Peak memory use before GGC: 95020k
Peak memory use after GGC: 94073k
Maximum of released memory in single GGC run: 20358k
Garbage: 218001k
Leak: 49503k
Overhead: 37967k
GGC runs: 362
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 115832k -> 115836k
Peak memory use before GGC: 97667k
Peak memory use after GGC: 96688k
Maximum of released memory in single GGC run: 18987k
Garbage: 464742k -> 463633k
Leak: 52789k -> 52780k
Overhead: 51599k -> 51537k
GGC runs: 508 -> 505
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 115860k -> 115864k
Peak memory use before GGC: 97667k
Peak memory use after GGC: 96687k
Maximum of released memory in single GGC run: 18987k
Garbage: 554046k -> 552139k
Leak: 53690k -> 53676k
Overhead: 60353k -> 60161k
GGC runs: 590 -> 589
comparing Gerald's testcase PR8361 compilation at -O3 level:
Testing has produced no results
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2006-05-04 04:13:49.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2006-05-04 14:59:54.000000000 +0000
@@ -1,3 +1,91 @@
+2006-05-04 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/14287
+ PR tree-optimization/14844
+ PR tree-optimization/19792
+ PR tree-optimization/21608
+ PR tree-optimization/27090
+ * tree-ssa-pre.c (try_combine_conversion): New function.
+ (compute_avail): After constructing the value-handle
+ expression, use try_combine_conversion to combine NOP_EXPRs
+ with previous value-handle expressions and use the result if it
+ is available.
+
+2006-05-04 Joseph S. Myers <joseph@codesourcery.com>
+
+ * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
+
+2006-05-04 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/25962
+ * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
+
+2006-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/predicates.md (const01_rtx): Tell generator programs
+ that this only matches CONST_INTs. All users changed to VOIDmode
+ operands.
+
+ * config/bfin/bfin.c: Include "optabs.h".
+ (bfin_rtx_costs): Some costs for vector operations, to allow combine
+ to do more work.
+ (enum bfin_builtins): Add a number of fractional and vector builtins.
+ (bfin_init_builtins): Likewise.
+ (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
+ (safe_vector_operand, bfin_expand_binop_builtin,
+ bfin_expand_unop_builtin): New functions.
+ (bfin_expand_builtin): Handle the new builtins.
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
+ __ADSPBLACKFIN__.
+
+2006-05-04 Leehod Baruch <leehod@il.ibm.com>
+
+ * see.c: New file.
+ * Makefile.in (OBJS-common): Add see.o.
+ (see.o): Add dependencies.
+ * common.opt (fsee): New flag for the see optimization was added.
+ * opts.c (flag_see): Initialized.
+ * passes.c (init_optimization_passes, pass_see): New pass.
+ * rtl.h (see_main): Declaration as extern.
+ * timevar.def (TV_SEE): New.
+ * tree-pass.h (pass_see): Declaration as extern.
+ * invoke.texi (-fsee): Document.
+ * recog.c (validate_simplify_insn): New function.
+ * recog.h (validate_simplify_insn): Declaration as extern.
+ * df-problems.c (df_chain_dump): Check for NULL.
+
+2006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com>
+ Daniel Berlin <dberlin@dberlin.org>
+
+ * cfgrtl.c (insert_insn_bb_end_new): New function.
+ * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
+
+2006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il>
+
+ * df.h (struct web_entry): Moved from web.c.
+ (union_defs): Declaration as extern.
+ (unionfind_root): Likewise.
+ (unionfind_union): Likewise.
+ * web.c (struct web_entry): Moved to df.h.
+ (unionfind_root): Remove static declaration.
+ (unionfind_union): Likewise.
+ (union_defs): Likewise and generalize to use callback function.
+ (web_main): Update arguments for union_defs function call.
+
+2006-05-04 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/26447
+ * tree-ssa-pre.c (realify_fake_stores): For necessary loads
+ produce SSA_NAME copies before the store stmt to avoid
+ breaking exception handling.
+
+2006-05-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/27388
+ * gimplify.c (omp_is_private): If var is shared in some outer context,
+ return false instead of true. Stop searching on parallel context
+ boundary.
+
2006-05-03 Alexandre Oliva <aoliva@redhat.com>
PR java/8260
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2006-05-03 06:41:27.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2006-05-04 14:59:53.000000000 +0000
@@ -1,3 +1,10 @@
+2006-05-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/27359
+ * parser.c (cp_parser_omp_for_loop): Only call
+ cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
+ called.
+
2006-05-02 Mark Mitchell <mark@codesourcery.com>
PR c++/27102
The results can be reproduced by building a 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.
Your testing script.