* invoke.texi (AVR Options): Avoid \leq{}.
[platform/upstream/gcc.git] / gcc / ChangeLog
index 2f0dfe0..7a16ed7 100644 (file)
@@ -1,7 +1,218 @@
+2011-10-14  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * invoke.texi (AVR Options): Avoid \leq{}.
+
+2011-10-14  Kai Tietz  <ktietz@redhat.com>
+
+       * gimplify.c (gimplify_expr): Take care that for bitwise-binary
+       transformation the operands have compatible types.
+
+2011-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (vec_widen_smult_hi_v8hi,
+       vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
+       vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
+       mode iterator and any_extend code iterator.
+       (vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New
+       expanders.
+       (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
+       also for TARGET_SSE4_1 using pmuldq insn.
+       (sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
+       (sse2_sse4_1): New code attr.
+       (udot_prodv4si): Macroize using any_extend code iterator.
+       (<s>dot_prodv8si): New expander.
+
+2011-10-14  Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
+
+       * config/i386/i386.c (atom_cost): Changed cost for loading
+       QImode using movzbl.
+
+2011-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my
+       change on October 11th, 2011.
+
+2011-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (vec_interleave_high<mode>,
+       vec_interleave_low<mode>): Add AVX2 expanders for VI_256
+       modes.
+       * config/i386/i386.c (expand_vec_perm_interleave3): New function.
+       (ix86_expand_vec_perm_builtin_1): Call it.
+
+2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
+
+       Fix thinko from r179765
+       * config/avr/avr.c (avr_option_override): Don't override
+       flag_omit_frame_pointer if not actually needed.
+
+2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/46278
+       * doc/invoke.texi (AVR Options): Document -mstrict-X.
+
+       * config/avr/avr.opt (-mstrict-X): New option.
+       (avr_strict_X): New variable reflecting -mstrict-X.
+       * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter
+       outer_code and pass it down to avr_regno_mode_code_ok_for_base_p.
+       (avr_legitimate_address_p): Pass outer_code to
+       avr_reg_ok_for_addr_p and use that function in case PLUS.
+       (avr_mode_code_base_reg_class): Depend on avr_strict_X.
+       (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code.
+       (avr_option_override): Disable -fcaller-saves if -mstrict-X is on.
+       
+2011-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
+       of VI_128.
+
+       * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2
+       iterator.
+       (ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128.
+       Use <sseinsnmode> instead of TI in mode attr.
+
+2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
+
+       * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
+       * config/arm/linux-atomic.c: Change comment to point to 64bit version.
+       (SYNC_LOCK_RELEASE): Instantiate 64bit version.
+       * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.
+
+2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
+
+       * config/arm/arm.c (arm_output_ldrex): Support ldrexd.
+       (arm_output_strex): Support strexd.
+       (arm_output_it): New helper to output it in Thumb2 mode only.
+       (arm_output_sync_loop): Support DI mode.  Change comment to
+       not support const_int.
+       (arm_expand_sync): Support DI mode.
+       * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
+       and LDREXD.
+       * config/arm/iterators.md (NARROW): move from sync.md.
+       (QHSD): New iterator for all current ARM integer modes.
+       (SIDI): New iterator for SI and DI modes only.
+       * config/arm/sync.md (sync_predtab): New mode_attr.
+       (sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
+       (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
+       (sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
+       (sync_nandsi): Fold into sync_nand<mode>.
+       (sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
+       (sync_new_nandsi): Fold into sync_new_nand<mode>.
+       (sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
+       (sync_old_nandsi): Fold into sync_old_nand<mode>.
+       (sync_compare_and_swap<mode>): Support SI & DI.
+       (sync_lock_test_and_set<mode>): Likewise.
+       (sync_<sync_optab><mode>): Likewise.
+       (sync_nand<mode>): Likewise.
+       (sync_new_<sync_optab><mode>): Likewise.
+       (sync_new_nand<mode>): Likewise.
+       (sync_old_<sync_optab><mode>): Likewise.
+       (sync_old_nand<mode>): Likewise.
+       (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
+       (arm_sync_lock_test_and_setsi): Likewise.
+       (arm_sync_new_<sync_optab>si): Likewise.
+       (arm_sync_new_nandsi): Likewise.
+       (arm_sync_old_<sync_optab>si): Likewise.
+       (arm_sync_old_nandsi): Likewise.
+       (arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
+       (arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
+       (arm_sync_new_<sync_optab><mode> NARROW): Likewise.
+       (arm_sync_new_nand<mode> NARROW): Likewise.
+       (arm_sync_old_<sync_optab><mode> NARROW): Likewise.
+       (arm_sync_old_nand<mode> NARROW): Likewise.
+
+2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
+
+       PR target/48126
+       * config/arm/arm.c (arm_output_sync_loop): Move label before barrier.
+
+2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
+
+       * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.
+
+2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * doc/invoke.texi ([Wformat-zero-length]): Tidy.
+
+2011-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr
+       also on COND_EXPR/VEC_COND_EXPR comparison operands if they are
+       ADDR_EXPRs.
+
+2011-10-14  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/50723
+       * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
+
+2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * gengtype.c (files_rules): Added rules for objc/objc-map.h and
+       objc/objc-map.c.
+
+2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/17212
+       * c-family/c.opt ([Wformat-zero-length]): Add C++ and Objective-C++.
+       * doc/invoke.texi: Update.
+
+2011-10-14  Iain Sandoe  <iains@gcc.gnu.org>
+
+       PR bootstrap/50699
+       * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
+       build for powerpc targets.  (darwin_patch_builtins): Only build for
+       powerpc targets.
+
+2011-10-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
+       (avx_cvtdq2pd256_2): ... this.
+       (sseunpackfltmode): New mode attr.
+       (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
+       vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
+       using VI2_AVX2 iterator.
+       (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New
+       expanders.
+
+2011-10-13  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/sparc.md (plusminus): New code iterator.
+       (plusminus_insn): New code attr.
+       (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
+       using plusminus and plusminus_insn.
+       (fpadd64_vis, fpsub64_vis): Likewise.
+
+2011-10-13  Richard Henderson  <rth@redhat.com>
+
+       * doc/md.texi (vec_perm): Document fallback to byte permutation.
+       * genopinit.c (optabs): Add vec_perm_const.
+       * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p.
+       Reject non-vector modes.  Allow fallback to byte permutation.
+       (expand_vec_perm_expr_1): Split out from ...
+       (expand_vec_perm_expr): ... here.  Allow fallback to byte permutation.
+       * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New.
+       * tree-vect-generic.c (lower_vec_perm): Update for name change.
+
 2011-10-13  Richard Henderson  <rth@redhat.com>
 
        * config/rs6000/altivec.md (vec_permv16qi): New pattern.
 
+       * config/rs6000/spu.md (vec_permv16qi): New pattern.
+
+       * config/i386/i386.c (ix86_expand_vec_perm_const): New.
+       * config/i386/i386-protos.h: Update.
+       * config/i386/sse.md (VEC_PERM_CONST): New mode iterator.
+       (vec_perm_const<VEC_PERM_CONST>): New expander.
+
+       * optabs.c (expand_vector_broadcast): New.
+       (expand_binop): Expand scalar shifts of vectors to vector shifts
+       of vectors, if the former isn't supported.
+       * tree-vect-generic.c (expand_vector_operations_1): Don't do that
+       here; always simplify to scalar shift of vector if possible.
+
+       * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode
+       test for vector splat.
+
 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
 
        * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode