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: Sun, 08 May 2005 16:27:07 +0000
- Subject: GCC memory consumption increased by recent patch!
hermes.suse.de (hermes-ext.suse.de [195.135.221.8])
(using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits))
(No client certificate requested)
by mx2.suse.de (Postfix) with ESMTP id A538F9B43
for <gcc-regression@gcc.gnu.org>; Sun, 8 May 2005 18:27:08 +0200 (CEST)
Date: Sun, 08 May 2005 16:27:07 +0000
From: gcctest@suse.de
To: jh@suse.cz, gcc-regression@gcc.gnu.org
Subject: GCC memory consumption increased by recent patch!
Message-ID: <427E3DDB.mail485116OIF@suse.de>
User-Agent: nail 10.3 11/29/02
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
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: 24996k -> 24988k
Peak memory use before GGC: 9438k
Peak memory use after GGC: 8751k
Maximum of released memory in single GGC run: 2797k
Garbage: 42333k -> 42325k
Leak: 6471k
Overhead: 5873k -> 5875k
GGC runs: 327
comparing combine.c compilation at -O1 level:
Overall memory needed: 27168k -> 27176k
Peak memory use before GGC: 8818k -> 8786k
Peak memory use after GGC: 8552k
Maximum of released memory in single GGC run: 2171k
Garbage: 60728k -> 60488k
Leak: 6838k
Overhead: 7619k -> 7597k
GGC runs: 500
comparing combine.c compilation at -O2 level:
Overall memory needed: 19948k
Peak memory use before GGC: 12763k
Peak memory use after GGC: 12633k
Maximum of released memory in single GGC run: 2618k
Garbage: 86031k -> 85773k
Leak: 6656k
Overhead: 11016k -> 10980k
GGC runs: 524
comparing combine.c compilation at -O3 level:
Amount of memory still referenced at the end of compilation increased from 7103k to 7119k, overall 0.22%
Overall memory needed: 22884k -> 23100k
Peak memory use before GGC: 14731k -> 14713k
Peak memory use after GGC: 12960k -> 12944k
Maximum of released memory in single GGC run: 3069k
Garbage: 119394k -> 119060k
Leak: 7103k -> 7119k
Overhead: 15203k -> 15171k
GGC runs: 591
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 85868k
Peak memory use before GGC: 74239k
Peak memory use after GGC: 45259k
Maximum of released memory in single GGC run: 38092k
Garbage: 154683k -> 154674k
Leak: 11186k
Overhead: 19888k -> 19889k
GGC runs: 268
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 99364k -> 99136k
Peak memory use before GGC: 72837k
Peak memory use after GGC: 64735k
Maximum of released memory in single GGC run: 37096k -> 37094k
Garbage: 309793k -> 308941k
Leak: 11478k
Overhead: 38013k -> 38035k
GGC runs: 375
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 142428k
Peak memory use before GGC: 116905k
Peak memory use after GGC: 88272k
Maximum of released memory in single GGC run: 35225k
Garbage: 426751k -> 425909k
Leak: 11300k
Overhead: 52895k -> 52920k
GGC runs: 331
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 142452k -> 142448k
Peak memory use before GGC: 116907k
Peak memory use after GGC: 88274k
Maximum of released memory in single GGC run: 35225k
Garbage: 427504k -> 426661k
Leak: 11330k
Overhead: 53019k -> 53042k
GGC runs: 337 -> 336
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 112436k
Peak memory use before GGC: 87845k
Peak memory use after GGC: 86389k
Maximum of released memory in single GGC run: 20856k
Garbage: 248773k -> 248198k
Leak: 53984k
Overhead: 43167k -> 43233k
GGC runs: 370
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 95036k
Peak memory use before GGC: 86942k
Peak memory use after GGC: 85413k
Maximum of released memory in single GGC run: 20530k
Garbage: 560180k -> 555534k
Leak: 57730k -> 57727k
Overhead: 72673k -> 72127k
GGC runs: 597 -> 591
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 95028k -> 95020k
Peak memory use before GGC: 86943k
Peak memory use after GGC: 85414k
Maximum of released memory in single GGC run: 20531k
Garbage: 652105k -> 647404k
Leak: 58598k
Overhead: 90702k -> 90128k
GGC runs: 688
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 96028k -> 95996k
Peak memory use before GGC: 87872k
Peak memory use after GGC: 86704k
Maximum of released memory in single GGC run: 20795k
Garbage: 672315k -> 667395k
Leak: 59652k
Overhead: 93426k -> 92913k
GGC runs: 691 -> 686
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2005-05-08 02:45:02.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2005-05-08 15:26:47.000000000 +0000
@@ -1,3 +1,123 @@
+2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
+ instead of VARRAY.
+ * tree-flow.h (num_referenced_var, referenced_var): Likewise.
+ * tree-into-ssa.c (mark_def_site_blocks): Likewise.
+ * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
+ * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
+
+2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
+
+ PR target/16925
+ * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
+ 64-bit constants on 64-bit hosts.
+ (m68hc11_split_logical): Simplify.
+ (m68hc11_split_move): Likewise.
+
+2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
+ Paolo Bonzini <bonzini@gnu.org>
+
+ * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
+ * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
+ * configure.ac (enable_checking): Fix typos in runtime_checking.
+ (ENABLE_RUNTIME_CHECKING): Mark as target template.
+ (xm_file): Prepend auto-host.h
+ (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
+ * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
+ tconfig.h.
+ * crtstuff.c: Do not include auto-host.h.
+ (IN_LIBGCC2): Do not define.
+ * gcov-io.h: Include tconfig.h, not auto-host.h.
+ * libgcc2.c: Do not include auto-host.h.
+ (abort): Do not undefine.
+ * libgcov.c: Remove unneeded comment about config.h.
+ * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
+ * config.in, configure: Regenerated.
+
+2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
+ Falk Hueffner <falk@debian.org>
+
+ * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
+ and gcc_unreachable as appropriate.
+ (get_aligned_mem, get_unaligned_address,
+ alpha_emit_set_long_const, alpha_emit_conditional_branch,
+ alpha_emit_setcc, alpha_emit_conditional_move,
+ alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
+ alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
+ alpha_expand_unaligned_load, alpha_expand_block_move,
+ alpha_expand_zap_mask, get_trap_mode_suffix,
+ get_round_mode_suffix, get_some_local_dynamic_name,
+ print_operand_address, function_arg, alpha_return_in_memory,
+ function_value, alpha_expand_builtin,
+ alpha_initial_elimination_offset, alpha_expand_epilogue,
+ summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
+ alphaev5_next_group, alpha_align_insns,
+ unicosmk_initial_elimination_offset, unicosmk_unique_section,
+ unicosmk_ssib_name): Likewise.
+ * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
+ * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
+ ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
+ * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
+ ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
+ * config/alpha/alpha.md (*divmodsi_internal_er,
+ *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
+ call_nt, call_umk, call_vms, call_value, sibcall_value,
+ call_value_osf, call_value_nt, call_value_vms, call_value_umk,
+ *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
+ * config/alpha/predicates.md (input_operand): Likewise.
+
+2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
+ gcc_unreachable, as appropriate.
+ (frv_function_prologue, frv_alloc_temp_reg,
+ frv_initial_elimination_offset, frv_expand_block_move,
+ frv_expand_block_clear, frv_print_operand_jump_hint,
+ frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
+ frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
+ frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
+ frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
+ frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
+ frv_in_small_data_p, frv_asm_out_constructor,
+ frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
+ * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
+ *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
+ *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
+ sibcall_value, casesi): Likewise.
+
+ * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
+ gcc_unreachable as appropriate.
+ (print_operand_address, mn10300_print_reg_list, expand_prologue,
+ expand_epilogue, notice_update_cc, initial_offset,
+ mn10300_address_cost_1): Likewise.
+ * config/mn10300/mn10300.md: Likewise.
+ (absdf2, abssf2, negdf2, negsf2): Likewise.
+
+2005-05-08 Richard Sandiford <rsandifo@redhat.com>
+
+ PR target/21416
+ * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
+ comparisons.
+ * config/mips/mips.md (swapped_fcond): New code macro and attribute.
+ (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
+ including sunge_<mode> and sungt_<mode>.
+
+2005-05-08 Richard Sandiford <rsandifo@redhat.com>
+
+ * integrate.h (get_hard_reg_initial_val): Change type of register
+ parameter from int to unsigned int.
+ (has_hard_reg_initial_val): Likewise.
+ * integrate.c (get_hard_reg_initial_val): Likewise.
+ (has_hard_reg_initial_val): Likewise. Remove cast to unsigned int.
+
+2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
+
+ * except.c (eh_status): Change the type of ttype_data to
+ VEC(tree,gc)*.
+ (add_ttypes_entry, assign_filter_values,
+ output_function_exception_table): Use VEC instead of VARRAY.
+
2005-05-07 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
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.