OSDN Git Service

* doc/invoke.texi (Objective-C and Objective-C++ Dialect Options
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 5af6d55..c10eeae 100644 (file)
+2005-12-29  Mike Stump  <mrs@apple.com>
+
+       * doc/invoke.texi (Objective-C and Objective-C++ Dialect Options
+       -fobjc-exceptions): Don't imply this doesn't work with the GNU
+       runtime.
+
+2005-12-29  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * varasm.c (get_section): Use gcc_assert.
+
+2005-12-29  Paul Brook  <paul@codesourcery.com>
+
+       * config/m68k/m68k.h (RETURN_ADDR_RTX): Define.
+       * config/m68k/m68k.c (m68k_initial_elimination_offset): Remove FIXME.
+       Include offset due to FIRST_PARM_OFFSET.
+
+2005-12-29  Paul Brook  <paul@codesourcery.com>
+
+       * config/m68k/lb1sf68.asm (__cmpdf2): Fix typo in immediate mask.
+       Create wrapper and rename body...
+       (__cmpdf2_internal): ... to this.  Return correct value for unordered
+       result.
+       (__cmpsf2): Create wrapper and rename body...
+       (__cmpsf2_internal): ... to this.  Return corerct value for unordered
+       result.
+       (__eqdf2, __nedf2, __gtdf2, __gedf2, __ltdf2, __ledf2): Use
+       __cmpdf2_internal.
+       (__eqsf2, __nesf2, __gtsf2, __gesf2, __ltsf2, __lesf2): Use
+       __cmpsf2_internal.
+
+2005-12-29  Paul Brook  <paul@codesourcery.com>
+
+       * config/m68k/fpgnulib.c (__extendsfdf2): Handle negative zero.
+       (__truncdfsf2): Ditto.
+       (__extenddfxf2): Ditto.
+       (__truncxfdf2): Ditto.
+       * config/m68k/lb1sf68.asm (__addsf3): Return -0.0 for -0.0 + -0.0.
+       (__adddf3): Ditto.
+
+2005-12-29  Daniel Jacobowitz  <dan@codesourcery.com>
+       Paul Brook  <paul@codesourcery.com>
+
+       * config/m68k/m68k.c (m68k_output_pic_call): Don't use bsr.l for
+       !TARGET_68020.
+       * config/m68k/t-m68kelf (EXTRA_PARTS): Remove.
+       (EXTRA_MULTILIB_PARTS): Set.
+       * config/m68k/t-uclinux (EXTRA_PARTS): Remove.
+       (EXTRA_MULTILIB_PARTS): Set.
+
+2005-12-29  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/25572
+       * config/rs6000/rs6000.c (create_TOC_reference): Set regs_ever_live.
+
+2005-12-28  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config.gcc (mt-*-*): Add --with-arch support.
+       (--with): Print accepted options on error.
+       * config/mt/mt.h (OPTION_DEFAULT_SPECS): Define.
+
+       * config/mt/mt.c (DEF_VEC_P(basic_block),
+       DEF_VEC_ALLOC_P(basic_bloc,heap)): Remove from here.
+
+2005-12-28  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR tree-optimization/25394
+       * fold-const.c (fold_checksum_tree): Guard 
+       portions of checksumming with correct structure checks.
+
+2005-12-27  Kazu Hirata  <kazu@codesourcery.com>
+
+       * global.c, tree-ssa-pre.c: Move DEF_VEC_P(basic_block) and
+       DEF_VEC_ALLOC_P(basic_block,{gc,heap}) to ...
+       * basic-block.h: ... here.
+
+2005-12-27  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (int_const_binop): Return NULL_TREE when an expression
+       can't be evaluated at compile-time (instead of calling abort).
+       Return NULL_TREE for division (and modulus) by zero.
+       (const_binop):  Return NULL_TREE for floating point operators that
+       aren't handled by real_arithmetic.
+       (fold_binary):  Eliminate "wins" variable, and "binary" label, by
+       folding operators with constant operands early.  Assert that
+       operands are non-NULL.
+
+2005-12-27  Kazu Hirata  <kazu@codesourcery.com>
+
+       * tree-vrp.c (extract_range_from_binary_expr): Use
+       build_int_cst instead of fold_convert.
+
+2005-12-26  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/23171, c++/23172, c++/25417.
+       * c-decl.c (compound_literal_number): Remove.
+       (build_compound_literal): Use set_compound_literal_name.
+       * c-common.c (compound_literal_number): New variable.
+       (set_compound_literal_name): New function.
+       * c-common.h (set_compound_literal_name): Declare.
+       
+2005-12-26  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR tree-optimization/25125
+       * convert.c (convert_to_integer): Don't narrow the type of a
+       PLUX_EXPR or MINUS_EXPR if !flag_wrapv and the unwidened type
+       is signed.
+
+2005-12-26  Graham Stott  <graham.stott@btinternet.com>
+
+       PR middle-end/25568
+       * combine.c (simplify_shift_const_1 <case PLUS>):Fix enable-checking
+       rtl bootstrap failure.
+
+2005-12-25  Kazu Hirata  <kazu@codesourcery.com>
+
+       * final.c (compute_alignments): Make it static.
+       * gcse.c (gcse_main, bypass_jumps): Likewise.
+       * web.c (web_main): Likewise.
+       * output.h: Remove the prototype for compute_alignments.
+       * rtl.h: Remove the prototypes for web_main, gcse_main, and
+       bypass_jumps.
+
+2005-12-24  Roger Sayle  <roger@eyesopen.com>
+
+       * expr.c (force_operand): Use expand_fix and expand_float to
+       implement integer <-> FP conversions instead of convert_to_mode.
+
+2005-12-24  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/23171
+       * varasm.c (initializer_constant_valid_p): An ADDR_EXPR of a
+       CONSTRUCTOR is invalid.
+
+2005-12-23  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-pass.h (pass_eliminate_useless_stores): Remove.
+       * tree-ssa-pre.c (is_copy_stmt): Ditto.
+       (follow_copies_till_vuse): Ditto.
+       (do_eustore): Ditto.
+       (gate_eustores): Ditto.
+       (pass_eliminate_useless_stores): Ditto.
+       * passes.c (init_optimization_passes): Ditto.
+
+2005-12-23  Paolo Bonzini  <bonzini@gnu.org>
+
+        * combine.c (simplify_shift_const): Fix typo.  Use, whenever
+       applicable, simplify_const_binary_operation.
+
+        (simplify_shift_const): Leave only the fallback
+        case when no simplification is possible.  Extract to...
+        (simplify_shift_const_1): ... here.  Always create a new
+        RTX instead of substituting.  Remove the signed_count variable.
+        Return NULL_RTX if no substitution is possible.
+
+        (simplify_and_const_int): Leave only the fallback
+        case when no simplification is possible.  Extract to...
+        (simplify_and_const_int_1): ... here.  Always create a new
+        RTX instead of substituting.  Return NULL_RTX if no substitution
+        is possible.
+
+        (force_to_mode, simplify_comparison): Don't pass a non-NULL first
+        parameter to simplify_and_const_int and simplify_shift_const,
+        unless it is equal to the expected non-simplified result.
+
+2005-12-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/25005
+       * regrename.c (replace_oldest_value_reg): Use validate_change with
+       IN_GROUP set to 1 instead of doing direct modifications.
+       (copyprop_hardreg_forward_1): Likewise.  If any replace_oldest_*
+       replacements have been performed on an instruction, use
+       apply_change_group ().
+
+2005-12-23  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/arit.c (do_31div): Clarify what "31" refers to.
+       [L_divsi3] (__Udiv): Don't use as inline function.
+       [L_modsi3] (__Umod): Ditto.
+       (__Div): Rearrange to call do_31div directly instead of __Udiv.
+       (__Mod): Similarly regarding __Umod.
+
+       PR target/24342
+       * config/cris/cris.c (cris_split_movdx): Add REG_INC notes for
+       emitted insns with post-increments.
+       (cris_expand_epilogue): Ditto.
+
+2005-12-22  Jakub Jelinek  <jakub@redhat.com>
+           Richard Henderson  <rth@redhat.com>
+
+       Merge from gomp-branch.
+       * builtins.def: Move all DEF_SYNC_BUILTIN to ...
+       * sync-builtins.def: ... new file.
+       (BUILT_IN_FETCH_AND_ADD_16,
+       BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_16,
+       BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_16,
+       BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_16,
+       BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_16,
+       BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_16,
+       BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_16,
+       BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_16,
+       BUILT_IN_LOCK_RELEASE_16): New builtins.
+       * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
+       BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
+       * builtins.c (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
+       * c-common.c (enum c_builtin_type): Move to top-level from
+       c_common_nodes_and_builtins enum builtin_type.
+       (builtin_types): Move from c_common_nodes_and_builtins.
+       (def_fn_type): New.
+       (c_common_nodes_and_builtins): Use it.
+       (def_builtin_1): Check for error_mark_node.
+       (sync_resolve_size): Handle also 128 bit sync builtins.
+       * Makefile.in (BUILTINS_DEF): New.  Use it instead of builtins.def.
+
+       * config/i386/i386.h (x86_cmpxchg8b, x86_cmpxchg16b): New decls.
+       (TARGET_CMPXCHG8B, TARGET_CMPXCHG16B): Define.
+       * config/i386/i386.c (x86_cmpxchg8b, x86_cmpxchg16b): New variables.
+       * config/i386/sync.md (CASMODE, DCASMODE): New mode macros.
+       (doublemodesuffix, DCASHMODE): New mode attrs.
+       (sync_compare_and_swap<mode>): Change into expand, use CASMODE
+       instead of IMODE, if mode is wider than a word, expand into
+       sync_double_compare_and_swap*.
+       (*sync_compare_and_swap<mode>): New insn.
+       (sync_double_compare_and_swap<mode>): Likewise.
+       (*sync_double_compare_and_swapdi_pic): Likewise.
+       (sync_compare_and_swap_cc<mode>): Use CASMODE instead of IMODE, if
+       mode is wider than a word, expand into
+       sync_double_compare_and_swap_cc*.
+       (sync_double_compare_and_swap_cc<mode>): New insn.
+       (*sync_double_compare_and_swap_ccdi_pic): Likewise.
+
+2005-12-22  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/mmintrin.h (_mm_add_si64): Only define for SSE2.
+       (_mm_sub_si64): Likewise.
+       * config/i386/xmmintrin.h (_mm_shuffle_pi16, _m_pshufw): Likewise.
+
+2005-12-23  Alan Modra  <amodra@bigpond.net.au>
+
+       PR rtl-optimization/25432
+       * reload1.c (eliminate_regs_in_insn): Update insn code on
+       successfully re-recognizing modified insn.
+
+2005-12-22  Richard Guenther  <rguenther@suse.de>
+
+       * tree.c (tree_fold_gcd): Use build_int_cst where appropriate.
+       * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
+       * varasm.c (array_size_for_constructor): Likewise.
+       * fold-const.c (size_diffop, invert_truthvalue,
+       optimize_bit_field_compare, make_range, build_range_check,
+       fold_cond_expr_with_comparison, fold_truthop,
+       fold_single_bit_test_into_sign_test, fold_binary): Likewise.
+
+2005-12-22  Dale Johannesen  <dalej@apple.com>
+
+       * config/i386/sse.md (sse_movhlps):  Reverse operands for
+       2nd and 3rd alternatives.
+
+2005-12-22  Andrew Pinski <pinskia@physics.uc.edu>
+
+       PR tree-opt/25513
+       * tree-dfa.c (make_rename_temp): Set DECL_COMPLEX_GIMPLE_REG_P complex
+       variables.
+
+2005-12-22  Zdenek Dvorak <dvorakz@suse.cz>
+           Steven Bosscher <stevenb@suse.de>
+
+       * df.c (df_bitmaps_free): Only work for bbs for that structures are
+       allocated.
+       (df_bb_modify): Realloc tables to the new index.
+       (df_find_use): New function.
+       (df_find_def, df_reg_used): Handle subregs.
+       * df.h (df_find_use): Declare.
+
+       * loop-invariant.c: Include hashtab.h.
+       (struct invariant): Remove processed field, add eqto and reg fields.
+       (struct invariant_expr_entry): New.
+       (invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p,
+       hash_invariant_expr, eq_invariant_expr, find_or_insert_inv,
+       find_identical_invariants, merge_identical_invariants): New functions.
+       (create_new_invariant): Return the new invariant.  Initialize new
+       fields.
+       (find_invariants): Call merge_identical_invariants.
+       (get_inv_cost, best_gain_for_invariant, set_move_mark,
+       move_invariant_reg): Handle equivalent invariants.
+       * Makefile.in (loop-invariant.o): Add HASHTAB_H dependency.
+
+2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/23333
+       * c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if
+       number is a single digit '0'.
+
+2005-12-22  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR tree-optimization/23518
+       * fold-const.c (make_range): Don't move a constant to the
+       other side of the comparison if the type is signed and -fwrapv
+       is given.
+
+2005-12-22  Kazu Hirata  <kazu@codesourcery.com>
+
+       * tree-vrp.c (extract_range_from_binary_expr): Clean up uses
+       of vr0.type.
+
+2005-12-21  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR middle-end/24998
+       * config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and
+       _floatundisf.
+
+2005-12-21  Andrew Haley  <aph@redhat.com>
+
+       PR middle-end/25121
+       * recog.c (peephole2_optimize): Don't peephole any
+       RTX_FRAME_RELATED_P insns.
+
+2005-12-21  Kazu Hirata  <kazu@codesourcery.com>
+
+       * tree-data-ref.c (estimate_niter_from_size_of_data): Replace
+       fold_build2 with fold_binary.
+       * tree-ssa-ccp.c (visit_assignment, maybe_fold_stmt_addition):
+       Replace fold_build1 with fold_unary.
+       * tree-ssa-reassoc.c (optimize_ops_list): Replace fold_build2
+       with fold_binary.
+
+2005-12-21  Steven Bosscher  <stevenb@suse.de>
+
+       PR rtl-optimization/25196
+       * postreload-gcse.c (record_last_set_info): Notice stack pointer
+       changes in push insns without REG_INC notes.
+
+2005-12-21  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR tree-optimization/25382.
+       * tree-vrp.c (extract_range_from_binary_expr): Extract a range
+       from BIT_AND_EXPR.
+
+2005-12-21  Janis Johnson  <janis187@us.ibm.com>
+           Ben Elliston  <bje@au.ibm.com>
+
+       * configure.ac: Enable C extension for decimal float if invoked
+       with --enable-decimal-float.
+       * doc/install.texi (Configuration): Document it.
+       * configure, config.in: Regenerate.
+
+2005-12-20  Mike Stump  <mrs@apple.com>
+
+       * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Handle the
+       ambiguity between -seg_addr_table and -seg_addr_table_filename.
+       (WORD_SWITCH_TAKES_ARG): Likewise.
+       (LINK_SPEC): Likewise.
+
+2005-12-20  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * cfganal.c (flow_reverse_top_sort_order_compute):
+       Renamed to post_order_compute and additional parameter added which
+       allows the inclusion of entry and exit blocks into list.
+       (mark_dfs_back_edges): Fixed comment.
+       (flow_depth_first_order_compute): Renamed to
+       pre_and_rev_post_order_compute additional parameter added which
+       allows the inclusion of entry and exit blocks into list.
+       * global.c (set_up_bb_rts_numbers): Call to
+       flow_reverse_top_sort_order_compute renamed to
+       post_order_compute.
+       * var-tracking.c (vt_stack_adjustments): Fixed comment.
+       (vt_find_locations): Call to
+       flow_depth_first_order_compute renamed to
+       pre_and_rev_post_order_compute.
+       * cfgloop.c (flow_find_loops): Ditto.
+       * tree-ssa-reassoc.c (init_reassoc): Ditto.
+       * df.c (df_analyze_1, df_analyze_subcfg): Calls to
+       flow_reverse_top_sort_order_compute renamed to post_order_compute
+       and calls to flow_reverse_top_sort_order_compute renamed to
+       post_order_compute.
+       * basic_block.h: Ditto.
+
+
+2005-12-20  Roger Sayle  <roger@eyesopen.com>
+           Paolo Bonzini  <bonzini@gnu.org>
+
+       PR rtl-optimization/25115
+       * gcse.c (pre_insert_copy_insn): Fall back to the sole
+       SET in the insn if there is no SET for an
+       expression that is equivalent to EXPR.
+
+2005-12-20  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/24306
+       * builtins.c (std_gimplify_va_arg_expr): Do not align
+       va frame for zero sized types.
+       * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
+
+2005-12-20  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR tree-optimization/25501
+       * tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is
+       used in the PHI argument corresponding to the edge from BB to
+       DEST.
+
+2005-12-20  Richard Guenther  <rguenther@suse.de>
+
+       Revert
+       2005-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (mark_used_vars): New function.
+       (dump_function_to_file): Dump only used VAR_DECLs.
+
+2005-12-19  Roger Sayle  <roger@eyesopen.com>
+
+       * combine.c (try_combine): Improve splitting of binary operators
+       by taking advantage of reassociative transformations.
+
+2005-12-19  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (thread_across_edge): Do not use local_fold.
+       Strip away all type conversions after simplifying the
+       condition.
+
+       * tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some
+       cases the forwarder block dominates the destination.
+
+2005-12-19  DJ Delorie  <dj@redhat.com>
+
+       * reload1.c (spill_failure): Dump reload data to dump file.
+       (find_reload_regs): Likewise.
+
+2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR tree-optimization/24793
+       * tree-ssa-loop-ivopts.c (get_ref_tag): Remember the
+       original reference if there are subvars.
+       * tree-ssa-operands.c (get_tmr_operands): Handle subvars.
+
+2005-12-19  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow):
+       Corrected basic block number calculations for changes in entry and
+       exit numbering.
+       
+2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * tree-flow.h (struct var_ann_d): Change type of
+       may_aliases field to VEC(tree, gc) *.
+       (may_aliases): Declaration changed.
+       * tree-ssa-alias.c (group_aliases, add_may_alias,
+       replace_may_alias, dump_may_aliases_for,
+       is_aliased_with, add_type_alias, new_type_alias):
+       Work with VEC(tree, gc) * instead of varray.
+       * tree-flow-inline.h (may_aliases): Ditto.
+       * tree-ssa.c (verify_flow_insensitive_alias_info,
+       verify_name_tags): Ditto.
+       * tree-ssa-operands.c (add_stmt_operand): Ditto.
+
+2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
+
+       * cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd
+       comes back.
+
+2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
+
+       * struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p
+       check.
+
+2005-12-19  Ben Elliston  <bje@au.ibm.com>
+
+       * doc/install.texi (Configuration): Typo in Fortran subheading.
+
+2005-12-19  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/mt/mt.md (decrement_and_branch_until_zero): Add another
+       scratch.  Correct its reload split. Adjust its peephole.
+       (doloop_end): Add additional scratch.
+       (nop): Use 'nop'.
+       * config/mt/mt.c (MT_INT_ARG_FIRST): Remove.
+       (mt_asm_output_opcode, mt_print_operand): Use 'nop'.
+       (mt_function_arg_slotno): Use FIRST_ARG_REGNUM.
+       (mt_builtin_saveregs): Replace with ...
+       (mt_setup_incoming_varargs): ... here.  Save just the varadic
+       args.
+       (mt_va_start): Remove.
+       (mt_reorg_hazard): Ignore USE insns.  Don't call set_noop_p.
+       (mt_machine_reorg): Split all insns here.
+       (TARGET_SETUP_INCOMING_VARARGS): Override.
+       * config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only.
+       Set to CPU type.
+       (EXPAND_BUILTIN_VA_START): Remove.
+
+2005-12-17  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * flow.c (update_life_info, count_or_remove_death_notes): Fixed
+       latent bug that could happen if update_life_info was called with a
+       blocks parameter and the call to cleanup_cfg actually deleted one
+       of those blocks. 
+
+2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * tree-ssa-structalias.c (update_alias_info): Remove handling
+       of may_be_aliased (SSA_NAME_VAR (op)) case.
+
+2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * tree-flow.h (struct stmt_ann_d): Remove
+       makes_aliased_loads and makes_aliased_stores fields.
+       * tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores
+       and makes_aliased_loads fields.
+       * tree-ssa-dom.c (eliminate_redundant_computations): Do not
+       use makes_aliased_stores.
+       * tree-ssa-operands.c (clobbered_aliased_loads,
+       clobbered_aliased_stores, ro_call_aliased_loads): Removed.
+       (build_ssa_operands, add_stmt_operand, add_call_clobber_ops,
+       add_call_read_ops): Do not set makes_aliased_stores and
+       makes_aliased_loads fields.
+       * tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores
+       field.
+
+2005-12-18  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/darwin.h: Don't include darwin-sections.def to declare
+       global variables; instead create darwin_section_enum.
+       (darwin_section_enum): New.
+       (darwin_sections): New.
+       * config/darwin.c: Don't include darwin-sections.def to define
+       global variables.
+       (darwin_sections): New.
+       (output_objc_section_asm_op): Rewrite to take advantage of
+       darwin_sections.
+       (darwin_init_sections): Rewrite to use darwin_sections.
+       (machopic_output_indirection): Update for darwin_sections array.
+       (machopic_select_section): Likewise.
+       (machopic_select_rtx_section): Likewise.
+       (machopic_asm_out_constructor): Likewise.
+       (machopic_asm_out_destructor): Likewise.
+       (darwin_file_end): Likewise.
+       * config/rs6000/rs6000.c (machopic_output_stub): Likewise.
+       * config/i386/i386.c (machopic_output_stub): Likewise.
+
+2005-12-18  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/25481
+       * tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we
+       don't have a varinfo for.
+
+2005-12-18  Jon Grimm  <jgrimm2@us.ibm.com>
+           Janis Johnson  <janis187@us.ibm.com>
+           Ben Elliston  <bje@au.ibm.com>
+
+       * optabs.c (init_floating_libfuncs): Handle decimal float modes.
+       (init_optabs): Handle libfuncs for decimal float.
+       * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
+       * stor-layout.c (int_mode_for_mode): Likewise.
+       * simplify-rtx.c (simplify_immed_subreg): Likewise.
+       (simplify_unary_operation_1): Skip optimisations for decimal float
+       modes.
+       * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
+       * emit-rtl.c (gen_const_vector): Add assertion check.
+       (init_emit_once): Populate const_tiny_rtx with constants in each
+       decimal float mode.
+       * expmed.c (extract_high_half, expand_mult_highpart_optab,
+       expand_mult_highpart): Assert that mode is not a scalar float
+       mode.
+       * expr.c (convert_move): Handle conversion between decimal and
+       binary floats of the same size.
+       * convert.c (convert_to_real): Consider decimal float types when
+       folding.
+       * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
+       describe decimal floating point types.
+       
+2005-12-18  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       PR rtl-optimization/21041
+       * reload.c (find_reloads_subreg_address): Replace paradoxical
+       subreg of MEM by widened access only if the resulting memory
+       is properly aligned, even on !STRICT_ALIGNMENT targets.
+
+2005-12-18  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks.
+
+2005-12-18  Steven Bosscher  <stevenb@suse.de>
+
+       * gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from
+       the 2005-12-17 patch to renumber the entry and exit blocks.
+
+2005-12-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * doc/objc.texi (Type encoding): Fix typo.
+
+2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * tree-tailcall.c (find_tail_calls): Use XNEW.
+       * tree-ssa-dom.c (allocate_edge_info): Use XCNEW.
+       (free_all_edge_infos): Use explicit cast to convert from void *.
+       (vrp_free): Likewise.
+       (dom_opt_finalize_block): Likewise.
+       (record_equivalences_from_incoming_edge): Likewise.
+       (thread_across_edge): Likewise.  Use XCNEWVEC.
+       (record_cond): Use XCNEW.
+       (record_conditions): Use XNEWVEC.
+       (record_edge_info): Use XCNEWVEC.
+       (lookup_avail_expr): Use XNEW.
+       (record_range): Likewise.  Use GGC_NEW.
+       * tree-nested.c (var_map_hash): Use explicit cast to convert from
+       void *.
+       (var_map_eq): Likewise.
+       (lookup_field_for_decl): Likewise.
+       (convert_nonlocal_reference): Likewise.
+       (convert_local_reference): Likewise.
+       (convert_nl_goto_reference): Likewise.
+       (convert_nl_goto_receiver): Likewise.
+       (convert_call_expr): Likewise.
+       (convert_tramp_reference): Likewise.
+       (lookup_tramp_for_decl): Likewise.Use GGC_NEW.
+       (convert_nl_goto_reference): Likewise.
+       (lookup_field_for_decl): Use GGC_NEW.
+       (create_nesting_tree): Use GGC_CNEW.
+       * tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC.
+       * tree-ssa-alias.c (init_alias_info): Use XCNEW.
+       (create_alias_map_for): Likewise.
+       (setup_pointers_and_addressables): Use XCNEWVEC.
+       (get_ptr_info): Use GGC_NEW.
+       (used_part_map_eq): Use explicit cast to convert from void *.
+       (up_lookup): Likewise.
+       (up_insert): Use XNEW.
+       (get_or_create_used_part_for): Use XCNEW.
+       (get_tmt_for): Likewise.
+       * tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW.
+       * tree-ssa-pre.c (phi_trans_add): Use XNEW.
+       (bitmap_set_new): Use explicit cast to convert from void *.
+       (set_new): Likewise.
+       (insert_into_set): Likewise.
+       (pool_copy_list): Likewise.
+       (phi_translate): Likewise.
+       (create_value_expr_from): Likewise.
+       (insert_aux): Use XCNEWVEC.
+       (compute_avail): Use XNEWVEC.
+       * tree-ssa-live.c (calculate_live_on_entry): Likewise.
+       (sort_coalesce_list): Likewise.
+       (build_tree_conflict_graph): Use XCNEWVEC.
+       * tree-ssa-dce.c (tree_dce_init): Use XNEWVEC.
+       * tree-ssa-copy.c (init_copy_prop): Likewise.
+       (fini_copy_prop): Likewise.
+       * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW
+       and XCNEWVEC.
+       (record_equiv): Use XNEW.
+       (uncprop_into_successor_phis): Use explicit cast to convert from
+       void *.
+       (uncprop_initialize_block): Likewise.
+
+2005-12-18  Dorit Nuzman  <dorit@il.ibm.com>
+
+       PR tree-optimization/24378      
+       * tree-vect-transform.c (vect_transform_loop): Create single-predecessor
+       basic-block after loop-versioning. 
+
+2005-12-18  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code
+       to simplify SWITCH_EXPR_CODE moved from here to ...
+       * tree-ssa-forwprop.c (simplify_switch_expr): Here.
+       (tree-ssa-forward_propagate_single_use_vars): Call
+       simplify_switch_expr when appropriate.
+
+2005-12-17  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * doc/objc.texi (Type encoding): Add documentation about encoding
+       complex types and _Bool.
+
+2005-12-17  Paul Brook  <paul@codesourcery.com>
+
+       * config/m68k/m68k.md (m68k_output_function_prologue): Always call
+       dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset
+       when frame_pointer_needed. 
+
+2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * tree-vn.c (vn_add): Use XNEW.
+       * tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC.
+       (ccp_fold): Likewise.
+       (fold_stmt_r): Use explicit cast to convert from void *.
+       * tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC.
+       (new_temp_expr_table): Likewise.
+       * gimplify.c (lookup_tmp_var): Use XNEW.
+       (gimplify_asm_expr): Use explcit cast to convert from void *.
+       * tree-into-ssa.c (get_ssa_name_ann): Likewise.
+       (get_def_blocks_for): Use XNEW.
+       (add_to_repl_tbl): Likewise.
+       (mark_def_sites): Use explicit cast to convert from void *.
+       (def_blocks_free): Likewise.
+       (mark_def_sites_initialize_block): Likewise.
+       (update_ssa): Use XNEWVEC.
+       * tree-dfa.c (create_var_ann): Use GGC_NEW.
+       (create_stmt_ann): Likewise.
+       (create_tree_ann): Likewise.
+       (referenced_var_insert): Likewise.
+       (set_default_def): Likewise.
+       (referenced_var_lookup_if_exists): Use explicit cast to convert
+       from void *.
+       (referenced_var_lookup): Likewise.
+       (default_def): Likewise.
+       (set_default_def): Likewise.
+       * tree-cfg.c (create_bb): Likewise.
+       (edge_to_cases_cleanup): Likewise.
+       (verify_node_sharing): Likewise.
+       (record_switch_edge): Use XNEW.
+       (cleanup_dead_labels): Use XCNEWVEC.
+       (tree_duplicate_sese_region): Use XNEWVEC.
+       * tree-scalar-evolution.c (get_instantiated_value): Likewise.
+       * tree-ssa.c (verify_ssa): Use XCNEWVEC.
+       (int_tree_map_eq): Use explicit cast to convert from void *.
+       * libgcov.c (gcov_exit): Use explicit cast to convert from void *.
+       (__gcov_execl): Likewise.
+       (__gcov_execlp): Likewise.
+       (__gcov_execle): Likewise.
+       * tree-eh.c (struct_ptr_eq): Likewise.
+       (struct_ptr_hash): Likewise.
+       (lookup_stmt_eh_region_fn): Likewise.
+       (outside_finally_tree): Likewise.
+       (find_goto_replacement): Likewise.
+       (make_eh_edge): Likewise.
+       (mark_eh_edge): Likewise.
+       (add_stmt_to_eh_region_fn): Use GGC_NEW.
+       (record_in_finally_tree): Use XNEW.
+       (maybe_record_in_goto_queue): Use XRESIZEVEC.
+       (lower_try_finally_copy): Use XCNEWVEC.
+
+2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * tree-inline.c (copy_body_r): Use explicit cast when converting
+       from void *.
+       (copy_bb): Likewise.
+       (copy_edges_for_bb): Likewise.
+       (remap_decl_1): Likewise.
+       (estimate_num_insns_1): Likewise.
+       * cgraph.c (hash_node): Use explicit cast when converting from
+       void *.
+       (eq_node): Likewise.
+       (cgraph_create_node): Use GGC_CNEW.
+       (cgraph_create_edge): Use GGC_NEW.
+       (cgraph_remove_node): Use explicit cast when converting from void *.
+       (hash_varpool_node): Likewise.
+       (eq_varpool_node): Likewise.
+       (cgraph_varpool_node): Use GGC_CNEW.
+       * lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
+       * tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
+       (eq_scev_info): Use explicit cast when converting from void *.
+       (find_var_scev_info): Likewise.
+       (set_instantiated_value): Likewise.
+       (gather_stats_on_scev_database_1): Likewise.
+       * cfgloop.h (simple_loop_desc): Use explicit cast when converting
+       from void *.
+       * c-pch.c (c_common_write_pch): Use XNEWVEC.
+       (c_common_read_pch): Likewise.
+       * prefix.c (save_string): Use XNEWVEC.
+       (translate_name): Use explicit cast when converting from void *.
+       * c-ppoutput.c (print_line): Use explicit cast when converting
+       from void *.
+       (pp_dir_change): Likewise.
+       * c-cppbuiltin.c (builtin_define_std): Likewise.
+       (builtin_define_with_value): Likewise.
+       (builtin_define_with_value_n): Likewise.
+       (builtin_define_with_int_value): Likewise.
+       (builtin_define_type_max): Likewise.
+       * c-incpath.c (add_env_var_paths): Use XNEWVEC.
+       (add_path): Use XNEW.
+       * c-format.c (check_format_info_main): Use GGC_NEW.
+       (format_type_warning): Use explicit cast when converting from void *.
+       * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
+       xmalloc. 
+       (start_init): Likewise.
+       * tree-flow-inline.h (first_referenced_var): Use explicit cast
+       when converting from void *.
+       (next_referenced_var): Likewise.
+       * c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc.
+       * gensupport.c (lookup_predicate): Use explicit cast to convert
+       from void *.
+       (init_predicate_table): Use XCNEW instead of xcalloc.
+       * genpreds.c (process_define_predicate): Likewise.
+
+2005-12-17  Danny Berlin <dberlin@dberlin.org>
+           Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * basic-block.h: Changed basic block numbering so that the entry
+       block is 0 and the exit block is 1.  Changed insn iterators so
+       that they are tolerant of blocks with no insns.
+       * regrename.c (copyprop_hardreg_forward): Changed basic block
+       numbering so that the entry block is 0 and the exit block is 1.
+       * sched-ebb.c (sehedule_ebbs): Ditto.
+       * tracer.c (branch_ratio_cutoff): Ditto.
+       * cfgloopmanip.c (fix_loop_structure): Ditto.
+       * cfghooks.c (verify_flow_info): Ditto.
+       * cfg.c (compact_blocks): Ditto.
+       * reorg.c (dbr_schedule): Ditto.
+       * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
+       * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
+       calculate_dominance_info): Ditto.
+       * cfganal.c (create_edge_list, print_edge_list,
+       flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
+       flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
+       dfs_enumerate_from): Ditto.
+       * global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
+       * ifcvt.c (find_if_case_2): Ditto.
+       * cfgbuild.c (control_flow_insn_p, count_basic_blocks,
+       find_basic_blocks): Ditto.
+       * predict.c (predict_loops, tree_bb_level_predictions,
+       predict_paths_leading_to, propagate_freq): Ditto.
+       * lcm.c (compute_antinout_edge, compute_laterin,
+       compute_available): Ditto.
+       * function.c (thread_prologue_and_epilogue_insns): Ditto.
+       * gcse.c (gcse_main, bypass_jumps): Ditto.
+       * profile.c (compute_branch_probabilities,
+       compute_value_histograms, branch_prob): Ditto.
+       * tree-flow-inline.h (bsi_start, bsi_after_labels,
+       bsi_last): Ditto.
+       * tree-ssa-phiopt.c (tree_ssa_phiopt,
+       blocks_in_phiopt_order): Ditto.
+       * bt-load.c (compute_defs_uses_and_gen, compute_kill,
+       compute_out, link_btr_uses, migrate_btr_defs): Ditto.
+       * tree-dfa.c (collect_dfa_stats): Ditto.
+       * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
+       * cfglayout.c (fixup_reorder_chain): Ditto.
+       * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
+       partition_hot_cold_basic_blocks): Ditto.
+       * var-tracking.c (vt_find_locations): Ditto.
+       * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
+       * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
+       * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
+       label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
+       * tree-ssa-reassoc.c (init_reassoc): Ditto.
+       * cfgrtl.c (entry_of_function, rtl_verify_flow_info,
+       rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
+       * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
+       and removed unused reverse orders.
+       * df.h (): Ditto.
+       * combine.c: Fix document typo.
+
+2005-12-17  Jan Hubicka  <jh@suse.cz>
+
+       * tree-flow-inline.h (set_default_def, default_def): Kill.
+       * tree-dfa.c (default_defs): New global variable.
+       (default_def, set_default_def): New functions.
+       * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash.
+       * tree-flow.h (struct var_ann_d): Kill default_def field.
+       (set_default_def, default_def): Update prototype.
+       (default_defs): Declare.
+
+2005-12-16  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill.
+       (simplify_rhs_and_lookup_avail_expr): Kill.  Remnants moved
+       into tree-ssa-forwprop.c.
+       (eliminate_redundant_computations): Do not call
+       simplify_rhs_and_lookup_avail_expr anymore.
+       * tree-ssa-forwprop.c (simplify_not_neg_expr): New function
+       extracted from remnants of simplify_rhs_and_lookup_avail_expr.
+       (tree_ssa_forward_propagate_single_use_vars): Call
+       simplify_not_neg_expr appropriately.
+
+2005-12-16  Bernd Trog  <berndtrog@yahoo.com>
+
+       PR target/20016
+       * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS.
+
+2005-12-17  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR rtl-optimization/25456
+       * struct-equiv.c (struct_equiv_improve_checkpoint): Replace
+       info->x_start with p->x_start.
+
+2005-12-17  Alan Modra  <amodra@bigpond.net.au>
+
+       * simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug
+       introduced 2005-12-16.
+
+2005-12-16  Steven Bosscher  <stevenb@suse.de>
+
+       PR rtl-optimization/23837
+       * optabs.c (expand_binop): For a multi-word rotate, never emit
+       a REG_NO_CONFLICT block.
+
+2005-12-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR middle-end/25457
+       * reorg.c (mostly_true_jump): Remove unused variable 'insn'.
+
+       PR target/25447
+       * config/pa/pa.c (pa_scalar_mode_supported_p): Handle
+       MODE_DECIMAL_FLOAT.
+
+2005-12-16  Steven Bosscher  <stevenb@suse.de>
+
+       * loop-invariant.c (move_loop_invariants): Add missing hunk from
+       the previous patch, to nullify df.
+
+2005-12-16  Steven Bosscher  <stevenb@suse.de>
+
+       * reorg.c (mostly_true_jump): Clean up code depending on
+       LABEL_OUTSIDE_LOOP_P and loop notes.  Remove code doing
+       poor man's branch prediction, instead rely on REG_BR_PROB
+       notes to be available.
+
+2005-12-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/24899
+       * loop.c (strength_reduce): Don't reduce giv that is not always
+       computable and where add_val or mult_val can trap.
+
+       * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
+
+2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
+       names of ms1-16-002 files.
+
+2005-12-16  Alan Modra  <amodra@bigpond.net.au>
+
+       PR driver/20425
+       * gcc.c (for_each_path): New function.
+       (add_to_obstack, file_at_path): New functions.
+       (struct file_at_path_info, struct add_to_obstack_info): New.
+       (build_search_list): Rewrite using for_each_path.  Constify struct
+       path_prefix pointer.  Add do_multi param.  Adjust all callers.
+       (find_a_file): Similarly, but just change existing param to bool.
+       (putenv_from_prefixes): Add do_multi param, make "paths" const.
+       (do_spec_path): Delete.
+       (struct spec_path_info): New.
+       (spec_path): New function.
+       (do_spec_1): Use for_each_path for %D and %I.
+       (find_file): Adjust for find_a_file changes.
+       (main): Search multilibs for specs.  Print multilib lib path for
+       -print-search-dirs.  Likewise add multilibs to LIBRARY_PATH_ENV.
+       (read_specs): Search multilibs for %include and %include_noerr.
+       (is_directory): Remove second string param.  Change last param
+       to a bool.  Don't use concat.  Remove SMALL_ARG_MAX test, always
+       check path is a dir.  Update all callers.
+       * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
+       * system.h (SMALL_ARG_MAX): Poison.
+       * config.gcc: Don't define SMALL_ARG_MAX.
+       * config.host: Likewise.
+       * config.build: Likewise.
+
+2005-12-16  Paolo Bonzini  <bonzini@gnu.org>
+
+       * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
+       FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
+       ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
+       simplify_logical): Move simplifications that do not require
+       additional infrastructure...
+       * simplify-rtx.c (simplify_unary_operation_1,
+       simplify_binary_operation_1): ... here.
+
+2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       PR 24823
+       * flow.c (mark_used_dest_regs): New function.
+       (mark_used_regs): Call mark_used_dest_regs.
+
+2005-12-16  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
+       represent a use and definition of the same SSA_NAME.
+
+2005-12-16  Jon Grimm  <jgrimm2@us.ibm.com>
+           Janis Johnson  <janis187@us.ibm.com>
+           Ben Elliston  <bje@au.ibm.com>
+
+       * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
+       (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
+       * target.h (struct gcc_target): Add decimal_float_supported_p.
+       * targhooks.c (default_scalar_mode_supported_p): Handle
+       MODE_DECIMAL_FLOAT.
+       * builtins.def: Add new builtins for 32, 64 and 128 bit variants
+       of inf, nan, finite, isinf and isnan.
+       * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
+       BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
+       BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
+       BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
+       BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
+       BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
+       BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
+       * c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
+       Pedwarn if decimal floating point types are used.  Error if
+       decimal floating point is not supported by the target.
+       (finish_declspecs): Return type from DFP typespec_word.
+       * c-typeck.c (c_common_type): Choose the decimal floating point
+       type with the greater precision when determining a common type.
+       (convert_arguments): Warn if there is a mismatch between argument
+       and prototype for decimal float types.  Warn of conversions with
+       binary float types and of precision narrowing due to prototype.
+       * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
+       (c_token_starts_typename): Handle RID_DFLOAT32/64/128.
+       (c_token_starts_declspecs): Likewise.
+       (c_parser_attributes): Likewise.
+       * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
+       RID_DFLOAT64, RID_DFLOAT128.
+       (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
+       * c-common.c (c_common_type_for_mode): Handle decimal float modes.
+       (shorten_compare): Convert DFP/BFP operands to a common type.
+       (c_common_modes_and_builtins): Register built-in decimal float
+       types if the target supports them.
+       (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
+       * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
+       inf, nan, finite, isinf and isnan builtins.
+       * c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
+       (builtin_define_float_constants): Assert non-decimal radix.
+       (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
+       Call builtin_define_decimal_float_constants for each type.
+       * c-lex.c (interpret_float): Decode decimal float types from CPP_N
+       flags.  Use real_from_string3, which can handle binary or decimal
+       floats.
+       * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
+       cts_dfloat64, cts_dfloat128.
+       * tree.c (build_common_tree_nodes_2): Add decimal float types.
+       * tree.h (enum tree_index): Add new enumeration values
+       TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
+       TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
+       (dfloat32_type_node): New macro.
+       (dfloat64_type_node, dfloat128_type_node): Likewise.
+       (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
+       (dfloat128_ptr_type_node): Likewise.
+       * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
+       bit decimal floating point types with "df", "dd" and "dl".
+       * c-format.h (enum format_lengths): Add new enumeration values
+       FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
+       * c-format.c (printf_length_specs, scanf_length_specs): Add
+       entries for H, D, DD.
+       (print_char_table, scan_char_table): Use new entries.
+       (asm_fprintf_char_table, gcc_diag_char_table,
+       gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
+       length arrays.
+       * defaults.h (DECIMAL32_TYPE_SIZE): Define.
+       (DECIMAL64_TYPE_SIZE): Likewise.
+       (DECIMAL128_TYPE_SIZE): Likewise.
+       (TARGET_DEC_EVAL_METHOD): Likewise.
+       * doc/extend.texi (Decimal Float): New node.
+       (Constructing Calls): Document decimal float built-ins.
+       * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
+       * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
+       * ginclude/decfloat.h: New file.
+
+2005-12-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * reload.c (find_reloads): Fix comment typo.
+       * recog.h (recog_memoized): Correct comment.
+
 2005-12-16  Kazu Hirata  <kazu@codesourcery.com>
 
        * basic-block.h, config/i386/winnt.c, config/pa/pa.c,
 
 2005-12-15  Paolo Bonzini  <bonzini@gnu.org>
 
-        * combine.c: Remove force_to_mode's fourth parameter.
-        (force_to_mode): Do not handle REG.
-        (canon_reg_for_combine): New.
-        (make_field_assignment): Use it where the removed argument was non-NULL.
+       * combine.c: Remove force_to_mode's fourth parameter.
+       (force_to_mode): Do not handle REG.
+       (canon_reg_for_combine): New.
+       (make_field_assignment): Use it where the removed argument was non-NULL.
 
 2005-12-15  Alan Modra  <amodra@bigpond.net.au>
 
 
 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
 
-       * sim/common/sim-signal.c (sim_signal_to_target): Add missing ':'.
-       * sim/common/sim-signal.h (sim_signal_to_target): Return an int.
-
        * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
        (EXTRA_MULTILIB_PARTS): Define.
 
 
        Back out this change:
        2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
-          * recog.c (verify_changes): Make it static.
-          * recog.h: Remove the corresponding prototype.
+         * recog.c (verify_changes): Make it static.
+         * recog.h: Remove the corresponding prototype.
 
 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
 
        * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
        apcs/atpcs.
 
-2005-12-11 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
+2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com>
 
        * tree-flow.h: Allow compilation with a C++ compiler.
        (struct edge_prediction): Prefix all field names  with "ep_".
 
 2005-12-09  Aldy Hernandez  <aldyh@redhat.com>
 
-        * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
-        (MULTILIB_DIRNAMES): Define.
+       * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
+       (MULTILIB_DIRNAMES): Define.
 
 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
 
        call_used_regs can't be used to save reg in another reg.
 
 2005-12-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
-            Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
+           Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
 
        * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
        abort.
        * tree.h (DECL_EXTERNAL): Clarify documentation.
 
 2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
-            Jakub Jelinek  <jakub@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
 
        PR target/25268
        * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
        * coretypes.h (section): Provide dummy definition for target files.
        * config/darwin.h: Revert previous change.
 
-2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
+2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
 
        * doc/sourcebuild.texi (all.build, install-normal): Remove.
        * configure.ac: Remove all.build and install-normal from target_list
        * configure: Regenerate.
        * Makefile.in (install): Don't depend on install-normal.
 
-2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
+2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
 
        * Makefile.in: Document the use of stamps.
 
-2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
+2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
 
        * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
        * Makefile.in: Add code to compute some dependencies on s-gtype
 2005-12-06  Jan Beulich  <jbeulich@novell.com>
 
        * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
-       __builtin_ia32_paddq and __builtin_ia32_subq.
+       __builtin_ia32_paddq and __builtin_ia32_psubq.
        (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
        __builtin_ia32_pshufw.
        * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
 
 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
 
-        * config/rs6000/predicates.md (logical_const_operand): Split
-        out of logical_operand.
-        (logical_operand): Use it.
-        * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
-        logical_const_operand.
+       * config/rs6000/predicates.md (logical_const_operand): Split
+       out of logical_operand.
+       (logical_operand): Use it.
+       * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
+       logical_const_operand.
 
 2005-12-05  Jan Beulich  <jbeulich@novell.com>
 
 
 2005-12-01  Ben Elliston  <bje@au.ibm.com>
 
-        * mklibgcc.in: Parameterise the script to build soft float
+       * mklibgcc.in: Parameterise the script to build soft float
        functions by iterating over each type, rather than cloning the
        code for each type.
 
        (tree_expr_nonnegative_p): Likewise.
 
 2005-11-30  Dale Johannesen  <dalej@apple.com>
-            Andrew Pinski  <pinskia@physics.uc.edu>
+           Andrew Pinski  <pinskia@physics.uc.edu>
 
        * combine.c (find_split_point):  Sign extend bitmask
        when changing bitfield assignment to IOR of AND.
        * gcc.c (main): Compare language[0] with '*' when iterating over
        the infiles.
 
-2005-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
+2005-07-13  Adrian Straetling  <straetling@de.ibm.com>
 
        * config/s390/s390.c: (s390_cc_modes_compatible): Move before
        "s390_emit_compare".  Add handling of CCZ1mode.
        Use CCZ1mode instead of CCZmode.
        * config/s390/s390-modes.def: Add CCZ1mode.  Comment new mode.
 
-2005-07-13  Adrian Strae½tling  <straetling@de.ibm.com>
+2005-07-13  Adrian Straetling  <straetling@de.ibm.com>
 
        * config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
        pattern.