This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
A recent patch increased GCC's memory consumption in some cases!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Wed, 05 Apr 2006 21:13:12 +0000
- Subject: 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.