OSDN Git Service

2005-12-16 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index f621898..bfa1e94 100644 (file)
@@ -1,3 +1,741 @@
+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,
+       config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
+       reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
+       tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
+       * doc/invoke.texi, doc/tm.texi: Fix typos.
+
+2005-12-16  Ben Elliston  <bje@au.ibm.com>
+
+       * real.c (decimal_quad_format): Correct values for emin, emax.
+
+2005-12-15  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/predicates.md (m32c_psi_scale): New.
+       * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
+       * config/m32c/muldiv.md (mulpsi3): Support negative constants.
+
+2005-12-16  Jan Hubicka  <jh@suse.cz>
+
+       PR rtl-optimization/25224
+       * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
+       tables.
+
+2005-12-15  Zdenek Dvorak <dvorakz@suse.cz>
+           Steven Bosscher <stevenb@suse.de>
+
+       * loop-invariant.c (df): New global variable.
+       (find_defs, check_dependencies, find_invariant_insn, record_uses,
+       find_invariants_bb, find_invariants_body, find_invariants,
+       find_invariants_to_move, move_invariants, free_inv_motion_data,
+       move_single_loop_invariants, move_loop_invariants): Do not pass df in
+       arguments.
+
+2005-12-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * varasm.c (default_unique_section_1): Use special section
+       names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
+
+2005-12-16  Ben Elliston  <bje@au.ibm.com>
+
+       * doc/invoke.texi (Warning Options): Document -Walways-true being
+       enabled by -Wall.
+
+2005-12-15  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR other/25028
+       * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
+       * libgcc2.c (__floatdixf, __floatundixf, __floatditf,
+       __floatunditf): Use #error if type sizes don't match requirements
+       of implementation.
+       (__floatdisf, __floatdidf): Unify.  Possibly use XFmode or TFmode
+       as wider floating-point type.  Use #error if type sizes don't
+       match requirements of implementation.  Avoid overflow in computing
+       Wtype_MAXp1_F * Wtype_MAXp1_F.  When special casing conversion,
+       shift one more bit.  Cast 1 to DWtype or UDWtype for shifting.
+       (__floatundisf, __floatundidf): Likewise.
+       * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
+       * config/ia64/ia64.c (ia64_init_libfuncs): Use
+       _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
+       TFmode-TImode conversions.
+       * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
+
+2005-12-14  Craig Rodrigues  <rodrigc@gcc.gnu.org>
+
+       * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
+       Use builtin_define_with_int_value() instead of
+       adding a new check for every new major FreeBSD version.
+
+2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
+
+2005-12-15  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/arm/predicates.md (call_memory_operand): New.
+       * config/arm/arm.md (*call_mem, *call_value_mem): Use it.
+
+2005-12-15  Andrew Haley  <aph@redhat.com>
+
+       * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
+       against prev_cache_entry == NULL when moving a cache entry to the
+       head of the list.
+       
+2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/mt/mt.c (mt_override_options): Require lower case
+       architectures.  Revert accidental default to ms2.
+       * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
+       ENDFILE_SPEC): Require lower case architectures.  Revert default
+       to ms2.
+
+       * doc/invoke.texi (MT Options): Rename and update.
+       * doc/md.texi (MorphoTech family): Rename and update.
+
+2005-12-15  Olivier Hainque  <hainque@adacore.com>
+
+       * stor-layout.c (layout_type): Don't complain about a too small
+       an array element type size compared to its alignment when the
+       size overflows.
+
+2005-12-15  Jan Hubicka  <jh@suse.cz>
+
+       PR target/24969
+       * i386.c (classify_argument): Properly adjust offset of bitfield for
+       substructures.
+
+2005-12-15  Richard Sandiford  <richard@codesourcery.com>
+
+       * final.c (final_scan_insn): Flip in_cold_section_p when changing
+       between the hot and cold sections.  Use current_function_section
+       to get the new section.
+       * dwarf2out.c (output_line_info): Use in_cold_section_p to
+       determine whether we are assembling hot or cold code.
+       (secname_for_decl, dwarf2out_var_location): Likewise.
+       (dwarf2out_init, dwarf2out_finish): Use switch_to_section.
+       * varasm.c (last_text_section): Delete.
+       (in_cold_section_p): New variable.
+       (hot_function_section): New function.
+       (current_function_section): Pass in_cold_section_p as the
+       reloc argument to select_section.  Use it to decide between
+       unlikely_function_section and hot_function_section.
+       (assemble_start_function): Use switch_to_section.  Set
+       in_cold_section_p instead of last_text_section.
+       (assemble_end_function): Use switch_to_section.
+       (switch_to_section): Don't set last_text_section.
+       * config/darwin/darwin.c (machopic_select_section): Trust the reloc
+       argument to make the right choice between hot and cold sections.
+
+2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
+
+       Second part of MS1->MT renaming
+       * config/mt/mt.md (doloop_end): Call mt_add_loop.
+       (movqi, movhi): Call mt_set_memflags.
+       (*movdf_internal): Call mt_split_words. 
+       (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
+       mt_set_memflags.
+       (cmpsi): Store to mt_compare_op[01].
+       (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
+       bungt, bunle, bunlt): Call mt_emit_cbranch.
+       (prologue): Call mt_expand_prologue.
+       (epilogu): Call mt_expend_epilogue.
+       (eh_return): Call mt_expand_eh_return.
+       (eh_epilogue): Call me_emit_eh_epilogue.
+       (conditional_trap): Store to mt_compare_op[01].
+       * config/mt/crti.asm: Adjust comment.
+       * config/mt/crtn.asm: Adjust comment.
+       * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
+       (mt_compare_op0, mt_compare_op1): Renamed.
+       (current_frame_info, zero_frame_info): Adjust type.
+       (mt_ucmpsi3_libcall): Renamed.
+       (mt_flag_delayed_branch): Renamed.
+       (mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
+       (mt_nops_required, mt_nop_reasons): Renamed.
+       (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
+       mt_debug_stack, mt_print_operand_simple_address,
+       mt_print_operand_address, mt_print_operand): Renamed, adjusted.
+       (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
+       mt_function_arg_advance, mt_arg_partial_bytes,
+       mt_pass_by_reference, mt_function_arg_boundary,
+       mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
+       mt_legitimate_address_p): Renamed, adjusted.
+       (mt_cpu): Renamed.
+       (mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
+       mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
+       mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p, 
+       mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
+       mt_expand_eh_return, mt_emit_eh_prologue,
+       mt_handl_interrupt_attribute): Renamed, adjusted.
+       (mt_attribute_table): Renamed, adjusted.
+       (mt_initial_elimination_offset, mt_generate_compare,
+       mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
+       mt_secondary_reload_class, mt_function_value, mt_split_words,
+       mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
+       mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
+       (mt_labels): Renamed.
+       (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
+       mt_machine_reorg): Renamed, adjusted.
+       (mt_attribute_table: Renamed.
+       (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
+       TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
+       TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
+       * config/mt/mt.opt (march): Set mt_cpu_string.
+       * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
+       (TARGET_CPU_CPP_BUILTINS): Adjust.
+       (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
+       TARGET_MS2): Adjust.
+       (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
+       (MT_MIN_INT): Renamed.
+       (RETURN_ADDR_RTX): Adjust.
+       (struct mt_frame_info): Renamed.
+       (current_frame_info): Adjust type.
+       (INITIAL_ELIMINATION_OFFSET): Adjust.
+       (MT_NUM_ARG_REGS): Renamed.
+       (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
+       FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
+       LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
+       GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
+       FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
+       (mt_compare_op0, mt_compare_op1): Renamed.
+       * config/mt/mt-protos.h: Rename prototypes.
+
+2005-12-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree-flow.h (okay_component_ref_for_subvars): Remove.
+       (get_ref_base_and_extent): Declare.
+       * tree-dfa.c (okay_component_ref_for_subvars): Remove.
+       (get_ref_base_and_extent): New function.
+       * tree-ssa-alias.c (find_used_portions): Use it.
+       * tree-ssa-structalias.c (get_constraint_for_component_ref):
+       Likewise.
+       * tree-ssa-operands.c (get_expr_operands): Likewise.
+
+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.
+
+2005-12-15  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/25406
+       * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
+       error_mark_node.  Make alignment params unsigned.
+       * config/rs6000/rs6000-protos.h
+       (rs6000_special_round_type_align): Update prototype.
+       (rs6000_machopic_legitimize_pic_address): Remove arg names.
+
+2005-12-14  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       PR rtl-optimization/25310
+       * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
+       of the eliminable register when substituting into a PLUS.
+
+2005-12-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/25023
+       * config/i386/i386.c (ix86_force_to_memory): Always use
+       SImode push for HImode in -m32.
+       (ix86_free_from_memory): Likewise.
+
+2005-12-14  Richard Sandiford  <richard@codesourcery.com>
+
+       * gcc/config/arm/arm.md: Provide a big-endian version of the
+       (zero_extend:SI (subreg:QI ...)) splitter.
+
+2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
+
+       * struct-equiv.c (note_local_live): Handle hard regs with different
+       hard_regno_nregs.
+
+2005-12-14  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
+       to a structure containing state rather than a pointer to bool.
+       (case ARRAY_REF): New code to handle folding some array references.
+       (case ADDR_EXPR): Note when we are processing expressions found
+       within an ADDRE_EXPR.
+       (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
+       for state variables rather than just a pointer to a boolean.
+       * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
+       handling of constant string references.
+
+2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
+       ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
+       ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
+       Move other tst* patterns to retain partial order.
+
+2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.md ("d0", "1"): New mode attributes.
+       ("<shift>di3", "<shift>si3"): Merge.
+       ("*<shift>di3_and", "*<shift>si3_and"): Merge.
+       ("ashrdi3", "ashrsi3"): Merge.
+       ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
+       ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
+       ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
+       ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
+       ("*ashrdi3", "*ashrsi3"): Merge.
+       ("*ashrdi3_and", "*ashrsi3_and"): Merge.
+
+2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
+       ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
+       ("*extendqidi2", "*extendqisi2") Merge.
+       ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
+       ("zero_extendhidi2", "zero_extendqidi2"): Merge.
+       ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
+       Move some patterns to retain partial ordering.
+
+2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.md ("atype", "length"): Rewrite.
+       ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
+
+2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
+
+2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
+
+       * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
+       PARALLELs with a mode.
+
+2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
+       cond_expr parameter.
+
+2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
+
+2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR bootstrap/25397:
+
+       * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
+       of STACK_REGS bits.
+
+       * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
+
+2005-12-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/25254
+       PR target/24188
+       * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
+       DECL_P, call get_section rather than get_named_section.  Supply
+       section flags to it.
+
+2005-12-14  Ben Elliston  <bje@au.ibm.com>
+
+       * c-common.c (c_common_truthvalue_conversion): Generalise warning
+       for addresses converted to booleans; not just function addresses.
+       * c-typeck.c (build_binary_op): Warn for address comparisons which
+       can never be NULL (eg. func == NULL or &var == NULL).
+       * common.opt (Walways-true): New option.
+       * c-opts.c (c_common_handle_option): Set it with -Wall.
+       * doc/invoke.texi: Document it.
+
+2005-12-13  Paul Brook  <paul@codesourcery.com>
+
+       * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
+       __floatunsidf, __floatunsisf, __floatunsixf): New functions.
+
+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.
+
+2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR rtl-optimization/20070 / part1
+       * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
+       count_or_remove_death_notes with kill == -1.
+       (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
+       registers if PROP_POST_REGSTACK is set.
+       (mark_used_reg): Likewise.
+       (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
+       REG_UNUSED notes for stack regs.
+       * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
+       to match rtx_equiv_p machinery.  Change caller.
+       (outgoing_edges_match): Likewise.
+       (try_crossjump_to_edge): Use struct_equiv_block_eq
+       instead of flow_find_cross_jump.
+       * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
+       (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
+       (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
+       (STRUCT_EQUIV_MAX_LOCAL): Likewise.
+       (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
+       (insns_match_p): Update prototype.
+       (flow_find_cross_jump): Remove prototype.
+       (struct_equiv_block_eq, struct_equiv_init): Declare.
+       (rtx_equiv_p, condjump_equiv_p): Likewise.
+       * struct-equiv.c: Include reload.h.
+       (IMPOSSIBLE_MOVE_FACTOR): Define.
+       (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
+       (struct_equiv_improve_checkpoint): Likewise.
+       (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
+       (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
+       (struct_equiv_merge, find_dying_input): Likewise.
+       (resolve_input_conflict, note_local_live): Likewise.
+       (death_notes_match_p): Change parameters and processing
+       to match rtx_equiv_p machinery.  Change caller.
+       (insns_match_p): Likewise.
+       (flow_find_cross_jump): Replace with:
+       (struct_equiv_block_eq).
+
+       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.
+
+2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
+
+       * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
+       values.
+
+2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
+       (MULTILIB_DIRNAMES): Add ms2.  Prefix ms1 dirs with 'ms1'.
+       * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
+       TARGET_MS1_64_001 appropriately.
+       (ms1_machine_reorg): Use TARGET_MS2.
+
+2005-12-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/25023
+       PR target/25293
+       * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
+       and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
+       Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
+       * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
+       Set mode to SI, adjust constraints.
+       (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
+       * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
+       32-bit code.
+
+2005-12-13  Carlos O'Donell <carlos@codesourcery.com>
+
+       * c-cppbuiltin.c (builtin_define_float_constants): Add
+       fp_cast parameter, pass to builtin_define_with_hex_fp_value.
+       Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
+       (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
+       (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
+       to "((double)%sL)" otherwise "%s".
+
+2005-12-13  Paul Brook  <paul@codesourcery.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>
+
+       * tree-flow.h: Allow compilation with a C++ compiler.
+       (struct edge_prediction): Prefix all field names  with "ep_".
+       * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
+       (tree_predict_edge, combine_predictions_for_bb): Likewise.
+       (remove_predictions_associated_with_edge): Likewise.
+       
+2005-12-12  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
+       reassociation code.
+       * passes.c (init_optimization_passes): Run reassociation again
+       after loop optimizations.
+
+2005-12-12  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
+       if necessary.
+       (optimize_stmt): Ditto.
+       (canonicalize_comparison): New function.
+       * tree-ssa-operands.c (swap_tree_operands): Make external.
+       (get_expr_operands): Stop auto-canonicalization.
+       * tree-ssa-reassoc.c: Rewrite.
+       (init_optimization_passes): 
+       * tree-flow.h (swap_tree_operands): Prototype.
+       * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
+
+2005-12-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
+       indicate function epilogue has been output.
+       (pa_asm_output_mi_thunk): Likewise.
+       (output_deferred_plabels): Put plabels in readonly data section when
+       not generating PIC code.
+       (som_output_text_section_asm_op): Use .NSUBSPA to output debug
+       information.  Add assert.
+       (som_output_comdat_data_section_asm_op): New function.
+       (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
+       instead of output_section_asm_op for COMDAT sections.
+
+2005-12-12  J"orn Rennecke <joern.rennecke@st.com>
+
+       * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
+       Fix whitespace in vincinity of to-be-installed changes.
+       * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
+       (insns_match_p): Likewise.
+
+2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config.gcc (ms1): Replace with ...
+       (mt): ... this.
+       * config/ms1: Rename to ...
+       * config/mt: ... here.  Rename ms1 files to mt.
+       * config/mt/mt.c: Adjust gt-mt.h #include.
+       * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
+       (crti.o, crtn.o): Adjust file names.
+
+2005-12-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * varray.h: Allow compilation with a C++ compiler.
+       (union varray_data_tag): Prefix all field names with "vdt_".
+       (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
+       VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
+       VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
+       VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
+       VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
+       VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
+       (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
+       VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT, 
+       VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT, 
+       VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR, 
+       VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR, 
+       VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE, 
+       VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB, 
+       VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
+       (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT, 
+       VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT, 
+       VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT, 
+       VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR, 
+       VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX, 
+       VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP, 
+       VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE, 
+       VARRAY_TOP_TREE_PTR): Likewise.
+       * varray.c (varray_grow): Likewise.
+       (varray_clear): Likewise.
+
+2005-12-12  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/25299
+       * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
+       alignment to doubleword if the first field is a double array.
+       * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
+
+2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-structalias.c (process_constraint): Remove code to
+       transform addressofs into scalar.
+       (create_variable_info_for): In whole-program IPA, globals don't
+       point to ANYTHING by default.
+
+2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
+
+       * timevar.def (TV_IPA_PTA): New.
+       * tree-pass.h (pass_ipa_pta): New
+       * tree-ssa-structalias.c: Include cgraph.h
+       (in_ipa_mode): New.
+       (predbitmap_obstack): New.
+       (EXECUTE_IF_IN_NONNULL_BITMAP): New.
+       (struct constraint_stats): Add num_edges.
+       (new_var_info): Don't call bitmap_clear.
+       (struct constraint_edge): Update docs.
+       (new_constraint_edge): Remove src param.
+       (struct constraint_graph): Add zero_weight_succs,
+       zero_weight_preds.  Update docs.
+       (constraint_expr_equal): Reformat.
+       (constraint_edge_equal): Update for removal of src.
+       (constraint_edge_less): Ditto.
+       (constraint_edge_vec_find): Ditto.
+       (erase_graph_self_edge): Update for removal of src and and zero
+       weight bitmap.
+       (clear_edges_for_node): Ditto.
+       (add_graph_edge): Ditto.
+       (get_graph_weights): Ditto.
+       (allocate_graph_weights): Ditto.
+       (merge_graph_nodes): Ditto.
+       (int_add_graph_edge): Ditto.
+       (valid_graph_edge): Ditto.
+       (valid_weighted_graph_edge): Ditto.
+       (build_constraint_graph): Ditto.
+       (scc_visit): Ditto.
+       (collapse_nodes): Ditto.
+       (process_unification_queue): Ditto.
+       (topo_visit): Ditto.
+       (solve_graph): Ditto.
+       (do_structure_copy): Ditto.
+       (perform_var_substitution): Ditto.
+       Init and release obstack.
+       (handle_ptr_arith): Try to resolve directly.
+       (find_func_aliases): Don't call update_alias_info here
+       Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
+       (do_sd_constraint): Add code for propagating faster.
+       Update.
+       (do_ds_constraint): Ditto.
+       (count_num_arguments): New function.
+       (create_function_info_for): Ditto.
+       (create_variable_info_for): Handle FUNCTION_DECL.
+       (intra_create_variable_infos): Use make_constraint_to_anything.
+       (init_alias_vars): Init obstacks here.
+       (need_to_solve): Handle zero weight graph changes.
+       (compute_points_to_sets): Call update_alias_info here.
+       (delete_points_to_sets): Free zero weight preds/succs here.
+       (gate_ipa_pta): New.
+       (ipa_pta_execute): New
+
+2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-structalias.c (var_anyoffset): Removed.
+       (anyoffset_tree): Ditto.
+       (anyoffset_id): Ditto.
+       (do_deref): Take vector of constraints, no return value.
+       Update to work on vector.                
+       (get_constraint_for): Ditto.
+       (get_constraint_for_component_ref): Ditto.
+       (do_structure_copy): Ditto.
+       (handle_ptr_arith): Ditto.
+       (find_func_aliases): Ditto.
+       (set_uids_in_ptset): Remove anyoffset handling.
+       (init_base_vars): Ditto.
+
+2005-12-10  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/25010
+       * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
+       DECL_EXTERNAL functions have no bodies.  Tidy.
+
+2005-12-10  Andreas Schwab  <schwab@suse.de>
+
+       * except.c (switch_to_exception_section): Only define if
+       TARGET_UNWIND_INFO is not defined.
+
+2005-12-10  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/darwin.h (HAS_INIT_SECTION): Remove definition.
+       (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
+
+2005-12-10  Richard Sandiford  <richard@codesourcery.com>
+
+       * output.h (init_section, fini_section): Delete.
+       * varasm.c (init_section, fini_section): Delete.
+       (init_varasm_once): Don't initialize them.
+       * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
+       there are no corresponding varasm.c variables.
+
 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
 
        * dwarf2out.c (default_eh_frame_section): Delete, moving handling