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]

A recent patch increased GCC's memory consumption in some cases!


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: 24932k -> 24721k
    Peak memory use before GGC: 9717k -> 9591k
    Peak memory use after GGC: 9064k -> 8938k
    Maximum of released memory in single GGC run: 2816k -> 2754k
    Garbage: 42333k -> 41378k
    Leak: 6720k -> 6709k
    Overhead: 5837k -> 5842k
    GGC runs: 334 -> 320

comparing combine.c compilation at -O1 level:
  Amount of memory still referenced at the end of compilation increased from 7030k to 7044k, overall 0.19%
    Overall memory needed: 24364k -> 23924k
    Peak memory use before GGC: 17710k -> 17373k
    Peak memory use after GGC: 17517k -> 17181k
    Maximum of released memory in single GGC run: 2484k -> 2435k
    Garbage: 67973k -> 66951k
    Leak: 7030k -> 7044k
    Overhead: 8056k -> 8018k
    GGC runs: 420 -> 410

comparing combine.c compilation at -O2 level:
  Amount of memory still referenced at the end of compilation increased from 7207k to 7223k, overall 0.21%
    Overall memory needed: 24356k -> 23920k
    Peak memory use before GGC: 17718k -> 17381k
    Peak memory use after GGC: 17517k -> 17181k
    Maximum of released memory in single GGC run: 2616k -> 2519k
    Garbage: 87291k -> 85030k
    Leak: 7207k -> 7223k
    Overhead: 10779k -> 10527k
    GGC runs: 487 -> 478

comparing combine.c compilation at -O3 level:
    Overall memory needed: 24840k -> 24380k
    Peak memory use before GGC: 17968k -> 17634k
    Peak memory use after GGC: 17549k -> 17223k
    Maximum of released memory in single GGC run: 3440k -> 3375k
    Garbage: 116190k -> 113290k
    Leak: 7305k -> 7276k
    Overhead: 14431k -> 13713k
    GGC runs: 533 -> 523

comparing insn-attrtab.c compilation at -O0 level:
  Amount of memory still referenced at the end of compilation increased from 11320k to 11585k, overall 2.34%
    Overall memory needed: 83372k -> 81648k
    Peak memory use before GGC: 71655k -> 70268k
    Peak memory use after GGC: 45752k -> 45007k
    Maximum of released memory in single GGC run: 37689k -> 37046k
    Garbage: 151900k -> 149716k
    Leak: 11320k -> 11585k
    Overhead: 18881k -> 19128k
    GGC runs: 268 -> 252

comparing insn-attrtab.c compilation at -O1 level:
  Amount of memory still referenced at the end of compilation increased from 11427k to 11466k, overall 0.34%
    Overall memory needed: 116672k -> 115388k
    Peak memory use before GGC: 99408k -> 98247k
    Peak memory use after GGC: 88890k -> 87757k
    Maximum of released memory in single GGC run: 33484k -> 33049k
    Garbage: 298671k -> 296518k
    Leak: 11427k -> 11466k
    Overhead: 35603k -> 36055k
    GGC runs: 292 -> 280

comparing insn-attrtab.c compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 154460k to 124820k, overall -23.75%
  Amount of memory still referenced at the end of compilation increased from 11515k to 11581k, overall 0.57%
    Overall memory needed: 154460k -> 124820k
    Peak memory use before GGC: 118554k -> 117503k
    Peak memory use after GGC: 88864k -> 87738k
    Maximum of released memory in single GGC run: 33619k -> 32732k
    Garbage: 393193k -> 383092k
    Leak: 11515k -> 11581k
    Overhead: 47637k -> 47927k
    GGC runs: 331 -> 320

comparing insn-attrtab.c compilation at -O3 level:
  Ovarall memory allocated via mmap and sbrk decreased from 154456k to 124820k, overall -23.74%
  Amount of memory still referenced at the end of compilation increased from 11535k to 11599k, overall 0.56%
    Overall memory needed: 154456k -> 124820k
    Peak memory use before GGC: 118556k -> 117504k
    Peak memory use after GGC: 88866k -> 87742k
    Maximum of released memory in single GGC run: 33619k -> 32732k
    Garbage: 393726k -> 383630k
    Leak: 11535k -> 11599k
    Overhead: 47734k -> 48080k
    GGC runs: 335 -> 324

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Ovarall memory allocated via mmap and sbrk decreased from 124856k to 119108k, overall -4.83%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 100707k to 95788k, overall -5.14%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 99710k to 94840k, overall -5.13%
  Amount of memory still referenced at the end of compilation decreased from 53150k to 49424k, overall -7.54%
    Overall memory needed: 124856k -> 119108k
    Peak memory use before GGC: 100707k -> 95788k
    Peak memory use after GGC: 99710k -> 94840k
    Maximum of released memory in single GGC run: 21552k -> 20762k
    Garbage: 230928k -> 224400k
    Leak: 53150k -> 49424k
    Overhead: 39837k -> 36945k
    GGC runs: 337 -> 339

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Ovarall memory allocated via mmap and sbrk decreased from 108896k to 104096k, overall -4.61%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 99624k to 94848k, overall -5.04%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 98632k to 93906k, overall -5.03%
  Amount of memory still referenced at the end of compilation decreased from 58289k to 54752k, overall -6.46%
    Overall memory needed: 108896k -> 104096k
    Peak memory use before GGC: 99624k -> 94848k
    Peak memory use after GGC: 98632k -> 93906k
    Maximum of released memory in single GGC run: 20596k -> 19825k
    Garbage: 646081k -> 630475k
    Leak: 58289k -> 54752k
    Overhead: 80594k -> 76838k
    GGC runs: 525 -> 529

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 109524k to 104636k, overall -4.67%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 99624k to 94848k, overall -5.04%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 98632k to 93906k, overall -5.03%
  Amount of memory still referenced at the end of compilation decreased from 58972k to 55431k, overall -6.39%
    Overall memory needed: 109524k -> 104636k
    Peak memory use before GGC: 99624k -> 94848k
    Peak memory use after GGC: 98632k -> 93906k
    Maximum of released memory in single GGC run: 20595k -> 19825k
    Garbage: 737368k -> 720593k
    Leak: 58972k -> 55431k
    Overhead: 97745k -> 93231k
    GGC runs: 591 -> 602

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Ovarall memory allocated via mmap and sbrk decreased from 111948k to 106540k, overall -5.08%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 101141k to 95930k, overall -5.43%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 100133k to 94979k, overall -5.43%
  Amount of memory still referenced at the end of compilation decreased from 60173k to 56583k, overall -6.34%
    Overall memory needed: 111948k -> 106540k
    Peak memory use before GGC: 101141k -> 95930k
    Peak memory use after GGC: 100133k -> 94979k
    Maximum of released memory in single GGC run: 21090k -> 19927k
    Garbage: 780177k -> 762805k
    Leak: 60173k -> 56583k
    Overhead: 101775k -> 97352k
    GGC runs: 595 -> 609

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-07-06 18:12:40.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-07-09 17:39:57.000000000 +0000
@@ -1,3 +1,454 @@
+2005-07-09  Diego Novillo  <dnovillo@redhat.com>
+
+	PR 21356
+	PR 22332
+	* passes.c (execute_todo): Cleanup the CFG before updating
+	SSA.
+
+2005-07-09  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
+	in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
+
+2005-07-09  Richard SAndiford  <richard@codesourcery.com>
+
+	PR target/21656
+	* config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.
+
+2005-07-08  David Edelsohn  <edelsohn@gnu.org>
+
+	* config/rs6000/sync.md (load_locked_<mode>): Use Z for
+	memory_operand constraint.
+	(store_conditional_<mode>): Same.
+	(sync_compare_and_swap<mode>): Same.
+	(sync_lock_test_and_set<mode>): Same.
+
+2005-07-08  Hans-Peter Nilsson  <hp@axis.com>
+
+	Rewrite PIC support to more closely model actual instructions.
+	* config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
+	(cris_symbol): Remove prototypes for removed functions.
+	(cris_pic_symbol_type_of, cris_valid_pic_const)
+	(cris_expand_pic_call_address): Prototypes for new functions.
+	* config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
+	variable.
+	(cris_print_operand) <case 'v', 'P'>: Remove cases for unused
+	modifiers.
+	<case ':'>: Add case for new punctuation character.
+	<case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
+	emitting (extra) PIC modifier.
+	<case UNSPEC>: Do not assert for PLT.
+	(cris_initial_frame_pointer_offset, cris_simple_epilogue)
+	(cris_expand_prologue, cris_expand_epilogue): Check
+	for pic_offset_table_rtx usage instead of taking
+	current_function_uses_pic_offset_table as the final word.
+	(cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
+	Remove flag_pic difference.
+	(cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
+	the moral equivalents of...
+	(cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
+	functions.
+	(cris_legitimate_pic_operand): Just call cris_valid_pic_const.
+	(cris_handle_option): Mark ARG as unused.
+	(cris_expand_pic_call_address): New worker function for "call",
+	"call_value".
+	(cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
+	output PIC constructs here.
+	(cris_output_addr_const_extra): Changes for emitting PIC modifiers
+	as symbol-specific modifers, not whole or part of operands.
+	* config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
+	(EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
+	constants and flag_pic.
+	(CONSTANT_INDEX_P): Adjust for new functions.
+	(enum cris_pic_symbol_type): New helper type.
+	(PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
+	* config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
+	(CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
+	define_constants.
+	("movsi"): Emit actual instructions for GOT and relative access.
+	("*movsi_got_load"): New pattern to set up the register holding
+	the GOT pointer.
+	("*movsi_internal"): Operand 1 is not a plain general_operand.
+	Adjust FIXME for 'S'.
+	<output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
+	Use "movs" for -fpic cases.
+	("addsi3"): Add alternative for 'S'; use adds.w when possible.
+	("uminsi3","*expanded_call_value"): Remove 'S' alternative.
+	("call", "call_value"): Just call cris_expand_pic_call_address for
+	PIC addresses.
+	("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
+	Remove special pattern.
+	("*expanded_call_side", "*expanded_call_value_side"): New
+	patterns.
+	(gotplt-to-plt, gotplt-to-plt-side-call)
+	(gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
+	peephole2:s.
+	* config/cris/cris/predicates.md
+	("cris_general_operand_or_gotless_symbol"): Remove unused
+	predicate.
+	("cris_general_operand_or_symbol"): Adjust for new functions.
+
+2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	* config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.
+
+2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
+
+	* Makefile.in (TREE_H): Add treestruct.def.
+	(c-decl.o): Add pointer-set.h
+	* c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
+	visibility on regular DECL's.
+	(merge_decls): Fix the copying of decl nodes of various types for
+	the new structures.  Don't update RTL, section name, weak status,
+	etc, on DECL's without RTL.	
+	(grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
+	Don't check volatile on non-variable types.
+	(store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
+	to check whether we have seen arguments.
+	* c-objc-common.c (c_tree_printer): Reverse order of tests so that
+	flag is checked before field (flag is common, field is not).	
+	* dwarf2out.c (decl_ultimate_origin):  Only DECL's with
+	TS_DECL_COMMON could have an origin.
+	(add_location_or_const_value_attribute): Don't check section name
+	on non-var/function decls.
+	(dwarf2out_var_location): Reverse order of tests.
+	* emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
+	with DECL_WRTL_CHECK.
+	* expmed.c (make_tree): rtl is now in decl_with_rtl.
+	* fold-const.c (fold_binary): Don't check weakness on
+	non-var/function decls.
+	(tree_expr_nonzero_p): Ditto.
+	(fold_checksum_tree): Use tree_decl_extra as sizeof
+	buffer.
+	* ggc-page.c (extra_order_size_table): Add sizes for
+	tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
+	tree_field_decl.
+	* gimplify.c (gimplify_bind_expr): Only set
+	DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
+	* integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
+	without RTL.
+	* langhooks-def.h (LANG_HOOK_INIT_TS): New.
+	* langhooks.h (init_ts). New langhook.
+	* passes.c (rest_of_decl_compilation): Reverse order of tests.
+	* print-tree.c (print_node): Update to only print fields that
+	exist in the structures the passed decl has.
+	* toplev.c (wrapup_global_declarations): Don't reset
+	DECL_DEFER_OUTPUT on DECL's that don't contain it.
+	* tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
+	* tree-inline.c (remap_decl): Ditto.
+	* tree-outof-ssa.c (create_temp): Reverse order of tests.
+	* tree-pretty-print.c (print_declaration): Don't print
+	DECL_REGISTER on things that don't contain it.
+	* tree-vrp.c (expr_computes_nonzero): Don't check weakness on
+	non-var/function decls.
+	* tree.c (tree_contains_struct): New structure.
+	(init_priority_for_decl): New hashtable.
+	(tree_int_map): New structure.
+	(tree_int_map_eq): New function.
+	(tree_int_map_marked_p): Ditto.
+	(tree_int_map_hash): Ditto.
+	(tree_map): Move to tree.h.
+	(tree_map_eq): Externalize.
+	(tree_map_hash): Ditto.
+	(tree_map_marked_p): Ditto.
+	(init_ttree): Set up tree_contains_struct and call langhook.
+	(decl_assembler_name): Use DECL_NON_COMMON_CHECK..
+	(tree_code_size): Update for new structures.
+	(tree_node_structure): Update for new structures.
+	(make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
+	without the field.
+	(copy_node_stat):  Copy init priority.
+	(build_decl_stat): Ditto for visibility.
+	(ts_enum_names): New.
+	(tree_contains_struct_check_failed): New function.
+	(decl_init_priority_lookup): Ditto.
+	(decl_init_priority_insert): Ditto.
+	* treestruct.def: New file.
+	* tree.h (CODE_CONTAINS_STRUCT): New macro.
+	(CONTAINS_STRUCT_CHECK): Ditto.
+	(tree_contains_struct_check_failed): New prototype.
+	(DECL_CHECK): Removed.
+	(DECL_MINIMAL_CHECK): New.
+	(DECL_COMMON_CHECK): Ditto.
+	(DECL_WRTL_CHECK): Ditto.
+	(DECL_NON_COMMON_CHECK): Ditto.
+	(DECL_WITH_VIS_CHECK): Ditto.
+	(VAR_OR_FUNCTION_DECL_P): Ditto
+	(struct tree_decl_minimal): New structure.
+	(struct tree_decl_common): Ditto.
+	(struct tree_decl_with_rtl): Ditto.
+	(struct tree_decl_with_vis): Ditto.
+	(struct tree_decl_non_common): Ditto.
+	(struct tree_field_decl): Ditto.
+	(struct tree_parm_decl): Ditto.
+	(struct tree_var_decl): Ditto.
+	(struct tree_function_decl): Ditto.
+	(struct tree_const_decl): Ditto.
+	(struct tree_result_decl): Ditto.
+	(union tree_node): Add new structures.
+	* var-tracking.c (track_expr_p): Reverse order of tests.
+	
+	* doc/c-tree.texi: Add documentation on DECL node internal structure.
+
+2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
+
+	* cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
+	* system.h: Poison FINALIZE_PIC.
+	* doc/tm.texi (FINALIZE_PIC): Remove.
+
+2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	PR tree-opt/22329
+	* tree-ssa-propagate.c (fold_predicate_in): Convert the value
+	to the correct type if we have a MODIFY_EXPR.
+
+2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
+
+	PR tree-optimization/22360
+	* tree.c (upper_bound_in_type): Fix calculations for casting
+	to a non-wider signed type and casting a signed value to a
+	wider unsigned type.
+	(lower_bound_in_type): Fix calculations for casting to a
+	non-wider signed type.
+
+	PR tree-optimization/20139
+	* tree-cfg.c (remove_bb): Check in_ssa_p before calling
+	release_defs.
+	* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
+	fold_cond_expr_cond.
+	* tree-ssanames.c (release_defs): Assert in_ssa_p.
+	* tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.
+
+2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	PR tree-opt/22356
+	* tree-complex.c (expand_complex_libcall): Produce
+	REALPART_EXPR/IMAGPART_EXPR with the correct type.
+
+2005-07-08  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+	* bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
+	bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
+	b" assert and inserted fastpath code for this case.
+	(bitmap_ior): Removed "a != b" assert.
+
+2005-07-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
+
+	* config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
+	(ENDFILE_SPEC): Likewise.
+	* config/m32r/m32r.h (ASM_SPEC): Likewise.
+
+	* config/m32r/m32r.c (m32r_output_function_epilogue): Care for
+	a large stack frame at epilogue.
+
+2005-07-08  David Billinghurst  <David.Billinghurst@riotinto.com>
+
+	* final.c: Include sdbout.h when required.
+
+2005-07-07  Geoffrey Keating  <geoffk@apple.com>
+
+	* config.gcc (*-*-darwin*): Only one target-specific header file
+	for generic darwin.
+	(powerpc-*-darwin*): Add version-specific header files.
+	* configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
+	* config.in: Regenerate.
+	* configure: Regenerate.
+	* gcc.c: Include xregex.h.
+	(version_compare_spec_function): New.
+	(spec_function): Add version-compare.
+	(replace_outfile_spec_function): Reformat comment.
+	(compare_version_strings): New.
+	* config/darwin-c.c (version_as_macro): New.
+	(builtin_define): New.
+	(darwin_cpp_builtins): New.
+	* config/darwin-protos.h (darwin_cpp_builtins): New.
+	* config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
+	(LIB_SPEC): Make unconditional, update comment.
+	(TARGET_C99_FUNCTIONS): Define.
+	* config/darwin.opt: Sort.
+	(mmacosx-version-min=): New.
+	* config/darwin7.h: Delete.
+	* config/darwin8.h: Delete.
+	* config/i386/darwin.h (): Call darwin_cpp_builtins.
+	* config/rs6000/darwin.h (): Call darwin_cpp_builtins.
+	(TARGET_C99_FUNCTIONS): Define.
+	* config/rs6000/darwin7.h: New.
+	* config/rs6000/darwin8.h: New.
+	* doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
+	(-mmacosx-version-min): Document.
+
+2005-07-07  Ian Lance Taylor  <ian@airs.com>
+
+	* config/mips/mips.md (abs<mode>2) [GPR]: Remove.
+
+2005-07-07  John David Anglin  <dave.anglin@nrc-crc.gc.ca>
+
+	PR middle-end/22239
+	* loop.c (loop_givs_rescan): Check that v->new_reg is a REG.
+
+2005-07-07  Khem Raj  <kraj@mvista.com>
+
+	* config/arm/arm.c (thumb_output_function_prologue): Calculate offset
+	in bytes, not words.
+
+2005-07-07  Paul Brook  <paul@codesourcery.com>
+
+	* config/arm/arm.c (arm_pad_arg_upward): Compare return value of
+	DEFAULT_FUNCTION_ARG_PADDING to upward.
+
+2005-07-07  Richard Henderson  <rth@redhat.com>
+
+	* function.c (locate_and_pad_parm): Record parameter alignment in
+	stack_alignment_needed.
+
+2005-07-07  David Edelsohn  <edelsohn@gnu.org>
+
+	* config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
+	UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
+	(UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
+	UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
+	(define_attr "type"): Add isync, sync, load_l, store_c.
+	* config/rs6000/sync.md (memory_barrier): Change to define_expand.
+	Create scratch volatile MEM.
+	(sync_internal): New.  POWER mnemonic is dcs, not ics.  Attribute
+	sync.
+	(load_locked_<mode>): New.
+	(store_conditional_<mode>): New.
+	(sync_compare_and_swap<mode>): Replace with splitter.
+	(sync_lock_test_and_set<mode>): Replace with splitter.
+	(sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
+	and UNSPECV_ISYNC.
+	(isync): Change to unspec_volatile UNSPECV_ISYNC.  POWER mnemonic
+	is ics.  Attribute isync.
+	(lwsync): Change to unspec_volatile UNSPECV_LWSYNC.  Attribute
+	lwsync.
+	* config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
+	and UNSPECV_SYNC_OP.
+	(emit_unlikely_jump): New.
+	(emit_load_locked): New.
+	(emit_store_conditional): New.
+	(rs6000_split_compare_and_swap): New.
+	(rs6000_split_lock_test_and_set): New.
+	(is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
+	TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
+	* config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
+	rs6000_split_lock_test_and_set): Declare.
+	* config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
+	mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
+	store_c, isync, sync.
+
+2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>
+
+	* Makefile.in (echo_quoted_to_gtyp): New template for outputing
+	filenames to gtyp-gen.h.
+	(s-typ-gen): Use it in place of for loops.
+
+2005-07-07  J"orn Rennecke <joern.rennecke@st.com>
+
+	* hooks.c (hook_bool_rtx_int_false): New function.
+	* hooks.h (hook_bool_rtx_int_false): Declare.
+	* target-def.h (TARGET_COMMUTATIVE_P): Define.
+	(TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
+	* target.h (struct gcc_target): Add commutative_p member.
+	* targhooks.c (hook_bool_rtx_commutative_p): New function.
+	* targhooks.h (hook_bool_rtx_commutative_p): Declare.
+	* pa.c (TARGET_COMMUTATIVE_P): Redefine.
+	(pa_commutative_p): New function.
+	* jump.c (target.h): Include.
+	(rtx_renumbered_equal_p): Use targetm.commutative_p.
+	* doc/tm.texi: Document TARGET_COMMUTATIVE_P.
+
+2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
+
+	* config/s390/s390-protos.h (s390_expand_clrmem): Delete.
+	(s390_expand_setmem): New.
+	* config/s390/s390.c: Likewise. 
+	(print_shift_count_operand): Truncate to 12 bits instead of 6.
+	Adapt comments.
+	* config/s390/s390.md: ("setmem<mode>"): Accept character as
+	general_operand.  Call new function "s390_expand_setmem".
+	("clrmem_long", "*clrmem_long"): Rewrite to ...
+	("setmem_long", "*setmem_long"): ... this.
+
+2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
+	
+	* config/s390/s390.c: (optimization_options): Enable
+	TARGET_MVCLE at -Os.
+	* doc/invoke.texi: Document changes in default behaviour.
+	* config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".
+
+2005-07-07  Adrian Straetling  <straetling@de.ibm.com>
+
+	* expr.c: (set_storage_via_setmem): Convert opchar to mode
+	defined by back-end.
+
+2005-07-07  Jakub Jelinek  <jakub@redhat.com>
+
+	* config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
+	all sets in the pattern.
+	* config/rs6000/rs6000.md (stack_protect_testsi,
+	stack_protect_testdi): Likewise.
+
+2005-07-06  Jeff Law  <law@redhat.com>
+
+	* tree-vrp.c (simplify_using_ranges): Kill.
+	(vrp_finalize): Remove call to simplify_using_ranges.
+	(simplify_stmt_using_ranges): New function extracted from
+	simplify_using_ranges.
+	(simplify_div_or_mod_using_ranges): Likewise.
+	(simplify_abs_using_ranges): Likewise.
+	(simplify_cond_using_ranges): New function.
+	* tree-flow.h (simplify_stmt_using_ranges): Prototype.
+	* tree-ssa-propagate.c (substitute_and_fold): Call
+	simplify_stmt_using_ranges if we have range information.
+
+2005-07-06  James E. Wilson  <wilson@specifixinc.com>
+
+	* config/ia64/ia64.c (ia64_reorg): Check optimize before
+	ia64_flag_schedule_isns2.
+
+	* config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
+	reading/writing general registers.
+	(ia64_function_arg): Revert 2005-06-18 change.
+
+2005-07-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
+
+	* pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
+	(legitimize_tls_address): Use gcc_unreachable instead of abort.
+
+2005-07-06  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	* function.c (expand_function_end): Revert part of 2005-06-27
+	patch.  Do sjlj_emit_function_exit_after after return_label.
+
+2005-07-06  Kazu Hirata  <kazu@codesourcery.com>
+
+	* doc/install.texi (--disable-libssp): New.
+
+2005-07-06  Fariborz Jahanian <fjahanian@apple.com>
+
+        * doc/invoke.texi: Update -fforce-mem documentation.
+        * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove 
+        code for -fforce-mem.
+        * expmed.c: (store_bit_field,store_fixed_bit_field,
+        extract_bit_field): Ditto.
+        * expr.c: (convert_move): Ditto.
+        * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
+        expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
+        emit_conditional_add,expand_float,expand_fix): Ditto.
+        * opts.c: (decode_options): Remove setting of flag_force_mem flag.
+        (common_handle_option): Issue warning when -fforce-mem specified.
+
+2005-07-06  Paul Brook  <paul@codesourcery.com>
+
+	* aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
+	argument is empty.
+	* configure: Regenerate.
+
+2005-07-06  J"orn Rennecke <joern.rennecke@st.com>
+
+	* sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.
+
 2005-07-06  Daniel Berlin  <dberlin@dberlin.org>
 
 	Fix PR tree-optimization/22319
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2005-07-05 16:22:36.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2005-07-09 17:40:05.000000000 +0000
@@ -1,3 +1,64 @@
+2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	* cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
+	decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
+	(cp_init_ts): Call init_shadowed_var_for_decl.
+	Remove include of gt-cp-cp-lang.h.
+	* cp-objcp-common.c (shadowed_var_for_decl,
+	decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
+	cp-lang.c.
+	(init_shadowed_var_for_decl): New function to initialize
+	shadowed_var_for_decl.
+	Include gt-cp-cp-objcp-common.h.
+	* Make-lang.in (gt-cp-lang.h): Remove.
+	(gt-cp-cp-objcp-common.h): Add.
+	(cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
+	(cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
+	* config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
+	* cp-tree (init_shadowed_var_for_decl): Add prototype.
+
+2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
+	
+	* Make-lang.in: Add gt-cp-lang.h.
+	(cp-lang.o): Ditto.	
+	* class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
+	the field.
+	* config-lang.in: Add cp-lang.c to gtfiles.
+	* cp-lang.c: Include hashtab.h.
+	(cp_init_ts): New function.
+	(LANG_HOOK_INIT_TS): Use macro.
+	(decl_shadowed_for_var_lookup): New function.
+	(decl_shadowed_for_var_insert): Ditto.
+	* cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
+	(NON_THUNK_FUNCTION_CHECK): Ditto.
+	(DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
+	(DECL_INIT_PRIORITY): Ditto.
+	(DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
+	(DECL_SHADOWED_FOR_VAR): Use hashtable.
+	(SET_DECL_SHADOWED_FOR_VAR): Ditto.
+	* decl.c (duplicate_decls): Update for new/updated structures.
+	(poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
+	* decl2.c (start_static_initialization_or_destruction): Deal with
+	priority. 
+	* pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
+	SET_DECL_RTL.
+	* tree.c (handle_init_priority_attribute): Handle priority.
+
+2005-07-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+	PR c++/21799
+	* pt.c (type_unification_real): Add is_method argument.  Use it
+	for this pointer unification.
+	(fn_type_unification): Adjust type_unification_real call.
+	(unify): Likewise.
+
+2005-07-07  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* pt.c (type_unification_real): Remove allow_incomplete argument.
+	Remove unreachable code.
+	(fn_type_unification): Adjust call to type_unification_real.
+	(unify): Likewise.
+
 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
 
 	* Makefile.in (class.o, decl2.o): Adjust dependencies.


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]