OSDN Git Service

Preparatory work for PR target/21623:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 9a0a77c..d478938 100644 (file)
@@ -1,3 +1,372 @@
+2005-11-22  J"orn Rennecke <joern.rennecke@st.com>
+
+       Preparatory work for PR target/21623:
+       * alpha.c (secondary_reload_class): Rename to:
+       (alpha_secondary_reload_class).
+       * alpha.h, alpha-protos.h: Likewise.
+       * mn10300.c (secondary_reload_class): Rename to:
+       (mn10300_secondary_reload_class).
+       * mn10300.h, mn10300-protos.h: Likewise.
+       * pa.c (secondary_reload_class): Rename to:
+       (pa_secondary_reload_class).
+       * pa.h, pa-protos.h: Likewise.
+       * rs6000.c (secondary_reload_class): Rename to:
+       rs6000_secondary_reload_class.
+       * rs6000.h, rs6000-protos.h: Likewise.
+
+2005-11-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR middle-end/22561
+       * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
+
+2005-11-22  Ian Lance Taylor  <ian@airs.com>
+
+       * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
+       a mode_class.
+       (prepare_cmp_insn): Likewise.
+
+2005-11-22  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR target/23435
+       * m68k.md (zero_extendsidi2): Force operands[1] to a register
+       if both operands[0] and operands[1] are memory.
+
+2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR middle-end/23606
+       * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
+       COMPARISON_CLASS_P and an integral types create create a new
+       expression with the new type and fold that.
+
+2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR target/24988
+       * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
+       to SUBTARGET_OS_CPP_BUILTINS.
+       
+2005-11-22  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       * arm.c (emit_set_insn): New function.
+       (arm_split_constant): Call it.
+       (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
+       (arm_legitimize_address): Likewise.  Use plus_constant.
+       (arm_expand_prologue): Likewise.  Use VOIDmode in SET.
+       (thumb_expand_prologue): Likewise.
+       (arm_gen_load_multiple): Use VOIDmode in SET.
+       (arm_gen_store_multiple): Likewise.
+       (vfp_emit_fstmx): Likewise.  Use plus_constant.
+       (emit_multi_reg_push): Likewise.
+       (emit_sfm): Use plus_constant.
+       
+2005-11-23  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/24954
+       * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
+       typo last change.
+
+2005-11-22  Alan Modra  <amodra@bigpond.net.au>
+
+       PR middle-end/24950
+       * expmed.c (store_bit_field): Don't attempt to insv a field
+       larger than the reg.
+
+2005-11-22  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/24954
+       * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
+       explicit sign extension, not a (char) cast.
+
+2005-11-22  Ben Elliston  <bje@au.ibm.com>
+
+       * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
+       GET_MODE_CLASS (x) == MODE_FLOAT.
+       * config/i386/i386.c: Likewise.
+       * config/rs6000/xcoff.h: Likewise.
+       * config/rs6000/linux64.h: Likewise.
+       * config/rs6000/rs6000.c: Likewise.
+       * config/rs6000/rs6000.h: Likewise.
+       * config/rs6000/predicates.md: Likewise.
+       * config/rs6000/sysv4.h: Likewise.
+
+2005-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
+       flag_pic is set.
+       
+       * config/alpha/freebsd.h, config/alpha/linux.h,
+       config/arm/linux-elf.h, config/bfin/bfin.h,
+       config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
+       config/i386/beos-elf.h, config/i386/gnu.h,
+       config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
+       config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
+       config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
+       config/rs6000/linux64.h, config/rs6000/sysv4.h,
+       config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
+       config/sh/linux.h, config/sh/sh.h, config/sol2.h,
+       config/sparc/linux.h, config/sparc/linux64.h,
+       config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
+
+       * doc/invoke.texi: Document that the macros __pic__ and __PIC__
+       are both defined when either flag -fpic or -fPIC are used.
+
+2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * config/fp-bit.c (clzusi): New function.
+       (si_to_float, usi_to_float): Use it to compute proper shift.
+       (usi_to_float): Preserve guard bits when shifting right.
+       * libgcc-std.ver (GCC_4.2.0): New version.
+       * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
+       __floatundisf): New functions.
+       * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
+       __floatundisf): Declare.
+       * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
+       _floatundixf, and _floatunditf.
+       * optabs.c (expand_float): If target does not define a pattern for
+       signed or unsigned conversion, use an unsigned libcall instead of
+       a signed one.
+       (init_optabs): Initialize ufloat_optab.
+
+2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * config/rs6000/rs6000.opt (mmulhw): New option.
+       * doc/invoke.texi (-mmulhw): Document.
+       * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
+       for 405 and 440.
+       * config/rs6000/rs6000.md: Add half-word multiply and
+       multiply-accumulate instructions for 405 and 440.
+
+2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
+       which matches behavior of gcc 4.0 and older for RTEMS targets.  The
+       default now includes a linker group which makes the RTEMS one nest.
+
+2005-11-22  Ben Elliston  <bje@au.ibm.com>
+
+       * cse.c (fold_rtx): Typo fix.
+       (find_comparison_args): Pass the mode of arg1, not arg1 itself.
+
+2005-11-21  Richard Henderson  <rth@redhat.com>
+
+       * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
+       langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
+
+       * c-tree.h (lookup_name): Move declaration ...
+       * c-common.h (lookup_name): ... here.
+       * config/darwin-c.c: Include c-common.h.
+       * config/t-darwin: Update dependencies.
+
+2005-11-22  Ben Elliston  <bje@au.ibm.com>
+
+       * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
+       explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
+       * genopinit.c (gen_insn): Likewise.
+       * reload.c (find_equiv_reg): Likewise.
+       * loop.c (load_mems): Likewise.
+       * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
+       * cse.c (find_comparison_args, fold_rtx): Likewise.
+       * dwarf2out.c (add_const_value_attribute): Likewise.
+       * expr.c (convert_move): Likewise.
+       * recog.c (general_operand, register_operand): Likewise.
+       * reg-stack.c (replace_reg): Likewise.
+       * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
+       * c-common.c (handle_vector_size_attribute): Likewise.
+       * simplify-rtx.c (simplify_const_unary_operation): Likewise.
+       (simplify_binary_operation_1): Likewise.
+       (simplify_const_binary_operation): Likewise.
+       (simplify_relational_operation): Likewise.
+       (simplify_const_relational_operation): Likewise.
+       (simplify_immed_subreg): Likewise.
+       * emit-rtl.c (gen_lowpart_common): Likewise.
+       * expmed.c (expand_mult): Likewise.
+       * stor-layout.c (layout_type): Likewise.
+
+2005-11-21  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR target/24951
+       * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
+       cst2 only for SPE vectors.
+
+2005-11-21  David Edelsohn  <edelsohn@gnu.org>
+
+       PR target/24953
+       * config/rs6000/predicates.md (vrsave_operation): Check
+       UNSPEC_VOLATILE value.
+
+2005-11-21  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/24653
+       * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
+
+2005-11-21  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/predicates.md (ax_reg_operand): New predicate.
+       (memory_displacement_only_operand): New predicate.
+       * config/i386/i386.md ("modrm" attribute): Return 0 if one
+       operand is AX register and the other operand is memory operand
+       with displacement only.
+
+2005-11-21  Uros Bizjak  <uros@kss-loka.si>
+
+       * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0 
+       if we don't care about NaNs or Infinities.
+
+2005-11-20  Ian Lance Taylor  <ian@airs.com>
+
+       PR rtl-optimization/24883
+       * combine.c (combinable_i3pat): When checking whether the
+       destination of i3 is used in i3, consider paradoxical subregs.
+
+2005-11-21  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR middle-end/20583
+       * cse.c (cse_insn): Reject invalid forms of CONST earlier.
+
+2005-11-20  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * combine.c (try_combine): Do not run subst on i1src and i2src in
+       the case of generating a PARALLEL for a comparison.
+
+2005-11-20  Richard Henderson  <rth@redhat.com>
+
+       PR 24931
+       * tree-sra.c (struct sra_elt): Add all_no_warning.
+       (struct sra_walk_fns) <use>: Add use_all argument.
+       (sra_walk_expr): Pass it.
+       (sra_walk_modify_expr): Likewise.
+       (scalarize_ldst): Likewise.
+       (scan_use): Update for new argument.
+       (mark_no_warning): New.
+       (scalarize_use): Use it.
+
+2005-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * expr.c (expand_expr_real): Use usmul_optab for widening
+       signed * unsigned multiplies.
+       * genopinit.c (optabs): Add usmul_widen_optab.
+       * optabs.c (init_optabs): Likewise.
+       * optabs.h (enum optab_index): Add OTI_usmul_widen.
+       (usmul_widen_optab): Define.
+       * config/bfin/bfin.md (usmulhisi3): New pattern.
+
+       * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
+
+2005-11-20  Graham Stott <btinternet.com>
+
+       * gensupport.c (std_preds): Fixed extraneous `false` in last change.
+
+2005-11-20  Andreas Schwab  <schwab@suse.de>
+
+       PR target/24757
+       * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
+       insn.
+
+2005-11-19  Richard Henderson  <rth@redhat.com>
+
+       PR tree-opt/24665
+       * tree-gimple.c (is_gimple_id): Export.
+       * tree-gimple.h (is_gimple_id): Declare.
+       * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
+       (get_default_value): Use it.
+       (maybe_fold_stmt_indirect): Likewise.
+
+2005-11-19  James A. Morrison  <phython@gcc.gnu.org>
+
+        * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
+        than VR1 or vice-versa.
+
+2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR middle-end/24912
+       PR middle-end/24750
+       * reload.c (find_reloads_address_1): Mention dependency on
+       gen_reload.
+       * reload1.c (gen_reload): For IN with an unary operation, try
+       moving inner expression to OUT if trivial SET is not valid.
+       Confirm that the result is valid.  Move common code block into...
+       (emit_insn_if_valid_for_reload): New function.
+
+2005-11-19  Richard Guenther  <rguenther@suse.de>
+
+       * fold-const.c (fold_indirect_ref_1): Make sure we fold
+       ARRAY_REFs of constant strings.
+
+2005-11-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
+       fatal format string.
+
+2005-11-19  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * combine.c (make_compound_operation): Swap operands of
+       commutative operation if necessary before returning.
+
+2005-11-19  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/23294
+       * fold-const.c (fold_plusminus_mult_expr): New function.
+       (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
+       cases, remove now unnecessary code.
+
+2005-11-19  Paolo Bonzini  <bonzini@gcc.gnu.org>
+
+       * gensupport.c (old_preds): Rename to std_preds, add special field.
+       (struct old_pred_table): Rename to struct std_pred_table, add special
+       field.
+       (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
+       (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
+       (init_predicate_table): Adjust, and set along the way whether a
+       predicate is special.
+
+2005-11-18  Mark Mitchell  <mark@codesourcery.com>
+
+       * BASE-VER: Change to 4.2.0.
+
+2005-11-18  James E Wilson  <wilson@specifix.com>
+
+       * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
+       returning it.
+
+2005-11-18  Mike Stump  <mrs@apple.com>
+
+       * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
+       * config/darwin-c.c (darwin_pragma_unused): Likewise.
+       * c-decl.c (lookup_name_two) Remove.
+       * c-tree.h (lookup_name_two): Remove.
+       * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
+       * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
+       (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
+       * langhooks.h (lang_hooks_for_decls): Add lookup_name.
+       
+2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       PR target/24914
+       * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
+       when not generating code to use that co-processor.
+
+2005-11-18  James A. Morrison  <phython@gcc.gnu.org>
+
+       * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
+       add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
+       these functions are now in tree-phinodes.c.
+
+2005-11-18  Jie Zhang  <jie.zhang@analog.com>
+
+       * config/bfin/bfin.md (trap): New pattern.
+
+2005-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
+       on types.
+
+       * expr.c (expand_expr_real): Don't call record_block_change unless
+       ib_boundaries_block is non-null
+
+       * postreload.c (reload_cse_move2add): Don't try to work with BImode.
+
+       * fold-const.c (build_range_check): Use proper type for subtraction
+       when merging lower bound.
+
 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
 
        PR rtl-optimization/24497