OSDN Git Service

PR target/46030
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index bae8197..6fd8147 100644 (file)
@@ -1,3 +1,771 @@
+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
        (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
        instead of mips_sched_reorder.
 
-       Revert
+       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
        (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_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.
        (movhi_op): Likewise.
        (movsi_splittable): Split A1A0 also.
 
-2010-10-22  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
-           Andrew Pinski <pinskia@gmail.com>
+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
 
        * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
        SWITCH_CURTAILS_COMPILATION): Remove.
-       * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove
-       documentation.
+       * 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>
 
-       * gcc/config/i386/bdver1.md: New file.
-       * gcc/config/i386/i386.md (include "bdver1.md"): Invoke the
+       * 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.
        (sqrtxf2): Likewise.
        (sqrt_extend<mode>xf2_i387): Likewise.
        (*sqrt<mode>2_sse): Likewise.
-       * gcc/config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
+       * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
        (sse_cvtsi2ssq): Likewise.
        (sse_cvtss2si): Likewise.
        (sse_cvtss2si_2): Likewise.
 
 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
 
-       * gcc/config/i386/i386.c (processor_costs bdver1_cost): Update
+       * config/i386/i386.c (processor_costs bdver1_cost): Update
        insn costs and architectural parameters for bdver1.
 
 2010-10-22  Richard Guenther  <rguenther@suse.de>