GCC memory consumption increased by recent patch!
gcctest@suse.de
gcctest@suse.de
Thu Dec 2 01:18:00 GMT 2004
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: 25329k
Peak memory use before GGC: 9329k
Peak memory use after GGC: 8641k
Maximum of released memory in single GGC run: 2926k
Garbage: 42603k
Leak: 6088k
Overhead: 5744k
GGC runs: 354
comparing combine.c compilation at -O1 level:
Amount of produced GGC garbage increased from 67807k to 68059k, overall 0.37%
Overall memory needed: 25889k -> 25885k
Peak memory use before GGC: 9200k
Peak memory use after GGC: 8722k
Maximum of released memory in single GGC run: 2062k -> 2063k
Garbage: 67807k -> 68059k
Leak: 6485k
Overhead: 10640k -> 10671k
GGC runs: 544 -> 547
comparing combine.c compilation at -O2 level:
Amount of produced GGC garbage increased from 82118k to 82350k, overall 0.28%
Overall memory needed: 29969k -> 29977k
Peak memory use before GGC: 12705k
Peak memory use after GGC: 12579k
Maximum of released memory in single GGC run: 2575k
Garbage: 82118k -> 82350k
Leak: 6305k
Overhead: 14853k -> 14872k
GGC runs: 547 -> 549
comparing combine.c compilation at -O3 level:
Overall memory allocated via mmap and sbrk increased from 20144k to 20704k, overall 2.78%
Amount of produced GGC garbage increased from 110893k to 111176k, overall 0.26%
Overall memory needed: 20144k -> 20704k
Peak memory use before GGC: 13004k -> 12993k
Peak memory use after GGC: 12579k
Maximum of released memory in single GGC run: 3412k
Garbage: 110893k -> 111176k
Leak: 6849k -> 6817k
Overhead: 19851k -> 19881k
GGC runs: 612 -> 615
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 118468k
Peak memory use before GGC: 79386k
Peak memory use after GGC: 46137k
Maximum of released memory in single GGC run: 43335k
Garbage: 162034k
Leak: 10610k
Overhead: 21250k
GGC runs: 295
comparing insn-attrtab.c compilation at -O1 level:
Overall memory allocated via mmap and sbrk increased from 131528k to 132096k, overall 0.43%
Amount of produced GGC garbage increased from 444430k to 449315k, overall 1.10%
Overall memory needed: 131528k -> 132096k
Peak memory use before GGC: 85228k
Peak memory use after GGC: 70039k -> 70033k
Maximum of released memory in single GGC run: 41127k -> 41128k
Garbage: 444430k -> 449315k
Leak: 10956k
Overhead: 79425k -> 79591k
GGC runs: 426 -> 429
comparing insn-attrtab.c compilation at -O2 level:
Amount of produced GGC garbage increased from 491396k to 496293k, overall 1.00%
Overall memory needed: 154172k -> 154220k
Peak memory use before GGC: 101239k
Peak memory use after GGC: 85452k -> 85446k
Maximum of released memory in single GGC run: 42306k
Garbage: 491396k -> 496293k
Leak: 10876k
Overhead: 87683k -> 87852k
GGC runs: 358 -> 362
comparing insn-attrtab.c compilation at -O3 level:
Amount of produced GGC garbage increased from 492684k to 497581k, overall 0.99%
Overall memory needed: 154228k -> 154224k
Peak memory use before GGC: 101241k
Peak memory use after GGC: 85454k -> 85448k
Maximum of released memory in single GGC run: 42306k
Garbage: 492684k -> 497581k
Leak: 10923k
Overhead: 87871k -> 88040k
GGC runs: 366 -> 370
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 112880k
Peak memory use before GGC: 89412k
Peak memory use after GGC: 88519k
Maximum of released memory in single GGC run: 19741k
Garbage: 248674k -> 248657k
Leak: 57170k
Overhead: 45230k -> 45229k
GGC runs: 362
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 95408k
Peak memory use before GGC: 88428k
Peak memory use after GGC: 87443k
Maximum of released memory in single GGC run: 19381k
Garbage: 553677k -> 553953k
Leak: 59207k
Overhead: 116228k -> 116291k
GGC runs: 610 -> 611
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage increased from 600367k to 602807k, overall 0.41%
Overall memory needed: 95408k -> 95416k
Peak memory use before GGC: 88428k
Peak memory use after GGC: 87443k
Maximum of released memory in single GGC run: 19381k
Garbage: 600367k -> 602807k
Leak: 59790k -> 59790k
Overhead: 137624k -> 137707k
GGC runs: 650 -> 654
comparing Gerald's testcase PR8361 compilation at -O3 level:
Amount of produced GGC garbage increased from 640015k to 642339k, overall 0.36%
Overall memory needed: 103080k
Peak memory use before GGC: 95525k
Peak memory use after GGC: 88742k
Maximum of released memory in single GGC run: 20197k
Garbage: 640015k -> 642339k
Leak: 60125k -> 60133k
Overhead: 148739k -> 148768k
GGC runs: 646 -> 648
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2004-11-30 05:09:11.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2004-12-02 00:12:04.000000000 +0000
@@ -1,3 +1,216 @@
+2004-12-02 Andreas Schwab <schwab@suse.de>
+
+ * gcc.c (struct option_map): Add entry for "--pass-exit-codes".
+
+2004-12-01 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/18763
+ PR tree-opt/18746
+ * tree-ssa-alias.c (init_alias_info): Get statement operands for all
+ the statements if aliases_computed_p is true.
+
+2004-12-01 Mark Mitchell <mark@codesourcery.com>
+
+ * Makefile.in (WERROR): New variable.
+ (STRICT2_WARN): Use it.
+ (STAGE2_FLAGS_TO_PASS): Likewise.
+ * config/i386/x-mingw32 (WERROR): Add -Wno-format.
+
+2004-12-01 Richard Henderson <rth@redhat.com>
+
+ * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR
+ offsetting.
+
+2004-12-01 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/18291
+ * tree-ssa-copy.c (merge_alias_info): Fix merging of
+ flow-sensitive alias information. If the new pointer has no
+ name tag, copy it from the original pointer. Otherwise, make
+ sure that the pointed-to sets have a common intersection.
+
+2004-12-01 Richard Henderson <rth@redhat.com>
+
+ PR rtl-opt/15289
+ * emit-rtl.c (gen_complex_constant_part): Remove.
+ (gen_realpart, gen_imagpart): Remove.
+ * rtl.h (gen_realpart, gen_imagpart): Remove.
+ * expmed.c (extract_bit_field): Remove CONCAT hack catering to
+ gen_realpart/gen_imagpart.
+ * expr.c (write_complex_part, read_complex_part): New.
+ (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push,
+ emit_move_complex_push, emit_move_complex, emit_move_ccmode,
+ emit_move_multi_word): Split out from ...
+ (emit_move_insn_1): ... here.
+ (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part.
+ <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part.
+ * function.c (assign_parm_setup_reg): Hard-code transformations
+ instead of using gen_realpart/gen_imagpart.
+
+ * expr.c (optimize_bitfield_assignment_op): Split out from ...
+ (expand_assignment): ... here. Use handled_component_p to gate
+ get_inner_reference code. Simplify MEM handling. Special case
+ CONCAT destinations.
+
+ * expmed.c (store_bit_field): Use simplify_gen_subreg instead
+ of gen_rtx_SUBREG directly.
+
+2004-12-01 David Edelsohn <edelsohn@gnu.org>
+ Nathan Sidwell <nathan@codesourcery.com>
+
+ PR target/17107
+ * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER.
+ (sgt): Same.
+ (sle): Same.
+ (slt): Same.
+
+2004-12-01 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR middle-end/18667
+ * params.c (set_param_value): Add range check.
+ * params.def: Add min and max values. Reformat long strings.
+ * params.h (struct param_info): Add min and max fields.
+ (enum compiler_param): Adjust DEFPARAM.
+ * toplev.c (lang_independent_params): Likewise.
+
+2004-12-01 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/12817
+ * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave.
+
+2004-12-01 Joseph S. Myers <joseph@codesourcery.com>
+
+ * doc/standards.texi: Update for C99 TC2.
+
+2004-11-30 Jeff Law <law@redhat.com>
+
+ * sbitmap.c (sbitmap_any_common_bits): New function.
+ * sbitmap.h (sbitmap_any_common_bits): Prototype.
+ * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits
+ No longer allocate/free "psp", "pss" sbitmaps.
+ * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for
+ the "res" sbitmap.
+ (group_aliases): Similarly.
+
+2004-11-30 Nathan Sidwell <nathan@codesourcery.com>
+
+ * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid
+ uninitialized variable.
+
+2004-11-30 Eric Christopher <echristo@redhat.com>
+
+ * fold-const.c (fold_widened_comparison): Make sure that we're
+ passing an INTEGER_TYPE to int_fits_type_p.
+ (fold): Clean up comment.
+
+2004-11-30 Zack Weinberg <zack@codesourcery.com>
+
+ * mklibgcc.in: Correct calculation of libgcc_s_soname and
+ libunwind_soname. Use $out, not $outS, in commands for
+ no-shared-library case. Move EXTRA_MULTILIB_PARTS rules above
+ library build rules, make $libunwind_so and $libgcc_s_so
+ depend on them in the normal fashion, and filter those objects
+ out of @shlib_objs@.
+
+2004-11-30 Janis Johnson <janis187@us.ibm.com>
+
+ * config/rs6000/altivec.h (vec_step_help): Support const vector types.
+
+2004-11-30 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/18298
+ * tree-optimize.c (init_tree_optimization_passes): Add a may_alias
+ pass right after fold builtins.
+
+2004-11-30 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390-modes.def: Added cc modes documentation.
+ * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode,
+ s390_expand_addcc): Added cc mode comments.
+ * config/s390/s390.md: Removed old cc mode documentation.
+
+2004-11-30 Mark Dettinger <dettinge@de.ibm.com>
+
+ * config/s390/s390.c (struct processor_costs): New data type.
+ (s390_cost, z900_cost, z990_cost): New global variables.
+ (override_options): Initialize s390_cost.
+ (s390_rtx_costs): Reimplement.
+
+2004-11-29 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/18673
+
+ * tree-ssa-pre.c: Remove splay-tree.h include.
+ (bitmap_value_replace_in_set): Fix to add if it does not exist.
+ (find_or_generate_expression): Remove now-wrong condition.
+ (create_expression_by_pieces): Fix condition and comment reason
+ for it.
+ (insert_aux): Fix condition and comment reasons for it.
+ Factor insertion code from here.
+ (insert_into_preds_of_block): To here. Fix conditions in factored
+ function and comment reasons for them.
+
+2004-11-30 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-opt/18607
+ * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
+ variable for data_reference when looking for memtag.
+
+2004-11-30 Jakub Jelinek <jakub@redhat.com>
+
+ * c-opts.c (check_deps_environment_vars): If spec != NULL, set
+ deps_seen.
+
+2004-11-30 Dorit Naishlos <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
+ tree_low_cst instead of TREE_INT_CST_LOW.
+
+2004-11-30 Dorit Naishlos <dorit@il.ibm.com>
+
+ PR target/18173
+ * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
+ decls that are assembled before vectorization takes place.
+ (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
+
+2004-11-30 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks
+ if local_alloc modified jumps.
+
+2004-11-30 Alan Modra <amodra@bigpond.net.au>
+
+ * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
+ on TLS symbols.
+ * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
+ check.
+
+2004-11-30 Zack Weinberg <zack@codesourcery.com>
+
+ * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
+ * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS.
+
+ * mklibgcc.in: Drastic restructure for comprehensibility.
+ Remove the old hidden-directive hack.
+ Eliminate support for .txt files in LIB2ADD etc (never used).
+ Eliminate support for assembly source files in LIB2ADDEH* and
+ LIBUNWIND (also never used).
+ Build up dependency lists for libraries incrementally.
+ If we have SHLIB_LINK, compile each file twice, once for the
+ static and once for the shared library; also probe for
+ -fvisibility=hidden in the generated libgcc.mk. If found,
+ pass that and -DHIDE_EXPORTS to the compilation of every C
+ source file going into the static library. If found, generate
+ hidden-directive lists for every assembly source file going
+ into the static library, but incorporate them with -include
+ instead of ld -r.
+ Write comments into generated libgcc.mk to facilitate debugging.
+ * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc.
+ * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP.
+
+ * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in
+ -Zdynamiclib case.
+
2004-11-29 Richard Henderson <rth@redhat.com>
* expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2004-11-30 00:33:27.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2004-12-02 00:12:06.000000000 +0000
@@ -1,3 +1,24 @@
+2004-12-01 Matt Austern <austern@apple.com>
+
+ * name-lookup.c (namespace_binding): Omit alias check for global namespace.
+
+2004-12-01 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/18729
+ * parser.c (cp_parser_class_name): Check decl's type is not
+ error_mark_node.
+
+ PR c++/17431
+ * call.c (standard_conversion): Add FLAGS parameter. Do not allow
+ derived to base conversion when checking constructor
+ accessibility.
+ (implicit_conversion): Pass FLAGS to standard_conversion.
+ (check_constructir_callable): Disallow conversion functions.
+
+2004-11-30 Kazu Hirata <kazu@cs.umass.edu>
+
+ * parser.c: Fix comment typos.
+
2004-11-27 Mark Mitchell <mark@codesourcery.com>
PR c++/18368
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.
More information about the Gcc-regression
mailing list