OSDN Git Service

Make -fdata-sections work for AVR port.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 74a6b13..5d1334a 100644 (file)
@@ -1,3 +1,715 @@
+2004-09-01  James E Wilson  <wilson@specifixinc.com>
+
+       PR target/14064
+       * config/avr/avr.c (avr_unique_section): Delete prototype and
+       definition.
+       (TARGET_ASM_UNIQUE_SECTION): Delete.
+
+2004-09-01  Ziemowit Laski  <zlaski@apple.com>
+
+       * c-parse.in (primary): Call objc_build_message_expr(),
+       objc_build_selector_expr(), objc_build_protocol_expr(),
+       objc_build_encode_expr() and objc_build_string_object() instead of
+       build_message_expr(), build_selector_expr(), build_protocol_expr(),
+       build_encode_expr() and build_objc_string_object(), respectively.
+       (component_decl_list2): Call objc_get_class_ivars() instead of
+       get_class_ivars_from_name().
+       (keyworddecl): Call objc_build_keyword_decl() instead of
+       build_keyword_decl().
+       (receiver): Call objc_get_class_reference() instead of
+       get_class_reference().
+       (reswords): Add blank line before @@ifobjc section, for clarity.
+
+2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
+
+       * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
+       to Altivec vetors.
+
+2004-09-01  Wu Yongwei  <adah@sh163.net>
+           Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
+       not Windows 'DWORD'.
+       (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
+       (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
+       (__gthr_win32_recursive_mutex_init_function): Add prototype for
+       __GTHREAD_HIDE_WIN32API case..
+       (__gthr_win32_recursive_mutex_lock): Likewise.
+       (__gthr_win32_recursive_mutex_trylock): Likewise.
+       (__gthr_win32_recursive_mutex_unlock): Likewise.
+       (__gthread_recursive_mutex_init_function); Add definition for
+       __GTHREAD_HIDE_WIN32API case.
+       (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
+       * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
+       call to InterlockedDecrement.
+
+2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree-tailcall.c (find_tail_calls): Also fail is statement has
+       volatile operands.
+
+       * tree-ssa.c (propagate_into_addr): Properly test for LHR.
+
+       * doc/c-tree.texi: Document new operands for ARRAY_REF and
+       COMPONENT_REF.
+
+2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
+       * common.opt (fspeculative-prefetching): New.
+       * flags.h (flag_speculative_prefetching_set): Declare.
+       * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
+       values.
+       * opts.c (flag_sepculative_prefetching_set): New variable.
+       (common_handle_option): Handle -fspeculative-prefetching.
+       * passes.c (rest_of_compilation): Ditto.
+       * profile.c (instrument_values, compute_value_histograms, branch_prob):
+       Use vectors instead of arrays.
+       * toplev.c (process_options): Handle -fspeculative-prefetching.
+       * rtl-profile.c: Include ggc.h.
+       (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
+       rtl_gen_one_value_profiler_no_edge_manipulation,
+       rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
+       argument changed.
+       * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
+       tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
+       argument changed.
+       * value-prof.c: Include ggc.h.
+       (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
+       macros.
+       (insn_prefetch_values_to_profile, find_mem_reference_1,
+       find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
+       speculative_prefetching_transform): New.
+       (value_profile_transformations): Call speculative_prefetching_transform.
+       (insn_values_to_profile): Call insn_prefetch_values_to_profile.
+       (insn_divmod_values_to_profile, rtl_find_values_to_profile,
+       tree_find_values_to_profile, find_values to profile): Use vectors
+       instead of arrays.
+       (free_profiled_values): Removed.
+       * value-prof.h (struct histogram_value): Renamed to
+       struct histogram_value_t.
+       (histogram_value, histogram_values): New types.
+       (find_values_to_profile): Declaration changed.
+       (free_profiled_values): Removed.
+       (struct profile_hooks): Type of argument of the hooks changed to
+       histogram_value.
+       * doc/invoke.texi (-fspeculative-prefetching): Document.
+
+2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR rtl-optimization/16408
+       * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
+
+2004-09-01  Richard Henderson  <rth@redhat.com>
+
+        * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
+        (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
+
+2004-09-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
+
+2004-09-01  Mike Stump  <mrs@apple.com>
+
+       * config/darwin.c (machopic_symbol_defined_p): In addition to
+       being SYMBOL_REF_LOCAL_P, a symbol must also be
+       ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
+       defined in this output file, or translation unit in the case
+       of IMA not being used.
+       (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
+       never need .indirect_symbol when indirecting.
+
+2004-09-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.in (bb-reorder.o): Add several dependencies.
+
+2004-09-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * fold-const.c (operand_equal_p): Require equal sign also for
+       FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
+
+2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
+
+       * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
+       for use in configargs.h.  Put the cname in a separate variable.  Use
+       that to set target_cpu_default2.
+
+2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
+           Nick Clifton  <nickc@redhat.com>
+
+       * config/sh/sh.md ("length"): Increase branch length when
+       SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
+       constant, 2 byte for aligning the constant.
+
+2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
+       CPU.
+       (arm7tdmi-s): New CPU name.
+       * arm/arm.c (ARM_CORE): Update for new format.
+       * arm/arm.h (ARM_CORE): Likewise.
+       * arm/gentune.sh: Update for extra field.
+       * config.gcc: Likewise.
+       * arm/arm-tune.md: Regenerate.
+       * doc/invoke.texi: Document the real processor names for ARM cpus.
+
+2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
+       (floatdidf): New functions.
+       * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
+       (floatdisf): New functions.
+       * t-arm-elf: Use them.
+
+2004-09-01  Ziemowit Laski  <zlaski@apple.com>
+
+       * c-common.h (lookup_interface): Remove prototype.
+       (is_class_name): Rename to objc_is_class_name.
+       (lookup_objc_ivar): Rename to objc_lookup_ivar.
+       (get_current_scope): Rename to objc_get_current_scope.
+       * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
+       * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
+       (yylexname): Call objc_is_class_name() instead of is_class_name().
+       * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
+       instead of lookup_objc_ivar().
+       * stub-objc.c (lookup_interface): Remove stub.
+       (is_class_name): Rename to objc_is_class_name.
+       (lookup_objc_ivar): Rename to objc_lookup_ivar.
+
+2004-08-31  Mark Mitchell  <mark@codesourcery.com>
+
+       * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
+       * config/arm/lib1funcs.asm: Do not include supplemental .S files
+       when compiling for Symbian.
+       * config/arm/symbian.h (RENAME_LIBRARY): New macro.
+       (TARGET_OS_CPP_BUILTINS): Likewise.
+       * config/arm/t-symbian (LIB1ASMFUNCS): Define.
+
+2004-08-31  Stan Shebs  <shebs@apple.com>
+
+       * toplev.c (process_options): Ensure debug_hooks is initialized.
+
+2004-08-31  Mark Mitchell  <mark@codesourcery.com>
+
+       * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
+       * target.h (cxx): Add export_class_data.
+       * config/arm/arm.c (arm_cxx_export_class_data): New function.
+       (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
+       * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
+       
+2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (output_branch): Check the insn length possibly
+       in the delayed slot.
+
+2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
+       blank after ')'.
+       (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
+
+       * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
+       (c_sizeof_of_alignof_type): Likewise.
+       * expr.c (array_ref_element_size): Likewise.
+       (highest_pow2_factor_for_target): Likewise.
+       * gimplify.c (canonicalize_addr_expr): Likewise.
+       (gimplify_compound_lval): Likewise.
+       * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
+       * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
+       * varasm.c (assemble_variable): Likewise.
+       (output_constant_def_contents): Alignments are unsigned.
+
+2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+           Jeff Law  <law@redhat.com>
+
+       * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
+       gets modified.
+
+2004-08-31  Mark Mitchell  <mark@codesourcery.com>
+
+       * hooks.c (hook_bool_void_true): New function.
+       * hooks.h (hook_bool_void_true): Declare.
+       * target-def.h (TARGET_CXX): Add
+       TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
+       * target.h (struct cxx): Add key_method_may_be_inline.
+       * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
+       function.
+       (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
+       * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
+       __THUMB_INTERWORK.
+       
+2004-08-31  Denis Chertykov  <denisc@overta.ru>
+
+       PR target/15417
+       * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
+       frame pointer register only in Pmode while reload in progress.
+
+2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
+
+       PR target/15334
+       * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
+       because it breaks the 32-bit shift patterns that rely on a match_dup.
+
+2004-08-31  Matt Austern  <austern@apple.com>
+
+       * config/darwin.c (darwin_make_decl_one_only): Allocate section
+       names once per compilation, instead of once per symbol.
+       
+2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
+
+       * Makefile.in (build_subdir): New substitution.
+       (fixinc.sh): Simplify heavily since fixincludes is already built.
+       (stmp-fixinc): Depend on specs.ready.
+       (install-mkheaders): Use new location of fixincludes.
+       (clean): Do not descend into fixinc.
+       (FORBUILD): Replace with ../$(build_subdir).
+       * configure.ac (build_subdir): Substitute.
+       (FORBUILD): Do not set.
+       (all_outputs): Remove fixinc/Makefile.
+       (default commands): Do not create links in fixinc.
+       * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
+       the fixincludes configuration steps and substituting
+       @FIXINCL@ in fixinc.in.
+       * fixinc.in: New, from fixinc/fixincl.sh.
+
+       * fixinc/*: Removed.
+       
+2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * attribs.c (strip_attrs): Remove.
+       (split_specs_attrs): Move ...
+       * c-decl.c: ... to here.
+       * tree.h (split_specs_attrs, strip_attrs): Remove.
+       * c-tree.h (split_specs_attrs): Declare.
+
+2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
+
+       * read-rtl.c: Disable RTL checking.
+       (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
+
+2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (fcond): New code macro and attribute.
+       (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
+       (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
+       (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
+
+2004-08-30  Mark Mitchell  <mark@codesourcery.com>
+
+       Revert:
+       2004-08-29  Mark Mitchell  <mark@codesourcery.com>
+       PR rtl-optimization/16590
+       * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
+
+2004-08-30  Andrew Pinski  <apinski@apple.com>
+
+       * hard-reg-set.h: 
+       s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
+       * ChangeLog: Fix previous ChangeLog entry.
+
+       PR rtl-opt/13987
+       * config.host (use_long_long_for_widest_fast_int): New, default is 
+       off.
+       (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
+       * configure.ac: If use_long_long_for_widest_fast_int, then
+       define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
+       New: widest integer type supported efficiently in hardware for the
+       host.
+       * sbitmap.h (SBITMAP_ELT_BITS): Define based on
+       HOST_BITS_PER_WIDEST_FAST_INT.
+       (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
+       * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on 
+       HOST_WIDEST_FAST_INT
+       instead of HOST_WIDE_INT.
+       (HARD_REG_SET_LONGS): Likewise.
+       (UHOST_BITS_PER_WIDE_INT): Likewise.
+       Change the checks for the fast cases to be based on
+       HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
+
+2004-08-30  Steven Bosscher  <stevenb@suse.de>
+
+       * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
+       not the pointers.
+
+2004-08-30  Geoffrey Keating  <geoffk@apple.com>
+
+       PR 12738
+       PR 17205
+       Radar 3460526
+       Radar 3775729
+       * c-decl.c (grokdeclarator): Produce error for 'static' on local
+       function declaration.
+
+2004-08-30  Richard Henderson  <rth@redhat.com>
+
+       * expr.c (array_ref_element_size): Force aligned_size back to
+       sizetype.
+       (component_ref_field_offset): Similarly for aligned_offset.
+       * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
+       low-bound, element-size, field-offset fields rather than
+       computed values.
+
+2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
+       redundant code.
+
+2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-tree.h (struct language_function): Add arg_info element.
+       * c-decl.c (current_function_arg_info): New.
+       (grokdeclarator, store_parm_decls): Use it instead of
+       DECL_ARGUMENTS.
+       (c_push_function_context, c_pop_function_context): Save and
+       restore it.
+
+2004-08-30  Richard Henderson  <rth@redhat.com>
+
+       * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a 
+       COMPONENT_REF to pointer arithmetic.
+       * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
+       constant "c" as a valid constant initializer.  Allow narrowing of
+       differences against the same base object, for any base object.
+
+2004-08-30  Richard Henderson  <rth@redhat.com>
+
+       * expr.c (expand_expr_addr_expr): New.
+       (expand_expr_real_1) <case ADDR_EXPR>: Use it.
+
+2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
+       (mips_fp_condition): New enum.
+       (mips_fp_conditions): New array.
+       (print_fcc_operand): Delete.
+       (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
+       the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
+       (builtin_description): Add "cond" field.
+       (DIRECT_BUILTIN): Initialize it.
+       (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
+       into INSN and CODE.  Initialize the "cond" field.
+       (CMP_BUILTINS): Update accordingly.
+       (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
+       (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
+       mips_fp_condition as argument.  Make it the final operand of the
+       comparison instruction.
+       (mips_expand_builtin): Update accordingly.
+       * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
+       (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
+       the gaps.
+       * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
+       Don't use the 'Q' operand prefix; just print the operand normally.
+       (mips_cabs_*, mips_c_*): Delete, replacing with...
+       (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
+       patterns.  Split the 4s versions into 2 ps patterns after reload.
+
+2004-08-30  Richard Henderson  <rth@redhat.com>
+
+       * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
+       assuming an ADDR_EXPR is non-null.
+
+2004-08-30  Jason Merrill  <jason@redhat.com>
+
+       * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
+
+2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
+       * gcov.c (abort): Remove undef.
+
+       * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
+       (struct tree_binfo): Remove primary field.
+
+2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
+
+       * fixinc/Makefile.in (machname.h): Remove.
+       (fixincl.x): Do not pass $@ to genfixes.
+       * fixinc/genfixes: Remove code to produce machname.h.
+       * fixinc/fixincl.sh: Move it here instead.
+       * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
+       instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
+       return a bool indicating whether pz_mn_name_pat is NULL.
+       * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
+       Declare extern C variables for the ENV_TABLE.
+       * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
+       instead use the result of mn_get_regexps.
+       * fixinc/fixtests.c: Likewise.
+
+2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
+
+       * configure.ac: Do not run fixincludes after stage1 during
+       toplevel bootstrap.
+       * configure: Regenerate.
+
+2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
+
+       * sched-deps.c (get_condition): Partially revert previous, by never
+       trying to extract the condition from a condjump.
+
+2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
+       (handle_visibility_attribute, c_determine_visibility): Likewise.
+       * c-common.h (my_friendly_assert): Remove.
+
+2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
+       (UNSPEC_{RSQRT,RECIP}[12]): New constants.
+       (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
+       * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
+       (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
+
+2004-08-30  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
+       in COMPONENT_REF nodes.
+
+2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       PR c++/15378
+       * c-opts.c (c_common_handle_option): <case OPT_Werror> set
+       global_dc->warning_as_error_requested.
+       * diagnostic.c (diagnostic_initialize): Tidy.
+       * diagnostic.h (diagnostic_context::x_data): Remove
+       (diagnostic_context::issue_warnings_are_errors_message): Rename
+       from warnings_are_errors_message.
+       (diagnostic_context::warning_as_error_requested): New.
+
+2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
+
+       * sched-deps.c (get_condition): Fix breakage in previous patch.
+
+2004-08-30  Paul Brook  <paul@codesourcery.com>
+
+       * doc/install.texi: Fix broken mpfr link.
+
+2004-08-29  David O'Brien  <obrien@FreeBSD.org>
+
+       * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
+       other FreeBSD platforms.
+
+2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.h (REVERSE_CONDITION): Define.
+       (REVERSIBLE_CC_MODE): All comparisons are now reversible.
+
+2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
+
+       * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
+       just the codes, call reversed_comparison_code ().
+       (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
+       (not_reg_cond): Use reversed_comparison_code.
+       (and_reg_cond): Likewise.
+       * ifcvt.c (cond_exec_process_if_block): Likewise.
+       * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
+
+2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
+
+       * sched-deps.c (get_condition): Rewrite using jump support functions.
+       Use reversed_comparison_code.
+       (conditions_mutex_p): Use reversed_comparison_code.
+
+2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (override_options): Disable hot/cold partitioning
+       for MIPS16.
+
+2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
+       (mips_function_type): Move to mips.c.
+       * config/mips/mips.c (mips_builtin_type): New enum.
+       (builtin_description): Replace code and ftype with builtin_type
+       and function_type.
+       (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
+       (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
+       (CODE_FOR_mips_abs_ps): Define.
+       (mips_bdesc): Use new macros.
+       (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
+       (mips_init_builtins): Use the mips_bdesc[] index as the function code.
+       (mips_expand_builtin_direct): New function.
+       (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
+       builtin.  Replace boolean parameter with builtin_type.
+       (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
+       (mips_expand_4s_compare_builtin): Delete, replacing with...
+       (mips_expand_builtin_compare): ...this new function.
+
+2004-08-29  Mark Mitchell  <mark@codesourcery.com>
+
+       PR rtl-optimization/16590
+       * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
+
+2004-08-29  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
+       * tree-ssa-propagate.c: Fix documentation.
+
+2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
+       (mov[sd]fcc): Likewise.
+
+2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
+
+2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (divide_condition): New mode attribute.
+       (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
+       (sqrt[sd]f3): Redefine using SCALARF.
+       (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
+       patterns.
+
+2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (ANYF, SCALARF): New mode macros.
+       (loadx, storex, fmt, UNITMODE): New mode attributes.
+       (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
+       (mul[sd]f3): Redefine using :SCALARF.
+       (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
+       (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
+       (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
+       Check TARGET_FUSED_MADD for V2SF too.
+       (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
+       were already named.
+       (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
+       (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
+
+2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
+       V2SF_type_node if it will be needed.
+
+2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
+       * config/mips/mips.c (mips_prepare_builtin_arg): New function.
+       (mips_prepare_builtin_target): New function.
+       (mips_expand_builtin): Use them.  Update calls to subroutines.
+       (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
+       cmp_choice with a boolean argument to select between movt and movf.
+       Take the comparison's icode as an argument, not the function's fcode.
+       (mips_expand_compare_builtin): New function.  Rename existing function
+       to mips_expand_scalar_compare_builtin.
+       (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
+       (mips_expand_ps_compare_builtin): Use the new functions.  Take the
+       comparison's icode as an argument, not the builtin's fcode.
+
+2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
+       (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
+       registers are false and -1 if all registers are true.
+       (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
+       MIPS_CMP_UPPER and MIPS_CMP_LOWER.
+       * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
+       (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
+       (bc1any2t, bc1any2f): Likewise CCV2.
+       (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
+
+2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
+       * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
+       UNSPEC rather than an IF_THEN_ELSE.
+       * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
+       mips_cond_move_tf_ps by name.
+
+2004-08-29  Chao-ying Fu  <fu@mips.com>
+           James E Wilson  <wilson@specifixinc.com>
+       
+       * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
+       8 byte size and alignment.  Give CCV4 16 byte size and alignment.
+       * config/mips/mips-ps-3d.md: New file.
+       * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
+       TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
+       (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
+       (mips_output_move): Emit "mov.ps" for V2SFmode.
+       (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
+       MODE_VECTOR_FLOAT.
+       (override_options): Check if TARGET_MIPS3D and there was an explicit
+       !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
+       Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
+       TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
+       TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
+       and allow CCV2 and CCV4 to occupy two and four CC registers.
+       (print_fcc_operand): New function.
+       (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
+       %Z to call print_fcc_operand.
+       (mips_function_value): Handle MODE_VECTOR_FLOAT.
+       (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
+       (mips_vector_mode_supported_p): New function.
+       (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
+       (builtin_description): New struct.
+       (mips_bdesc): New array of struct builtin_description.
+       (mips_expand_builtin, mips_init_builtins,
+       mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
+       mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
+       functions.
+       * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
+       (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
+       (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
+       (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
+       "-mips3d", and "-mno-mips3d".
+       (ASM_SPEC): Map -mips3d to -mips3d in gas.
+       (EXTRA_CONSTRAINT_Y): New macro.
+       (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
+       multi-letter constraint 'Y'.
+       (CONSTRAINT_LEN): New macro.
+       (enum mips_builtins): New for MIPS builtin functions.
+       (enum mips_function_type): New for the types of MIPS builtin functions.
+       (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
+       * config/mips/mips.md: New constants for paired single and MIPS-3D 
+       instructions.  Include the new mips-ps-3d.md file.
+       (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
+       movv2sf_hardfloat_64bit): New named patterns.
+       (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
+       nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
+       sdxc1_v2sf_di): New unnamed patterns.
+       * config/mips/predicates.md (const_0_operand, const_1_operand): Add
+       const_vector support.
+       (const_0_or_1_operand): New predicate.
+       * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
+
+2004-08-29  Diego Novillo  <dnovillo@redhat.com>
+
+       * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
+       (tree-ssa-propagate.o): New rule.
+       (GTFILES): Add tree-ssa-propagate.c.
+       * tree-flow.h (struct stmt_ann_d): Remove field
+       in_ccp_worklist.
+       * tree-ssa-propagate.c: New file.
+       * tree-ssa-propagate.h: New file.
+       * tree-ssa-ccp.c: Re-write to use the routines from
+       tree-ssa-propagate.c.
+
+2004-08-28  Andrew Pinski  <apinski@apple.com>
+
+       * tree-ssa-loop.c: Remove extra include of basic-block.h.
+
+2004-08-28  Ziemowit Laski  <zlaski@apple.com>
+
+       * c-common.h: Update comments about ObjC/ObjC++ entry points.
+       (objc_is_reserved_word): New prototype.
+       (get_current_scope, objc_mark_locals_volatile): Move prototypes to
+       separate section; these are call-backs.
+       * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
+       ObjC/ObjC++ "@" keywords.
+       * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
+       prototypes; they already live in c-common.h.
+       * stub-objc.c: Update copyright notice.
+       (objc_is_reserved_word): New stub.
+
+2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
+       even when not checking.
+
 2004-08-27  Jason Merrill  <jason@redhat.com>
 
        PR c++/13684