+2004-03-14 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
+
+2004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
+
+ * doc/install.texi: Note status of -fnew-ra.
+
+2004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR middle-end/14470
+ * expr.c (store_expr): Call emit_queue before generating the move
+ from the temporary to the original target. Protect the temporary
+ from emit_queue.
+
+2004-03-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/14533
+ * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
+ other than UNSPEC_GOTOFF.
+
+2004-03-13 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through
+ to arm_legitimate_index_p. Update all callers with SET as default
+ value.
+ (arm_legitimate_index_p): New argument, OUTER. Restrict the index
+ range if OUTER is a sign-extend operation on QImode. Correctly
+ reject shift operations on sign-extended QImode addresses.
+ (bad_signed_byte_operand): Delete.
+ (arm_extendqisi_mem_op): New function.
+ * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with...
+ (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address
+ constraints.
+ (CONSTRAINT_LEN): New.
+ (EXTRA_CONSTRAINT): Delete. Replace with...
+ (EXTRA_CONSTRAINT_STR): ... this.
+ (PREDICATE_CODES): Remove bad_signed_byte_operand.
+ * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length
+ is now always default.
+ (define_splits for bad sign-extend loads): Delete.
+ (arm_extendqisi, arm_extendqisi_v5): Likewise.
+ * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
+ Rework 'U' constraint to 'Uv'.
+ * arm-protos.h: Remove bad_signed_byte_operand. Add
+ arm_extendqisi_mem_op.
+ * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
+ Add Uq constraint.
+
+2004-03-13 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
+ with targetm version.
+
+ PR target/14567
+ * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
+ (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
+ * config/rs6000/rs6000.c (rs6000_arg_size): New function.
+ Update all users of RS6000_ARG_SIZE.
+ (function_arg_advance): Count fregno using mode size.
+ (function_arg): Handle long double split over regs and memory.
+ (function_arg_partial_nregs): Likewise.
+ (rs6000_va_arg): Repackage complex args.
+
+2004-03-13 Dean Ferreyra <dferreyra@igc.org>
+
+ PR target/14047
+ * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
+ (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
+ * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
+
+2004-03-12 Jakub Jelinek <jakub@redhat.com>
+
+ * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
+ prototype.
+ * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
+ * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
+
+2003-03-12 Andrew Pinski <apinski@apple.com>
+
+ * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
+ Use ret instead of result. Use addr instead of base.
+
+2004-03-12 David Edelsohn <edelsohn@gnu.org>
+
+ * doc/install.texi (*-ibm-aix*): Document assembler and achiver
+ fixes required by libstdc++ and update installation instructions
+ for libstdc++.a.
+
+2004-03-12 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
+ leading '@' on fastcall symbols before stripping suffix.
+
+2004-03-12 Roger Sayle <roger@eyesopen.com>
+
+ * combine.c (unmentioned_reg_p): New function to check whether an
+ expression is a "specialization" of another, i.e. that there are
+ no registers or memory references mentioned in the first that don't
+ appear in the second.
+ (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
+ (combine_instructions): Also try combining instructions using the
+ REG_EQUAL note from a preceding log-linked instruction.
+
+2004-03-12 Roger Sayle <roger@eyesopen.com>
+
+ * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
+
+2004-03-12 Matt Austern <austern@apple.com>
+
+ * target.h (struct gcc_target): New target hook, unwind_label.
+ * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
+ * output.h (default_emit_unwind_label): New function.
+ * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
+ (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
+ (TARGET_SUPPORTS_HIDDEN): New target macro.
+ * dwarf2out.c (struct dw_fde_struct): Add field for function decl
+ that corresponds to this FDE.
+ (FRAME_BEGIN_LABEL): Allow target to override default label.
+ (output_call_frame_info): If FDEs are linknonce, then use extra
+ indirection for FDE encoding, output a label for each FDE, and
+ output an empty label for each function without an FDE.
+ (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
+ * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
+ decls with DECL_ONE_ONLY set, if that macro is defined.
+ (make_decl_one_only): Don't use DECL_COMMON if we're compiling
+ for a SUPPORTS_ONE_ONLY target.
+ * config/darwin-protos.h (darwin_unique_section): Declare.
+ (darwin_asm_named_section): Likewise.
+ (darwin_section_type_flags): Likewise.
+ (darwin_non_lazy_pcrel): Likewise.
+ (darwin_emit_unwind_label): Likewise.
+ (darwin_make_decl_one_only): Likewise.
+ * config/darwin.c (machopic_finish): Get rid of tweak that
+ eliminate stubs for symbols that are defined.
+ (darwin_encode_section_info): Don't treat weak functions as defined.
+ (darwin_make_decl_one_only): Define.
+ (darwin_asm_named_section): Likewise.
+ (darwin_section_type_flags): Likewise.
+ (darwin_unique_section): Likewise.
+ (darwin_emit_unwind_label): Likewise.
+ (darwin_non_lazy_pcrel): Likewise.
+ (darwin_asm_output_dwarf_delta): Difference between two labels is
+ local only if both labels are local.
+ * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
+ (ASM_MAKE_LABEL_LINKONCE): Likewise.
+ (TARGET_SUPPORTS_HIDDEN): Likewise.
+ (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
+ (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
+ (FRAME_BEGIN_LABEL): Likewise.
+ (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
+ (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
+ (TARGET_ASM_UNIQUE_SECTION): Define.
+ (EH_FRAME_SECTION_NAME): Define.
+ (EH_FRAME_SECTION_ATTR): Likewise.
+ (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
+ (TARGET_ASM_NAMED_SECTION): Likewise.
+ (TARGET_SECTION_TYPE_FLAGS): Likewise.
+ * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
+ TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
+ TARGET_ASM_EMIT_UNWIND_LABEL.
+
+2004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (expand_builtin_mathfn): Add pow10* to the
+ existing exp10* case.
+ (expand_builtin): Likewise.
+
+2004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/tm.texi (registers) <Values in Registers>: Add
+ entry for REGMODE_NATURAL_SIZE.
+
+2004-03-12 Richard Henderson <rth@redhat.com>
+
+ PR target/14547
+ * target.h (struct gcc_target): Move calls substructure before
+ booleans. Add split_complex_arg.
+ * function.c (assign_parms, split_complex_args): Use it.
+ * calls.c (expand_call): Likewise.
+ (split_complex_values): Likewise. Check for splittable types
+ before allocating memory.
+ (split_complex_types): Likewise.
+ * system.h (SPLIT_COMPLEX_ARGS): Poison.
+ * expr.h (SPLIT_COMPLEX_ARGS): Remove.
+ * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
+ * config/alpha/alpha.c (alpha_split_complex_arg): New.
+ (TARGET_SPLIT_COMPLEX_ARG): New.
+ * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
+ * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
+ (rs6000_override_options): Zap it for non-AIX.
+ (rs6000_function_value): Use targetm.calls.split_complex_arg.
+ * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
+ * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
+ * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
+ * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
+ SPLIT_COMPLEX_ARGS entry.
+
+2004-03-11 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
+ (alpha_lookup_xfloating_lib_func): Use them, return rtx.
+ (alpha_emit_xfloating_arith): Update to match.
+ (alpha_emit_xfloating_compare): Likewise.
+ (alpha_emit_xfloating_cvt): Likewise.
+ (alpha_emit_xfloating_libcall): Take already built symbol,
+ mark call const.
+ * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
+ op1 in a register.
+
+2004-03-11 Richard Henderson <rth@redhat.com>
+
+ PR target/14539
+ * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
+
+ * simplify-rtx.c (simplify_relational_operation): Fix typo.
+
+2004-03-11 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/14477
+ * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
+
+2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ PR target/14262
+ * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
+ defined, pass small BLKmode values in registers in the low-order part.
+
+2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * combine.c (if_then_else_cond): Check for NULL return value of
+ simplify_gen_subreg.
+
+2004-03-11 Richard Sandiford <rsandifo@redhat.com>
+
+ PR target/14496
+ * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
+ TARGET_SINGLE_FLOAT.
+
+2004-03-11 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
+ * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
+ * config/ia64/ia64.c (ia64_init_libfuncs): New.
+ (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
+
+2004-03-11 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
+ -((int)X>>C) where C is an integer constant one bit less than the
+ size of X into (unsigned)X>>C. Similarly for unsigned->signed.
+ (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
+
+ * simplify-rtx.c (simplify_unary_operation): Also implement the
+ above transformations at the RTL level.
+
+2004-03-11 Alan Modra <amodra@bigpond.net.au>
+
+ * real.c (encode_ibm_extended): Do round low word.
+
+2004-03-11 Ben Elliston <bje@wasabisystems.com>
+
+ * config/arm/arm.md (is_xscale): Comment this attribute and move
+ it a bit further up in the file, closer to related attributes.
+
+2004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/host-solaris.c (sol_gt_pch_use_address): Add
+ missing terminating marker to comment.
+
+2004-03-11 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
+ (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
+ (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
+ (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
+ move_operand as source predicate in all cases.
+ (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
+ Test reg_or_0_operand. Use move_operand as source predicate.
+ (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
+ (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
+ (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
+ (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
+ (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
+ Use move_operand as source predicate. Remove 'K' constraint.
+ (*movqi_internal): Likewise movqi_internal.
+ (*movsf_hardfloat): Renamed from movsf_internal1. Test
+ reg_or_0_operand. Use move_operand as source predicate.
+ (*movsf_softfloat): Likewise movsf_internal2.
+ (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
+ (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
+ (*movdf_softfloat): Likewise movdf_internal2.
+ * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
+ for DImode if !TARGET_64BIT.
+ (mips_legitimize_move): Simplify accordingly.
+
+2004-03-11 Josef Zlomek <zlomekj@suse.cz>
+
+ PR/14362
+ * var-tracking.c (struct variable_def): Added field refcount.
+ (variable_htab_free): Decrease the refcount and delete variable
+ only if there are no more references.
+ (unshare_variable): New function.
+ (vars_copy_1): Increase refcount instead of copying the variable.
+ (variable_union): Share the variables where possible, unshare
+ the variables if needed.
+ (variable_different_p): Return false if var1 and var2 are
+ the same structure.
+ (variable_was_changed): Init the refcount of new variable.
+ (set_frame_base_location): Unshare variable if needed.
+ (set_variable_part): Init the refcount of new variable.
+ Unshare the variables if needed.
+ (delete_variable_part): Unshare the variables if needed.
+ (emit_notes_for_differences_1): Init the refcount of new variable.
+ (vt_add_function_parameters): Do not add function parameters to
+ IN set of ENTRY_BLOCK_PTR because it is unused anyway.
+ (vt_initialize): Do not add frame_base_decl to IN set of
+ ENTRY_BLOCK_PTR because it is unused anyway.
+
+2004-03-11 Josef Zlomek <zlomekj@suse.cz>
+
+ * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
+ (vars_copy): Likewise.
+ (variable_union): Likewise.
+ (set_variable_part): Likewise.
+ (delete_variable_part): Likewise.
+
+2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
+
+ * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
+ ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
+ config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
+ config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
+ config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
+ config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
+ config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
+ config/pdp11/pdp11.h, config/rs6000/rs6000.c,
+ config/stormy16/stormy16.c: Fix comment typos and formatting.
+
+2004-03-11 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * configure: Regenerate, since I forgot to while committing Paolo's
+ changes.
+
+2004-03-08 Paolo Bonzini <bonzini@gnu.org>
+
+ PR ada/14131
+ Move language detection to the top level.
+ * configure.ac: Remove code to detect languages,
+ it now lives exclusively in the top level.
+ * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
+ top level, renamed to ACX_PROG_GNAT.
+
+2004-03-10 Richard Henderson <rth@redhat.com>
+
+ * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
+ extra arguments.
+ * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
+ and host_xmake_file fragments.
+ * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
+ (gt_pch_restore): Similarly for gt_pch_use_address.
+ (default_gt_pch_get_address): New.
+ (mmap_gt_pch_get_address): Split out of gt_pch_save.
+ (default_gt_pch_use_address): Split out of gt_pch_restore.
+ (mmap_gt_pch_use_address): Likewise.
+ * hooks.c (hook_voidp_size_t_null): Remove.
+ (hook_bool_voidp_size_t_false): Remove.
+ * hooks.h: Likewise.
+ * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
+ default_ or mmap_ definitions.
+ (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
+ * hosthooks.h (struct host_hooks): Update gt_pch_get_address
+ and gt_pch_use_address.
+ * config/host-linux.c, config/host-solaris.c: New files.
+ * config/x-linux, config/x-solaris: New files.
+ * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
+ Update for changed definition.
+ (darwin_rs6000_gt_pch_use_address): Likewise.
+ * doc/hostconfig.texi: Update docs.
+
+2004-03-10 Richard Henderson <rth@redhat.com>
+
+ PR c/14517
+ * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
+ except for pedantic c90 mode.
+
+2004-03-10 Kelley Cook <kcook@gcc.gnu.org>
+
+ * configure.ac: Bump AC_PREREQ to 2.59.
+ * configure: Regenerate.
+
+2004-03-10 Uros Bizjak <uros@kss-loka.si>
+
+ * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
+ (exp10_optab, exp2_optab): Define corresponding macros.
+ * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
+ * genopinit.c (optabs): Implement exp10_optab and exp2_optab
+ using exp10?f2 and exp2?f2 patterns.
+ * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
+ using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
+ (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
+ using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
+
+ * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
+ exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
+ exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
+
+2004-03-10 Anthony Green <green@redhat.com>
+
+ * doc/invoke.texi (ARM Options): Fix -mpfu typo.
+
+2004-03-10 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
+ (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define
+ __LONGDOUBLE128.
+ * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
+ TARGET_OS_AIX_CPP_BUILTINS.
+ * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
+ * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
+ * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
+ previous change.
+
+2004-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
+
+2004-03-10 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
+ __LONGDOUBLE128 on AIX.
+
+2004-03-10 Andrew Haley <aph@redhat.com>
+
+ PR optimization/14381
+ * function.c (expand_function_end): Emit a blockage insn before
+ the epilogue when -fnon-call-exceptions is used.
+
+ * except.c (expand_start_all_catch): Make comment more accurate.
+
+2004-03-08 Joel Sherrill <joel@oarcorp.com>
+
+ PR target/14480
+ * config/rs6000/t-rtems: Add missing file on branch.
+
+2004-03-10 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * dbxout.c (dbxout_symbol_location): Do not output references
+ to optimized-out constant pool symbols.
+
+2004-03-10 Andreas Schwab <schwab@suse.de>
+
+ * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
+ twon34_r.
+
+2004-03-09 James E Wilson <wilson@specifixinc.com>
+
+ * alias.c (alias_sets_might_conflict_p): New.
+ * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
+ * common.opt (Wstrict-aliasing=): New.
+ * flags.h (warn_strict_aliasing): Change type to int.
+ * opts.c (warn_strict_aliasing): Change type to int.
+ (common_handle_option): Handle OPT_Wstrict_aliasing_.
+ * tree.h (alias_sets_might_conflict_p): Declare it.
+ * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
+
+2004-03-10 Roman Zippel <zippel@linux-m68k.org>
+
+ PR bootstrap/12371
+ * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
+ (CALL_USED_REGISTERS): Likewise.
+ (REG_CLASS_CONTENTS): Likewise.
+ (REG_ALLOC_ORDER): New.
+ (REGNO_REG_CLASS): Use regno_reg_class.
+ * config/m68k/m68k.c: Add regno_reg_class array.
+
+2004-03-09 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.md (divsi3): Fix algorithm.
+ (udivsi3): Ditto.
+ (setf_exp_xf): Remove '*' from name.
+ * testsuite/gcc.dg/20040309-1.c: New test.
+
+2004-03-09 Ian Lance Taylor <ian@wasabisystems.com>
+
+ * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
+ * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
+ * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
+ * config/sparc/sparc.c (sparc_aout_select_section): Remove.
+ (sparc_aout_select_rtx_section): Don't check
+ SUNOS4_SHARED_LIBRARIES.
+ * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
+
+2004-03-10 Hans-Peter Nilsson <hp@axis.com>
+
+ PR other/14474
+ * doc/md.texi (Pattern Ordering, Dependent Patterns)
+ (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
+ INTERNALS".
+
+2004-03-09 Zack Weinberg <zack@codesourcery.com>
+
+ * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
+ (LIBGCC_SPEC): Update to match.
+
+2004-03-09 Zack Weinberg <zack@codesourcery.com>
+
+ * c-decl.c (last_function_parms, last_function_parm_tags)
+ (last_function_parm_others, current_function_parms)
+ (current_function_parm_tags, current_function_parm_others):
+ Delete.
+ (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
+ New macros.
+ (grokdeclarator): For function definitions, save the arg-info
+ block from the declarator in DECL_ARGUMENTS.
+ (grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
+ macros to operate on arg-info block. Can assume ARG_INFO_PARMS
+ contains only PARM_DECLs. Improve diagnostics.
+ (get_parm_info): Use ARG_INFO_* macros. Improve comments and
+ diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
+ (store_parm_decls_newstyle): Take the function to operate on,
+ and an arg-info block, as arguments; don't get anything from
+ current_function_* globals.
+ (store_parm_decls_oldstyle): Likewise.
+ (store_parm_decls): Pass fndecl and its arg-info block down to
+ store_parm_decls_newstyle/oldstyle. Send functions with empty
+ argument lists through store_parm_decls_newstyle to reduce
+ overhead.
+ (pushdecl): Comment on the problems with the call to copy_node.
+ Clear DECL_ARGUMENTS of the old node after copying it, if it
+ is an arg-info block instead of a chain of decls.
+ (start_function): Do not manipulate current_function_parm* or
+ last_function_parm*.
+
+2004-03-09 Roger Sayle <roger@eyesopen.com>
+ Andrew Pinski <pinskia@physics.uc.edu>
+
+ * ifcvt.c (noce_try_sign_mask): New function to transform
+ "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
+ (noce_process_if_block): Call noce_try_sign_mask.
+
+2004-03-09 Andrew Pinski <apinski@apple.com>
+
+ * c-typeck.c (tagged_types_tu_compatible_p):
+ Fix typo.
+
+2004-03-09 Roger Sayle <roger@eyesopen.com>
+
+ * simplify-rtx.c (simplify_const_relational_operation): New function
+ renamed from simplify_relational_operation.
+ (simplify_relational_operation): Change prototype to accept an
+ additional mode argument. Call simplify_const_relational_operation.
+ (simplify_gen_relational): Update simplify_relational_operation call.
+ (simplify_ternary_operation): Update simplify_relational_operation
+ subroutine call to use simplify_const_relational_operation instead.
+
+ * rtl.h (simplify_const_relational_operation): Prototype here.
+ (simplify_relational_operation): Add addtional mode argument.
+
+ * combine.c (combine_simplify_rtx): Update calls to
+ simplify_relational_operation.
+ (simplify_set): Likewise.
+ (gen_binary): Likewise.
+ * cse.c (fold_rtx): Likewise.
+ * dojump.c (compare_from_rtx): Likewise.
+ (do_compare_rtx_and_jump): Likewise.
+ * integrate.c (subst_constants): Likewise.
+ * unroll.c (simplify_cmp_and_jump_insns): Likewise.
+
+2004-03-09 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/m32r/m32r.md: Remove all define_peephole's.
+
+2004-03-09 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.md: Remove trailing whitespace.
+
+2004-03-08 Eric Christopher <echristo@redhat.com>
+
+ * Makefile.in (site.exp): Add libiconv variable definition.
+
+2004-03-09 Hans-Peter Nilsson <hp@axis.com>
+
+ * configure: Regenerate for config/accross.m4 correction.
+
+2004-03-08 Joel Sherrill <joel@oarcorp.com>
+
+ PR target/14480
+ * config/rs6000/t-rtems: Add missing file on branch.
+
+2004-03-08 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/14289
+ * c-typeck.c (c_mark_addressable): A register variable should
+ be considered global if its not automatic, i.e. TREE_PUBLIC,
+ TREE_STATIC or DECL_EXTERNAL.
+ * function.c (put_var_into_stack): Call abort when placing a
+ hard register into the stack, if x_parm_reg_stack_loc is NULL.
+
+2004-03-08 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
+ ("*extendqisi2_short_displ"): Likewise.
+
+2004-03-08 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/pdp11/pdp11.c (comparison_operator_index): Remove.
+ (comp_operator): Likewise.
+ * config/pdp11/pdp11-protos.h: Remove corresponding
+ prototypes.
+
+2004-03-08 Eric Botcazou <ebotcazou@act-europe.fr>
+
+ * expr.c (highest_pow2_factor_for_type): Rename into
+ highest_pow2_factor_for_target. Use DECL_ALIGN instead of
+ TYPE_ALIGN when the target is a COMPONENT_REF.
+ (expand_assignment): Ajust call to highest_pow2_factor_for_type.
+
+2004-03-08 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c: Formatting fix.
+ (legitimate_offset_address_p): Correct offset range check.
+
+ * config/rs6000/rs6000.c (rs6000_override_options): Don't override
+ -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE
+ and MASK_STRING.
+
+2004-03-07 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
+ for little endian.
+ ("ashrdi3_no_power"): Disable for little endian.
+ (ashrdi3): Same.
+
+2004-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
+ builtins.
+
+2004-03-08 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/14471
+ * configure.ac (Target-specific assembler checks) <cris-*-*>: New
+ case, checking for -no-mul-bug-abort option.
+ * configure, config.in: Regenerate.
+ * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
+ and -mno-mul-bug-workaround.
+ * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
+ ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
+ ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
+ Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
+ * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
+ sure mulu.d is not last on cache-line.
+ * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
+ into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
+ (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
+ (TARGET_SWITCHES): New options -mmul-bug-workaround and
+ -mno-mul-bug-workaround.
+ (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
+ (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
+ * config/cris/cris.c (cris_operand_extend_operator): Clarify
+ relation to MULT in head comment.
+ (cris_op_str): Abort for MULT.
+ (cris_print_operand) <case '!'>: New case.
+
+2004-03-08 Alan Modra <amodra@bigpond.net.au>
+
+ PR debug/11983
+ * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
+ dw_val_class_vec. Replace use throughout file.
+ (dw_float_const): Delete.
+ (dw_vec_const): New.
+ (dw_val_struct_union): Rename val_float to val_vec. Replace use
+ throughout file.
+ (add_AT_vec): Rename from add_AT_float. Add elt_size param.
+ (same_dw_val_p): Adjust vec comparison. Use memcmp.
+ (size_of_die): Adjust dw_val_class_vec sizing.
+ (output_die): Output dw_val_class_vec.
+ (insert_int, extract_int, insert_float): New functions.
+ (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
+ Handle CONST_VECTOR.
+ (add_location_or_const_value_attribute): Handle CONST_VECTOR.
+
+2004-03-07 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
+ AltiVec abi cannot co-exist.
+
+ * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
+
+2004-03-07 Jan Hubicka <jh@suse.cz>
+
+ * except.c (emit_to_new_bb_before): Break fallthru edges.
+
+2004-03-07 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
+ ("*lshrsi3"): Also accept an immediate for 68HC12.
+ ("*ashrsi3_const"): Likewise.
+ ("*ashrsi3"): Likewise.
+ ("*ashlsi3_const"): Likewise.
+ ("*ashlsi3"): Likewise.
+ ("cmphi_1_hc12"): Compare two hard register by pushing them and
+ comparing with a pop; don't use a split for that.
+ ("cmphi split"): Disable compare split for 68HC12.
+
+ * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
+ the status operands if they have side effects.
+
+2004-03-07 Kazu Hirata <kazu@cs.umass.edu>
+
+ * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
+ definition.
+ * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
+ config/h8300/h8300.h, config/ia64/ia64.h,
+ config/mcore/mcore.h, config/mmix/mmix.h,
+ config/ns32k/ns32k.h, config/pdp11/pdp11.h,
+ config/stormy16/stormy16.h, config/v850/v850.h,
+ config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
+ * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
+ definition.
+
+2004-03-07 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
+ <XOR_EXPR>: Fold x ^ x as zero.
+ <AND_EXPR>: Fold x & x as x.
+
+2004-03-07 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
+ "foo++ == const" into "++foo == const+incr".
+
+2004-03-07 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/mips/mips.c (mips_in_small_data_p): Return false if
+ TARGET_ABICALLS.
+
+2004-03-06 Stephane Carrez <stcarrez@nerim.fr>
+
+ * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
+ the stack register.
+ (expand_prologue): Don't make an interrupt or a trap handler a far
+ symbol.
+ (m68hc11_initial_elimination_offset): Likewise.
+
+2004-03-06 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
+
+2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/ns32k/ns32k-protos.h: Add a prototype for
+ ns32k_notice_update_cc.
+ * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
+ * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
+ ns32k_notice_update_cc.
+
+2004-03-06 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.md ("load_multiple", "*load_multiple_di",
+ "*load_multiple_si"): Allow only if reload_completed.
+ ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
+ Likewise.
+
+2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/vax/vax-protos.h: Add a prototype for
+ vax_notice_update_cc.
+ * config/vax/vax.c (vax_notice_update_cc): New.
+ * config/vax/vax.h (NOTICE_UPDATE_CC): Call
+ vax_notice_update_cc.
+
+2004-03-06 David Edelsohn <edelsohn@gnu.org>
+
+ * collect2.c (main): Only export initfunc and finifunc if
+ LD_INIT_SWITCH not defined.
+ (scan_prog_file): Only export constructors and destructors if
+ LD_INIT_SWITCH not defined. Only export symbols not found in
+ shared objects.
+
+2004-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.md (icacheflush): Reorder operands to make match_scratch operand
+ last.
+ * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
+ from calls to gen_icacheflush.
+
2004-03-06 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
* toplev.c (dump_file_tbl): Rename from dump_file.
* bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
- cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
+ cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
2004-01-31 Paolo Bonzini <bonzini@gnu.org>
- * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
+ * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
and restore it to gen_lowpart_general on exit.
(gen_lowpart_for_combine): Adjust all callers to go through
gen_lowpart.
* fixinc/inclhack.def (alpha___extern_prefix,
alpha___extern_prefix_standards): New hacks to obey
- __PRAGMA_EXTERN_PREFIX.
+ __PRAGMA_EXTERN_PREFIX.
* fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
test.
* fixinc/tests/base/standards.h: Likewise.