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: 25280k -> 25100k
    Peak memory use before GGC: 9567k -> 9541k
    Peak memory use after GGC: 8915k -> 8897k
    Maximum of released memory in single GGC run: 2649k -> 2636k
    Garbage: 40061k -> 39800k
    Leak: 6741k -> 6735k
    Overhead: 5738k -> 5657k
    GGC runs: 313 -> 314

comparing combine.c compilation at -O1 level:
    Overall memory needed: 26900k -> 26892k
    Peak memory use before GGC: 17438k -> 17430k
    Peak memory use after GGC: 17259k -> 17251k
    Maximum of released memory in single GGC run: 2317k -> 2302k
    Garbage: 61618k -> 60977k
    Leak: 6882k -> 6875k
    Overhead: 7268k -> 7145k
    GGC runs: 387 -> 384

comparing combine.c compilation at -O2 level:
  Amount of produced GGC garbage increased from 81200k to 84971k, overall 4.64%
  Amount of memory still referenced at the end of compilation increased from 6974k to 6992k, overall 0.26%
    Overall memory needed: 26900k -> 26892k
    Peak memory use before GGC: 17441k -> 17435k
    Peak memory use after GGC: 17259k -> 17251k
    Maximum of released memory in single GGC run: 2409k -> 2397k
    Garbage: 81200k -> 84971k
    Leak: 6974k -> 6992k
    Overhead: 9887k -> 9818k
    GGC runs: 456 -> 450

comparing combine.c compilation at -O3 level:
  Ovarall memory allocated via mmap and sbrk decreased from 26900k to 25992k, overall -3.49%
  Peak amount of GGC memory allocated before garbage collecting increased from 18460k to 18548k, overall 0.48%
  Amount of produced GGC garbage increased from 111729k to 115911k, overall 3.74%
  Amount of memory still referenced at the end of compilation increased from 7056k to 7083k, overall 0.38%
    Overall memory needed: 26900k -> 25992k
    Peak memory use before GGC: 18460k -> 18548k
    Peak memory use after GGC: 18003k -> 17843k
    Maximum of released memory in single GGC run: 3561k -> 3544k
    Garbage: 111729k -> 115911k
    Leak: 7056k -> 7083k
    Overhead: 13486k -> 13349k
    GGC runs: 514 -> 507

comparing insn-attrtab.c compilation at -O0 level:
  Amount of memory still referenced at the end of compilation increased from 9909k to 10127k, overall 2.20%
    Overall memory needed: 80948k -> 80372k
    Peak memory use before GGC: 69509k -> 69292k
    Peak memory use after GGC: 45046k -> 44790k
    Maximum of released memory in single GGC run: 36220k -> 36009k
    Garbage: 146683k -> 144206k
    Leak: 9909k -> 10127k
    Overhead: 19751k -> 19011k
    GGC runs: 247 -> 244

comparing insn-attrtab.c compilation at -O1 level:
  Peak amount of GGC memory allocated before garbage collecting run decreased from 91301k to 85351k, overall -6.97%
    Overall memory needed: 108240k -> 105464k
    Peak memory use before GGC: 91301k -> 85351k
    Peak memory use after GGC: 80537k -> 79199k
    Maximum of released memory in single GGC run: 32511k -> 32294k
    Garbage: 290789k -> 288186k
    Leak: 10074k -> 10068k
    Overhead: 34651k -> 33735k
    GGC runs: 244 -> 240

comparing insn-attrtab.c compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 111024k to 107532k, overall -3.25%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 97745k to 89783k, overall -8.87%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 84231k to 81656k, overall -3.15%
    Overall memory needed: 111024k -> 107532k
    Peak memory use before GGC: 97745k -> 89783k
    Peak memory use after GGC: 84231k -> 81656k
    Maximum of released memory in single GGC run: 32084k -> 30744k
    Garbage: 346096k -> 336898k
    Leak: 10057k -> 10050k
    Overhead: 44310k -> 41373k
    GGC runs: 273 -> 266

comparing insn-attrtab.c compilation at -O3 level:
  Ovarall memory allocated via mmap and sbrk decreased from 111100k to 107636k, overall -3.22%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 97772k to 89809k, overall -8.87%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 84259k to 81683k, overall -3.15%
    Overall memory needed: 111100k -> 107636k
    Peak memory use before GGC: 97772k -> 89809k
    Peak memory use after GGC: 84259k -> 81683k
    Maximum of released memory in single GGC run: 32420k -> 31076k
    Garbage: 346734k -> 337514k
    Leak: 10061k -> 10054k
    Overhead: 44506k -> 41568k
    GGC runs: 279 -> 270

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Amount of memory still referenced at the end of compilation increased from 49471k to 49535k, overall 0.13%
    Overall memory needed: 118252k -> 118260k
    Peak memory use before GGC: 95028k -> 95027k
    Peak memory use after GGC: 94080k -> 94083k
    Maximum of released memory in single GGC run: 20299k -> 20342k
    Garbage: 223449k -> 222873k
    Leak: 49471k -> 49535k
    Overhead: 37085k -> 37086k
    GGC runs: 369 -> 368

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 108456k to 144940k, overall 33.64%
  Peak amount of GGC memory allocated before garbage collecting increased from 95144k to 132081k, overall 38.82%
  Peak amount of GGC memory still allocated after garbage collectin increased from 93152k to 97084k, overall 4.22%
  Amount of produced GGC garbage decreased from 559402k to 471302k, overall -18.69%
    Overall memory needed: 108456k -> 144940k
    Peak memory use before GGC: 95144k -> 132081k
    Peak memory use after GGC: 93152k -> 97084k
    Maximum of released memory in single GGC run: 20158k -> 34997k
    Garbage: 559402k -> 471302k
    Leak: 53307k -> 52822k
    Overhead: 62173k -> 52713k
    GGC runs: 524 -> 474

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 111068k to 144940k, overall 30.50%
  Peak amount of GGC memory allocated before garbage collecting increased from 95144k to 132081k, overall 38.82%
  Peak amount of GGC memory still allocated after garbage collectin increased from 93153k to 97085k, overall 4.22%
  Amount of produced GGC garbage decreased from 686325k to 559126k, overall -22.75%
    Overall memory needed: 111068k -> 144940k
    Peak memory use before GGC: 95144k -> 132081k
    Peak memory use after GGC: 93153k -> 97085k
    Maximum of released memory in single GGC run: 20158k -> 34996k
    Garbage: 686325k -> 559126k
    Leak: 54387k -> 53715k
    Overhead: 75194k -> 61356k
    GGC runs: 606 -> 556

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 110768k to 147372k, overall 33.05%
  Peak amount of GGC memory allocated before garbage collecting increased from 96538k to 134525k, overall 39.35%
  Peak amount of GGC memory still allocated after garbage collectin increased from 94580k to 98387k, overall 4.03%
  Amount of produced GGC garbage decreased from 747363k to 580122k, overall -28.83%
    Overall memory needed: 110768k -> 147372k
    Peak memory use before GGC: 96538k -> 134525k
    Peak memory use after GGC: 94580k -> 98387k
    Maximum of released memory in single GGC run: 20582k -> 36138k
    Garbage: 747363k -> 580122k
    Leak: 55483k -> 54074k
    Overhead: 79253k -> 62465k
    GGC runs: 629 -> 563

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2006-03-09 13:46:57.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2006-04-05 20:02:23.000000000 +0000
@@ -1,3 +1,2222 @@
+2006-04-05  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/26919
+	* ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
+	to cgraph_estimate_size_after_inlining.
+
+2006-04-05  Alan Modra  <amodra@bigpond.net.au>
+
+	* reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
+
+2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
+
+	PR tree-optimization/26996
+	* tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
+	VECTOR_TYPE variables.
+
+2006-04-05  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/26763
+	* fold-const.c (fold_comparison): Move folding of
+	PTR + CST CMP PTR + CST ...
+	(fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
+
+2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
+
+	* doc/install.texi (Prerequisites): Refine some wording on
+	bootstrapping and ksh.
+	Move the version numbers of DejaGnu here from the testing section
+	and fix casing of names.
+	Fix markup and clarify wording for autogen requirements.
+	Refer to GCJ instead of just java.
+	Refer to SVN instead of CVS.
+	Describe diffutils as useful instead of necessary.
+	(Downloading the source): Refer to SVN instead of CVS.
+	Adjust a link to our web site accordingly.
+	(Configuration): Fix casing of Bison.
+	(Building): Refer to SVN instead of CVS.  
+	Fix a sentence on the use of Bison and remove duplicate (and
+	incorrect) version number of Bison requirement.
+	Remove one redundant list of packages needed for building.
+	(Specific): Avoid reference to CVS.
+
+2006-04-04  Eric Christopher  <echristo@apple.com>
+
+	* config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
+	(TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
+	(rs6000_handle_struct_attribute): New.
+	(rs6000_ms_bitfield_layout_p): Ditto.
+
+2006-04-04  Geoffrey Keating  <geoffk@apple.com>
+
+	* config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
+	NULL for dso parameter to atexit_common.
+
+2006-04-04  Eric Christopher  <echristo@apple.com>
+
+	* config/i386/i386.c (machopic_output_stub): Output \t
+	between instructions and operands.
+
+2006-04-04  David Edelsohn  <edelsohn@gnu.org>
+
+	* config/rs6000/rs6000.c (num_insns_constant_wide): Change
+	satisfies_constraint_[IL] to explicit tests on value.
+
+2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
+
+	* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
+	set_nb_iterations_in_loop): Use build_int_cst instead of
+	build_int_cst_type.
+	* tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
+	build_int_cst instead of convert.
+
+2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
+
+	* doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
+	new value 2 for incoming.
+	* function.c (expand_function_start): Call struct_value_rtx
+	with incoming as 2.
+	* config/sparc/sparc.md: Comment updated_return.
+	* config/sparc/sparc.opt: Add -mstd-struct-return option.
+	* config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
+	struct return if sparc_std_struct_return and incoming is 2.
+	(print_operand): Do not adjust return if
+	sparc_std_struct_return.
+
+2006-04-04  Roger Sayle  <roger@eyesopen.com>
+
+	* builtins.c (fold_builtin_sprintf): Use fold_convert instead of
+	convert in the middle-end.
+	* expr.c (store_expr, store_constructor, get_inner_reference,
+	expand_expr_real_1, string_constant, try_casesi, try_tablejump):
+	Likewise.
+	* tree.c (build_range_type): Likewise.
+
+2006-04-04  Tom Tromey  <tromey@redhat.com>
+
+	* doc/install.texi (Prerequisites): Mention jar.
+
+2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
+
+	* doc/tree-ssa.texi (Preserving the virtual ssa form): New
+	subsection.
+
+2006-04-04  Matthias Klose  <doko@debian.org>
+
+	* Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
+
+2006-04-03  Geoffrey Keating  <geoffk@apple.com>
+
+	* doc/extend.texi (Function Attributes): Rewrite visibility
+	attribute documentation.
+	* doc/invoke.texi (C++ Dialect Options): Rewrite
+	-fvisibility-inlines-hidden documentation to describe something
+	entirely different, although in practise compatible.
+	(Code Gen Options): Warn about system headers in -fvisibiltity=
+	documentation.
+
+	* doc/extend.texi (Other Builtins): Document that
+	__builtin_nan is a compile-time constant only when its argument
+	is valid.
+
+2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
+
+	* simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
+	trying to remove TRUNCATE check if all bits outside the new mode
+	are identical to the sign bit.
+
+2006-04-03  Jeff Law  <law@redhat.com>
+
+	* tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
+	and operand scanning in some common cases.
+
+2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
+	    Dale Johannesen  <dalej@apple.com>
+
+	PR target/19653
+	* regclass.c (struct reg_pref): Update documentation.
+	(regclass): Set prefclass to NO_REGS if memory is the best option.
+	(record_reg_classes): Cope with a prefclass set to NO_REGS.
+	* reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
+	into account.  For non-registers, equate an empty preferred
+	reload class to a `!' in the constraint; move the if clause to
+	do so after those that reject the insn.
+	(push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
+	return NO_REGS.
+	(find_dummy_reload): Likewise.
+	* doc/tm.texi (Register Classes): Document what it means
+	if PREFERRED_*_RELOAD_CLASS return NO_REGS.
+	* config/i386/i386.c (ix86_preferred_reload_class): Force
+	using SSE registers (and return NO_REGS for floating-point
+	constants) if math is done with SSE.
+	(ix86_preferred_output_reload_class): New.
+	* config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
+	* config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
+	* config/i386/i386.md: Remove # register preferences.
+
+2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
+
+	PR bootstrap/26992
+	* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
+	chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
+	the type of nb_iter.
+	(instantiate_parameters_1): Convert the operands before calling
+	chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
+	* tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
+
+2006-04-02  Roger Sayle  <roger@eyesopen.com>
+
+	* builtins.c (dummy_object): Use build_int_cst instead of convert.
+	* tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
+	instead of convert.
+	* dojump.c (do_jump): Likewise.
+	* expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
+	* gimplify.c (gimple_boolify, gimplify_init_constructor,
+	gimplify_boolean_expr): Likewise.
+	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
+	* varasm.c (array_size_for_constructor): Likewise.
+	* tree-object-size.c (compute_object_offset): Likewise.
+
+2006-04-02  Roger Sayle  <roger@eyesopen.com>
+
+	PR middle-end/26977
+	* expr.c (emit_group_store): Check whether simplify_gen_subreg returns
+	NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
+
+2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
+
+	PR tree-optimization/26939
+	* tree-chrec.c (chrec_merge): Use eq_evolutions_p.
+
+2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
+
+	* tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
+	at_stmt.  Convert the type of operands before calling
+	build_polynomial_chrec.
+	(add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
+	add_to_evolution_1.
+	(follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
+	(instantiate_parameters_1): Convert the type of operands before calling
+	build_polynomial_chrec.
+	* tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
+	chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
+	reset_evolution_in_loop): Insert asserts to check the types of the
+	operands.
+	(chrec_type): Moved...
+	(eq_evolutions_p): Use operand_equal_p.
+	* tree-chrec.h (build_polynomial_chrec): Insert an assert to check
+	the types of the operands.
+	(chrec_type): ...here.
+	* tree-data-ref.c (create_data_ref): Convert the operands before
+	calling chrec_replace_initial_condition.
+	(same_access_functions, analyze_subscript_affine_affine,
+	analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
+	(compute_subscript_distance, analyze_ziv_subscript,
+	analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
+	analyze_miv_subscript): Convert the operands before calling
+	chrec_fold_minus or chrec_fold_plus.
+
+2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
+
+	* tree-data-ref.c (compute_all_dependences): Use a pointer to
+	the dependence_relations vector.
+	(compute_data_dependences_for_loop): Adjust call to
+	compute_all_dependences.
+
+2006-04-01  Roger Sayle  <roger@eyesopen.com>
+	    Richard Henderson  <rth@redhat.com>
+
+	* gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
+	gimple_boolify on the condition before calling gimplify_expr.
+
+2006-03-31  Bob Wilson  <bob.wilson@acm.org>
+
+	* config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
+	to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
+	the frame size.  Update to use the new macros.
+	* config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
+	* config/xtensa/ieee754-df.S: Likewise.
+
+2006-03-31  Richard Henderson  <rth@redhat.com>
+
+	* tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
+	(make_edges): ... here.  Control fallthru creation with a local
+	variable.  Do not play with fake edges.
+	(make_omp_sections_edges): Don't set EDGE_ABNORMAL.
+	(make_goto_expr_edges): Don't play with fake edges.  Make for_call
+	a boolean.
+
+2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
+
+	* dwarf2.h (DW64_CIE_ID): Define.
+	* dwarf2out.c (DWARF_CIE_ID): Define.
+	(output_call_frame_info): Output 0xffffffff before standard 8-byte
+	length header.  Use DWARF_CIE_ID.
+	(value_format): Use DW_FORM_data4 or DW_FORM_data8 for
+	dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
+
+2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	* config/sh/linux-atomic.asm: New file.
+	* config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
+
+2006-03-31  DJ Delorie  <dj@redhat.com>
+
+	* config/m32c/cond.md: Set condition flags properly throughout.
+	* config/m32c/minmax.md: Likewise.
+	* config/m32c/prologue.md: Likewise.
+	* config/m32c/bitops.md: Likewise.
+	* config/m32c/muldiv.md: Likewise.
+	* config/m32c/mov.md: Likewise.
+	* config/m32c/addsub.md: Likewise.
+	* config/m32c/m32c.md: Likewise.
+	* config/m32c/jump.md: Likewise.
+	* config/m32c/shift.md: Likewise.
+
+	* config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
+	conditionally output the pattern for this.
+	* config/m32c/m32c.c (flags_needed_for_conditional): New.
+	(m32c_compare_redundant): New.
+	(m32c_output_compare): New.
+	* config/m32c/m32c-protos.h (m32c_output_compare): New.
+
+	* config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
+	dest, not src.  Allow other 4-byte modes.
+
+2006-03-30  Denis Chertykov  <denisc@overta.ru>
+
+	* doc/md.texi: Refer to avr/constraints.md instead of
+	avr/avr.h.
+
+2006-03-30  Roger Sayle  <roger@eyesopen.com>
+
+	* expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
+	signed vs. unsigned comparison failures on some hosts.
+
+2006-03-31  Alan Modra  <amodra@bigpond.net.au>
+
+	PR target/26459
+	* config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
+	change to FLOAT_REGS.
+
+	* config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
+	(rs6000_override_options): Use it.
+	(rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
+	only for -mabi=spe/no-spe and -mabi=altivec.
+
+2006-03-30  Geoffrey Keating  <geoffk@apple.com>
+
+	* config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
+	!Zdynamiclib.
+
+2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
+
+	* Makefile.in: Rename docdir to gcc_docdir.
+
+2006-03-30  Roger Sayle  <roger@eyesopen.com>
+
+	PR target/17959
+	* expr.c (emit_group_store):  Optimize group stores into a pseudo
+	register by using a paradoxical subreg to initialize the destination
+	if the first or last member of the group specifies a "low part".
+
+2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+	PR target/26734
+	* rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
+	* target.h (struct gcc_target.speculate_insn): Change type of the
+	second parameter to 'int'.
+	* lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
+	the second operand of the DEPS_LIST.
+	(copy_DEPS_LIST_list): Update reference	to the second operand of the
+	DEPS_LIST.
+	* rtl.h (alloc_DEPS_LIST): Update signature.
+	* sched-int.h (ds_t): Change typedef to 'int'.
+	(DEP_STATUS, BITS_PER_DEP_STATUS): Update.
+
+2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+	* haifa-sched.c (try_ready): Change condition to restore
+	non-speculative pattern	of the instruction.
+	(process_insn_depend_be_in_spec): Code to keep probability of the
+	speculative dependence non-decreasing.
+
+2006-03-30  Jie Zhang  <jie.zhang@analog.com>
+
+	* config/bfin/bfin.c (single_move_for_strmov): Renamed to...
+	(single_move_for_movmem): ... this. Also change all uses.
+	(bfin_expand_strmov): Renamed to...
+	(bfin_expand_movmem): ... this. Also change all uses.
+	* config/bfin/bfin.md (movstrsi): Renamed to...
+	(movstrsi): ...this.
+
+2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
+
+	PR tree-optimization/26830
+
+	* tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
+	(copy_prop_visit_stmt): Remove write-only variable ann.
+	(init_copy_prop): Check variable loop depth here.  Do not simulate
+	memory-tag and virtual operand PHIs except for store copy prop.
+
+2006-03-30  Richard Guenther  <rguenther@suse.de>
+
+	* config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
+	variants with double arguments.
+
+2006-03-29  David Edelsohn  <edelsohn@gnu.org>
+
+	* genpreds.c (write_tm_constrs_h): Delete variable p.
+	* genconditions.c (write_header): Add tm-constrs.h to included
+	headers.
+	* genpeep.c (main): Add toplev.h to included headers.
+	* Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
+	(build/genpeep.o): Add toplev.h dependency.
+	* config/rs6000/constraints.md: Add "W" constraint.
+
+2006-03-29  Roger Sayle  <roger@eyesopen.com>
+
+	* stor-layout.c (mode_for_size_tree): Remove restiction on type
+	sizes by correctly testing whether the size fits a host integer.
+	(initialize_sizetypes): Use set_min_and_max_values_for_integral_type
+	to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
+	SImode range for the default sizetype and bitsizetype.
+
+2006-03-29  Roger Sayle  <roger@eyesopen.com>
+
+	* convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
+	and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
+	quickly if the argument is already of the correct type.
+	Call fold_build1 instead of build1.  Tidy up blank lines.
+
+2006-03-29  David Edelsohn  <edelsohn@gnu.org>
+
+	* genemit.c (main): Add tm-constrs.h to included headers.
+	* genoutput.c (output_prologue): Add tm-constrs.h to included headers.
+	* genpeep.c (main): Add tm-constrs.h to included headers.
+	* genpreds.c (write_satisfies_constraint_fns): Rename to ...
+	(write_tm_constrs_h): this and write complete file.
+	(write_tm_preds_h): Do not emit satisfies_constraint fns.
+	(write_insn_preds_c): Add tm-constrs.h to included headers.
+	(gen_constrs): New variable.
+	(parse_option): Parse "-c".
+	(main): Invoke write_tm_constrs_h.
+	* genrecog.c (write_header): Add tm-constrs.h to included headers.
+	* Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
+	(object_out_file): Add tm-constrs.h dependency.
+	(insn-emit.o): Same.
+	(insn-output.o): Same.
+	(insn-peep.o): Same.
+	(insn-preds.o): Same.
+	(insn-recog.o): Same.
+	(tm-constsr.h): New target.
+	(s-constrs-h): New target.
+
+	* config/rs6000/constraints.md: New file.
+	* config/rs6000/rs6000.c: Include tm-constrs.h.
+	(num_insn_constant_wide): Convert to satisfies_constraint.
+	(rs6000_rtx_costs): Convert to satisfies_constraint.
+	* config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
+	(CONST_OK_FOR_LETTER_P): Delete.
+	(CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
+	(EXTRA_CONSTRAINT): Delete.
+	(EXTRA_MEMORY_CONSTRAINT): Delete.
+	(EXTRA_ADDRESS_CONSTRAINT): Delete.
+	* config/rs6000/predicates.md: Convert to satisfies_constraint.
+	* config/rs6000/rs6000.md: Include constraints.md.  Convert to
+	satisfies_constraint.
+
+	* config/i386/i386.c: Include tm-constrs.h.
+
+2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
+
+	* tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
+	* tree-data-ref.c (find_data_references_in_loop,
+	compute_data_dependences_for_loop): Use pointers to VEC.
+	(analyze_all_data_dependences): Adjust calls.
+	* tree-data-ref.h (find_data_references_in_loop,
+	compute_data_dependences_for_loop): Adjust declarations.
+	* tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
+	compute_data_dependences_for_loop.
+
+2006-03-29  Paul Brook  <paul@codesourcery.com>
+
+	* config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
+	(movdf_vfp): Ditto.
+
+2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
+
+	PR tree-optimization/26859
+	* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
+	division by zero.
+	(convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
+	for the step after fold_convert.
+
+2006-03-29  Paul Brook  <paul@codesourcery.com>
+
+	* reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
+	(inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
+
+2006-03-29  Paul Brook  <paul@codesourcery.com>
+
+	PR middle-end/23623
+	* targhooks.c (default_narrow_bitfield): New fuction.
+	* targhooks.h (default_narrow_bitfield): add prototype.
+	* target.h (gcc_target): Add narrow_volatile_bitfield.
+	* target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
+	* stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
+	* doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
+	* config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
+
+2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
+	tmake_file.
+	* config/s390/s390.c (S390_scalar_mode_supported_p): New function.
+	(NR_C_MODES): Add TDmode, DDmode and SDmode.
+	(s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
+	(s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
+	(s390_function_arg_float): Allow SDmode and DDmode values to be
+	passed in floating point registers.
+	(s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
+	check with SCALAR_FLOAT_MODE_P.
+	(TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
+
+2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
+
+	PR tree-optimization/25985
+	* tree-ssa-loop-niter.c (number_of_iterations_le,
+	number_of_iterations_ne): Make comments more precise.
+	(number_of_iterations_cond): Add only_exit argument.  Use the
+	fact that signed variables do not overflow only when only_exit
+	is true.
+	(loop_only_exit_p): New.
+	(number_of_iterations_exit): Pass result of loop_only_exit_p to
+	number_of_iterations_cond.
+
+2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
+
+	PR tree-optimization/26643
+	* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
+	bit_field_refs.
+
+2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	* config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
+	(divsi3_i4_int): Likewise.
+
+2006-03-28  Roger Sayle   <roger@eyesopen.com>
+
+	* expr.c (emit_group_store): Only create a new pseudo reg if the
+	quantity it needs to hold isn't already a suitable pseudo.
+
+2006-03-28  Jeff Law  <law@redhat.com>
+
+	* timevar.def (TV_TREE_PHI_CPROP): New timevar.
+	* tree-ssa-dom.c (pass_phi_only_cprop): Use it.
+
+2006-03-28  Roger Sayle  <roger@eyesopen.com>
+
+	* fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
+	the equivalent ~X & Y, and the symmetry related transformations.
+	(fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
+	~X & Y, and symmetry related transforms.
+
+2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+	Revert my 2006-03-27 patches.
+
+2006-03-28  Roger Sayle  <roger@eyesopen.com>
+
+	* fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
+	~(T1)X, when T1 and T2 are integer types of the same precision
+	and (T2)X isn't an extension.
+
+2006-03-28  Jeff Law  <law@redhat.com>
+
+	PR tree-optimization/26796
+	* tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
+	need EH edge cleanups rather than purging them immediately.
+	(eliminate_degenerate_phis): Handle queued EH cleanups.
+
+2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
+
+	* tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
+	from parent_var.
+
+2006-03-27  Roger Sayle  <roger@eyesopen.com>
+
+	PR middle-end/22524
+	* fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
+	cast BIT_NOT_EXPR operand to the correct type.
+
+2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
+
+	* tree-loop-linear.c: Don't include varray.h.
+	(gather_interchange_stats, try_interchange_loops,
+	linear_transform_loops): Use VEC instead of VARRAY.
+	* lambda-mat.c: Don't include varray.h.
+	* tree-chrec.c: Same.
+	* lambda-trans.c: Same.
+	* tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
+	VEC instead of VARRAY.
+	* tree-vectorizer.h: Idem.
+	* tree-data-ref.c (dump_data_references,
+	dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
+	initialize_data_dependence_relation, finalize_ddr_dependent,
+	compute_all_dependences, find_data_references_in_loop,
+	compute_data_dependences_for_loop, analyze_all_data_dependences,
+	free_dependence_relation, free_dependence_relations,
+	free_data_refs): Idem.
+	* tree-data-ref.h (data_reference_p, subscript_p): New.
+	(data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
+	VEC instead of VARRAY.
+	(DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
+	(find_data_references_in_loop, compute_data_dependences_for_loop,
+	dump_ddrs, dump_dist_dir_vectors, dump_data_references,
+	dump_data_dependence_relations, free_dependence_relations,
+	free_data_refs): Adjust declaration.
+	(lambda_transform_legal_p): Move declaration here...
+	* tree-vect-analyze.c (vect_analyze_data_ref_dependences,
+	vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
+	vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
+	vect_analyze_data_refs): Use VEC instead of VARRAY.
+	* lambda.h (lambda_transform_legal_p): ...from here.
+	* lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
+	* tree-vect-transform.c (vect_update_inits_of_drs): Idem.
+	* Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
+	tree-chrec.o): Don't depend on VARRAY_H.
+
+2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+	* rtl.def (Copyright): Update date.
+	(DEPS_LIST): Change type of the second operand to 'int'.
+	* target.h (Copyright): Update date.
+	(struct gcc_target.speculate_insn): Change type of the second parameter
+	to 'int'.
+	* lists.c (Copyright): Update date.
+	(alloc_DEPS_LIST): Change signature.  Update reference to the second
+	operand of the DEPS_LIST.
+	(copy_DEPS_LIST_list): Update reference	to the second operand of the
+	DEPS_LIST.
+	* rtl.h (Copyright): Update date.
+	(alloc_DEPS_LIST): Update signature.
+	* sched-int.h (Copyright): Update date.
+	(ds_t): Change typedef to 'int'.
+	(DEP_STATUS, BITS_PER_DEP_STATUS): Update.
+
+2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+	* haifa-sched.c (Copyright): Update date.
+	(try_ready): Change condition to restore non-speculative pattern
+	of the instruction.
+	(process_insn_depend_be_in_spec): Code to keep probability of the
+	speculative dependence non-decreasing.
+
+2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+	* regrename.c (replace_oldest_value_addr): Initialize a variable to
+	shut up the compiler.
+
+2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
+
+	* config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
+	to use lib prefix for target.
+	($(T)libic_invalidate_array_4-200.a): Likewise.
+	($(T)libic_invalidate_array_4a.a): Likewise.
+
+2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
+	    J"orn Rennecke <joern.rennecke@st.com>
+
+	* superh.opt: New file.
+	* sh.c (boardtype, osruntime): Remove.
+	* superh.h (SUBTARGET_OPTIONS): Remove.
+	* config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
+
+	* config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
+	arguments with ^ and/or [].
+
+	* config.gcc (sh-*-*): Add quoting to account for quirk of
+	Solaris /bin/sh.
+	Replace == with = in enable_incomplete_targets test.
+
+	* config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
+	with MASK_LITTLE_ENDIAN.
+
+	* config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
+	* config/sh/sh.opt: Added to some comments.
+	* config/sh/superh.h: Removed some chaff.
+
+	* config/sh/sh.opt: Add m4-[1234]00* options.
+	* config/sh/sh.c (sh_handle_option): Likewise.
+	* config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
+	(ic_invalidate_array_4-100.o): New rule.
+	($(T)libic_invalidate_array_4-100.a): Likewise.
+	(ic_invalidate_array_4-200.o): Likewise.
+	($(T)libic_invalidate_array_4-200.a): Likewise.
+	(ic_invalidate_array_4a.o): Likewise.
+	($(T)libic_invalidate_array_4a.a): Likewise.
+	* config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
+	* config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
+	m4-200*, and m4a*.
+	* config/sh/crt1.asm: Merged in profiling code.
+	* config/sh/superh.h (STARTFILE_SPEC): Override.
+	* config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
+	Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
+	* config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
+
+	* t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
+	* config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
+	MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
+
+	* sh.opt (mpretend-cmove): New option.
+	* sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
+	* sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
+	(movsicc): Add TARGET_PRETEND_CMOVE code.
+
+2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/s390-protos.h (s390_hard_regno_mode_ok,
+	s390_class_max_nregs): New function prototypes.
+	* config/s390/s390.c (REGNO_PAIR_OK): New macro.
+	(s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
+	* config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
+	CLASS_MAX_NREGS): Macro bodies replaced by function calls.
+
+2006-03-26  Geoffrey Keating  <geoffk@apple.com>
+
+	* dwarf2out.c (add_location_or_const_value_attribute): Call
+	tree_add_const_value_attribute if nothing else works.
+	(reference_to_unused): New.
+	(rtl_for_decl_init): Use reference_to_unused to decide whether
+	to output an initializer.
+
+2006-03-27  Alan Modra  <amodra@bigpond.net.au>
+
+	PR target/26459
+	* config/rs6000/rs6000.md (DF reg move peephole): Prevent
+	peephole removing spe frob_di_df_2.
+
+2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
+
+	* tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
+	(subscript_dependence_tester_1): Declared.
+	(print_dir_vectors, print_dist_vectors): New.
+	(debug_data_dependence_relation): New.
+	(dump_data_dependence_relation): Print more details.
+	(initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
+	(analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
+	(save_dist_v, save_dir_v, add_outer_distances,
+	build_classic_dist_vector_1): New.
+	(build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
+	Don't test for lambda_vector_lexico_pos.
+	(same_access_functions, add_multivariate_self_dist,
+	add_other_self_distances, dir_from_dist): New.
+	(build_classic_dir_vector): Replace implementation almost identical to
+	build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
+	dir_from_dist.
+	(subscript_dependence_tester_1): New.
+	(subscript_dependence_tester): Handle the lexicographically negative
+	distance vectors by recomputing the dependence relation.
+	(compute_affine_dependence): Remove parameter loop_nest_depth.
+	(compute_self_dependence): Don't call compute_subscript_distance.
+	(compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
+	Add a parameter for the loop_nest.
+	(find_loop_nest_1, find_loop_nest): New.
+	(compute_data_dependences_for_loop): Compute the loop nest, and give
+	up if the nest is not well formed.
+	* tree-data-ref.h (loop_p): New.
+	(struct data_dependence_relation): Replace size_vect field with
+	loop_nest, a vec of loops.
+	(DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
+	(DDR_LOOP_NEST): New.
+	(print_dir_vectors, print_dist_vectors,
+	debug_data_dependence_relation): Declared.
+	(index_in_loop_nest): New.
+	* tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
+	DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
+	distance.
+
+2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
+
+	* simplify-rtx.c (simplify_relational_operation): Call
+	simplify_relational_operation_1 even if mode is VOIDmode.
+
+2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
+
+	PR tree-optimization/26804
+	* tree.h (DECL_CALL_CLOBBERED): New macro.
+	(tree_decl_common): Add call_clobbered_flag.
+	* tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
+	(mark_call_clobbered): Set DECL_CALL_CLOBBERED.
+	(clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
+	(mark_non_addressable): Ditto.
+	* tree-ssa.c (verify_call_clobbered): New function.
+	(verify_alias_info): Use it.
+	* tree-pass.h (pass_reset_cc_flags): New prototype.
+	* tree-ssa-alias.c (pass_reset_cc_flags): New structure.
+	(reset_cc_flags): New function.
+	* passes.c (init_optimization_passes): Call reset_cc_flags after
+	initializing referenced_vars.
+
+2006-03-25  Uros Bizjak  <uros@kss-loka.si>
+	    Roger Sayle  <roger@eyesopen.com>
+
+	PR middle-end/26717
+	* fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
+	to 1.0 for non-real operands. Implement A / A optimization for
+	complex operands.
+
+2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* config/i386/i386.c (size_cost): Correct the comment for
+	cost of storing fp registers.
+	(i386_cost): Likewise.
+	(i486_cost): Likewise.
+	(pentium_cost): Likewise.
+	(pentiumpro_cost): Likewise.
+	(k6_cost): Likewise.
+	(athlon_cost): Likewise.
+	(k8_cost): Likewise.
+	(pentium4_cost): Likewise.
+	(nocona_cost): Likewise.
+	(generic64_cost): Likewise.
+	(generic32_cost): Likewise.
+
+2006-03-24  Denis Chertykov  <denisc@overta.ru>
+
+	* config/avr/avr-protos.h (extra_constraint): Delete.
+	(extra_constraint_Q): New declaration.
+	* config/avr/constraints.md: New file.
+	* config/avr/avr.md: Include it.
+	(REG_X, REG_Y, REG_Z, REG_W): New constants.
+	(TMP_REGNO, ZERO_REGNO): Likewise.
+	(UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
+	* config/avr/avr.c (avr_reg_class_from_letter): Delete.
+	(extra_constraint): Delete.
+	(extra_constraint_Q): Test for memory constraint 'Q'.
+	* config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
+	(REG_CLASS_FROM_LETTER): Delete.
+	(CONST_OK_FOR_LETTER_P): Delete.
+	(CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
+	(EXTRA_CONSTRAINT): Delete.
+	(TMP_REGNO): Delete.
+	(ZERO_REGNO): Delete.
+
+2006-03-24  Jeff Law  <law@redhat.com>
+
+	* tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
+	directly.  Call mark_new_vars_to_rename slightly earlier.
+
+2006-03-24  Geoffrey Keating  <geoffk@apple.com>
+
+	* dwarf2out.c (is_c_family): Understand new DWARF3 language types.
+	(is_cxx): Likewise.
+	(gen_compile_unit_die): Use new language types for Objective-C and
+	Objective-C++.
+	(dwarf2out_decl): Use is_cxx rather than testing explicitly against
+	DW_LANG_C_plus_plus.
+
+	PR 26793
+	* config/t-darwin (crt3.o): Work around bug 26840.
+	* config/darwin-crt3.c: Rewrite.
+	* config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
+
+2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
+
+	* doc/invoke.texi: Document -femit-class-debug-always
+	* common.opt: Add -femit-class-debug-always.
+
+2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/s390.c (s390_decompose_address): Allow SImode for
+	index and base register.
+	(s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
+	print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
+	with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
+	REGNO_OK_FOR_INDEX_P.
+	* config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
+	ADDR_REGNO_P.
+	(REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
+	REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
+	REG_OK_FOR_BASE_P): Definitions removed.
+
+2006-03-24  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/26611
+	* gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
+	non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
+	set yet or weren't marked as local yet.
+
+2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+	* regrename.c (scan_rtx_address): Initialize a variable to shut up
+	the compiler.
+
+2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
+	(rs6000_legitimate_small_data_p): Delete.
+	* config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
+	(rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
+	and make static.  Add forward declaration.  Update uses.
+	(rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
+	of offsettable_memref_p.
+	* config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
+	Use rs6000_offsettable_memref_p instead of a less accurate predicate.
+
+2006-03-24  Jeff Law  <law@redhat.com>
+
+	* tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
+	around bug in immediate-use iterator.
+
+2006-03-24  Alan Modra  <amodra@bigpond.net.au>
+
+	PR target/26607
+	* config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
+	or __LITTLE_ENDIAN__.
+
+2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
+
+	* config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
+	* config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
+	* config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
+	* config/sh/sh.opt (mdiv=): Amend description.
+	* config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
+	(TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
+	(sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
+	SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
+	(OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
+	Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
+	* config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
+	(udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
+	TARGET_DIVIDE_CALL_FP.
+
+2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
+
+	* haifa-sched.c (choose_ready): Fix type of the local variable.
+	Move local variables.  Add comment.
+	(check_reg_live): Change signature.  Make callable from debugger.
+	* sched-int.h (check_reg_live): Update signature.
+	* sched-ebb.c (check_reg_live): Update parameters.
+	* sched-rgn.c (check_reg_live): Ditto.
+	(region_head_or_leaf_p): Check pointer before dereferencing.
+	* config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
+	before reload on optimization levels below 1.
+
+2006-03-23  Richard Henderson  <rth@redhat.com>
+
+	* config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
+	tls symbols.
+
+	PR target/26347
+	* config/alpha/predicates.md (local_symbolic_operand): Reject
+	weak symbols.
+
+2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	PR tree-opt/26795
+	* tree-ssa-pre.c (create_value_expr_from): Don't reject
+	expressions which have overflowed constants.
+
+2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
+
+	* cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
+
+2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
+
+	* cfgloopmanip.c (create_loop_notes): Removed.
+	* final.c (final_scan_insn): Do not handle loop notes.
+	* jump.c (squeeze_notes): Ditto.
+	* cfglayout.c (skip_insns_after_block,
+	duplicate_insn_chain): Ditto.
+	* cfgcleanup.c (rest_of_handle_jump2): Do not call
+	create_loop_notes.
+	* cfgloop.h (create_loop_notes): Declaration removed.
+
+2006-03-23  Richard Sandiford  <richard@codesourcery.com>
+
+	* varasm.c (output_constant_pool): Restore fnname and fndecl
+	arguments.
+	(assemble_start_function): Adjust call accordingly.
+	(assemble_end_function): Likewise.
+
+2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+	PR mudflap/26790
+	* tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
+
+	PR mudflap/26789
+	* tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
+
+2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+	PR driver/22600
+	* system.h (ICE_EXIT_CODE): New macro.
+	* diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
+	(diagnostic_action_after_output): Likewise.
+	* gcc.c (fatal_ice): New function.
+	(execute): Use it instead of fatal.
+	(fancy_abort): Likewise.
+	* doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
+
+2006-03-22  Jeff Law  <law@redhat.com>
+
+	* loop-unroll.c (analyze_iv_to_split_insn): Handle
+	iv_analyze_result returning false.
+
+2006-03-22  Jie Zhang  <jie.zhang@analog.com>
+
+	* config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
+
+2006-03-22  Richard Henderson  <rth@redhat.com>
+
+	PR middle-end/26084
+	* except.c (duplicate_eh_regions_0): New.
+	(duplicate_eh_region_1): Duplicate the children of the node as
+	well as the node itself.  Link them up properly.
+	(duplicate_eh_region_2): Merge into ...
+	(duplicate_eh_regions): ... here.  Take copy_region argument, and
+	copy only a sub-tree if asked.  Simplify copying and fixup.
+	(eh_region_outer_p): New.
+	* except.h (duplicate_eh_regions): Update decl.
+	(eh_region_outer_p): Declare.
+	* omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
+	(lower_omp_master): Likewise.
+	(lower_omp_ordered): Likewise.
+	* tree-cfg.c (struct move_stmt_d): Add new_label_map.
+	(move_stmt_r): Use it to remap labels.  Handle recursion vs
+	remap_decls_p properly.
+	(move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
+	(find_outermost_region_in_block): New.
+	(new_label_mapper): New.
+	(move_sese_region_to_fn): Copy eh information to the new function
+	properly.
+	* tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
+	argument.
+	* tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region


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]