+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