OSDN Git Service

PR target/46030
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 32dc3d3..6fd8147 100644 (file)
+2010-11-01  Alan Modra  <amodra@gmail.com>
+
+       PR target/46030
+       * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
+       and savres_strategy.
+       (stack_info): New file scope var.
+       (rs6000_init_machine_status): Init stack_info.
+       (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
+       SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
+       SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
+       (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
+       SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
+       REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
+       (rs6000_savres_strategy): Rewrite.
+       (rs6000_stack_info): Use "stack_info" in place of local "info".
+       Return cached stack info when reload_completed unless ENABLE_CHECKING
+       in which case confirm newly calculated stack info matches old info.
+       Delay calculation of lr_save_p, set it for out of line gp save/restore
+       as well as fp.  Call rs6000_savres_strategy from here..
+       (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
+       (rs6000_output_function_prologue): Use info->savres_strategy to
+       determine whether fp save/restore externs need to be emitted.
+
+2010-10-31  Jason Merrill  <jason@redhat.com>
+
+       * tree.h (EXPR_LOC_OR_HERE): New macro.
+       * builtins.c (c_strlen): Use it.
+       * c-decl.c (build_enumerator): Likewise.
+       * gimplify.c (internal_get_tmp_var): Likewise.
+       (shortcut_cond_expr): Likewise.
+       (gimplify_one_sizepos): Likewise.
+
+2010-10-31  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/cygming.h (TARGET_SEH): New.
+       (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
+       (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
+       TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
+       (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
+       (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
+       (ASM_DECLARE_FUNCTION_SIZE): New.
+       * config/i386/i386-protos.h: Update.
+       * config/i386/i386.c (ix86_option_override_internal): Enable
+       flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
+       restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
+       (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
+       (ix86_compute_frame_layout): For SEH, disable
+       use_fast_prologue_epilogue, move frame pointer to the end of
+       the frame.  Initialize hfp_save_offset.
+       (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
+       at end of prologue for SEH.
+       (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
+       emit blockage at beginning of epilogue.
+       (ix86_expand_binary_operator): After reload, emit LEA if needed.
+       (ix86_output_call_insn): New.
+       * config/i386/i386.h (TARGET_SEH): New.
+       (struct machine_function): Add member seh.
+       * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
+       * config/i386/winnt.c (struct seh_frame_state): New.
+       (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
+       seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
+       seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
+       i386_pe_start_function, i386_pe_end_function): New.
+
+       * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
+       as CFA_STORE in rules 12 and 13.
+
+2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR tree-optimization/46142
+       * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
+       accommodate third function argument.
+
+2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
+
+2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * fold-const.c (build_zero_vector): Use build_vector_from_val.
+       * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
+       (get_initial_def_for_reduction): Likewise.
+       * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
+       * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
+       * tree.c (build_one_cst): Likewise.
+       (build_vector_from_val): Use types_compatible_p for assert.
+
+2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * emit-rtl.c (mark_used_flags): New function.
+       (set_used_flags, reset_used_flags): Call it.
+
+2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR middle-end/44569
+       * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
+       determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
+
+2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/46195
+       * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
+       (ix86_compat_aligned_value_p): This.
+       (ix86_old_function_arg_boundary): Renamed to ...
+       (ix86_compat_function_arg_boundary): This.  Updated.
+       (ix86_contains_aligned_value_p): New.
+       (ix86_function_arg_boundary): Align long double parameters on
+       stack to 4byte in 32bit.
+
+2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
+       * c-parser.c (c_parser_objc_at_property_declaration): Removed
+       parsing of RID_COPIES and RID_IVAR.  Updated call to
+       objc_add_property_declaration.
+       * c-typecheck.c (build_component_ref): Call
+       objc_maybe_build_component_ref instead of objc_build_setter_call.
+       Use objc_is_property_ref to improve Objective-C checks.
+       (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
+       of objc_build_getter_call.
+
+2010-10-29  Paul Koning  <ni1d@arrl.net>
+
+       * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
+       REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
+       REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
+       (REG_OK_STRICT): Move description.
+
+2010-10-29  Paul Koning  <ni1d@arrl.net>
+
+       * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
+
+2010-10-29  Paul Koning  <ni1d@arrl.net>
+
+       * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
+
+2010-10-29  Paul Koning  <ni1d@arrl.net>
+
+       PR/41822
+       * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
+
+2010-10-29  Richard Henderson  <rth@redhat.com>
+
+       PR rtl-opt/46226
+       * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
+       for asm goto.
+
+2010-10-29  Paul Koning  <ni1d@arrl.net>
+
+       * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
+       register to register move.
+
+2010-10-29  Paul Koning  <ni1d@arrl.net>
+
+       * config/pdp11/pdp11.c (print_operand_address): Correct handling
+       of integer constant addresses, delete vax-only logic.
+
+2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
+
+       * config/picochip/picochip.c (picochip_is_short_branch): Simplify
+       a conditional expression.
+
+2010-10-29  Paul Koning  <ni1d@arrl.net>
+
+       * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
+       instruction encoding.
+
+2010-10-29  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
+       Andrew Pinski <pinskia@gmail.com>
+
+       * tree.h (build_vector_from_val): Declare.
+       * tree.c (build_vector_from_val): New function.
+       * c-typeck.c (build_binary_op): Handle vector shifting.
+       * doc/extend.texi: Description of the vector shifting operation.
+
+2010-10-29  Paul Koning  <pkoning@equallogic.com>
+
+       * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
+       pdp11_secondary_memory_needed): Declare.
+       * config/pdp11/predicates.md (float_operand): New predicate.
+       * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
+       (cbranchdf4, movdf): Change predicate.
+       (movsf): Handle FPU register case.
+       (truncdfsf2, extendsfdf2): Add FPU register case.
+       * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
+       TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
+       TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
+       (pdp11_register_move_cost): Update cost matrix.
+       (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
+       pdp11_preferred_output_reload_class, pdp11_secondary_reload,
+       pdp11_secondary_memory_needed): New function.
+       (pdp11_return_in_memory): Add other float types.
+       * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
+       (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
+       (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
+       REGISTER_MOVE_COST): Delete.
+       (BASE_RETURN_VALUE_REG): Add other float types.
+
+2010-10-29  Nick Clifton<nickc@redhat.com>
+
+       * doc/invoke.texi: Document -mam34 and -mtune options.
+       * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
+       (mn10300_tune_cpu): New variable.
+       (mn10300_handle_option): Handle -mam34 and -mtune options.
+       (mn10300_option_override): Convert tune string into tune cpu variable.
+       (mn10300_legitimate_constant_p): Delete unused local variable.
+       (is_load_insn): New function.
+       (is_store_insn): New function.
+       (mn10300_adjust_schedule_cost): New function.
+       (TARGET_SCHED_ADJUST_COST): Define.
+       * config/mn10300/mn10300.opt (mam34): New option.
+       (mtune): New option.
+       * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
+       (enum processor_type): Add AM34.
+       (TARGET_AM34): Define.
+       * config/mn10300/mn10300.md (attr cpu): Add am34.
+       Add pipeline description.
+       (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
+       Remove unneeded alternatives.  Add timing attribute.
+       (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
+       mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
+       mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
+       mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
+       mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
+       bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
+       bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
+       float_conditional_branch, jump, indirect_jump, tablejump,
+       call_internal, call_value_internal, zero_extendqisi2_am33,
+       zero_extendqisi2_mn10300, zero_extendhisi2_am33,
+       zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
+       extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
+       mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
+       mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
+       addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
+       fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
+       return_internal_regs, store_movm, return, call_next_insn):
+       Add timing attribute.
+       (am33_subsi3): Add missing clobber of CC_REG.
+       (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
+       (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
+       subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
+       extendqisi2): Fix predicates.
+       (call_internal, call_internal_value): Separate alternatives.
+       * config/mn10300/t-mn10300: Add AM34 multilib.
+
+2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config/sh/sh.c (sh_promote_function_mode): Use
+       default_promote_function_mode if !sh_promote_prototypes.
+
+2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
+
+       * recog.c (split_all_insns): Remove dead code.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/microblaze/microblaze-protos.h (function_arg): Delete.
+       (function_arg_advance): Delete.
+       * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
+       (FUNCTION_ARG): Delete.
+       * config/microblaze/microblaze.c (function_arg_advance): Rename to...
+       (microblaze_function_arg_advance): ...this.  Make static.  Take a
+       const_tree and a bool.
+       (function-arg): Rename to...
+       (microblaze_function_arg): ...this.  Make static.  Take a const_tree
+       and a bool.
+       (microblaze_expand_prologue): Call targetm.calls.function_arg and
+       targetm.calls.function_arg_advance.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
+       (FUNCTION_ARG_ADVANCE): Delete.
+       * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
+       functions.
+       (cris_function_incoming_arg, cris_function_arg_advance): New functions.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
+       (TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
+       * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
+       * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
+       Take a const_tree and a bool.
+       (mcore_function_arg_advance): New function.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
+       * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
+       * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
+       Take a const_tree and a bool.
+       (mcore_function_arg_advance): New function.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/h8300/h8300-protos.h (function_arg): Delete.
+       * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
+       * config/h8300/h8300.c (function_arg): Rename to...
+       (h8300_function_arg): ...this.  Make static.  Take a const_tree and
+       a bool.
+       (h8300_function_arg_advance): New function.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
+       to...
+       * config/arc/arc.c (arc_function_arg): ...here and...
+       (arc_function_arg_advance): ...here.  New functions.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/crx/crx-protos.h (crx_function_arg): Delete.
+       (crx_function_arg_advance): Delete.
+       * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
+       * config/crx/crx.c (crx_function_arg): Make static.  Take a
+       const_tree and a bool.
+       (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
+       (enough_regs_for_param): Take a const_tree.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
+       (m68hc11_function_arg_advance): Delete.
+       * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
+       (FUNCTION_ARG_ADVANCE): Delete.
+       * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
+       Take a const_tree and a bool.
+       (m68hc11_function_arg_advance): Likewise.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
+       (xstormy16_function_arg_advance): Delete.
+       * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
+       (FUNCTION_ARG_ADVANCE): Delete.
+       * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
+       Take a const_tree and a bool.
+       (xstormy16_function_arg_advance): Likewise.  Return void, updating
+       the CUM parameter instead.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
+       * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
+       (MOXIE_FUNCTION_ARG_SIZE): Move to...
+       * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
+       (moxie_function_arg): Make static.  Take a const_tree and a bool.
+       (moxie_function_arg_advance): New function.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/mn10300/mn10300-protos.h (function_arg): Delete.
+       * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
+       (FUNCTION_ARG_ADVANCE): Delete.
+       * config/mn10300/mn10300.c (function_arg): Rename to...
+       (mn10300_function_arg): ...this.  Make static.  Take a const_tree
+       and a bool.
+       (mn10300_function_arg_advance): New function.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/iq2000/iq2000-protos.h (function_arg): Delete.
+       (function_arg_advance): Delete.
+       * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
+       * config/iq2000/iq2000.c (function_arg): Rename to...
+       (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
+       a bool.
+       (function_arg_advance): Rename to...
+       (iq2000_function_arg_advance): ...this.  Make static.  Take a
+       const_tree and a bool.
+       (iq2000_expand_prologue): Call iq2000_function_arg_advance and
+       iq2000_function_arg.
+       (iq2000_pass_by_reference): Call iq2000_function_arg).
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
+       * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
+       * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
+       const_tree.
+       (fr30_function_arg): New function.
+       (fr30_function_arg_advance): New function.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/frv/frv-protos.h (frv_function_arg): Delete.
+       (frv_function_arg_advance): Delete.
+       * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
+       * config/frv/frv.c (frv_function_arg): Rename to...
+       (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
+       (frv_function_arg, frv_function_incoming_arg): New functions.
+       (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
+       (TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/46153
+       * config/i386/sse.md (sse_movhlps_exp): Use destination
+       returned from ix86_fixup_binary_operands to expand insn.
+       (sse_movlhps_exp): Ditto.
+       (sse_loadhps_exp): Ditto.
+       (sse_loadlps_exp): Ditto.
+       (sse2_loadhpd_exp): Ditto.
+       (sse2_loadlpd_exp): Ditto.
+
+2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
+       constants in thumb2.
+
+2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
+       arithmetics in masking operations.
+       (contains_muldiv): Likewise.
+       (try_combine): Likewise.
+       (find_split_point): Likewise.
+       (combine_simplify_rtx): Likewise.
+       (simplify_if_then_else): Likewise.
+       (simplify_set): Likewise.
+       (expand_compound_operation): Likewise.
+       (expand_field_assignment): Likewise.
+       (make_extraction): Likewise.
+       (extract_left_shift): Likewise.
+       (make_compound_operation): Likewise.
+       (force_to_mode): Likewise.
+       (make_field_assignment): Likewise.
+       (reg_nonzero_bits_for_combine): Likewise.
+       (simplify_shift_const_1): Likewise.
+       (simplify_comparison): Likewise.
+
+2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
+       (ia64_function_arg_advance): Delete.
+       * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
+       (FUNCTION_ARG_ADVANCE): Delete.
+       * config/ia64/ia64.c (ia64_function_arg): Rename to...
+       (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
+       bool arguments.
+       (ia64_function_arg, ia64_function_incoming_arg): New functions.
+       (ia64_function_arg_advance): Make static.  Take a const_tree and
+       a bool.
+       (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
+       (TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-27  Steve Ellcey  <sje@cup.hp.com>
+
+       * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
+       (TARGET_GET_RAW_ARG_MODE): New.
+       * doc/tm.texi: Regenerate.
+       * target.def (get_raw_result_mode): New.
+       (get_raw_arg_mode): New.
+       * targhooks.c (default_get_reg_raw_mode): New.
+       * targhooks.h (default_get_reg_raw_mode): New.
+       * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
+       (apply_result_size): Ditto.
+       * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
+       (TARGET_GET_RAW_RESULT_MODE): Define.
+       (TARGET_GET_RAW_ARG_MODE): Ditto.
+
+2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
+       for newer Solaris 10 release.
+       (sparc_fallback_frame_state): Likewise.
+
+2010-10-27  Jason Merrill  <jason@redhat.com>
+
+       * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
+       variables sooner.
+
+2010-10-27  Jie Zhang  <jie@codesourcery.com>
+           Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * haifa-sched.c (ISSUE_POINTS): Remove.
+       (max_issue): Don't issue more than issue_rate instructions.
+
+2010-10-27  Ian Lance Taylor  <iant@google.com>
+
+       PR target/46197
+       * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
+       (split_stack_return): Replace UNSPEC_STACK_CHECK with
+       UNSPECV_SPLIT_STACK_RETURN.
+
+2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386-protos.h (init_cumulative_args): Add an int.
+
+       * config/i386/i386.c (block_info): New.
+       (BLOCK_INFO): Likewise.
+       (call_avx256_state): Likewise.
+       (check_avx256_stores): Likewise.
+       (move_or_delete_vzeroupper_2): Likewise.
+       (move_or_delete_vzeroupper_1): Likewise.
+       (move_or_delete_vzeroupper): Likewise.
+       (use_avx256_p): Likewise.
+       (function_pass_avx256_p): Likewise.
+       (flag_opts): Add -mvzeroupper.
+       (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
+       default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
+       is disabled.
+       (ix86_function_ok_for_sibcall): Disable sibcall if we need to
+       generate vzeroupper.
+       (init_cumulative_args): Add an int to indicate caller.  Set
+       use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
+       based on return type.
+       (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
+       caller_pass_avx256_p based on argument type.
+       (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
+       is used, but not returned by caller.
+       (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
+       (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
+       is used.
+       (ix86_minimum_alignment): Likewise.
+       (ix86_expand_special_args_builtin): Set target to
+       GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
+       (ix86_reorg): Run the vzeroupper optimization if needed.
+
+       * config/i386/i386.h (ix86_args): Add caller.
+       (INIT_CUMULATIVE_ARGS): Updated.
+       (machine_function): Add use_vzeroupper_p, use_avx256_p,
+       caller_pass_avx256_p, caller_return_avx256_p,
+       callee_pass_avx256_p and callee_return_avx256_p.
+
+       * config/i386/i386.opt (-mvzeroupper): New.
+
+       * config/i386/predicates.md (vzeroupper_operation): Removed.
+
+       * config/i386/sse.md (avx_vzeroupper): Removed.
+       (*avx_vzeroupper): Removed.
+       (avx_vzeroupper): New.
+
+       * doc/invoke.texi: Document -mvzeroupper.
+
+2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
+       * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
+       * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
+
+2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
+           Olivier Hainque  <hainque@adacore.com>
+
+       * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
+       of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
+       fs->signal_frame instead.
+
+2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * c-parser.c (cp_parser_objc_at_property_declaration): Removed
+       parsing of RID_COPIES and RID_IVAR.
+
+2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * c-parser.c (c_parser_objc_at_property_declaration): Recognize
+       RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
+       Do not use objc_set_property_attr, but use local variables
+       instead.  Detect repeated usage of setter, getter and ivar
+       attributes.  Improved error processing when a setter name does not
+       end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
+       that the token is a keyword.  Updated call to
+       objc_add_property_declaration.
+
+2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * c-parser.c (c_parser_objc_at_property): Renamed to
+       c_parser_objc_at_property_declaration.  Updated calls to
+       objc_add_property_variable, now objc_add_property_declaration.
+       Code rewritten to be much more robust in recovering from syntax
+       errors.  Added comments.
+       (c_parser_objc_property_attrlist): Removed.
+       (c_parser_external_declaration): Updated calls to
+       c_parser_objc_at_property, now
+       c_parser_objc_at_property_declaration.
+       (c_parser_objc_methodprotolist): Same change.
+
+2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
+
+2010-10-26  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c (process_references): Enqueue all referenced nodes;
+       mark as reachable only non-external nodes.
+       (cgraph_remove_unreachable_nodes): All referenced nodes should
+       be enqueued; remove bogues node->needed check.
+
+2010-10-26  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
+       to represent OMP.
+
+2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.md (split_stack_return): Replace
+       unspec_volatile with unspec.
+
+2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * doc/install.texi: Fix typo in --with-sysroot description.
+
+2010-10-26  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
+       Use info provided by linker plugin.
+
+2010-10-26  Jason Merrill  <jason@redhat.com>
+
+       * varasm.c (constructor_static_from_elts_p): Don't require a
+       CONSTRUCTOR to have elements to be suitable for static
+       initialization.  Allow ARRAY_TYPE as well.
+
+2010-10-26  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/45736
+       * cgraph.c (cgraph_set_readonly_flag): Rename to...
+       (cgraph_set_const_flags) ... this one; get also looping argument;
+       clear constructor/destructor flags.
+       (cgraph_set_pure_flag): Likewise.
+       (cgraph_set_looping_const_or_pure_flag): Remove.
+       (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
+       to optimize away static ctors/dtors; it does not work on inline clones;
+       external functions can always be rmeoved.
+       (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
+       inline clones; in LTO external functions always can go.
+       (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
+       (cgraph_mark_address_taken_node): Assert that we are not taking
+       address of inline clone.
+       (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
+       external functions.
+       * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
+       address taken.
+       (ipcp_initialize_node_lattices): Only local functions can be
+       handled without cloning.
+       * cgraph.h (cgraph_set_readonly_flag,
+       cgraph_set_looping_const_or_pure_flag): Remove.
+       (cgraph_set_const_flag): Declare.
+       (cgraph_set_pure_flag): Update.
+       * ipa-pure-const (propagate_pure_const, local_pure_const): Update
+       flags setting code.
+       * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
+       look at inline clones; fix handling of external definitions.
+       (cgraph_postorder): Do not look at inline clones in the first pass.
+       (function_and_variable_visibility): Drop constructors/destructor
+       flags at pure and const functions.
+       * tree-profile.c (tree_profiling): Update.
+       * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
+       address taken; external functions do not account to whole program size.
+       (cgraph_decide_inlining): Likewise; do not try to inline
+       functions already inlined.
+
+2010-10-26  Jie Zhang  <jie@codesourcery.com>
+
+       * doc/invoke.texi: Improve documentation of
+       -fstrict-volatile-bitfields.
+
+2010-10-26  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/46167
+       * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
+       is basic block for the statement.
+
+2010-10-26  Paul Koning  <ni1d@arrl.net>
+
+       * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
+       current definition of struct_real_format.
+
+2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/44948
+       * config/i386/i386.c (ix86_old_function_arg_boundary): New.
+       (ix86_function_arg_boundary): Always align parameters on stack
+       in 64bit and align parameters with alignment >= 16byte on stack
+       in 32bit.  Warn alignment change.
+
+2010-10-26  Ian Lance Taylor  <iant@google.com>
+
+       PR middle-end/45687
+       * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
+       offset.
+
+2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
+
+       Implement opaque-enum-specifiesr for C++0x
+       * tree.h (ENUM_IS_OPAQUE): New.
+       * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
+
+2010-10-26  Jie Zhang  <jie@codesourcery.com>
+
+       * stor-layout.c (layout_decl): Use the field's type to
+       determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
+       * config/arm/arm.c (arm_override_options): Default to
+       -fstrict-volatile-bitfields.
+
+2010-10-25  Paul Koning  <ni1d@arrl.net>
+
+       * config/pdp11/pdp11.md: Add define_constants for register
+       numbers, branch offset limits.
+       * config/pdp11/pdp11.c: Use named constants instead of numbers.
+       * config/pdp11.pdp11.h: Ditto.
+
+2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * configure.ac: Use $cpu_type instead of $target to define the nop.
+       * configure: Regenerate.
+
+2010-10-25  Jie Zhang  <jie@codesourcery.com>
+
+       * combine.c (try_combine): If insns need to be kept around, check that
+       they can be copied in the merged instruction.
+
+2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
+       has been modified.
+       (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
+       (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
+       it has been modified.
+
+2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
+
+2010-10-24  Paul Koning  <ni1d@arrl.net>
+
+       * config/pdp11/pdp11.md: Change length attribute to be in bytes.
+       * config/pdp11/pdp11.c (output_jump): Ditto.
+
+2010-10-24  Ian Lance Taylor  <iant@google.com>
+
+       * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
+
+2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
+       least one insn with a locus corresponding to an edge's goto_locus,
+       disregard non-fallthru edges to the exit block and merge the blocks
+       created for the same goto_locus.
+
+2010-10-23  Joseph Myers  <joseph@codesourcery.com>
+
+       * gcc.c (n_switches_alloc_debug_check): New.
+       (set_option_handlers): New.
+       (process_command): Use set_option_handlers.
+       (do_self_spec): Pass spec-generated options through option handlers.
+       (main): Also save and restore n_switches_alloc when swapping
+       switch arrays.
+
+2010-10-23  Richard Henderson  <rth@redhat.com>
+
+       PR target/46144
+       * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
+       (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
+       Honor matching operands when splitting to XOR.
+
+2010-10-23  Ian Lance Taylor  <iant@google.com>
+
+       * tree-vrp.c (extract_range_from_binary_expr): If
+       flag_non_call_exceptions don't eliminate division by zero.
+       * simplify-rtx.c (simplify_binary_operation_1): Likewise.
+
+2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
+       __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
+       __ORDER_PDP_ENDIAN__.
+       * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       (struct DWstruct): Define based on __BYTE_ORDER__.
+       * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       (struct INTstruct): Define based on __BYTE_ORDER__.
+       * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
+       * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
+       * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
+       * doc/tm.texi: Regenerate.
+       * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
+       (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
+
+2010-10-23  Jie Zhang  <jie@codesourcery.com>
+
+       PR rtl-optimization/37360
+       * config/mips/mips.c (cached_can_issue_more): New local variable.
+       (mips_sched_reorder_1): New.
+       (mips_sched_reorder): Use mips_sched_reorder_1.
+       (mips_sched_reorder2): New.
+       (mips_variable_issue): Set cached_can_issue_more.
+       (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
+       instead of mips_sched_reorder.
+
+       Revert:
+       2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
+       PR rtl-optimization/37360
+       * haifa-sched.c (max_issue): Do not assert that we never issue more
+       insns than issue_rate.  Add comment.
+
+2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimplify.c (gimplify_variable_sized_compare): Preserve the source
+       location info of the expression.
+
+2010-10-22  DJ Delorie  <dj@redhat.com>
+
+       * doc/extend.texi (Named Address Spaces): Document the M32C named
+       address space.
+
+       * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
+       __far address space.
+       * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
+       "__far" address space for R8C and M16C processor variants.
+       * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
+       (far_addr_space_p): New.
+       (encode_pattern_1): Add sign and zero extend support.
+       (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
+       (m32c_extra_constraint_p2): Add SF constraint.
+       (m32c_legitimate_address_p): Support __far addresses.
+       (m32c_addr_space_pointer_mode): New.
+       (m32c_addr_space_address_mode): New.
+       (m32c_addr_space_legitimate_address_p): New.
+       (m32c_addr_space_legitimize_address): New.
+       (m32c_addr_space_subset_p): New.
+       (m32c_addr_space_convert): New.
+       (conversions): Add __far operand patterns.
+       (m32c_prepare_move): Force constants into registers for __far moves.
+       (m32c_split_move): __far moves are always split.
+       * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
+       * config/m32c/mov.md (mov<mode>_far_op1): New.
+       (mov<mode>_far_op2): New.
+       (movqi_op): Add __far (SF) support.
+       (movhi_op): Likewise.
+       (movsi_splittable): Split A1A0 also.
+
+2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
+           Andrew Pinski  <pinskia@gmail.com>
+
+       * c-typeck.c (build_array_ref): Handle subscripting of vectors.
+       * doc/extend.texi: New paragraph
+
+2010-10-22  Paul Koning  <ni1d@arrl.net>
+
+       * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
+
+2010-10-22  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
+
+2010-10-22  Paul Koning  <ni1d@arrl.net>
+
+       * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
+
+2010-10-22  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (ix86_builtin_vectorized_function): Add
+       cases for __builtin_fma and __builtin_fmaf.
+
+2010-10-22  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
+       NEG+USE for vectors as well.
+       * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
+       and splitter.
+
+2010-10-22  Joseph Myers  <joseph@codesourcery.com>
+
+       * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
+       SWITCH_CURTAILS_COMPILATION): Remove.
+       * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
+       * doc/tm.texi: Regenerate.
+       * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
+
+2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
+
+       * config/i386/bdver1.md: New file.
+       * config/i386/i386.md (include "bdver1.md"): Invoke the
+       pipeline description for bdver1.
+       (x86_sahf_1): Add "bdver1_decode" attribute.
+       (*cmpfp_i_mixed): Likewise.
+       (*cmpfp_i_sse): Likewise.
+       (*cmpfp_i_i387): Likewise.
+       (*cmpfp_iu_mixed): Likewise.
+       (*cmpfp_iu_sse): Likewise.
+       (*cmpfp_iu_387): Likewise.
+       (*swap<mode>,*swap<mode>_1): Likewise.
+       (fixuns_trunc<mode>hi2): Likewise.
+       (fix_trunc<mode>si_sse): Likewise.
+       (x86_fnstcw_1): Likewise.
+       (x86_fldcw_1): Likewise.
+       (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
+       (*floatsi<mode>2_vector_mixed): Likewise.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
+       (*floatsi<mode>2_vector_sse_with_temp): Likewise.
+       (*floatsi<mode>2_vector_sse): Likewise.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
+       (*mul<mode>3_1): Likewise.
+       (*mulsi3_1_zext): Likewise.
+       (*mulhi3_1): Likewise.
+       (*mulqi3_1): Likewise.
+       (*<u>mul<mode><dwi>3_1): Likewise.
+       (*<u>mulqihi3_1): Likewise.
+       (*<s>muldi3_highpart_1): Likewise.
+       (*<s>mulsi3_highpart_1): Likewise.
+       (*<s>mulsi3_highpart_zext): Likewise.
+       (x86_64_shld): Likewise.
+       (x86_shld): Likewise.
+       (x86_64_shrd): Likewise.
+       (x86_shrd): Likewise.
+       (sqrtxf2): Likewise.
+       (sqrt_extend<mode>xf2_i387): Likewise.
+       (*sqrt<mode>2_sse): Likewise.
+       * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
+       (sse_cvtsi2ssq): Likewise.
+       (sse_cvtss2si): Likewise.
+       (sse_cvtss2si_2): Likewise.
+       (sse_cvtss2siq): Likewise.
+       (sse_cvtss2siq_2): Likewise.
+       (sse_cvttss2si): Likewise.
+       (sse_cvttss2siq): Likewise.
+       (sse2_cvtpi2pd): Likewise.
+       (sse2_cvttpd2pi): Likewise.
+       (sse2_cvtsi2sd): Likewise.
+       (sse2_cvtsi2sdq): Likewise.
+       (sse2_cvtsd2si): Likewise.
+       (sse2_cvtsd2si_2): Likewise.
+       (sse2_cvtsd2siq): Likewise.
+       (sse2_cvtsd2siq_2): Likewise.
+       (sse2_cvttsd2si): Likewise.
+       (sse2_cvttsd2siq): Likewise.
+       (*sse2_cvtpd2dq): Likewise.
+       (*sse2_cvttpd2dq): Likewise.
+       (sse2_cvtsd2ss): Likewise.
+       (sse2_cvtss2sd): Likewise.
+       (*sse2_cvtpd2ps): Likewise.
+       (sse2_cvtps2pd): Likewise.
+
+2010-10-22  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/46137
+       * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
+       remove the virtual operands if they are not needed.
+
+2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
+
+       * config/i386/i386.c (processor_costs bdver1_cost): Update
+       insn costs and architectural parameters for bdver1.
+
+2010-10-22  Richard Guenther  <rguenther@suse.de>
+
+       * gimple.h (gimple_register_canonical_type): Declare.
+       * gimple.c (gimple_canonical_types): New global hashtable.
+       (struct gimple_type_leader_entry_s): New type.
+       (gimple_type_leader): New global cache.
+       (gimple_lookup_type_leader): New function.
+       (gtc_visit): Query the proper cache.
+       (gimple_types_compatible_p): Likewise.
+       (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
+       (gimple_canonical_type_eq): New function.
+       (gimple_register_canonical_type): Likewise.
+       (print_gimple_types_stats): Adjust for gimple_canonical_types.
+       (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
+       * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
+       gimple_types_compatible_p for LTO.
+
+2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/46098
+       * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
+       Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
+       (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
+       (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
+       (<sse>_movu<ssemodesuffix>): New expander.
+       (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
+       (avx_movdqu<avxmodesuffix>): New expander.
+       (*sse2_movdqu): Rename from sse2_movdqu.
+       (sse2_movdqu): New expander.
+
+2010-10-22  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/45720
+       * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
+       Handle negative step.
+       (vect_enhance_data_refs_alignment): Likewise.
+       * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
+       (vect_create_cond_for_align_checks): Likewise.
+       (vect_create_cond_for_alias_checks): Likewise.
+
+2010-10-22  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/46126
+       * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
+       vectorizable_shift in case of basic block vectorization.
+
 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
 
        * target.h (enum opt_levels, struct default_options): New.
 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
 
        Based on the CFString implementation in FSF apple/trunk branch.
-       
+
        * target.def (objc_construct_string): New Hook.
        * doc/tm.texi (objc_construct_string): Document.
        * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
        (darwin_cfstring_p): Likewise.
        (darwin_enter_string_into_cfstring_table): Likewise.
        * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
-       * config/darwin.c (darwin_running_cxx): New var. 
+       * config/darwin.c (darwin_running_cxx): New var.
        (machopic_select_section): Return cfstring_constant_object_section.
        (darwin_override_options): Set darwin_running_cxx.
        (add_builtin_field_decl): New.