+2011-11-24 Alan Modra <amodra@gmail.com>
+
+ * c-decl.c (warn_if_shadowing): Don't warn if shadowed
+ identifier is from system header.
+
+2011-11-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/51261
+ * config/i386/i386.c (decide_alg): Initialize *dynamic_check
+ even if !optimize.
+
+2011-11-23 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/48455
+ * doc/invoke.texi (-fira-region): Document default values.
+
+ * flags-types.h (enum ira_region): Add new value
+ IRA_REGION_AUTODETECT.
+
+ * common.opt (fira-region): Set up initial value to
+ IRA_REGION_AUTODETECT.
+
+ * toplev.c (process_options): Set up flag_ira_region depending on
+ -O options.
+
+ * ira.c (ira.c): Remove optimize guard for ira_build.
+
+2011-11-23 Chung-Lin Tang <cltang@codesourcery.com>
+
+ PR rtl-optimization/50496
+ * jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX
+ only after epilogue is created. Add comments.
+
+2011-11-22 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter.
+ Generate the barrier required for the memory model.
+ (rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL.
+ * config/ia64/ia64-protos.h: Update.
+ * config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New.
+ (UNSPEC_CMPXCHG_REL): New.
+ * config/ia64/sync.md (mem_thread_fence): New.
+ (atomic_load<IMODE>, atomic_store<IMODE>): New.
+ (atomic_compare_and_swap<IMODE>): New.
+ (cmpxchg_acq_<I124MODE>, cmpxchg_acq_di): New.
+ (atomic_exchange<IMODE>): New.
+ (xchg_acq_<IMODE>): Rename from sync_lock_test_and_set<IMODE>.
+ (atomic_<FETCHOP><IMODE>, atomic_nand<IMODE>): New.
+ (atomic_fetch_<FETCHOP><IMODE>, atomic_fetch_nand<IMODE>): New.
+ (atomic_<FETCHOP>_fetch<IMODE>, atomic_nand_fetch<IMODE>): New.
+ (fetchadd_rel_<I48MODE>): New.
+ (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): Remove.
+ (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): Remove.
+ (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): Remove.
+ (sync_compare_and_swap<IMODE>): Remove.
+ (sync_lock_release<IMODE>): Remove.
+
+ * config/ia64/ia64.md: Use define_e_enum for UNSPEC_*
+ and UNSPECV_* constants.
+
+2011-11-22 Tom de Vries <tom@codesourcery.com>
+
+ PR rtl-optimization/50764
+ * sched-deps.c (sched_analyze_insn): Make sure frame-related insns are
+ not moved past preceding jump.
+
+2011-11-22 Jeff Law <law@redhat.com>
+
+ * doc/contrib.texi: Add entry for David Binderman.
+
+2011-11-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * postreload.c (reload_combine): Mark reg_state as invalid at
+ volatile insns if there has been a use already.
+
+2011-11-21 Aldy Hernandez <aldyh@redhat.com>
+
+ * opts.c (finish_options): Do not fail for -fgnu-tm.
+ * gimple-streamer-out.c (output_gimple_stmt): Handle GIMPLE_TRANSACTION.
+ * gimple-streamer-in.c (input_gimple_stmt): Same.
+ * lto-cgraph.c (input_overwrite_node): Read tm_clone bit.
+ (lto_output_node): Write tm_clone bit.
+
+2011-11-22 Ian Lance Taylor <iant@google.com>
+
+ * doc/install.texi (Configuration): Correct doc of
+ --enable-build-poststage1-with-cxx: it is not experimental.
+
+2011-11-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/51074
+ * fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR
+ handling for BYTES_BIG_ENDIAN.
+ * optabs.c (can_vec_perm_for_code_p): Likewise.
+
+2011-11-22 Michael Matz <matz@suse.de>
+
+ PR other/51125
+ * trans-mem.c (expand_block_tm): Ignore clobbers.
+
+2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
+
+ * config/darwin.h (ENDFILE_SPEC): New.
+ (DARWIN_CRT1_SPEC): Add crttms.o.
+ (STARTFILE_SPEC): Likewise for dynamic libs and bundles.
+ * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o.
+
+2011-11-22 Michael Matz <matz@suse.de>
+
+ PR c++/51264
+ * tree.c (iterative_hash_expr): Remove break after return.
+
+2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
+
+ * target.def (tm_clone_table_section): New hook.
+ * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
+ * doc/tm.texi: Regenerate.
+ * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section.
+ * output.h (default_clone_table_section): New prototype.
+ * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New.
+ * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype.
+ * config/darwin.c (darwin_tm_clone_table_section): New.
+
+2011-11-21 Torvald Riegel <triegel@redhat.com>
+
+ * trans-mem.c (diagnose_tm_1): Print an expression instead of a
+ declaration in error messages for indirect calls.
+
+2011-11-21 David S. Miller <davem@davemloft.net>
+
+ * config/sparc/sparc.c (sparc_regmode_natural_size): New function
+ implementing REGMODE_NATURAL_SIZE taking into consideration vector
+ modes.
+ (sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P.
+ * config/sparc/sparc-protos.h (sparc_regmode_natural_size,
+ sparc_modes_tieable_p): Declare.
+ * gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE,
+ MODES_TIEABLE_P): Use new helper functions.
+
+ Revert
+ 2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ PR middle-end/50325
+ * expmed.c (store_bit_field_1): Use extract_bit_field on big
+ endian targets if the source cannot be exactly covered by word
+ mode chunks.
+
+2011-11-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/50827
+ * var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP
+ macro instead of XEXP.
+
+2011-11-21 Andreas Tobler <andreast@fgznet.ch>
+
+ * configure: Regenerate.
+
+2011-11-21 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.c (output_reload_in_const): Loading a byte with 0
+ must not affect cc0.
+ * config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any
+ register does not change cc0. Same for any constant to ld-register.
+
+2011-11-21 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/mmx.md (unspec) <UNSPEC_MOVNTQ, UNSPEC_PFRCP,
+ UNSPEC_PFRCPIT1, UNSPEC_PFRCPIT2, UNSPEC_PFRSQRT, UNSPEC_PFRSQIT1>:
+ Move from config/i386/i386.md
+ (unspecv) <UNSPECV_EMMS, UNSPECV_FEMMS>: Ditto.
+ * config/i386/sse.md (unspec) <UNSPEC_MOVNT,UNSPEC_MOVU, UNSPEC_LDDQU,
+ UNSPEC_PSHUFB, UNSPEC_PSIGN, UNSPEC_PALIGNR, UNSPEC_EXTRQI,
+ UNSPEC_EXTRQ, UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV,
+ UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW,
+ UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_PCMPESTR, UNSPEC_PCMPISTR,
+ UNSPEC_FMADDSUB, UNSPEC_XOP_UNSIGNED_CMP, UNSPEC_XOP_TRUEFALSE,
+ UNSPEC_XOP_PERMUTE, UNSPEC_FRCZ, UNSPEC_AESENC, UNSPEC_AESENCLAST,
+ UNSPEC_AESDEC, UNSPEC_AESDECLAST, UNSPEC_AESIMC,
+ UNSPEC_AESKEYGENASSIST, UNSPEC_PCLMUL, UNSPEC_PCMP, UNSPEC_VPERMIL,
+ UNSPEC_VPERMIL2, UNSPEC_VPERMIL2F128, UNSPEC_CAST, UNSPEC_VTESTP,
+ UNSPEC_VCVTPH2PS, UNSPEC_VCVTPS2PH, UNSPEC_VPERMSI, UNSPEC_VPERMDF,
+ UNSPEC_VPERMSF, UNSPEC_VPERMTI, UNSPEC_GATHER, UNSPEC_VSIBADDR>: Ditto.
+ (unspecv) <UNSPECV_LDMXCSR, UNSPECV_STMXCSR, UNSPECV_CLFLUSH,
+ UNSPECV_MONITOR, UNSPECV_MWAIT, UNSPECV_VZEROALL, UNSPECV_VZEROUPPER>:
+ Ditto.
+ * config/i386/sync.md (unspec) <UNSPEC_LFENCE, UNSPEC_SFENCE,
+ UNSPEC_MFENCE, UNSPEC_MOVA>: Ditto.
+ (unspecv) <UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, UNSPECV_CMPXCHG_3,
+ UNSPECV_CMPXCHG_4, UNSPECV_XCHG, UNSPECV_LOCK>: Ditto.
+ (sse2_lfence): Move from config/i386/sse.md.
+ (*sse2_lfence): Ditto.
+ (sse_sfence): Ditto.
+ (*sse_sfence): Ditto.
+ (sse2_mfence): Ditto.
+ (mfence_sse2): Ditto. Rename from *sse2_mfence. Enable also
+ for TARGET_64BIT.
+ (mem_thread_fence): Use mfence_sse2.
+
+2011-11-21 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.h (struct base_arch_s): Add field sfr_offset.
+ * config/avr/avr-devices.c: Ditto. And initialize it.
+ * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define
+ __AVR_SFR_OFFSET__.
+ * config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove.
+ (out_movhi_r_mr, out_movhi_mr_r): Remove.
+ (out_movsi_r_mr, out_movsi_mr_r): Remove.
+ * config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20.
+ (*insv.io, *insv.not.io): Ditto.
+ * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static.
+ (print_operand): Implement "%i" to print address as I/O address.
+ (output_movqi): Clean up call of out_movqi_mr_r.
+ (output_movhi): Clean up call of out_movhi_mr_r.
+ (avr_file_start): Use avr_current_arch->sfr_offset instead of
+ magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1.
+ (avr_out_sbxx_branch): Use %i instead of %m-0x20.
+ (out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static.
+ (out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len.
+ (out_shift_with_cnt): Clean up code: Use avr_asm_len.
+ (output_movsisf): Use output_reload_insisf for all CONSTANT_P sources.
+ (avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources.
+ Clean up call of avr_out_store_psi.
+ (output_reload_in_const): Don't cut symbols longer than 2 bytes.
+ (output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to
+ try if setting pre-cleared register is advantageous.
+ (avr_out_plus_1): Use gen_int_mode instead of GEN_INT.
+
+2011-11-20 Joey Ye <joey.ye@arm.com>
+
+ * expr.c (expand_expr_real_1): Correctly handle strict volatile
+ bitfield loads smaller than mode size.
+
+2011-11-20 Richard Henderson <rth@redhat.com>
+
+ * config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs.
+
+2011-11-20 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/51235
+ * config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP
+ patterns for supported mode only.
+
+ PR target/51236
+ * config/i386/i386.c (ix86_expand_builtin)
+ <IX86_BUILTIN_GATHERALTSIV4DI>: Use CODE_FOR_avx2_gathersiv4di.
+
+2011-11-20 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (UNSPEC_MOVNTI): Remove.
+ (UNSPEC_MOVNTQ): New unspec.
+ * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi.
+ Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT.
+ * config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of
+ UNSPEC_MOVNTI.
+ (STORENT_MODE): Add DI and V4DI modes.
+
+2011-11-20 Nathan Sidwell <nathan@acm.org>
+
+ PR gcov-profile/51113
+ * coverage.c (build_var): Propagate visibility for public
+ decls. Use make_decl_one_only for PIC correctness.
+
+ testsuite/
+ * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage
+ * gcc.misc-tests/gcov-16.c: New.
+ * gcc.misc-tests/gcov-17.c: New.
+ * g++.dg/gcov/gcov-8.C: New.
+ * g++.dg/gcov/gcov-9.C: New.
+ * g++.dg/gcov/gcov-10.C: New.
+
+2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/51187
+ * reorg.c (relax_delay_slots): Do not consider a jump useless if there
+ is a barrier between the jump and its target label.
+
+2011-11-19 Patrick Marlier <patrick.marlier@gmail.com>
+
+ PR middle-end/51211
+ * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION.
+
+2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * expmed.c (store_bit_field_1): Revert bogus formatting change.
+
+2011-11-19 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/50493
+ * config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial
+ overlap of src and dest operands.
+
+2011-11-19 Iain Sandoe <iains@gcc.gnu.org>
+
+ * config/darwin.h (ASM_DEBUG_SPEC): New.
+ * config/darwin9.h (ASM_DEBUG_SPEC): New.
+
+2011-11-18 Jan Hubicka <jh@suse.cz>
+
+ * config/i386/i386.c (atom_cost): Disable SSE loop until alignment
+ issues are fixed.
+
+2011-11-18 Anatoly Sokolov <aesok@post.ru>
+
+ * config/cris/cris.c (cris_function_value_regno_p): Make static.
+ (TARGET_FUNCTION_VALUE_REGNO_P): Define.
+ * config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove.
+ * config/cris/cris-protos.h (cris_function_value_regno_p): Remove.
+
+2011-11-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/33944
+ * doc/extend.texi: Document __builtin_ia32_movnti64.
+
+ * config/i386/emmintrin.h (_mm_stream_si64): New.
+
+ * config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG.
+
+ * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64.
+ (bdesc_special_args): Update __builtin_ia32_movnti. Add
+ __builtin_ia32_movnti64.
+ (ix86_expand_special_args_builtin): Handle
+ VOID_FTYPE_PLONGLONG_LONGLONG.
+
+ * config/i386/i386.md (UNSPEC_MOVNTI): New.
+
+ * config/i386/sse.md (sse2_movntsi): Renamed to ...
+ (sse2_movnti<mode>): This.
+
+2011-11-18 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/49868
+ * config/avr/avr.h (base_arch_s): Add field n_segments.
+ (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
+ ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
+ (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
+ (INIT_EXPANDERS): New define.
+ * config/avr/avr-protos.h (avr_mem_pgmx_p): New.
+ (avr_init_expanders): New.
+ (avr_emit_movmemhi, avr_out_movmem): New.
+ (avr_xload_libgcc_p): New.
+ * config/avr/avr-c.c (avr_register_target_pragmas): Register
+ address spaces __pgm1, __pgm2, __pgm3, __pgm4 __pgm5, __pgmx.
+ (avr_cpu_cpp_builtins): Add built-in defines __PGM1,
+ __PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
+ * config/avr/avr-devices.c (avr_arch_types): Set field n_segments.
+
+ * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
+ 3 bits instead of just 1.
+ (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
+ (progmem_section): Change from section to array of sections.
+ (progmem_section_prefix): New static variable.
+ (avr_file_start): Print set for __RAMPZ__
+ (avr_option_override): Move initialization of RTXes from here...
+ (avr_init_expanders): ...to this new function.
+ (avr_pgm_segment): New static function.
+ (avr_decl_pgm_p): Handle error_mark_node.
+ (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
+ (avr_out_xload, avr_find_unused_d_reg): New static functions.
+ (expand_prologue, expand_epilogue): Use rampz_rtx.
+ (print_operand): Hande CONST_STRING.
+ (avr_xload_libgcc_p): New static function.
+ (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
+ (avr_progmem_p): Return 2 for 24-bit flash address space.
+ (avr_out_sbxx_branch): Clean-up code from ASn macros.
+ (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
+ address and print symbolically.
+ (avr_asm_named_section, avr_section_type_flags,
+ avr_encode_section_info, avr_asm_select_section,
+ avr_addr_space_address_mode, avr_addr_space_pointer_mode,
+ avr_addr_space_legitimate_address_p, avr_addr_space_convert,
+ avr_addr_space_legitimize_address): Handle new address spaces.
+ (avr_output_progmem_section_asm_op): New static function.
+ (avr_asm_init_sections): Initialize progmem_section[].
+ (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
+ (avr_const_address_lo16): New static function.
+ (avr_assemble_integer): Use it to handle 3-byte integers.
+ (avr_emit_movmemhi, avr_out_movmem): New functions.
+
+ * config/avr/predicates.md (nox_general_operand): Handle new
+ address spaces.
+ * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
+ (adjust_len): Add xload, movmem.
+ (SP_ADDR): New define_constants.
+ (isa): Add "lpm", "lpmx", "elpm", "elpmx".
+ (enabled): Handle them.
+ (load<mode>_libgcc): New expander.
+ (*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
+ (xload8_A, xload<mode>_A): New insn-and-splits.
+ (xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
+ (mov<mode>): Handle new address spaces.
+ (movmemhi): Rewrite using avr_emit_movmemhi.
+ (MOVMEM_r_d): New mode attribute.
+ (movmem_<mode>, movmem_qi_elpm): New insns.
+ (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
+ C-code. Use label instead of hard-coded instrunction lengths.
+
+2011-11-18 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/50605
+ * gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs
+ of IPA invariant decls.
+
+2011-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * tree-outof-ssa.c (insert_back_edge_copies): Add call to
+ mark_dfs_back_edges.
+
+2011-11-18 Iain Sandoe <iains@gcc.gnu.org>
+
+ PR target/49992
+ * configure.ac: Remove ranlib special-casing for Darwin.
+ * configure: Regenerate.
+
+2011-11-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/51118
+ * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
+ before using TREE_TYPE accessor on expr.
+
+2011-11-17 Jan Hubicka <jh@suse.cz>
+
+ PR bootstrap/51134
+ * i386.c (atom_cost): Fix 32bit memset description.
+ (expand_set_or_movmem_via_loop_with_iter): Output proper bounds check
+ for epilogue loops.
+ (expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing
+ byte loop.
+ (decide_alg): sse_loop is not useable wthen SSE2 is disabled;
+ when not optimizing always use rep movsb or lincall; do not produce
+ word sized loops when optimizing memset for size (to avoid need
+ for large constants).
+ (ix86_expand_movmem): Get into sync with ix86_expand_setmem;
+ choose unroll factors better; always do 128bit moves when producing
+ SSE loops; do not produce loopy epilogue when size is too small.
+ (promote_duplicated_reg_to_size): Do not look into desired alignments
+ when doing vector expansion.
+ (ix86_expand_setmem): Track better when promoted value is available;
+ choose unroll factors more sanely. Output loopy epilogue only
+ when needed.
+
+2011-11-17 Steve Ellcey <sje@cup.hp.com>
+
+ PR middle-end/51144
+ * output.h (fprint_w): Remove.
+ * final.c (fprint_w): Remove.
+ (output_addr_const): Change fprint_w back to fprintf.
+
+2011-11-17 Andrew Pinski <apinski@cavium.com>
+
+ * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
+
+2011-11-17 Andrew MacLeod <amacleod@redhat.com>
+
+ * builtins.c (expand_builtin): Remove 4th parameter representing
+ weak/strong mode when __atomic_compare_exchange becomes a library call.
+
+2011-11-17 Richard Henderson <rth@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
+ new pseudo for target after convert_modes.
+ (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
+
+2011-11-17 Richard Henderson <rth@redhat.com>
+
+ * builtins.c (expand_builtin_mem_thread_fence): Remove.
+ (expand_builtin_mem_signal_fence): Remove.
+ (expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
+ (expand_builtin_sync_synchronize): Likewise.
+ (expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
+ * optabs.c (expand_asm_memory_barrier): Split out from
+ expand_builtin_mem_signal_fence.
+ (expand_mem_thread_fence): New, a combination of code from
+ expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
+ (expand_mem_signal_fence): Moved and renamed from
+ expand_builtin_mem_signal_fence.
+ (expand_atomic_exchange): Use expand_mem_thread_fence.
+ (expand_atomic_load, expand_atomic_store): Likewise.
+ * expr.h, optabs.h: Update decls.
+
+2011-11-17 Bin Cheng <bin.cheng@arm.com>
+
+ PR rtl-optimization/50663
+ * cprop.c (implicit_set_indexes): New global variable.
+ (insert_set_in_table): Add additional parameter and record implicit
+ set information.
+ (hash_scan_set): Add additional parameter and pass it to above.
+ (hash_scan_insn): Pass false to hash_scan_set.
+ (compute_hash_table_work): Pass true to hash_scan_set.
+ (compute_cprop_data): Add implicit set to AVIN of block which the
+ implicit set is recorded for.
+ (one_cprop_pass): Handle implicit_set_indexes array.
+
+2011-11-17 Michael Matz <matz@suse.de>
+
+ PR middle-end/50644
+ PR middle-end/50741
+ * tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
+ current function.
+ (remove_unused_locals): Ditto.
+
+2011-11-16 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
+ ALIAS_SET_MEMORY_BARRIER when creating a new memory.
+ (alpha_split_atomic_exchange_12): Likewise.
+ * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.
+
+2011-11-16 Joseph Myers <joseph@codesourcery.com>
+
+ * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
+
+2011-11-16 David Edelsohn <dje.gcc@gmail.com>
+
+ * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
+ Default to minimum alignment if decl is NULL.
+
+2011-11-16 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
+ sequence for AVX.
+ (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
+
+2011-11-16 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
+
+ * doc/invoke.texi: Document AMD bdver1 and btver1.
+
+2011-11-16 Richard Earnshaw <rearnsha@arm.com>
+ Bernd Schmidt <bernds@coudesourcery.com>
+ Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ PR target/49641
+ * config/arm/arm.c (store_multiple_sequence): Avoid cases where
+ the base reg is stored iff compiling for Thumb1.
+
+2011-11-16 Razya Ladelsky <razya@il.ibm.com>
+
+ PR tree-optimization/49960
+ * tree-data-ref.c (initialize_data_dependence_relation): Add
+ initializations.
+ Remove call to compute_self_dependence.
+ (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
+ (compute_self_dependence): Remove old code. Add call to
+ compute_affine_dependence.
+ (compute_all_dependences): Remove call to compute_self_dependence.
+ Add call to compute_affine_dependence.
+
+2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ PR middle-end/50325
+ * expmed.c (store_bit_field_1): Use extract_bit_field on big
+ endian targets if the source cannot be exactly covered by word
+ mode chunks.
+
+2011-11-15 Joseph Myers <joseph@codesourcery.com>
+
+ * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
+ ELF_STRING_LIMIT.
+
+2011-11-15 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_pre_atomic_barrier): New.
+ (alpha_post_atomic_barrier): New.
+ (alpha_split_atomic_op): New memmodel argument; honor it.
+ (alpha_split_compare_and_swap): Take array of operands. Honor
+ memmodel; always set bool output
+ (alpha_expand_compare_and_swap_12): Similarly.
+ (alpha_split_compare_and_swap_12): Similarly.
+ (alpha_split_atomic_exchange): Similarly. Rename from
+ alpha_split_lock_test_and_set.
+ (alpha_expand_atomic_exchange_12): Similarly. Rename from
+ alpha_expand_lock_test_and_set_12.
+ (alpha_split_atomic_exchange_12): Similarly. Rename from
+ alpha_split_lock_test_and_set_12.
+ * config/alpha/alpha-protos.h: Update.
+ * config/alpha/alpha.md (UNSPECV_CMPXCHG): New.
+ * config/alpha/constraints.md ("w"): New.
+ * config/alpha/predicates.md (mem_noofs_operand): New.
+ * config/alpha/sync.md (atomic_compare_and_swap<mode>): Rename from
+ sync_compare_and_swap<mode>; add the new parameters.
+ (atomic_exchange<mode>): Update from sync_test_and_set<mode>.
+ (atomic_fetch_<op><mode>): Update from sync_old_<op><mode>.
+ (atomic_<op>_fetch<mode>): Update from sync_new_<op><mode>.
+ (atomic_<op><mode>): Update from sync_<op><mode>.
+
+2011-11-16 Tom de Vries <tom@codesourcery.com>
+
+ * tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
+
+2011-11-16 Alan Modra <amodra@gmail.com>
+
+ PR rtl-optimization/51051
+ PR bootstrap/51086
+ * function.c (thread_prologue_and_epilogue_insns): Guard
+ emitting return with single_succ_p test.
+
+2011-11-15 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ * config/epiphany/epiphany.md (mov<mode>cc): Fix code to
+ get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
+
+2011-11-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
+ (vec_pack_sfix_trunc_v2df): Ditto.
+ (vec_pack_sfix_v2df): Ditto.
+ (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
+ avx_vec_concatv8si patterns.
+ (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
+ avx_vec_concatv8si patterns.
+
+2011-11-15 Torvald Riegel <triegel@redhat.com>
+
+ * c-parser.c (c_parser_transaction_expression): Require parentheses
+ when parsing transaction expressions.
+
+2011-11-15 Tristan Gingold <gingold@adacore.com>
+
+ * incpath.c (get_added_cpp_dirs): New function.
+ * incpath.h (get_added_cpp_dirs): Declare.
+ * config/vms/vms-c.c (vms_c_register_includes): New function.
+ (vms_std_modules): New variable.
+ * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
+ (vms_c_register_includes): Declare.
+
+2011-11-15 Tristan Gingold <gingold@adacore.com>
+
+ * c-family/c-pragma.h (pragma_extern_prefix): Declare.
+ * c-family/c-pragma.c (pragma_extern_prefix): Make it public.
+ * config/vms/vms-c.c (saved_extern_prefix): New variable.
+ (vms_pragma_extern_prefix): New function.
+ (vms_c_register_pragma): Register vms_pragma_extern_prefix.
+
+2011-11-15 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/49868
+ * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
+ (REGISTER_TARGET_PRAGMAS): New define.
+ * config/avr/avr-protos.h (avr_mem_pgm_p): New.
+ (avr_load_libgcc_p): New.
+ (avr_register_target_pragmas): New.
+ (asm_output_external_libcall): Remove.
+ (avr_log_t): Add field "progmem". Order alphabetically.
+ * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
+ * config/avr/avr-c.c (langhooks.h): New include.
+ (avr_register_target_pragmas): New function. Register address
+ space __pgm.
+ (avr_cpu_cpp_builtins): Add built-in define __PGM.
+
+ * config/avr/avr.c: Include "c-family/c-common.h".
+ (TARGET_LEGITIMATE_ADDRESS_P): Remove define.
+ (TARGET_LEGITIMIZE_ADDRESS): Remove define.
+ (TARGET_ADDR_SPACE_SUBSET_P): Define to...
+ (avr_addr_space_subset_p): ...this new static function.
+ (TARGET_ADDR_SPACE_CONVERT): Define to...
+ (avr_addr_space_convert): ...this new static function.
+ (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
+ (avr_addr_space_address_mode): ...this new static function.
+ (TARGET_ADDR_SPACE_POINTER_MODE): Define to...
+ (avr_addr_space_pointer_mode): ...this new static function.
+ (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
+ (avr_addr_space_legitimate_address_p): ...this new static function.
+ (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
+ (avr_addr_space_legitimize_address): ...this new static function.
+ (avr_mode_code_base_reg_class): Handle address spaces.
+ (avr_regno_mode_code_ok_for_base_p): Ditto.
+ (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
+ (avr_option_override): Initialize them.
+ (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
+ variables.
+ (avr_pgm_segment): New static function.
+ (avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
+ (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
+ (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
+ avr_out_lpm to handle loads from progmem.
+ (avr_load_libgcc_p): New static function.
+ (avr_progmem_p): Test if decl is in flash.
+ (avr_pgm_pointer_const_p): New static function.
+ (avr_nonconst_pointer_addrspace): New static function.
+ (avr_pgm_check_var_decl): New static function.
+ (avr_insert_attributes): Use it. Change error message to report
+ cause (progmem or address space) when code wants to write to flash.
+ (avr_section_type_flags): Unset section flag SECTION_BSS for
+ data in progmem.
+
+ * config/avr/predicates.md (nop_general_operand): New predicate.
+ (nox_general_operand): New predicate.
+ * config/avr/avr.md (LPM_REGNO): New define_constant.
+ (load<mode>_libgcc): New expander.
+ (*load.<mode>.libgcc): New insn.
+ (mov<mode>): Handle loads from non-generic AS.
+ (movmemhi): Ditto. Propagate address space information to newly
+ created MEM.
+ (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
+ to nox_general_operand.
+ (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to
+ nop_general_operand.
+ (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
+ (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
+ (split-lpmx): New split.
+ (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
+ *lshrhi3_const, *lshrsi3_const): Indent, unquote C.
+
+2011-11-15 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * ipa-cp.c (ipa_value_from_jfunc): Make global.
+ (ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead.
+ (get_indirect_edge_target): Rename, make global.
+ (devirtualization_time_bonus, estimate_local_effects,)
+ (ipcp_discover_new_direct_edges): Update.
+ * ipa-inline-analysis.c (evaluate_conditions_for_edge):
+ Generalize to also handle types. Rename to ...
+ (evaluate_properties_for_edge): Use instead of
+ evaluate_conditions_for_edge.
+ (estimate_edge_devirt_benefit): New function.
+ (estimate_calls_size_and_time): Use it.
+ (estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,)
+ (inline_merge_summary): Update.
+ (do_estimate_edge_time, do_estimate_edge_growth): Update. Calculate
+ parameter information at the call site and pass it on to subroutines.
+ * tree-inline.c (estimate_num_insns): Distinguish between direct and
+ indirect calls.
+ (init_inline_once): Set size and time costs or indirect calls.
+ * tree-inline.h (eni_weights): Add indirect_call_cost.
+
+2011-11-15 Tom de Vries <tom@codesourcery.com>
+
+ PR tree-optimization/51005
+ * tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to
+ mark_basic_block_deleted.
+ (update_worklist): Inline purge_bbs.
+ (purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry)
+ (delete_block_update_dominator_info): Remove.
+ (replace_block_by): Remove update_vops parameter. Partially evaluate
+ for update_vops == false.
+ (apply_clusters): Remove update_vops parameter. Remove update_vops
+ argument in replace_block_by call.
+ (update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test.
+ (tail_merge_optimize): Remove update_vops argument to apply_clusters.
+ Remove call to purge_bbs. Add calls to calculate_dominance_info and
+ free_dominance_info. Add MAY_HAVE_DEBUG_STMTS before calling
+ update_debug_stmts. Mark vop var for renaming, if necessary.
+
+2011-11-15 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR rtl-optimization/51051
+ * cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the
+ move would cause fallthrough into the exit block.
+
+2011-11-14 Richard Henderson <rth@redhat.com>
+
+ * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is
+ handled.
+ (emit_store_conditional): Likewise.
+ (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New.
+ (rs6000_adjust_atomic_subword): New.
+ (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New.
+ (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite
+ for pre-reload expansion.
+ (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi,
+ rs6000_expand_compare_and_swapqhi): Merge into ...
+ (rs6000_expand_atomic_compare_and_swap): ... here. New function.
+ rs6000_split_lock_test_and_set; expand immediately. Handle
+ QImode and HImode.
+ * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename
+ from UNSPECV_LWSYNC.
+ * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove.
+ (mem_thread_fence): New.
+ (hwsync): Rename from memory_barrier.
+ (*hwsync): Rename from *sync_internal.
+ (lwsync, *lwsync): Mirror hwsync implementation.
+ (isync): Don't reference memory.
+ (loadsync): New.
+ (atomic_load<INT>, atomic_store<INT>): New.
+ (ATOMIC): New mode iterator.
+ (load_locked<ATOMIC>): Rename from load_locked_<GPR>.
+ (store_conditional<ATOMIC>): Rename from store_conditional_<GPR>.
+ (sync_compare_and_swap<GPR>): Remove.
+ (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove.
+ (sync_compare_and_swapqhi_internal): Remove.
+ (sync_lock_test_and_set<GPR>): Remove.
+ (sync_<FETCHOP><INT1>): Remove.
+ (*sync_<FETCHOP>si_internal, *sync_<FETCHOP>di_internal): Remove.
+ (sync_nand<INT1>, *sync_nand<GPR>_internal): Remove.
+ (sync_old_<FETCHOP><GPR>): Remove.
+ (*sync_old_<FETCHOP>si_internal): Remove.
+ (*sync_old_<FETCHOP>di_internal): Remove.
+ (sync_old_nand<INT1>): Remove.
+ (*sync_old_nand<GPR>_internal): Remove.
+ (sync_new_<FETCHOP><GPR>): Remove.
+ (*sync_new_<FETCHOP>si_internal): Remove.
+ (*sync_new_<FETCHOP>di_internal): Remove.
+ (sync_new_nand<INT1>): Remove.
+ (*sync_new_nand<GPR>_internal): Remove.
+ (*atomic_andsi, *atomic_anddi): Remove.
+ (*sync_addshort_internal, *sync_subshort_internal): Remove.
+ (*sync_andsi_internal, *sync_boolsi_internal): Remove.
+ (*sync_boolcshort_internal): Remove.
+ (sync_lock_release<INT1>): Remove.
+ (atomic_compare_and_swap<INT1>): New.
+ (atomic_exchange<INT1>): New.
+ (atomic_<FETCHOP><INT1>, atomic_nand<INT1>): New.
+ (atomic_fetch_<FETCHOP><INT1>, atomic_fetch_nand<INT1>): New.
+ (atomic_<FETCHOP>_fetch<INT1>, atomic_nand_fetch<INT1>): New.
+
+2011-11-14 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (round<mode>2): Use register_operand for
+ operand 1 predicate.
+ (round<mode>2_sfix): Ditto.
+ (round<mode>2_vec_pack_sfix): Ditto for operand 1 and operand 2.
+
+2011-11-14 Nathan Sidwell <nathan@acm.org>
+
+ * gcov.c (canonicalize_name): Protect use of S_ISLNK.
+
+2011-11-14 Jan Hubicka <jh@suse.cz>
+
+ PR target/51126
+ * config/i386/i386.c (core cost model): Correct pasto.
+
+2011-11-14 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (round<mode>2_sfix): New expander.
+ (round<mode>2_vec_pack_sfix): Ditto.
+ (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
+ (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
+ * config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND,
+ V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND,
+ V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types.
+ * config/i386/i386.c (ix86_builtins): Add
+ IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and
+ IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines.
+ (bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256},
+ __builtin_ia32_roundpd_az_vec_pack_sfix{,256},
+ __builtin_ia32_{floorps,ceilps}_sfix{,256}and
+ __builtin_ia32_roundps_az_sfix{,256} descriptions.
+ (ix86_expand_sse_round_vec_pack_sfix): New.
+ (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND,
+ V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and
+ V8SI_FTYPE_V4DF_V4DF_ROUND types. Check last argument of
+ CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix,
+ CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256.
+ (ix86_builtin_vectorized_function): Handle
+ BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and
+ BUILT_IN_{I,L,LL}ROUND{,F}
+
2011-11-14 Jan Hubicka <jh@suse.cz>
PR middle-end/50598
* ipa.c (varpool_externally_visible_p): Export.
* varpool.c (varpool_add_new_variable): New function.
-2011-11-14 Zolotukhin Michael <michael.v.zolotukhin@gmail.com>
+2011-11-14 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
Jan Hubicka <jh@suse.cz>
- * config/i386/i386.h (processor_costs): Add second dimension to
- stringop_algs array.
- * config/i386/i386.c (cost models): Initialize second dimension of
- stringop_algs arrays.
+ * config/i386/i386.h (processor_costs): Add second dimension to
+ stringop_algs array.
+ * config/i386/i386.c (cost models): Initialize second dimension of
+ stringop_algs arrays.
(core_cost): New costs based on generic64 costs with updated stringop
values.
- (promote_duplicated_reg): Add support for vector modes, add
- declaration.
- (promote_duplicated_reg_to_size): Likewise.
+ (promote_duplicated_reg): Add support for vector modes, add
+ declaration.
+ (promote_duplicated_reg_to_size): Likewise.
(processor_target): Set core costs for core variants.
- (expand_set_or_movmem_via_loop_with_iter): New function.
- (expand_set_or_movmem_via_loop): Enable reuse of the same iters in
- different loops, produced by this function.
- (emit_strset): New function.
- (expand_movmem_epilogue): Add epilogue generation for bigger sizes,
- use SSE-moves where possible.
- (expand_setmem_epilogue): Likewise.
- (expand_movmem_prologue): Likewise for prologue.
- (expand_setmem_prologue): Likewise.
- (expand_constant_movmem_prologue): Likewise.
- (expand_constant_setmem_prologue): Likewise.
- (decide_alg): Add new argument align_unknown. Fix algorithm of
- strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
- (decide_alignment): Update desired alignment according to chosen move
- mode.
- (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
- (ix86_expand_setmem): Likewise.
- (ix86_slow_unaligned_access): Implementation of new hook
- slow_unaligned_access.
- * config/i386/i386.md (strset): Enable half-SSE moves.
- * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
- (vec_dupv2di): Add expand for vec_dupv2di.
+ (expand_set_or_movmem_via_loop_with_iter): New function.
+ (expand_set_or_movmem_via_loop): Enable reuse of the same iters in
+ different loops, produced by this function.
+ (emit_strset): New function.
+ (expand_movmem_epilogue): Add epilogue generation for bigger sizes,
+ use SSE-moves where possible.
+ (expand_setmem_epilogue): Likewise.
+ (expand_movmem_prologue): Likewise for prologue.
+ (expand_setmem_prologue): Likewise.
+ (expand_constant_movmem_prologue): Likewise.
+ (expand_constant_setmem_prologue): Likewise.
+ (decide_alg): Add new argument align_unknown. Fix algorithm of
+ strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
+ (decide_alignment): Update desired alignment according to chosen move
+ mode.
+ (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
+ (ix86_expand_setmem): Likewise.
+ (ix86_slow_unaligned_access): Implementation of new hook
+ slow_unaligned_access.
+ * config/i386/i386.md (strset): Enable half-SSE moves.
+ * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
+ (vec_dupv2di): Add expand for vec_dupv2di.
2011-11-14 Dimitrios Apostolou <jimis@gmx.net>
2011-11-14 Kai Tietz <ktietz@redhat.com>
- * gcov.c (generate_results): Add missing semicolon and
- correct indent.
+ * gcov.c (generate_results): Add missing semicolon and correct indent.
2011-11-14 Ira Rosen <ira.rosen@linaro.org>
PR target/50694
* config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A):
New macros.
- (DRIVER_SELF_SPECS): Use new macros to filter out
- unsupported options taking the default configuration into
- account.
+ (DRIVER_SELF_SPECS): Use new macros to filter out unsupported options
+ taking the default configuration into account.
2011-11-13 Jonathan Wakely <jwakely.gcc@gmail.com>
2011-11-12 Richard Henderson <rth@redhat.com>
- * config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use
+ * config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use
nonimmediate_operand for the destination.
(fixuns_trunc<SFDF>si2_stfiwx): Likewise.