diff options
Diffstat (limited to 'gcc-4.8/gcc/ChangeLog')
-rw-r--r-- | gcc-4.8/gcc/ChangeLog | 11446 |
1 files changed, 0 insertions, 11446 deletions
diff --git a/gcc-4.8/gcc/ChangeLog b/gcc-4.8/gcc/ChangeLog deleted file mode 100644 index 7e67a45ff..000000000 --- a/gcc-4.8/gcc/ChangeLog +++ /dev/null @@ -1,11446 +0,0 @@ -2014-05-22 Release Manager - - * GCC 4.8.3 released. - -2014-05-15 Peter Bergner <bergner@vnet.ibm.com> - - Backport from mainline - 2014-05-15 Peter Bergner <bergner@vnet.ibm.com> - - PR target/61193 - * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define. - (__TM_simple_begin): Use it. - (__TM_begin): Likewise. - -2014-05-14 Eric Botcazou <ebotcazou@adacore.com> - - * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate): - Delete. - * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise. - * config/sparc/sparc.md (fptype_ut699): New attribute. - (in_branch_delay): Return false if -mfix-ut699 is specified and - fptype_ut699 is set to single. - (truncdfsf2): Add fptype_ut699 attribute. - (fix_truncdfsi2): Likewise. - (floatsisf2): Change fptype attribute. - (fix_truncsfsi2): Likewise. - (negtf2_notv9): Delete. - (negtf2_v9): Likewise. - (negtf2_hq): New instruction. - (negtf2): New instruction and splitter. - (negdf2_notv9): Rewrite. - (abstf2_notv9): Delete. - (abstf2_hq_v9): Likewise. - (abstf2_v9): Likewise. - (abstf2_hq): New instruction. - (abstf2): New instruction and splitter. - (absdf2_notv9): Rewrite. - -2014-05-14 Matthias Klose <doko@ubuntu.com> - - Revert: - 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org> - Matthias Klose <doko@ubuntu.com> - - PR driver/61106 - * optc-gen.awk: Fix option handling for -Wunused-parameter. - -2014-05-13 Peter Bergner <bergner@vnet.ibm.com> - - * doc/sourcebuild.texi: (dfp_hw): Document. - (p8vector_hw): Likewise. - (powerpc_eabi_ok): Likewise. - (powerpc_elfv2): Likewise. - (powerpc_htm_ok): Likewise. - (ppc_recip_hw): Likewise. - (vsx_hw): Likewise. - -2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> - - Backport from mainline - 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> - - PR target/60991 - * config/avr/avr.c (avr_out_store_psi): Use correct constant - to restore Y. - -2014-05-09 Georg-Johann Lay <avr@gjlay.de> - - Backport from 2014-05-09 trunk r210267 - - PR target/61055 - * config/avr/avr.md (cc): Add new attribute set_vzn. - (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]: - Set cc insn attribute to set_vzn instead of set_zn for alternatives - with INC, DEC or NEG. - * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN. - (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN. - INC, DEC and ADD+ADC set cc0 to CC_CLOBBER. - -2014-05-09 Richard Sandiford <rdsandiford@googlemail.com> - - * builtins.c (expand_builtin_setjmp_receiver): Emit a use of - the hard frame pointer. Synchronize commentary with mainline. - * cse.c (cse_insn): Only check for volatile asms. - * cselib.c (cselib_process_insn): Likewise. - * dse.c (scan_insn): Likewise. - * stmt.c (expand_nl_goto_receiver): Emit a use and a clobber of - the hard frame pointer. - -2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org> - Matthias Klose <doko@ubuntu.com> - - PR driver/61106 - * optc-gen.awk: Fix option handling for -Wunused-parameter. - -2014-05-08 Uros Bizjak <ubizjak@gmail.com> - - PR target/59952 - * config/i386/i386.c (ix86_option_override_internal): Remove PTA_RTM - from core-avx2. - -2014-05-08 Charles Baylis <charles.baylis@linaro.org> - - Backport from mainline - 2014-04-07 Charles Baylis <charles.baylis@linaro.org> - - PR target/60609 - * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove. - (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after - ADDR_DIFF_VEC. - -2014-05-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def. - Do not define target_cpu_default2 to generic. - -2014-05-06 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2014-04-14 Richard Biener <rguenther@suse.de> - - PR middle-end/55022 - * fold-const.c (negate_expr_p): Don't negate directional rounding - division. - (fold_negate_expr): Likewise. - -2014-05-06 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2014-04-17 Richard Biener <rguenther@suse.de> - - PR middle-end/60849 - * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective - boolean results for comparisons. - - 2014-04-07 Richard Biener <rguenther@suse.de> - - PR tree-optimization/60766 - * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an - unsigned type. - (may_eliminate_iv): Convert cand_value_at result to desired - type. - - 2014-04-23 Richard Biener <rguenther@suse.de> - - PR tree-optimization/60903 - * tree-ssa-loop-im.c (execute_sm_if_changed): Properly apply - IRREDUCIBLE_LOOP loop flags to newly created BBs and edges. - -2014-05-05 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2014-04-23 Richard Biener <rguenther@suse.de> - - PR middle-end/60895 - * tree-inline.c (declare_return_variable): Use mark_addressable. - - 2014-04-07 Richard Biener <rguenther@suse.de> - - PR middle-end/60750 - * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs - for noreturn calls. - * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs. - - 2014-04-14 Richard Biener <rguenther@suse.de> - - PR tree-optimization/59817 - PR tree-optimization/60453 - * graphite-scop-detection.c (graphite_can_represent_scev): Complete - recursion to catch all CHRECs in the scalar evolution and restrict - the predicate for the remains appropriately. - - 2014-04-17 Richard Biener <rguenther@suse.de> - - PR tree-optimization/60836 - * tree-vect-loop.c (vect_create_epilog_for_reduction): Force - initial PHI args to be gimple values. - -2014-05-05 Jakub Jelinek <jakub@redhat.com> - - Backported from mainline - 2014-04-25 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/60960 - * tree-vect-generic.c (expand_vector_operation): Only call - expand_vector_divmod if type's mode satisfies VECTOR_MODE_P. - -2014-05-04 Peter Bergner <bergner@vnet.ibm.com> - - * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define. - (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT. - (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT. - * config/rs6000/rs6000-builtin.def (BU_MISC_1): - Use RS6000_BTM_HARD_FLOAT. - (BU_MISC_2): Likewise. - * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle - RS6000_BTM_HARD_FLOAT. - (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp - is explicitly used. - (rs6000_invalid_builtin): Add hard floating builtin support. - (rs6000_expand_builtin): Relax the gcc_assert to allow the new - hard float builtins. - (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT. - -2014-05-03 Joey Ye <joey.ye@arm.com> - - Backport from mainline r209463 - 2014-04-17 Joey Ye <joey.ye@arm.com> - - * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og. - -2014-05-03 Oleg Endo <olegendo@gcc.gnu.org> - - Back port from mainline - PR target/61026 - * config/sh/sh.c: Include stdlib headers before everything else. - -2014-05-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - PR tree-optimization/60930 - * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject - creating a multiply candidate by folding two constant - multiplicands when the result overflows. - -2014-05-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - * config/aarch64/aarch64.h (TARGET_SIMD): Take AARCH64_ISA_SIMD - into account. - (TARGET_FLOAT): Take AARCH64_ISA_FP into account. - -2014-04-30 Michael Meissner <meissner@linux.vnet.ibm.com> - - Back port from mainline - 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com> - - * doc/extend.texi (PowerPC Built-in Functions): Document new - powerpc extended divide, bcd, pack/unpack 128-bit, builtin - functions. - (PowerPC AltiVec/VSX Built-in Functions): Likewise. - - * config/rs6000/predicates.md (const_0_to_3_operand): New - predicate to match 0..3 integer constants. - - * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros - to support adding miscellaneous builtin functions. - (BU_DFP_MISC_2): Likewise. - (BU_P7_MISC_1): Likewise. - (BU_P7_MISC_2): Likewise. - (BU_P8V_MISC_3): Likewise. - (BU_MISC_1): Likewise. - (BU_MISC_2): Likewise. - (DIVWE): Add extended divide builtin functions. - (DIVWEO): Likewise. - (DIVWEU): Likewise. - (DIVWEUO): Likewise. - (DIVDE): Likewise. - (DIVDEO): Likewise. - (DIVDEU): Likewise. - (DIVDEUO): Likewise. - (DXEX): Add decimal floating-point builtin functions. - (DXEXQ): Likewise. - (DDEDPD): Likewise. - (DDEDPDQ): Likewise. - (DENBCD): Likewise. - (DENBCDQ): Likewise. - (DIEX): Likewise. - (DIEXQ): Likewise. - (DSCLI): Likewise. - (DSCLIQ): Likewise. - (DSCRI): Likewise. - (DSCRIQ): Likewise. - (CDTBCD): Add new BCD builtin functions. - (CBCDTD): Likewise. - (ADDG6S): Likewise. - (BCDADD): Likewise. - (BCDADD_LT): Likewise. - (BCDADD_EQ): Likewise. - (BCDADD_GT): Likewise. - (BCDADD_OV): Likewise. - (BCDSUB): Likewise. - (BCDSUB_LT): Likewise. - (BCDSUB_EQ): Likewise. - (BCDSUB_GT): Likewise. - (BCDSUB_OV): Likewise. - (PACK_TD): Add new pack/unpack 128-bit type builtin functions. - (UNPACK_TD): Likewise. - (PACK_TF): Likewise. - (UNPACK_TF): Likewise. - (UNPACK_TF_0): Likewise. - (UNPACK_TF_1): Likewise. - (PACK_V1TI): Likewise. - (UNPACK_V1TI): Likewise. - - * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add - support for decimal floating point builtin functions. - (rs6000_expand_ternop_builtin): Add checks for the new builtin - functions that take constant arguments. - (rs6000_invalid_builtin): Add decimal floating point builtin - support. - (rs6000_init_builtins): Setup long double, _Decimal64, and - _Decimal128 types for new builtin functions. - (builtin_function_type): Set the unsigned flags appropriately for - the new builtin functions. - (rs6000_opt_masks): Add support for decimal floating point builtin - functions. - - * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal - floating point builtin functions. - (RS6000_BTM_COMMON): Likewise. - (RS6000_BTI_long_double): Likewise. - (RS6000_BTI_dfloat64): Likewise. - (RS6000_BTI_dfloat128): Likewise. - (long_double_type_internal_node): Likewise. - (dfloat64_type_internal_node): Likewise. - (dfloat128_type_internal_node): Likewise. - - * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA - 2.07 bcd arithmetic instructions. - (UNSPEC_BCDSUB): Likewise. - (UNSPEC_BCD_OVERFLOW): Likewise. - (UNSPEC_BCD_ADD_SUB): Likewise. - (bcd_add_sub): Likewise. - (BCD_TEST): Likewise. - (bcd<bcd_add_sub>): Likewise. - (bcd<bcd_add_sub>_test): Likewise. - (bcd<bcd_add_sub>_test2): Likewise. - (bcd<bcd_add_sub>_<code>): Likewise. - (peephole2 for combined bcd ops): Likewise. - - * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new - decimal floating point builtin functions. - (UNSPEC_DENBCD): Likewise. - (UNSPEC_DXEX): Likewise. - (UNSPEC_DIEX): Likewise. - (UNSPEC_DSCLI): Likewise. - (UNSPEC_DSCRI): Likewise. - (D64_D128): Likewise. - (dfp_suffix): Likewise. - (dfp_ddedpd_<mode>): Likewise. - (dfp_denbcd_<mode>): Likewise. - (dfp_dxex_<mode>): Likewise. - (dfp_diex_<mode>): Likewise. - (dfp_dscli_<mode>): Likewise. - (dfp_dscri_<mode>): Likewise. - - * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD - builtin functions. - (UNSPEC_CDTBCD): Likewise. - (UNSPEC_CBCDTD): Likewise. - (UNSPEC_DIVE): Add support for new extended divide builtin - functions. - (UNSPEC_DIVEO): Likewise. - (UNSPEC_DIVEU): Likewise. - (UNSPEC_DIVEUO): Likewise. - (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to - pack/unpack 128-bit types. - (UNSPEC_PACK_128BIT): Likewise. - (idiv_ldiv): New mode attribute to set the 32/64-bit divide type. - (udiv<mode>3): Use idiv_ldiv mode attribute. - (div<mode>3): Likewise. - (addg6s): Add new BCD builtin functions. - (cdtbcd): Likewise. - (cbcdtd): Likewise. - (UNSPEC_DIV_EXTEND): Add support for new extended divide - instructions. - (div_extend): Likewise. - (div<div_extend>_<mode>"): Likewise. - (FP128_64): Add support for new builtin functions to pack/unpack - 128-bit types. - (unpack<mode>): Likewise. - (unpacktf_0): Likewise. - (unpacktf_1): Likewise. - (unpack<mode>_dm): Likewise. - (unpack<mode>_nodm): Likewise. - (pack<mode>): Likewise. - (unpackv1ti): Likewise. - (packv1ti): Likewise. - -2014-04-29 Pat Haugen <pthaugen@us.ibm.com> - - Backport from mainline - 2014-04-17 Pat Haugen <pthaugen@us.ibm.com> - - * config/rs6000/rs6000.md (addti3, subti3): New. - -2014-04-28 Pat Haugen <pthaugen@us.ibm.com> - - Backport from mainline - 2014-04-28 Pat Haugen <pthaugen@us.ibm.com> - - * config/rs6000/sync.md (AINT mode_iterator): Move definition. - (loadsync_<mode>): Change mode. - (load_quadpti, store_quadpti): New. - (atomic_load<mode>, atomic_store<mode>): Add support for TI mode. - * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. - -2014-04-28 Eric Botcazou <ebotcazou@adacore.com> - - * configure.ac: Tweak GAS check for LEON instructions on SPARC. - * configure: Regenerate. - * config/sparc/sparc.opt (muser-mode): New option. - * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable - for LEON3. - (atomic_compare_and_swap_leon3_1): New instruction for LEON3. - * doc/invoke.texi (SPARC options): Document -muser-mode. - -2014-04-25 Eric Botcazou <ebotcazou@adacore.com> - - PR target/60941 - * config/sparc/sparc.md (ashlsi3_extend): Delete. - -2014-04-22 Michael Meissner <meissner@linux.vnet.ibm.com> - - Back port from main line: - 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com> - - * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin - for ISA 2.07. - - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add - vbpermq builtins. - - * config/rs6000/altivec.md (UNSPEC_VBPERMQ): Add support for the - vbpermq instruction. - (altivec_vbpermq): Likewise. - - PR target/60672 - * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to - enable use of xxsldwi and xxpermdi builtin functions. - (vec_xxpermdi): Likewise. - - * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): - Document use of vec_xxsldwi and vec_xxpermdi builtins. - -2014-04-23 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2014-04-21 Uros Bizjak <ubizjak@gmail.com> - - PR target/60909 - * config/i386/i386.c (ix86_expand_builtin) - <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary - register for target RTX. - <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto. - -2014-04-23 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2014-04-02 Richard Biener <rguenther@suse.de> - - PR middle-end/60729 - * optabs.c (expand_abs_nojump): Honor flag_trapv only for - MODE_INTs. Properly use negv_optab. - (expand_abs): Likewise. - - 2014-04-03 Richard Biener <rguenther@suse.de> - - PR tree-optimization/60740 - * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate - over all GIMPLE_COND operands. - -2014-04-23 Richard Biener <rguenther@suse.de> - - PR middle-end/60635 - * gimplify.c (gimple_regimplify_operands): Update the - re-gimplifed stmt. - -2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com> - - Back port from the trunk, subversion id 209546. - - 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/60735 - * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case): - If mode is DDmode and TARGET_E500_DOUBLE allow move. - - * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some - more debug information for E500 if -mdebug=reg. - -2014-04-18 Richard Henderson <rth@redhat.com> - - * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode - to GET_MODE_SIZE, not a reg_class_t. - -2014-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for - little-endian. - (vsx_xxmrglw_<mode>): Likewise. - -2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - PR target/60839 - Revert the following patch - - 2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Back port mainline subversion id 209025. - 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/60735 - * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have - software floating point or no floating point registers, do not - allow any type in the FPRs. Eliminate a test for SPE SIMD types - in GPRs that occurs after we tested for GPRs that would never be - true. - - * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64): - Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE, - since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE, - specifically allow DDmode, since that does not use the SPE SIMD - instructions. - -2014-04-10 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/60769 - * lra-constraints.c (simplify_operand_subreg): Force reload of - paradoxical subreg if it is not in the class contents. - -2014-04-10 Jakub Jelinek <jakub@redhat.com> - - Backport from mainline - 2014-03-12 Jakub Jelinek <jakub@redhat.com> - Marc Glisse <marc.glisse@inria.fr> - - PR tree-optimization/60502 - * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst - instead of build_low_bits_mask. - - 2013-06-13 Marc Glisse <marc.glisse@inria.fr> - - * tree.c (build_all_ones_cst): New function. - * tree.h (build_all_ones_cst): Declare it. - - 2013-05-10 Marc Glisse <marc.glisse@inria.fr> - - * tree.c (build_minus_one_cst): New function. - * tree.h (build_minus_one_cst): Declare new function. - -2014-04-10 Jakub Jelinek <jakub@redhat.com> - - Backport from mainline - 2014-03-28 Jakub Jelinek <jakub@redhat.com> - - PR target/60693 - * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg - also if addr has VOIDmode. - - 2014-03-17 Jakub Jelinek <jakub@redhat.com> - - PR target/60516 - * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA - note creation for the 2010-08-31 changes. - - 2014-03-06 Jakub Jelinek <jakub@redhat.com> - Meador Inge <meadori@codesourcery.com> - - PR target/58595 - * config/arm/arm.c (arm_tls_symbol_p): Remove. - (arm_legitimize_address): Call legitimize_tls_address for any - arm_tls_referenced_p expression, handle constant addend. Call it - before testing for !TARGET_ARM. - (thumb_legitimize_address): Don't handle arm_tls_symbol_p here. - -2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline r208750 - 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a - pattern for vector nor instead of subtract from splat(-1). - (altivec_expand_vec_perm_const_le): Likewise. - - Backport from mainline r209235 - 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand - instead of vnor to exploit possible fusion opportunity in the - future. - (altivec_expand_vec_perm_const_le): Likewise. - -2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Revert following patch - 2014-04-08 Pat Haugen <pthaugen@us.ibm.com> - - Backport from mainline - 2014-04-08 Pat Haugen <pthaugen@us.ibm.com> - - * config/rs6000/sync.md (AINT mode_iterator): Move definition. - (loadsync_<mode>): Change mode. - (load_quadpti, store_quadpti): New. - (atomic_load<mode>, atomic_store<mode>): Add support for TI mode. - * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. - -2014-04-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline r202642 - 2013-09-17 Alan Modra <amodra@gmail.com> - - PR target/57589 - * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 - patch (r199972). - -2014-04-08 Pat Haugen <pthaugen@us.ibm.com> - - Backport from mainline - 2014-04-08 Pat Haugen <pthaugen@us.ibm.com> - - * config/rs6000/sync.md (AINT mode_iterator): Move definition. - (loadsync_<mode>): Change mode. - (load_quadpti, store_quadpti): New. - (atomic_load<mode>, atomic_store<mode>): Add support for TI mode. - * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. - -2014-04-07 Martin Jambor <mjambor@suse.cz> - - PR ipa/60640 - * ipa-cp.c (propagate_constants_accross_call): Do not propagate - accross thunks. - -2014-04-07 Dominique d'Humieres <dominiq@lps.ens.fr> - - Backport from mainline - 2013-09-14 Iain Sandoe <iains@gcc.gnu.org> - - PR target/48094 - * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata - is seen. - (darwin_objc1_section): Likewise. - (darwin_file_end): Emit Image Info section when required. - -2014-04-05 Alan Modra <amodra@gmail.com> - - Apply from mainline - 2014-01-28 Alan Modra <amodra@gmail.com> - * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS. - * configure.ac <recursive call for build != host>: Define - GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD - and LD_FOR_BUILD too. - * configure: Regenerate. - -2014-04-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - Backport from mainline r208895: - 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization - if it would clobber the stack pointer, even temporarily. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Back port from main line: - 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com> - - * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): - Document vec_vgbbd. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Back port mainline subversion id 209025. - 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/60735 - * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have - software floating point or no floating point registers, do not - allow any type in the FPRs. Eliminate a test for SPE SIMD types - in GPRs that occurs after we tested for GPRs that would never be - true. - - * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64): - Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE, - since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE, - specifically allow DDmode, since that does not use the SPE SIMD - instructions. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline r205308 - 2013-11-23 David Edelsohn <dje.gcc@gmail.com> - - * config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro. - (rs6000_xcoff_select_section): Place decls with stricter alignment - into named sections. - (rs6000_xcoff_unique_section): Allow unique sections for - uninitialized data with strict alignment. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline - 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * gcc/configure: Regenerate. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Back port from trunk - 2013-04-25 Alan Modra <amodra@gmail.com> - - PR target/57052 - * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to - rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN. - (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn. - Repeat for many other rotate/shift and mask patterns using subregs. - Name lshiftrt insns. - (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition - on WORDS_BIG_ENDIAN. - - 2013-06-07 Alan Modra <amodra@gmail.com> - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't - override user -mfp-in-toc. - (offsettable_ok_by_alignment): Consider just the current access - rather than the whole object, unless BLKmode. Handle - CONSTANT_POOL_ADDRESS_P constants that lack a decl too. - (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants - for -mcmodel=medium. - * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't - override user -mfp-in-toc or -msum-in-toc. Default to - -mno-fp-in-toc for -mcmodel=medium. - - 2013-06-18 Alan Modra <amodra@gmail.com> - - * config/rs6000/rs6000.h (enum data_align): New. - (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment. - (DATA_ABI_ALIGNMENT): Define. - (CONSTANT_ALIGNMENT): Correct comment. - * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare. - * config/rs6000/rs6000.c (rs6000_data_alignment): New function. - - 2013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"): - Require GOT register as additional operand in UNSPEC. - ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise. - ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise. - ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise. - ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter. - ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise. - ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise. - ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise. - - 2014-01-23 Pat Haugen <pthaugen@us.ibm.com> - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't - force flag_ira_loop_pressure if set via command line. - - 2014-02-06 Alan Modra <amodra@gmail.com> - - PR target/60032 - * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only - change SDmode to DDmode when lra_in_progress. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - V1TImode Support - Back port from trunk - 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com> - - * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types. - (VEC_M): Likewise. - (VEC_N): Likewise. - (VEC_R): Likewise. - (VEC_base): Likewise. - (mov<MODE>, VEC_M modes): If we are loading TImode into VSX - registers, we need to swap double words in little endian mode. - - * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode - to be a container mode for 128-bit integer operations added in ISA - 2.07. Unlike TImode and PTImode, the preferred register set is - the Altivec/VMX registers for the 128-bit operations. - - * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add - declarations. - (rs6000_split_128bit_ok_p): Likewise. - - * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support - macros for creating ISA 2.07 normal and overloaded builtin - functions with 3 arguments. - (BU_P8V_OVERLOAD_3): Likewise. - (VPERM_1T): Add support for V1TImode in 128-bit vector operations - for use as overloaded functions. - (VPERM_1TI_UNS): Likewise. - (VSEL_1TI): Likewise. - (VSEL_1TI_UNS): Likewise. - (ST_INTERNAL_1ti): Likewise. - (LD_INTERNAL_1ti): Likewise. - (XXSEL_1TI): Likewise. - (XXSEL_1TI_UNS): Likewise. - (VPERM_1TI): Likewise. - (VPERM_1TI_UNS): Likewise. - (XXPERMDI_1TI): Likewise. - (SET_1TI): Likewise. - (LXVD2X_V1TI): Likewise. - (STXVD2X_V1TI): Likewise. - (VEC_INIT_V1TI): Likewise. - (VEC_SET_V1TI): Likewise. - (VEC_EXT_V1TI): Likewise. - (EQV_V1TI): Likewise. - (NAND_V1TI): Likewise. - (ORC_V1TI): Likewise. - (VADDCUQ): Add support for 128-bit integer arithmetic instructions - added in ISA 2.07. Add both normal 'altivec' builtins, and the - overloaded builtin. - (VADDUQM): Likewise. - (VSUBCUQ): Likewise. - (VADDEUQM): Likewise. - (VADDECUQ): Likewise. - (VSUBEUQM): Likewise. - (VSUBECUQ): Likewise. - - * config/rs6000/rs6000-c.c (__int128_type): New static to hold - __int128_t and __uint128_t types. - (__uint128_type): Likewise. - (altivec_categorize_keyword): Add support for vector __int128_t, - vector __uint128_t, vector __int128, and vector unsigned __int128 - as a container type for TImode operations that need to be done in - VSX/Altivec registers. - (rs6000_macro_to_expand): Likewise. - (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions - to support 128-bit integer instructions vaddcuq, vadduqm, - vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm. - (altivec_resolve_overloaded_builtin): Add support for V1TImode. - - * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support - for V1TImode, and set up preferences to use VSX/Altivec - registers. Setup VSX reload handlers. - (rs6000_debug_reg_global): Likewise. - (rs6000_init_hard_regno_mode_ok): Likewise. - (rs6000_preferred_simd_mode): Likewise. - (vspltis_constant): Do not allow V1TImode as easy altivec - constants. - (easy_altivec_constant): Likewise. - (output_vec_const_move): Likewise. - (rs6000_expand_vector_set): Convert V1TImode set and extract to - simple move. - (rs6000_expand_vector_extract): Likewise. - (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg - addressing. - (rs6000_const_vec): Add support for V1TImode. - (rs6000_emit_le_vsx_load): Swap double words when loading or - storing TImode/V1TImode. - (rs6000_emit_le_vsx_store): Likewise. - (rs6000_emit_le_vsx_move): Likewise. - (rs6000_emit_move): Add support for V1TImode. - (altivec_expand_ld_builtin): Likewise. - (altivec_expand_st_builtin): Likewise. - (altivec_expand_vec_init_builtin): Likewise. - (altivec_expand_builtin): Likewise. - (rs6000_init_builtins): Add support for V1TImode type. Add - support for ISA 2.07 128-bit integer builtins. Define type names - for the VSX/Altivec vector types. - (altivec_init_builtins): Add support for overloaded vector - functions with V1TImode type. - (rs6000_preferred_reload_class): Prefer Altivec registers for - V1TImode. - (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to - external function. - (rs6000_split_128bit_ok_p): Likewise. - (rs6000_handle_altivec_attribute): Create V1TImode from vector - __int128_t and vector __uint128_t. - - * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators - and mode attributes. - (VSX_M): Likewise. - (VSX_M2): Likewise. - (VSm): Likewise. - (VSs): Likewise. - (VSr): Likewise. - (VSv): Likewise. - (VS_scalar): Likewise. - (VS_double): Likewise. - (vsx_set_v1ti): New builtin function to create V1TImode from - TImode. - - * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say - whether we support the ISA 2.07 128-bit integer arithmetic - instructions. - (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode. - (enum rs6000_builtin_type_index): Add fields to hold V1TImode - and TImode types for use with the builtin functions. - (V1TI_type_node): Likewise. - (unsigned_V1TI_type_node): Likewise. - (intTI_type_internal_node): Likewise. - (uintTI_type_internal_node): Likewise. - - * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA - 2.07 128-bit builtin functions. - (UNSPEC_VADDEUQM): Likewise. - (UNSPEC_VADDECUQ): Likewise. - (UNSPEC_VSUBCUQ): Likewise. - (UNSPEC_VSUBEUQM): Likewise. - (UNSPEC_VSUBECUQ): Likewise. - (VM): Add V1TImode to vector mode iterators. - (VM2): Likewise. - (VI_unit): Likewise. - (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins. - (altivec_vaddcuq): Likewise. - (altivec_vsubuqm): Likewise. - (altivec_vsubcuq): Likewise. - (altivec_vaddeuqm): Likewise. - (altivec_vaddecuq): Likewise. - (altivec_vsubeuqm): Likewise. - (altivec_vsubecuq): Likewise. - - * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector - mode iterators. - (BOOL_128): Likewise. - (BOOL_REGS_OUTPUT): Likewise. - (BOOL_REGS_OP1): Likewise. - (BOOL_REGS_OP2): Likewise. - (BOOL_REGS_UNARY): Likewise. - (BOOL_REGS_AND_CR0): Likewise. - - * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07 - 128-bit integer builtin support. - (vec_vadduqm): Likewise. - (vec_vaddecuq): Likewise. - (vec_vaddeuqm): Likewise. - (vec_vsubecuq): Likewise. - (vec_vsubeuqm): Likewise. - (vec_vsubcuq): Likewise. - (vec_vsubuqm): Likewise. - - * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): - Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm, - vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding - 128-bit integer add/subtract to ISA 2.07. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Apply mainline r207798 - 2014-02-26 Alan Modra <amodra@gmail.com> - PR target/58675 - PR target/57935 - * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use - find_replacement on parts of insn rtl that might be reloaded. - - Backport from mainline r208287 - 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow - reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax - constraint on constants to permit them being loaded into - GENERAL_REGS or BASE_REGS. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline r207699. - 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/60137 - * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter - for VSX/Altivec vectors that land in GPR registers. - - Backport from mainline r207808. - 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/60203 - * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints. - (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves - into 64-bit and 32-bit moves. On 64-bit moves, add support for - using direct move instructions on ISA 2.07. Also adjust - instruction length for 64-bit. - (mov<mode>_64bit, TFmode/TDmode): Likewise. - (mov<mode>_32bit, TFmode/TDmode): Likewise. - - Backport from mainline r207868. - 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/60203 - * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves): - Split 64-bit moves into 2 patterns. Do not allow the use of - direct move for TDmode in little endian, since the decimal value - has little endian bytes within a word, but the 64-bit pieces are - ordered in a big endian fashion, and normal subreg's of TDmode are - not allowed. - (mov<mode>_64bit_dm): Likewise. - (movtd_64bit_nodm): Likewise. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline r207658 - 2014-02-06 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce - big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd, - -mcall-openbsd, or -mcall-linux. - (CC1_ENDIAN_BIG_SPEC): Remove. - (CC1_ENDIAN_LITTLE_SPEC): Remove. - (CC1_ENDIAN_DEFAULT_SPEC): Remove. - (CC1_SPEC): Remove (always empty) %cc1_endian_... spec. - (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little, - and %cc1_endian_default. - * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Little Endian Vector API Support - Backport from mainline r206443 - 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove - two duplicate entries. - - Backport from mainline r206494 - 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * doc/invoke.texi: Add -maltivec={be,le} options, and document - default element-order behavior for -maltivec. - * config/rs6000/rs6000.opt: Add -maltivec={be,le} options. - * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure - that -maltivec={le,be} implies -maltivec; disallow -maltivec=le - when targeting big endian, at least for now. - * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG. - - Backport from mainline r206541 - 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS. - - Backport from mainline r206590 - 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): - Implement -maltivec=be for vec_insert and vec_extract. - - Backport from mainline r206641 - 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com> - - * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh - and vmulosh rather than call gen_vec_widen_smult_*. - (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather - than BYTES_BIG_ENDIAN to determine use of even or odd instruction. - (vec_widen_smult_even_v16qi): Likewise. - (vec_widen_umult_even_v8hi): Likewise. - (vec_widen_smult_even_v8hi): Likewise. - (vec_widen_umult_odd_v16qi): Likewise. - (vec_widen_smult_odd_v16qi): Likewise. - (vec_widen_umult_odd_v8hi): Likewise. - (vec_widen_smult_odd_v8hi): Likewise. - (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and - vmuloub rather than call gen_vec_widen_umult_*. - (vec_widen_umult_lo_v16qi): Likewise. - (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and - vmulosb rather than call gen_vec_widen_smult_*. - (vec_widen_smult_lo_v16qi): Likewise. - (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh - rather than call gen_vec_widen_umult_*. - (vec_widen_umult_lo_v8hi): Likewise. - (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh - rather than call gen_vec_widen_smult_*. - (vec_widen_smult_lo_v8hi): Likewise. - - Backport from mainline r207062 - 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove - correction for little endian... - * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to - here. - - Backport from mainline r207262 - 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use - CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*. - * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for - -maltivec=be with LE targets. - (vsx_mergeh_<mode>): Likewise. - * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New - unspecs. - (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct. - (altivec_vmrghb): Replace with define_expand and new - *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE - targets. - (altivec_vmrghb_direct): New define_insn. - (altivec_vmrghh): Replace with define_expand and new - *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE - targets. - (altivec_vmrghh_direct): New define_insn. - (altivec_vmrghw): Replace with define_expand and new - *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE - targets. - (altivec_vmrghw_direct): New define_insn. - (*altivec_vmrghsf): Adjust for endianness. - (altivec_vmrglb): Replace with define_expand and new - *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE - targets. - (altivec_vmrglb_direct): New define_insn. - (altivec_vmrglh): Replace with define_expand and new - *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE - targets. - (altivec_vmrglh_direct): New define_insn. - (altivec_vmrglw): Replace with define_expand and new - *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE - targets. - (altivec_vmrglw_direct): New define_insn. - (*altivec_vmrglsf): Adjust for endianness. - (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct. - (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct. - (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct. - (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct. - (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct. - (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct. - (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct. - (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct. - - Backport from mainline r207318 - 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use - gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf; - remove element index adjustment for endian (now handled in vsx.md - and altivec.md). - (altivec_expand_vec_perm_const): Use - gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw]. - * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec. - (vsx_xxspltw_<mode>): Adjust element index for little endian. - * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a - define_expand and a new define_insn *altivec_vspltb_internal; - adjust for -maltivec=be on a little endian target. - (altivec_vspltb_direct): New. - (altivec_vsplth): Divide into a define_expand and a new - define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a - little endian target. - (altivec_vsplth_direct): New. - (altivec_vspltw): Divide into a define_expand and a new - define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a - little endian target. - (altivec_vspltw_direct): New. - (altivec_vspltsf): Divide into a define_expand and a new - define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on - a little endian target. - - Backport from mainline r207326 - 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove - unused variable "field". - * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE. - (vsx_mergeh_<mode>): Likewise. - * config/rs6000/altivec.md (altivec_vmrghb): Likewise. - (altivec_vmrghh): Likewise. - (altivec_vmrghw): Likewise. - (altivec_vmrglb): Likewise. - (altivec_vmrglh): Likewise. - (altivec_vmrglw): Likewise. - (altivec_vspltb): Add missing uses. - (altivec_vsplth): Likewise. - (altivec_vspltw): Likewise. - (altivec_vspltsf): Likewise. - - Backport from mainline r207414 - 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec. - (altivec_vsumsws): Add handling for -maltivec=be with a little - endian target. - (altivec_vsumsws_direct): New. - (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of - gen_altivec_vsumsws. - - Backport from mainline r207415 - 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize - for vector types other than V16QImode. - * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a - define_expand, and call altivec_expand_vec_perm_le when producing - code with little endian element order. - (*altivec_vperm_<mode>_internal): New insn having previous - behavior of altivec_vperm_<mode>. - (altivec_vperm_<mode>_uns): Change to a define_expand, and call - altivec_expand_vec_perm_le when producing code with little endian - element order. - (*altivec_vperm_<mode>_uns_internal): New insn having previous - behavior of altivec_vperm_<mode>_uns. - - Backport from mainline r207520 - 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec. - (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise. - (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise. - (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of - gen_altivec_vpkuwum. - (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for - BYTES_BIG_ENDIAN. - (altivec_vpks<VI_char>ss): Likewise. - (altivec_vpks<VI_char>us): Likewise. - (altivec_vpku<VI_char>us): Likewise. - (altivec_vpku<VI_char>um): Likewise. - (altivec_vpku<VI_char>um_direct): New (copy of - altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for - internal use). - (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when - target is little endian and -maltivec=be is not specified. - (*altivec_vupkhs<VU_char>_direct): New (copy of - altivec_vupkhs<VU_char> that always emits vupkhs*, for internal - use). - (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when - target is little endian and -maltivec=be is not specified. - (*altivec_vupkls<VU_char>_direct): New (copy of - altivec_vupkls<VU_char> that always emits vupkls*, for internal - use). - (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is - little endian and -maltivec=be is not specified. - (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is - little endian and -maltivec=be is not specified. - - Backport from mainline r207521 - 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code - generation for -maltivec=be. - (altivec_vsumsws): Simplify redundant test. - - Backport from mainline r207525 - 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change - CODE_FOR_altivec_vpku[hw]um to - CODE_FOR_altivec_vpku[hw]um_direct. - * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change - UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT. - (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to - UNSPEC_VUNPACK_LO_SIGN_DIRECT. - - Backport from mainline r207814. - 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little - endian targets. - - Backport from mainline r207815. - 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (p8_vmrgew): Handle little endian - targets. - (p8_vmrgow): Likewise. - - Backport from mainline r207919. - 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (vspltis_constant): Fix most significant - bit of zero. - - Backport from mainline 208019 - 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (altivec_lvxl): Rename as - *altivec_lvxl_<mode>_internal and use VM2 iterator instead of - V4SI. - (altivec_lvxl_<mode>): New define_expand incorporating - -maltivec=be semantics where needed. - (altivec_lvx): Rename as *altivec_lvx_<mode>_internal. - (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be - semantics where needed. - (altivec_stvx): Rename as *altivec_stvx_<mode>_internal. - (altivec_stvx_<mode>): New define_expand incorporating - -maltivec=be semantics where needed. - (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use - VM2 iterator instead of V4SI. - (altivec_stvxl_<mode>): New define_expand incorporating - -maltivec=be semantics where needed. - * config/rs6000/rs6000-builtin.def: Add new built-in definitions - LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI, - LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, - STVX_V2DF, STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, - STVXL_V2DF, STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, - STVXL_V16QI. - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace - ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout; - similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and - ALTIVEC_BUILTIN_STVXL. - * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New - prototype. - (altivec_expand_stvx_be): Likewise. - * config/rs6000/rs6000.c (swap_selector_for_mode): New function. - (altivec_expand_lvx_be): Likewise. - (altivec_expand_stvx_be): Likewise. - (altivec_expand_builtin): Add cases for - ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>, - ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>. - (altivec_init_builtins): Add definitions for - __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>, - __builtin_altivec_stvx_<mode>, and - __builtin_altivec_stvxl_<mode>. - - Backport from mainline 208021 - 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (altivec_vsumsws): Replace second - vspltw with vsldoi. - (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of - gen_altivec_vsumsws. - - Backport from mainline 208049 - 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace - define_insn with define_expand and new define_insn - *altivec_lve<VI_char>x_internal. - (altivec_stve<VI_char>x): Replace define_insn with define_expand - and new define_insn *altivec_stve<VI_char>x_internal. - * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New - prototype. - * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by - lve*x built-ins. - (altivec_expand_stvex_be): New function. - - Backport from mainline - 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert - to permit subregs. - - Backport from mainline - 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - * config/rs6000/vector.md (*vector_unordered<mode>): Change split - to use canonical form for nor<mode>3. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline - 2014-02-04 Michael Meissner <meissner@linux.vnet.ibm.com> - - * config/rs6000/rs6000.opt (-mlra): Add switch to enable the LRA - register allocator. - - * config/rs6000/rs6000.c (TARGET_LRA_P): Add support for -mlra to - enable the LRA register allocator. Back port the changes from the - trunk to enable LRA. - (rs6000_legitimate_offset_address_p): Likewise. - (legitimate_lo_sum_address_p): Likewise. - (use_toc_relative_ref): Likewise. - (rs6000_legitimate_address_p): Likewise. - (rs6000_emit_move): Likewise. - (rs6000_secondary_memory_needed_mode): Likewise. - (rs6000_alloc_sdmode_stack_slot): Likewise. - (rs6000_lra_p): Likewise. - - * config/rs6000/sync.md (load_lockedti): Copy TI/PTI variables by - 64-bit parts to force the register allocator to allocate even/odd - register pairs for the quad word atomic instructions. - (store_conditionalti): Likewise. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Back port from mainline - 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/59909 - * doc/invoke.texi (RS/6000 and PowerPC Options): Document - -mquad-memory-atomic. Update -mquad-memory documentation to say - it is only used for non-atomic loads/stores. - - * config/rs6000/predicates.md (quad_int_reg_operand): Allow either - -mquad-memory or -mquad-memory-atomic switches. - - * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add - -mquad-memory-atomic to ISA 2.07 support. - - * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch - to separate support of normal quad word memory operations (ldq, - stq) from the atomic quad word memory operations. - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Add - support to separate non-atomic quad word operations from atomic - quad word operations. Disable non-atomic quad word operations in - little endian mode so that we don't have to swap words after the - load and before the store. - (quad_load_store_p): Add comment about atomic quad word support. - (rs6000_opt_masks): Add -mquad-memory-atomic to the list of - options printed with -mdebug=reg. - - * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use - -mquad-memory-atomic as the test for whether we have quad word - atomic instructions. - (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, - -mquad-memory, or -mp8-vector are used, allow byte/half-word - atomic operations. - - * config/rs6000/sync.md (load_lockedti): Insure that the address - is a proper indexed or indirect address for the lqarx instruction. - On little endian systems, swap the hi/lo registers after the lqarx - instruction. - (load_lockedpti): Use indexed_or_indirect_operand predicate to - insure the address is valid for the lqarx instruction. - (store_conditionalti): Insure that the address is a proper indexed - or indirect address for the stqcrx. instruction. On little endian - systems, swap the hi/lo registers before doing the stqcrx. - instruction. - (store_conditionalpti): Use indexed_or_indirect_operand predicate to - insure the address is valid for the stqcrx. instruction. - - * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros): - Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what - type of quad memory support is available. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Apply mainline r202190, powerpc64le multilibs and multiarch dir - 2013-09-03 Alan Modra <amodra@gmail.com> - - * config.gcc (powerpc*-*-linux*): Add support for little-endian - multilibs to big-endian target and vice versa. - * config/rs6000/t-linux64: Use := assignment on all vars. - (MULTILIB_EXTRA_OPTS): Remove fPIC. - (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options. - * config/rs6000/t-linux64le: New file. - * config/rs6000/t-linux64bele: New file. - * config/rs6000/t-linux64lebe: New file. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Back port from mainline - 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/59844 - * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little - endian support, remove tests for WORDS_BIG_ENDIAN. - (p8_mfvsrd_3_<mode>): Likewise. - (reload_gpr_from_vsx<mode>): Likewise. - (reload_gpr_from_vsxsf): Likewise. - (p8_mfvsrd_4_disf): Likewise. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline - 2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - PR target/56843 - * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove. - (rs6000_emit_swdiv_low_precision): Remove. - (rs6000_emit_swdiv): Rewrite to handle between one and four - iterations of Newton-Raphson generally; modify required number of - iterations for some cases. - * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline - 2013-08-19 Peter Bergner <bergner@vnet.ibm.com> - Jakub Jelinek <jakub@redhat.com> - - * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin. - (BUILT_IN_FABSD64): Likewise. - (BUILT_IN_FABSD128): Likewise. - * builtins.c (expand_builtin): Add support for - new DFP ABS builtins. - (fold_builtin_1): Likewise. - * config/rs6000/dfp.md - (*abstd2_fpr): Handle non-overlapping destination - and source operands. - (*nabstd2_fpr): Likewise. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Apply mainline r205060. - 2013-11-20 Alan Modra <amodra@gmail.com> - * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty. - * config/rs6000/rs6000.c (rs6000_option_override_internal): Default - to strict alignment on older processors when little-endian. - * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8 - for ELFv2. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - POWER ELFv2 ABI Support - Backport from mainline r204842: - - 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document. - - Backport from mainline r204809: - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define. - - Backport from mainline r204808: - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - Alan Modra <amodra@gmail.com> - - * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2. - (RS6000_SAVE_TOC): Remove. - (RS6000_TOC_SAVE_SLOT): New macro. - * config/rs6000/rs6000.c (rs6000_parm_offset): New function. - (rs6000_parm_start): Use it. - (rs6000_function_arg_advance_1): Likewise. - (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT. - (rs6000_emit_epilogue): Likewise. - (rs6000_call_aix): Likewise. - (rs6000_output_function_prologue): Do not save/restore r11 - around calling _mcount for ABI_ELFv2. - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - Alan Modra <amodra@gmail.com> - - * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space): - Add prototype. - * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove. - (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space. - * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function. - (rs6000_function_parms_need_stack): Likewise. - (rs6000_reg_parm_stack_space): Likewise. - (rs6000_function_arg): Do not replace BLKmode by Pmode when - returning a register argument. - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - Michael Gschwind <mkg@us.ibm.com> - - * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro. - (ALTIVEC_ARG_MAX_RETURN): Likewise. - (FUNCTION_VALUE_REGNO_P): Use them. - * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define. - (rs6000_return_in_msb): New function. - (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates. - Handle aggregates of up to 16 bytes for ELFv2. - (rs6000_function_value): Handle ELFv2 homogeneous aggregates. - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - Michael Gschwind <mkg@us.ibm.com> - - * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define. - * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function. - (rs6000_discover_homogeneous_aggregate): Likewise. - (rs6000_function_arg_boundary): Handle homogeneous aggregates. - (rs6000_function_arg_advance_1): Likewise. - (rs6000_function_arg): Likewise. - (rs6000_arg_partial_bytes): Likewise. - (rs6000_psave_function_arg): Handle BLKmode arguments. - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - Michael Gschwind <mkg@us.ibm.com> - - * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define. - * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function. - (rs6000_discover_homogeneous_aggregate): Likewise. - (rs6000_function_arg_boundary): Handle homogeneous aggregates. - (rs6000_function_arg_advance_1): Likewise. - (rs6000_function_arg): Likewise. - (rs6000_arg_partial_bytes): Likewise. - (rs6000_psave_function_arg): Handle BLKmode arguments. - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/rs6000.c (machine_function): New member - r2_setup_needed. - (rs6000_emit_prologue): Set r2_setup_needed if necessary. - (rs6000_output_mi_thunk): Set r2_setup_needed. - (rs6000_output_function_prologue): Output global entry point - prologue and local entry point marker if needed for ABI_ELFv2. - Output -mprofile-kernel code here. - (output_function_profiler): Do not output -mprofile-kernel - code here; moved to rs6000_output_function_prologue. - (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2. - - (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2. - (rs6000_output_function_entry): Likewise. - (rs6000_assemble_integer): Likewise. - (rs6000_elf_encode_section_info): Likewise. - (rs6000_elf_declare_function_name): Do not create dot symbols - or .opd section for ABI_ELFv2. - - (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines. - (rs6000_trampoline_init): Likewise. - (rs6000_elf_file_end): Call file_end_indicate_exec_stack - for ABI_ELFv2. - - (rs6000_call_aix): Handle ELFv2 indirect calls. Do not check - for function descriptors in ABI_ELFv2. - - * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support - on ABI_AIX only, not ABI_ELFv2. - ("*call_value_indirect_aix<mode>"): Likewise. - ("*call_indirect_elfv2<mode>"): New pattern. - ("*call_value_indirect_elfv2<mode>"): Likewise. - - * config/rs6000/predicates.md ("symbol_ref_operand"): Do not - check for function descriptors in ABI_ELFv2. - ("current_file_function_operand"): Likewise. - - * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]: - (toc): Undefine. - (FUNC_NAME): Define ELFv2 variant. - (JUMP_TARGET): Likewise. - (FUNC_START): Likewise. - (HIDDEN_FUNC): Likewise. - (FUNC_END): Likeiwse. - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1 - and --with-abi=elfv2. - * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi". - * config/rs6000/rs6000.opt (mabi=elfv1): New option. - (mabi=elfv2): Likewise. - * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2. - * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI - if !RS6000_BI_ARCH. - (ELFv2_ABI_CHECK): New macro. - (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set - rs6000_current_abi to ABI_AIX or ABI_ELFv2. - (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version. - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine - _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate. - - * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2. - (debug_stack_info): Likewise. - (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX. - (rs6000_legitimize_tls_address): Likewise. - (rs6000_conditional_register_usage): Likewise. - (rs6000_emit_move): Likewise. - (init_cumulative_args): Likewise. - (rs6000_function_arg_advance_1): Likewise. - (rs6000_function_arg): Likewise. - (rs6000_arg_partial_bytes): Likewise. - (rs6000_output_function_entry): Likewise. - (rs6000_assemble_integer): Likewise. - (rs6000_savres_strategy): Likewise. - (rs6000_stack_info): Likewise. - (rs6000_function_ok_for_sibcall): Likewise. - (rs6000_emit_load_toc_table): Likewise. - (rs6000_savres_routine_name): Likewise. - (ptr_regno_for_savres): Likewise. - (rs6000_emit_prologue): Likewise. - (rs6000_emit_epilogue): Likewise. - (rs6000_output_function_epilogue): Likewise. - (output_profile_hook): Likewise. - (output_function_profiler): Likewise. - (rs6000_trampoline_size): Likewise. - (rs6000_trampoline_init): Likewise. - (rs6000_elf_output_toc_section_asm_op): Likewise. - (rs6000_elf_encode_section_info): Likewise. - (rs6000_elf_reloc_rw_mask): Likewise. - (rs6000_elf_declare_function_name): Likewise. - (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX, - except that rs6000_compat_align_parm is always assumed false. - (rs6000_gimplify_va_arg): Likewise. - (rs6000_call_aix): Update comment. - (rs6000_sibcall_aix): Likewise. - * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"): - Treat ABI_ELFv2 the same as ABI_AIX. - ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise. - ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise. - ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise. - ("load_toc_aix_si"): Likewise. - ("load_toc_aix_di"): Likewise. - ("call"): Likewise. - ("call_value"): Likewise. - ("*call_local_aix<mode>"): Likewise. - ("*call_value_local_aix<mode>"): Likewise. - ("*call_nonlocal_aix<mode>"): Likewise. - ("*call_value_nonlocal_aix<mode>"): Likewise. - ("*call_indirect_aix<mode>"): Likewise. - ("*call_value_indirect_aix<mode>"): Likewise. - ("sibcall"): Likewise. - ("sibcall_value"): Likewise. - ("*sibcall_aix<mode>"): Likewise. - ("*sibcall_value_aix<mode>"): Likewise. - * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise. - ("current_file_function_operand"): Likewise. - - Backport from mainline r204807: - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic - by making use of the fact that for vector / floating point arguments - passed both in VRs/FPRs and in the fixed parameter area, the partial - bytes mechanism is in fact not used. - - Backport from mainline r204806: - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function. - (rs6000_finish_function_arg): Likewise. - (rs6000_function_arg): Use rs6000_psave_function_arg and - rs6000_finish_function_arg to handle both vector and floating - point arguments that are also passed in GPRs / the stack. - - Backport from mainline r204805: - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument. - (USE_ALTIVEC_FOR_ARG_P): Likewise. - (rs6000_darwin64_record_arg_advance_recurse): Update uses. - (rs6000_function_arg_advance_1):Likewise. - (rs6000_darwin64_record_arg_recurse): Likewise. - (rs6000_function_arg): Likewise. - (rs6000_arg_partial_bytes): Likewise. - - Backport from mainline r204804: - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace - "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN. - (rs6000_savres_strategy): Likewise. - (rs6000_return_addr): Likewise. - (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by - testing for ABI_V4 (since ABI_DARWIN is impossible here). - (rs6000_emit_prologue): Likewise. - (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test. - (rs6000_elf_declare_function_name): Remove duplicated test. - * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test - for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test). - ("load_toc_v4_PIC_1_normal"): Likewise. - ("load_toc_v4_PIC_1_476"): Likewise. - ("load_toc_v4_PIC_1b"): Likewise. - ("load_toc_v4_PIC_1b_normal"): Likewise. - ("load_toc_v4_PIC_1b_476"): Likewise. - ("load_toc_v4_PIC_2"): Likewise. - ("load_toc_v4_PIC_3b"): Likewise. - ("load_toc_v4_PIC_3c"): Likewise. - * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test. - (RS6000_SAVE_AREA): Likewise. - (FP_ARG_MAX_REG): Likewise. - (RETURN_ADDRESS_OFFSET): Likewise. - * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead - of ABI_AIX. - (SUBTARGET_OVERRIDE_OPTIONS): Likewise. - (MINIMAL_TOC_SECTION_ASM_OP): Likewise. - - Backport from mainline r204803: - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ... - (rs6000_call_aix): ... this. Handle both direct and indirect calls. - Create call insn directly instead of via various gen_... routines. - Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE. - (rs6000_sibcall_aix): New function. - * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove. - (TOC_SAVE_OFFSET_64BIT): Likewise. - (AIX_FUNC_DESC_TOC_32BIT): Likewise. - (AIX_FUNC_DESC_TOC_64BIT): Likewise. - (AIX_FUNC_DESC_SC_32BIT): Likewise. - (AIX_FUNC_DESC_SC_64BIT): Likewise. - ("call" expander): Call rs6000_call_aix. - ("call_value" expander): Likewise. - ("call_indirect_aix<ptrsize>"): Replace this pattern ... - ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ... - ("*call_indirect_aix<mode>"): ... by this insn pattern. - ("call_value_indirect_aix<ptrsize>"): Replace this pattern ... - ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ... - ("*call_value_indirect_aix<mode>"): ... by this insn pattern. - ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ... - ("*call_nonlocal_aix<mode>"): ... this pattern. - ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace - ("*call_value_nonlocal_aix<mode>"): ... by this pattern. - ("*call_local_aix<mode>"): New insn pattern. - ("*call_value_local_aix<mode>"): Likewise. - ("sibcall" expander): Call rs6000_sibcall_aix. - ("sibcall_value" expander): Likewise. Move earlier in file. - ("*sibcall_nonlocal_aix<mode>"): Replace by ... - ("*sibcall_aix<mode>"): ... this pattern. - ("*sibcall_value_nonlocal_aix<mode>"): Replace by ... - ("*sibcall_value_aix<mode>"): ... this pattern. - * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove. - (rs6000_call_aix): Add prototype. - (rs6000_sibcall_aix): Likewise. - - Backport from mainline r204799: - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a - RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn. - Instead, add USEs of all modified call-saved CR fields to the - insn storing the result to the stack slot, and provide an - appropriate REG_FRAME_RELATED_EXPR for that insn. - * config/rs6000/rs6000.md ("*crsave"): New insn pattern. - * config/rs6000/predicates.md ("crsave_operation"): New predicate. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - ELFv2 ABI Call Support - Backport from mainline r204798: - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - Alan Modra <amodra@gmail.com> - - * function.c (assign_parms): Use all.reg_parm_stack_space instead - of re-evaluating REG_PARM_STACK_SPACE target macro. - (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE. Use it - instead of evaluating target macro REG_PARM_STACK_SPACE every time. - (assign_parm_find_entry_rtl): Update call. - * calls.c (initialize_argument_information): Update call. - (emit_library_call_value_1): Likewise. - * expr.h (locate_and_pad_parm): Update prototype. - - Backport from mainline r204797: - - 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL - arguments. - - Backport from mainline r197003: - - 2013-03-23 Eric Botcazou <ebotcazou@adacore.com> - - * calls.c (expand_call): Add missing guard to code handling return - of non-BLKmode structures in MSB. - * function.c (expand_function_end): Likewise. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline r201750. - Note: Default setting of -mcompat-align-parm inverted! - - 2013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - PR target/57949 - * doc/invoke.texi: Add documentation of mcompat-align-parm - option. - * config/rs6000/rs6000.opt: Add mcompat-align-parm option. - * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX - and Linux, correct BLKmode alignment when 128-bit alignment is - required and compatibility flag is not set. - (rs6000_gimplify_va_arg): For AIX and Linux, honor specified - alignment for zero-size arguments when compatibility flag is not - set. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Little Endian Vector Support - Backport from mainline r205333 - 2013-11-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct - for little endian. - - Backport from mainline r205241 - 2013-11-21 Bill Schmidt <wschmidt@vnet.ibm.com> - - * config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous - little endian change. - (vec_pack_sfix_trunc_v2df): Likewise. - (vec_pack_ufix_trunc_v2df): Likewise. - * config/rs6000/rs6000.c (rs6000_expand_interleave): Correct - double checking of endianness. - - Backport from mainline r205146 - 2013-11-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian. - (vsx_extract_<mode>): Likewise. - (*vsx_extract_<mode>_one_le): New LE variant on - *vsx_extract_<mode>_zero. - (vsx_extract_v4sf): Adjust for little endian. - - Backport from mainline r205080 - 2013-11-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust - V16QI vector splat case for little endian. - - Backport from mainline r205045: - - 2013-11-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/vector.md ("mov<mode>"): Do not call - rs6000_emit_le_vsx_move to move into or out of GPRs. - * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert - source and destination are not GPR hard regs. - - Backport from mainline r204920 - 2011-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg - parameter and use it in REG_FRAME_RELATED_EXPR note. - (emit_frame_save): Call rs6000_frame_related with extra NULL_RTX - parameter. - (rs6000_emit_prologue): Likewise, but for little endian VSX - stores, pass the source register of the store instead. - - Backport from mainline r204862 - 2013-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X): - Remove. - (altivec_vperm_<mode>): Revert earlier little endian change. - (*altivec_vperm_<mode>_internal): Remove. - (altivec_vperm_<mode>_uns): Revert earlier little endian change. - (*altivec_vperm_<mode>_uns_internal): Remove. - * config/rs6000/vector.md (vec_realign_load_<mode>): Revise - commentary. - - Backport from mainline r204441 - 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_option_override_internal): - Remove restriction against use of VSX instructions when generating - code for little endian mode. - - Backport from mainline r204440 - 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh - for both big and little endian. - (mulv8hi3): Swap input operands for merge high and merge low - instructions for little endian. - - Backport from mainline r204439 - 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change - define_insn to define_expand that uses even patterns for big - endian and odd patterns for little endian. - (vec_widen_smult_even_v16qi): Likewise. - (vec_widen_umult_even_v8hi): Likewise. - (vec_widen_smult_even_v8hi): Likewise. - (vec_widen_umult_odd_v16qi): Likewise. - (vec_widen_smult_odd_v16qi): Likewise. - (vec_widen_umult_odd_v8hi): Likewise. - (vec_widen_smult_odd_v8hi): Likewise. - (altivec_vmuleub): New define_insn. - (altivec_vmuloub): Likewise. - (altivec_vmulesb): Likewise. - (altivec_vmulosb): Likewise. - (altivec_vmuleuh): Likewise. - (altivec_vmulouh): Likewise. - (altivec_vmulesh): Likewise. - (altivec_vmulosh): Likewise. - - Backport from mainline r204395 - 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for - little endian. - (vec_pack_ufix_trunc_v2df): Likewise. - - Backport from mainline r204363 - 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap - arguments to merge instruction for little endian. - (vec_widen_umult_lo_v16qi): Likewise. - (vec_widen_smult_hi_v16qi): Likewise. - (vec_widen_smult_lo_v16qi): Likewise. - (vec_widen_umult_hi_v8hi): Likewise. - (vec_widen_umult_lo_v8hi): Likewise. - (vec_widen_smult_hi_v8hi): Likewise. - (vec_widen_smult_lo_v8hi): Likewise. - - Backport from mainline r204350 - 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D): - Replace the define_insn_and_split with a define_insn and two - define_splits, with the split after reload re-permuting the source - register to its original value. - (*vsx_le_perm_store_<mode> for VSX_W): Likewise. - (*vsx_le_perm_store_v8hi): Likewise. - (*vsx_le_perm_store_v16qi): Likewise. - - Backport from mainline r204321 - 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/vector.md (vec_pack_trunc_v2df): Adjust for - little endian. - - Backport from mainline r204321 - 2013-11-02 Bill Schmidt <wschmidt@vnet.linux.ibm.com> - - * config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for - little endian. - - Backport from mainline r203980 - 2013-10-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (mulv8hi3): Adjust for little endian. - - Backport from mainline r203930 - 2013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com> - - * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse - meaning of merge-high and merge-low masks for little endian; avoid - use of vector-pack masks for little endian for mismatched modes. - - Backport from mainline r203877 - 2013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for - little endian. - (vec_unpacku_hi_v8hi): Likewise. - (vec_unpacku_lo_v16qi): Likewise. - (vec_unpacku_lo_v8hi): Likewise. - - Backport from mainline r203863 - 2013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (vspltis_constant): Make sure we check - all elements for both endian flavors. - - Backport from mainline r203714 - 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for - endianness. - (vec_unpacks_lo_v4sf): Likewise. - (vec_unpacks_float_hi_v4si): Likewise. - (vec_unpacks_float_lo_v4si): Likewise. - (vec_unpacku_float_hi_v4si): Likewise. - (vec_unpacku_float_lo_v4si): Likewise. - - Backport from mainline r203713 - 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE. - (vsx_concat_v2sf): Likewise. - - Backport from mainline r203458 - 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to - handle vector float as well. - (*vsx_le_perm_load_v4si): Likewise. - (*vsx_le_perm_store_v2di): Likewise. - (*vsx_le_perm_store_v4si): Likewise. - - Backport from mainline r203457 - 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm - directly to circumvent subtract from splat{31} workaround. - * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New - prototype. - * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New. - * config/rs6000/altivec.md (define_c_enum "unspec"): Add - UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X. - (altivec_vperm_<mode>): Convert to define_insn_and_split to - separate big and little endian logic. - (*altivec_vperm_<mode>_internal): New define_insn. - (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to - separate big and little endian logic. - (*altivec_vperm_<mode>_uns_internal): New define_insn. - (vec_permv16qi): Add little endian logic. - - Backport from mainline r203247 - 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New. - (altivec_expand_vec_perm_const): Call it. - - Backport from mainline r203246 - 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/vector.md (mov<mode>): Emit permuted move - sequences for LE VSX loads and stores at expand time. - * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New - prototype. - * config/rs6000/rs6000.c (rs6000_const_vec): New. - (rs6000_gen_le_vsx_permute): New. - (rs6000_gen_le_vsx_load): New. - (rs6000_gen_le_vsx_store): New. - (rs6000_gen_le_vsx_move): New. - * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New. - (*vsx_le_perm_load_v4si): New. - (*vsx_le_perm_load_v8hi): New. - (*vsx_le_perm_load_v16qi): New. - (*vsx_le_perm_store_v2di): New. - (*vsx_le_perm_store_v4si): New. - (*vsx_le_perm_store_v8hi): New. - (*vsx_le_perm_store_v16qi): New. - (*vsx_xxpermdi2_le_<mode>): New. - (*vsx_xxpermdi4_le_<mode>): New. - (*vsx_xxpermdi8_le_V8HI): New. - (*vsx_xxpermdi16_le_V16QI): New. - (*vsx_lxvd2x2_le_<mode>): New. - (*vsx_lxvd2x4_le_<mode>): New. - (*vsx_lxvd2x8_le_V8HI): New. - (*vsx_lxvd2x16_le_V16QI): New. - (*vsx_stxvd2x2_le_<mode>): New. - (*vsx_stxvd2x4_le_<mode>): New. - (*vsx_stxvd2x8_le_V8HI): New. - (*vsx_stxvd2x16_le_V16QI): New. - - Backport from mainline r201235 - 2013-07-24 Bill Schmidt <wschmidt@linux.ibm.com> - Anton Blanchard <anton@au1.ibm.com> - - * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian. - (altivec_vpks<VI_char>ss): Likewise. - (altivec_vpks<VI_char>us): Likewise. - (altivec_vpku<VI_char>us): Likewise. - (altivec_vpku<VI_char>um): Likewise. - - Backport from mainline r201208 - 2013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com> - Anton Blanchard <anton@au1.ibm.com> - - * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input - operands to vperm for little endian. - * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead - of lvsl to create the control mask for a vperm for little endian. - - Backport from mainline r201195 - 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - Anton Blanchard <anton@au1.ibm.com> - - * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse - two operands for little-endian. - - Backport from mainline r201193 - 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - Anton Blanchard <anton@au1.ibm.com> - - * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct - selection of field for vector splat in little endian mode. - - Backport from mainline r201149 - 2013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com> - Anton Blanchard <anton@au1.ibm.com> - - * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix - endianness when selecting field to splat. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline r205123: - - 2013-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not - allow subregs of TDmode in FPRs of smaller size in little-endian. - (rs6000_split_multireg_move): When splitting an access to TDmode - in FPRs, do not use simplify_gen_subreg. - - Backport from mainline r204927: - - 2013-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> - - * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of - sdmode_stack_slot also in little-endian mode. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Power8 HTM Support - Backport from mainline - 2013-12-03 Peter Bergner <bergner@vnet.ibm.com> - - * config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix - typo in macro name. - (_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise. - - Backport from mainline r205233. - 2013-11-21 Peter Bergner <bergner@vnet.ibm.com> - - * doc/extend.texi: Document htm builtins. - - Backport from mainline - 2013-07-17 Iain Sandoe <iain@codesourcery.com> - - * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers. - - Backport from mainline - 2013-07-16 Peter Bergner <bergner@vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not - enable extra ISA flags with TARGET_HTM. - - 2013-07-16 Jakub Jelinek <jakub@redhat.com> - Peter Bergner <bergner@vnet.ibm.com> - - * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM - registers in the comment. - (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers. - (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS - rather than FIRST_PSEUDO_REGISTERS. - - * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h. - * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md. - * config/rs6000/rs6000.opt: Add -mhtm option. - * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM. - (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM. - * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define - __HTM__ if the HTM instructions are available. - * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand) - (htm_spr_reg_operand): New define_predicates. - * config/rs6000/rs6000.md (define_attr "type"): Add htm. - (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants. - Include htm.md. - * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2) - (BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining - HTM builtin functions. - * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro. - (rs6000_reg_names, alt_reg_names): Add HTM SPR register names. - (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions. - (rs6000_builtin_mask_calculate): Likewise. - (rs6000_option_override_internal): Likewise. - (bdesc_htm): Add new HTM builtin support. - (htm_spr_num): New function. - (htm_spr_regno): Likewise. - (rs6000_htm_spr_icode): Likewise. - (htm_expand_builtin): Likewise. - (htm_init_builtins): Likewise. - (rs6000_expand_builtin): Add support for HTM builtin functions. - (rs6000_init_builtins): Likewise. - (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm option. - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm. - (TARGET_HTM, MASK_HTM): Define macros. - (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers. - (FIXED_REGISTERS): Likewise. - (CALL_USED_REGISTERS): Likewise. - (CALL_REALLY_USED_REGISTERS): Likewise. - (REG_ALLOC_ORDER): Likewise. - (enum reg_class): Likewise. - (REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS): Likewise. - (REGISTER_NAMES): Likewise. - (ADDITIONAL_REGISTER_NAMES): Likewise. - (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT) - (RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros. - (RS6000_BTM_COMMON): Add RS6000_BTM_HTM. - * config/rs6000/htm.md: New file. - * config/rs6000/htmintrin.h: New file. - * config/rs6000/htmxlintrin.h: New file. - -2014-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Power8 Base Support - Apply mainline - 2013-11-23 Alan Modra <amodra@gmail.com> - * config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX. - - Backport from mainline - 2013-11-12 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/59054 - * config/rs6000/rs6000.md (movdi_internal32): Eliminate - constraints that would allow DImode into the traditional Altivec - registers, but cause undesirable code generation when loading 0 as - a constant. - (movdi_internal64): Likewise. - (cmp<mode>_fpr): Do not use %x for CR register output. - (extendsfdf2_fpr): Fix constraints when -mallow-upper-df and - -mallow-upper-sf debug switches are used. - - Backport from mainline - 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new - fields to the reg_addr array that describes the valid addressing - mode for any register, general purpose registers, floating point - registers, and Altivec registers. - (FIRST_RELOAD_REG_CLASS): Likewise. - (LAST_RELOAD_REG_CLASS): Likewise. - (struct reload_reg_map_type): Likewise. - (reload_reg_map_type): Likewise. - (RELOAD_REG_VALID): Likewise. - (RELOAD_REG_MULTIPLE): Likewise. - (RELOAD_REG_INDEXED): Likewise. - (RELOAD_REG_OFFSET): Likewise. - (RELOAD_REG_PRE_INCDEC): Likewise. - (RELOAD_REG_PRE_MODIFY): Likewise. - (reg_addr): Likewise. - (mode_supports_pre_incdec_p): New helper functions to say whether - a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY. - (mode_supports_pre_modify_p): Likewise. - (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to - print the valid address mode bits for each mode. - (rs6000_debug_print_mode): Likewise. - (rs6000_debug_reg_global): Likewise. - (rs6000_setup_reg_addr_masks): New function to set up the address - mask bits for each type. - (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays. - Call rs6000_setup_reg_addr_masks to set up the address mask bits. - (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and - mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and - PRE_MODIFY are supported. - (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec - registers, instead of {src,dest}_av_p. - (rs6000_print_options_internal): Tweak the debug output slightly. - - Backport from mainline - 2013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com> - - * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2, - ceildf2, btruncdf2, instead of vsx_* name. - - * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic - iterators to only do V2DF and V4SF here. Move the DF code to - rs6000.md where it is combined with SF mode. Replace <VSv> with - just 'v' since only vector operations are handled with these insns - after moving the DF support to rs6000.md. - (vsx_sub<mode>3): Likewise. - (vsx_mul<mode>3): Likewise. - (vsx_div<mode>3): Likewise. - (vsx_fre<mode>2): Likewise. - (vsx_neg<mode>2): Likewise. - (vsx_abs<mode>2): Likewise. - (vsx_nabs<mode>2): Likewise. - (vsx_smax<mode>3): Likewise. - (vsx_smin<mode>3): Likewise. - (vsx_sqrt<mode>2): Likewise. - (vsx_rsqrte<mode>2): Likewise. - (vsx_fms<mode>4): Likewise. - (vsx_nfma<mode>4): Likewise. - (vsx_copysign<mode>3): Likewise. - (vsx_btrunc<mode>2): Likewise. - (vsx_floor<mode>2): Likewise. - (vsx_ceil<mode>2): Likewise. - (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md. - (vsx_sminsf3): Likewise. - (vsx_fmadf4): Likewise. - (vsx_fmsdf4): Likewise. - (vsx_nfmadf4): Likewise. - (vsx_nfmsdf4): Likewise. - (vsx_cmpdf_internal1): Likewise. - - * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it - simpler to select whether a target has SPE or traditional floating - point support in iterators. - (TARGET_DF_SPE): Likewise. - (TARGET_SF_FPR): Likewise. - (TARGET_DF_FPR): Likewise. - (TARGET_SF_INSN): Macros to say whether floating point support - exists for a given operation for expanders. - (TARGET_DF_INSN): Likewise. - - * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow - combining of SF/DF mode operations, using both traditional and VSX - registers. - (Fvsx): Likewise. - (Ff): Likewise. - (Fv): Likewise. - (Fs): Likewise. - (Ffre): Likewise. - (FFRE): Likewise. - (abs<mode>2): Combine SF/DF modes using traditional floating point - instructions. Add support for using the upper DF registers with - VSX support, and SF registers with power8-vector support. Update - expanders for operations supported by both the SPE and traditional - floating point units. - (abs<mode>2_fpr): Likewise. - (nabs<mode>2): Likewise. - (nabs<mode>2_fpr): Likewise. - (neg<mode>2): Likewise. - (neg<mode>2_fpr): Likewise. - (add<mode>3): Likewise. - (add<mode>3_fpr): Likewise. - (sub<mode>3): Likewise. - (sub<mode>3_fpr): Likewise. - (mul<mode>3): Likewise. - (mul<mode>3_fpr): Likewise. - (div<mode>3): Likewise. - (div<mode>3_fpr): Likewise. - (sqrt<mode>3): Likewise. - (sqrt<mode>3_fpr): Likewise. - (fre<Fs>): Likewise. - (rsqrt<mode>2): Likewise. - (cmp<mode>_fpr): Likewise. - (smax<mode>3): Likewise. - (smin<mode>3): Likewise. - (smax<mode>3_vsx): Likewise. - (smin<mode>3_vsx): Likewise. - (negsf2): Delete SF operations that are merged with DF. - (abssf2): Likewise. - (addsf3): Likewise. - (subsf3): Likewise. - (mulsf3): Likewise. - (divsf3): Likewise. - (fres): Likewise. - (fmasf4_fpr): Likewise. - (fmssf4_fpr): Likewise. - (nfmasf4_fpr): Likewise. - (nfmssf4_fpr): Likewise. - (sqrtsf2): Likewise. - (rsqrtsf_internal1): Likewise. - (smaxsf3): Likewise. - (sminsf3): Likewise. - (cmpsf_internal1): Likewise. - (copysign<mode>3_fcpsgn): Add VSX/power8-vector support. - (negdf2): Delete DF operations that are merged with SF. - (absdf2): Likewise. - (nabsdf2): Likewise. - (adddf3): Likewise. - (subdf3): Likewise. - (muldf3): Likewise. - (divdf3): Likewise. - (fred): Likewise. - (rsqrtdf_internal1): Likewise. - (fmadf4_fpr): Likewise. - (fmsdf4_fpr): Likewise. - (nfmadf4_fpr): Likewise. - (nfmsdf4_fpr): Likewise. - (sqrtdf2): Likewise. - (smaxdf3): Likewise. - (smindf3): Likewise. - (cmpdf_internal1): Likewise. - (lrint<mode>di2): Use TARGET_<MODE>_FPR macro. - (btrunc<mode>2): Delete separate expander, and combine with the - insn and add VSX instruction support. Use TARGET_<MODE>_FPR. - (btrunc<mode>2_fpr): Likewise. - (ceil<mode>2): Likewise. - (ceil<mode>2_fpr): Likewise. - (floor<mode>2): Likewise. - (floor<mode>2_fpr): Likewise. - (fma<mode>4_fpr): Combine SF and DF fused multiply/add support. - Add support for using the upper registers with VSX and - power8-vector. Move insns to be closer to the define_expands. On - VSX systems, prefer the traditional form of FMA over the VSX - version, since the traditional form allows the target not to - overlap with the inputs. - (fms<mode>4_fpr): Likewise. - (nfma<mode>4_fpr): Likewise. - (nfms<mode>4_fpr): Likewise. - - Backport from mainline - 2013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow - DFmode, DImode, and SFmode in the upper VSX registers based on the - -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS - if -mpower8-vector. Combine -mvsx-timode handling with the rest - of the VSX register handling. - - * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters. - (f32_sv): Likewise. - (zero_extendsidi2_lfiwzx): Add support for loading into the - Altivec registers with -mpower8-vector. Use wu/wv constraints to - only do VSX memory options on Altivec registers. - (extendsidi2_lfiwax): Likewise. - (extendsfdf2_fpr): Likewise. - (mov<mode>_hardfloat, SF/SD modes): Likewise. - (mov<mode>_hardfloat32, DF/DD modes): Likewise. - (mov<mode>_hardfloat64, DF/DD modes): Likewise. - (movdi_internal64): Likewise. - - Backport from mainline - 2013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine - reload helper function arrays into a single array reg_addr. - (reload_fpr_gpr): Likewise. - (reload_gpr_vsx): Likewise. - (reload_vsx_gpr): Likewise. - (struct rs6000_reg_addr): Likewise. - (reg_addr): Likewise. - (rs6000_debug_reg_global): Change rs6000_vector_reload, - reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr. - (rs6000_init_hard_regno_mode_ok): Likewise. - (rs6000_secondary_reload_direct_move): Likewise. - (rs6000_secondary_reload): Likewise. - - * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new - constraints: wu, ww, and wy. Repurpose wv constraint added during - power8 changes. Put wg constraint in alphabetical order. - - * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch - for future work to add ISA 2.07 VSX single precision support. - (-mvsx-scalar-double): Change default from -1 to 1, update - documentation comment. - (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df. - (-mupper-regs-df): New debug switch to control whether DF values - can go in the traditional Altivec registers. - (-mupper-regs-sf): New debug switch to control whether SF values - can go in the traditional Altivec registers. - - * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww, - and wy constraints. - (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for - loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df. - Add new constraints, wu/ww/wy. Repurpose wv constraint. - (rs6000_debug_legitimate_address_p): Print if we are running - before, during, or after reload. - (rs6000_secondary_reload): Add a comment. - (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf. - - * config/rs6000/constraints.md (wa constraint): Sort w<x> - constraints. Update documentation string. - (wd constraint): Likewise. - (wf constraint): Likewise. - (wg constraint): Likewise. - (wn constraint): Likewise. - (ws constraint): Likewise. - (wt constraint): Likewise. - (wx constraint): Likewise. - (wz constraint): Likewise. - (wu constraint): New constraint for ISA 2.07 SFmode scalar - instructions. - (ww constraint): Likewise. - (wy constraint): Likewise. - (wv constraint): Repurpose ISA 2.07 constraint that did not use in - the previous submissions. - * doc/md.texi (PowerPC and IBM RS6000): Likewise. - - Backport from mainline - 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/58673 - * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only - restrict TImode addresses to single indirect registers if both - -mquad-memory and -mvsx-timode are used. - (rs6000_output_move_128bit): Use quad_load_store_p to determine if - we should emit load/store quad. Remove using %y for quad memory - addresses. - - * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add - constraints to allow load/store quad on machines where TImode is - not allowed in VSX registers. Use 'n' instead of 'F' constraint - for TImode to load integer constants. - - Backport from mainline - 2013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/58587 - * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off - setting -mvsx-timode by default until the underlying problem is - fixed. - (RS6000_CPU, power7 defaults): Likewise. - - Backport from trunk - 2013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/58160 - * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the - memory rtx to contain ZERO_EXTEND and SIGN_EXTEND. - - * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands - array instead of each individual operand as a separate argument. - (emit_fusion_gpr_load): Likewise. - (expand_fusion_gpr_load): Add new function declaration. - - * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling - signature to have the operands passed as an array, instead of as - separate arguments. Allow ZERO_EXTEND to be in the memory - address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not - depend on the register live/dead flags when peepholes are run. - (expand_fusion_gpr_load): New function to be called from the - peephole2 pass, to change the register that addis sets to be the - target register. - (emit_fusion_gpr_load): Change the calling signature to have the - operands passed as an array, instead of as separate arguments. - Allow ZERO_EXTEND to be in the memory address, and also - SIGN_EXTEND if -mpower8-fusion-sign. - - * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused - unspec enumeration. - (power8 fusion peephole/peephole2): Rework the fusion peepholes to - adjust the register addis loads up in the peephole2 pass. Do not - depend on the register live/dead state when the peephole pass is - done. - - Backport from trunk - 2013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com> - - * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean - expanders to rs6000.md. - (ior<mode>3): Likewise. - (and<mode>3): Likewise. - (one_cmpl<mode>2): Likewise. - (nor<mode>3): Likewise. - (andc<mode>3): Likewise. - (eqv<mode>3): Likewise. - (nand<mode>3): Likewise. - (orc<mode>3): Likewise. - - * config/rs6000/rs6000-protos.h (rs6000_split_logical): New - declaration. - - * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support - to split multi-word logical operations. - (rs6000_split_logical_di): Likewise. - (rs6000_split_logical): Likewise. - - * config/rs6000/vsx.md (VSX_L2): Delete, no longer used. - (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md, - and allow TImode operations in 32-bit. - (vsx_and<mode>3_64bit): Likewise. - (vsx_ior<mode>3_32bit): Likewise. - (vsx_ior<mode>3_64bit): Likewise. - (vsx_xor<mode>3_32bit): Likewise. - (vsx_xor<mode>3_64bit): Likewise. - (vsx_one_cmpl<mode>2_32bit): Likewise. - (vsx_one_cmpl<mode>2_64bit): Likewise. - (vsx_nor<mode>3_32bit): Likewise. - (vsx_nor<mode>3_64bit): Likewise. - (vsx_andc<mode>3_32bit): Likewise. - (vsx_andc<mode>3_64bit): Likewise. - (vsx_eqv<mode>3_32bit): Likewise. - (vsx_eqv<mode>3_64bit): Likewise. - (vsx_nand<mode>3_32bit): Likewise. - (vsx_nand<mode>3_64bit): Likewise. - (vsx_orc<mode>3_32bit): Likewise. - (vsx_orc<mode>3_64bit): Likewise. - - * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector - logical types in GPRs. - - * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit - logical insns to rs6000.md, and allow TImode operations in - 32-bit. - (altivec_ior<mode>3): Likewise. - (altivec_xor<mode>3): Likewise. - (altivec_one_cmpl<mode>2): Likewise. - (altivec_nor<mode>3): Likewise. - (altivec_andc<mode>3): Likewise. - - * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode - attributes for moving the 128-bit logical operations into - rs6000.md. - (BOOL_REGS_OUTPUT): Likewise. - (BOOL_REGS_OP1): Likewise. - (BOOL_REGS_OP2): Likewise. - (BOOL_REGS_UNARY): Likewise. - (BOOL_REGS_AND_CR0): Likewise. - (one_cmpl<mode>2): Add support for DI logical operations on - 32-bit, splitting the operations to 32-bit. - (anddi3): Likewise. - (iordi3): Likewise. - (xordi3): Likewise. - (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator - changes to combine the 32/64-bit code, allow logical operations on - TI mode in 32-bit, and to use similar match_operator patterns like - scalar mode uses. Combine the Altivec and VSX code for logical - operations, and move it here. - (ior<mode>3, 128-bit types): Likewise. - (xor<mode>3, 128-bit types): Likewise. - (one_cmpl<mode>3, 128-bit types): Likewise. - (nor<mode>3, 128-bit types): Likewise. - (andc<mode>3, 128-bit types): Likewise. - (eqv<mode>3, 128-bit types): Likewise. - (nand<mode>3, 128-bit types): Likewise. - (orc<mode>3, 128-bit types): Likewise. - (and<mode>3_internal): Likewise. - (bool<mode>3_internal): Likewise. - (boolc<mode>3_internal1): Likewise. - (boolc<mode>3_internal2): Likewise. - (boolcc<mode>3_internal1): Likewise. - (boolcc<mode>3_internal2): Likewise. - (eqv<mode>3_internal1): Likewise. - (eqv<mode>3_internal2): Likewise. - (one_cmpl1<mode>3_internal): Likewise. - - Back port from mainline: - 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com> - Pat Haugen <pthaugen@us.ibm.com> - Peter Bergner <bergner@vnet.ibm.com> - - * lib/target-supports.exp (check_p8vector_hw_available) Add power8 - support. - (check_effective_target_powerpc_p8vector_ok): Likewise. - (is-effective-target): Likewise. - (check_vect_support_and_set_flags): Likewise. - - Backport from mainline - 2013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com> - - * config/rs6000/predicates.md (fusion_gpr_addis): New predicates - to support power8 load fusion. - (fusion_gpr_mem_load): Likewise. - - * config/rs6000/rs6000-modes.def (PTImode): Update a comment. - - * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New - declarations for power8 load fusion. - (emit_fusion_gpr_load): Likewise. - - * config/rs6000/rs6000.c (rs6000_option_override_internal): If - tuning for power8, turn on fusion mode by default. Turn on sign - extending fusion mode if normal fusion mode is on, and we are at - -O2 or -O3. - (fusion_gpr_load_p): New function, return true if we can fuse an - addis instruction with a dependent load to a GPR. - (emit_fusion_gpr_load): Emit the instructions for power8 load - fusion to GPRs. - - * config/rs6000/vsx.md (VSX_M2): New iterator for fusion - peepholes. - (VSX load fusion peepholes): New peepholes to fuse together an - addi instruction with a VSX load instruction. - - * config/rs6000/rs6000.md (GPR load fusion peepholes): New - peepholes to fuse an addis instruction with a load to a GPR base - register. If we are supporting sign extending fusions, convert - sign extending loads to zero extending loads and add an explicit - sign extension. - - Backport from mainline - 2013-07-18 Pat Haugen <pthaugen@us.ibm.com> - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag - interaction for new Power8 flags and VSX. - - Back port from the trunk - 2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/57744 - * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode - to tie with any other modes. Eliminate Altivec vector mode tests, - since these are a subset of ALTIVEC or VSX vector modes. Simplify - code, to return 0 if testing MODE2 for a condition, if we've - already tested MODE1 for the same condition. - - Backport from mainline - 2013-06-28 Pat Haugen <pthaugen@us.ibm.com> - - * config/rs6000/rs6000.md (define_insn ""): Fix insn type. - - Back port from the trunk - 2013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com> - Pat Haugen <pthaugen@us.ibm.com> - Peter Bergner <bergner@vnet.ibm.com> - - * config/rs6000/power8.md: New. - * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor - setting for power8 entry. - * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md. - * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust - test for Power4/Power5 only. - (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8 - support. - (force_new_group): Adjust comment. - * config/rs6000/rs6000.md: Include power8.md. - - Back port from the trunk - 2013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/57615 - * config/rs6000/rs6000.md (mov<mode>_ppc64): Call - rs6000_output_move_128bit to handle emitting quad memory - operations. Set attribute length to 8 bytes. - - Back port from the trunk - 2013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com> - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Move - test for clearing quad memory on 32-bit later. - - Back port from the trunk - - 2013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com> - Pat Haugen <pthaugen@us.ibm.com> - Peter Bergner <bergner@vnet.ibm.com> - - * config/rs6000/rs6000.c (emit_load_locked): Add support for - power8 byte, half-word, and quad-word atomic instructions. - (emit_store_conditional): Likewise. - (rs6000_expand_atomic_compare_and_swap): Likewise. - (rs6000_expand_atomic_op): Likewise. - - * config/rs6000/sync.md (larx): Add new modes for power8. - (stcx): Likewise. - (AINT): New mode iterator to include TImode as well as normal - integer modes on power8. - (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so - that VSX registers are not considered. Use AINT mode iterator - instead of INT1 to allow inclusion of quad word atomic operations - on power8. - (load_locked<mode>): Likewise. - (store_conditional<mode>): Likewise. - (atomic_compare_and_swap<mode>): Likewise. - (atomic_exchange<mode>): Likewise. - (atomic_nand<mode>): Likewise. - (atomic_fetch_<fetchop_name><mode>): Likewise. - (atomic_nand_fetch<mode>): Likewise. - (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating - each type. - (ATOMIC): On power8, add QImode, HImode modes. - (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI - modes that promote to SImode. - (load_lockedti): Convert TImode arguments to PTImode, so that we - get a guaranteed even/odd register pair. - (load_lockedpti): Likewise. - (store_conditionalti): Likewise. - (store_conditionalpti): Likewise. - - * config/rs6000/rs6000.md (QHI): New mode iterator for power8 - atomic load/store instructions. - (HSI): Likewise. - - Back port from the trunk - - 2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com> - Pat Haugen <pthaugen@us.ibm.com> - Peter Bergner <bergner@vnet.ibm.com> - - * config/rs6000/vector.md (GPR move splitter): Do not split moves - of vectors in GPRS if they are direct moves or quad word load or - store moves. - - * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add - declaration. - (direct_move_p): Likewise. - (quad_load_store_p): Likewise. - - * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register - classes into bins based on the physical register type. - (reg_class_to_reg_type): Likewise. - (IS_STD_REG_TYPE): Likewise. - (IS_FP_VECT_REG_TYPE): Likewise. - (reload_fpr_gpr): Arrays to determine what insn to use if we can - use direct move instructions. - (reload_gpr_vsx): Likewise. - (reload_vsx_gpr): Likewise. - (rs6000_init_hard_regno_mode_ok): Precalculate the register type - information that is a simplification of register classes. Also - precalculate direct move reload helpers. - (direct_move_p): New function to return true if the operation can - be done as a direct move instruciton. - (quad_load_store_p): New function to return true if the operation - is a quad memory operation. - (rs6000_legitimize_address): If quad memory, only allow register - indirect for TImode addresses. - (rs6000_legitimate_address_p): Likewise. - (enum reload_reg_type): Delete, replace with rs6000_reg_type. - (rs6000_reload_register_type): Likewise. - (register_to_reg_type): Return register type. - (rs6000_secondary_reload_simple_move): New helper function for - secondary reload and secondary memory needed to identify anything - that is a simple move, and does not need reloading. - (rs6000_secondary_reload_direct_move): New helper function for - secondary reload to identify cases that can be done with several - instructions via the direct move instructions. - (rs6000_secondary_reload_move): New helper function for secondary - reload to identify moves between register types that can be done. - (rs6000_secondary_reload): Add support for quad memory operations - and for direct move. - (rs6000_secondary_memory_needed): Likewise. - (rs6000_debug_secondary_memory_needed): Change argument names. - (rs6000_output_move_128bit): New function to return the move to - use for 128-bit moves, including knowing about the various - limitations of quad memory operations. - - * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad - memory operations. call rs6000_output_move_128bit for the actual - instruciton(s) to generate. - (vsx_movti_64bit): Likewise. - - * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values. - (UNSPEC_P8V_MTVSRWZ): Likewise. - (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise. - (UNSPEC_P8V_MTVSRD): Likewise. - (UNSPEC_P8V_XXPERMDI): Likewise. - (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise. - (UNSPEC_FUSION_GPR): Likewise. - (FMOVE128_GPR): New iterator for direct move. - (f32_lv): New mode attribute for load/store of SFmode/SDmode - values. - (f32_sv): Likewise. - (f32_dm): Likewise. - (zero_extend<mode>di2_internal1): Add support for power8 32-bit - loads and direct move instructions. - (zero_extendsidi2_lfiwzx): Likewise. - (extendsidi2_lfiwax): Likewise. - (extendsidi2_nocell): Likewise. - (floatsi<mode>2_lfiwax): Likewise. - (lfiwax): Likewise. - (floatunssi<mode>2_lfiwzx): Likewise. - (lfiwzx): Likewise. - (fix_trunc<mode>_stfiwx): Likewise. - (fixuns_trunc<mode>_stfiwx): Likewise. - (mov<mode>_hardfloat, 32-bit floating point): Likewise. - (mov<move>_hardfloat64, 64-bit floating point): Likewise. - (parity<mode>2_cmpb): Set length/type attr. - (unnamed shift right patterns, mov<mode>_internal2): Change type attr - for 'mr.' to fast_compare. - (bpermd_<mode>): Change type attr to popcnt. - (p8_fmrgow_<mode>): New insns for power8 direct move support. - (p8_mtvsrwz_1): Likewise. - (p8_mtvsrwz_2): Likewise. - (reload_fpr_from_gpr<mode>): Likewise. - (p8_mtvsrd_1): Likewise. - (p8_mtvsrd_2): Likewise. - (p8_xxpermdi_<mode>): Likewise. - (reload_vsx_from_gpr<mode>): Likewise. - (reload_vsx_from_gprsf): Likewise. - (p8_mfvsrd_3_<mode>): LIkewise. - (reload_gpr_from_vsx<mode>): Likewise. - (reload_gpr_from_vsxsf): Likewise. - (p8_mfvsrd_4_disf): Likewise. - (multi-word GPR splits): Do not split direct moves or quad memory - operations. - - Backport from the trunk - - 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com> - Pat Haugen <pthaugen@us.ibm.com> - Peter Bergner <bergner@vnet.ibm.com> - - * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): - Document new power8 builtins. - - * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a - condition code register, to allow 128-bit logical operations to be - done in the VSX or GPR registers. - (nor<mode>3): Use the canonical form for nor. - (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc, - vclz*, and vpopcnt* vector instructions. - (nand<mode>3): Likewise. - (orc<mode>3): Likewise. - (clz<mode>2): LIkewise. - (popcount<mode>2): Likewise. - - * config/rs6000/predicates.md (int_reg_operand): Rework tests so - that only the GPRs are recognized. - - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add - support for new power8 builtins. - - * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8 - builtin functions. - (xscvdpspn): Likewise. - (vclz): Likewise. - (vclzb): Likewise. - (vclzh): Likewise. - (vclzw): Likewise. - (vclzd): Likewise. - (vpopcnt): Likewise. - (vpopcntb): Likewise. - (vpopcnth): Likewise. - (vpopcntw): Likewise. - (vpopcntd): Likewise. - (vgbbd): Likewise. - (vmrgew): Likewise. - (vmrgow): Likewise. - (eqv): Likewise. - (eqv_v16qi3): Likewise. - (eqv_v8hi3): Likewise. - (eqv_v4si3): Likewise. - (eqv_v2di3): Likewise. - (eqv_v4sf3): Likewise. - (eqv_v2df3): Likewise. - (nand): Likewise. - (nand_v16qi3): Likewise. - (nand_v8hi3): Likewise. - (nand_v4si3): Likewise. - (nand_v2di3): Likewise. - (nand_v4sf3): Likewise. - (nand_v2df3): Likewise. - (orc): Likewise. - (orc_v16qi3): Likewise. - (orc_v8hi3): Likewise. - (orc_v4si3): Likewise. - (orc_v2di3): Likewise. - (orc_v4sf3): Likewise. - (orc_v2df3): Likewise. - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Only - allow power8 quad mode in 64-bit. - (rs6000_builtin_vectorized_function): Add support to vectorize - ISA 2.07 count leading zeros, population count builtins. - (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form - V4SF vectors instead of xscvdpsp to avoid IEEE related traps. - (builtin_function_type): Add vgbbd builtin function which takes an - unsigned argument. - (altivec_expand_vec_perm_const): Add support for new power8 merge - instructions. - - * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types, - that does not include TImdoe for use with 32-bit. - (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn - instructions. - (UNSPEC_VSX_CVDPSPN): Likewise. - (vsx_xscvdpspn): Likewise. - (vsx_xscvspdpn): Likewise. - (vsx_xscvdpspn_scalar): Likewise. - (vsx_xscvspdpn_directmove): Likewise. - (vsx_and<mode>3): Split logical operations into 32-bit and - 64-bit. Add support to do logical operations on TImode as well as - VSX vector types. Allow logical operations to be done in either - VSX registers or in general purpose registers in 64-bit mode. Add - splitters if GPRs were used. For AND, add clobber of CCmode to - allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL - encoding. - (vsx_and<mode>3_32bit): Likewise. - (vsx_and<mode>3_64bit): Likewise. - (vsx_ior<mode>3): Likewise. - (vsx_ior<mode>3_32bit): Likewise. - (vsx_ior<mode>3_64bit): Likewise. - (vsx_xor<mode>3): Likewise. - (vsx_xor<mode>3_32bit): Likewise. - (vsx_xor<mode>3_64bit): Likewise. - (vsx_one_cmpl<mode>2): Likewise. - (vsx_one_cmpl<mode>2_32bit): Likewise. - (vsx_one_cmpl<mode>2_64bit): Likewise. - (vsx_nor<mode>3): Likewise. - (vsx_nor<mode>3_32bit): Likewise. - (vsx_nor<mode>3_64bit): Likewise. - (vsx_andc<mode>3): Likewise. - (vsx_andc<mode>3_32bit): Likewise. - (vsx_andc<mode>3_64bit): Likewise. - (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand, - and xxlorc instructions. - (vsx_eqv<mode>3_64bit): Likewise. - (vsx_nand<mode>3_32bit): Likewise. - (vsx_nand<mode>3_64bit): Likewise. - (vsx_orc<mode>3_32bit): Likewise. - (vsx_orc<mode>3_64bit): Likewise. - - * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment. - - * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd - instruction. - (p8_vmrgew): Add power8 vmrgew and vmrgow instructions. - (p8_vmrgow): Likewise. - (altivec_and<mode>3): Add clobber of CCmode to allow AND using - GPRs to be split under VSX. - (p8v_clz<mode>2): Add power8 count leading zero support. - (p8v_popcount<mode>2): Add power8 population count support. - (p8v_vgbbd): Add power8 gather bits by bytes by doubleword - support. - - * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv - instruction. - - * config/rs6000/altivec.h (vec_eqv): Add defines to export power8 - builtin functions. - (vec_nand): Likewise. - (vec_vclz): Likewise. - (vec_vclzb): Likewise. - (vec_vclzd): Likewise. - (vec_vclzh): Likewise. - (vec_vclzw): Likewise. - (vec_vgbbd): Likewise. - (vec_vmrgew): Likewise. - (vec_vmrgow): Likewise. - (vec_vpopcnt): Likewise. - (vec_vpopcntb): Likewise. - (vec_vpopcntd): Likewise. - (vec_vpopcnth): Likewise. - (vec_vpopcntw): Likewise. - - Backport from trunk - - 2013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com> - Pat Haugen <pthaugen@us.ibm.com> - Peter Bergner <bergner@vnet.ibm.com> - - * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI - instructions. - (VEC_A): Likewise. - (VEC_C): Likewise. - (vrotl<mode>3): Likewise. - (vashl<mode>3): Likewise. - (vlshr<mode>3): Likewise. - (vashr<mode>3): Likewise. - - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add - support for power8 V2DI builtins. - - * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for - power8 V2DI builtins. - (vupkhsw): Likewise. - (vupklsw): Likewise. - (vaddudm): Likewise. - (vminsd): Likewise. - (vmaxsd): Likewise. - (vminud): Likewise. - (vmaxud): Likewise. - (vpkudum): Likewise. - (vpksdss): Likewise. - (vpkudus): Likewise. - (vpksdus): Likewise. - (vrld): Likewise. - (vsld): Likewise. - (vsrd): Likewise. - (vsrad): Likewise. - (vsubudm): Likewise. - (vcmpequd): Likewise. - (vcmpgtsd): Likewise. - (vcmpgtud): Likewise. - (vcmpequd_p): Likewise. - (vcmpgtsd_p): Likewise. - (vcmpgtud_p): Likewise. - (vupkhsw): Likewise. - (vupklsw): Likewise. - (vaddudm): Likewise. - (vmaxsd): Likewise. - (vmaxud): Likewise. - (vminsd): Likewise. - (vminud): Likewise. - (vpksdss): Likewise. - (vpksdus): Likewise. - (vpkudum): Likewise. - (vpkudus): Likewise. - (vrld): Likewise. - (vsld): Likewise. - (vsrad): Likewise. - (vsrd): Likewise. - (vsubudm): Likewise. - - * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add - support for power8 V2DI instructions. - - * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for - power8 V2DI instructions. Combine pack and unpack insns to use an - iterator for each mode. Check whether a particular mode supports - Altivec instructions instead of just checking TARGET_ALTIVEC. - (UNSPEC_VPKUWUM): Likewise. - (UNSPEC_VPKSHSS): Likewise. - (UNSPEC_VPKSWSS): Likewise. - (UNSPEC_VPKUHUS): Likewise. - (UNSPEC_VPKSHUS): Likewise. - (UNSPEC_VPKUWUS): Likewise. - (UNSPEC_VPKSWUS): Likewise. - (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise. - (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise. - (UNSPEC_VPACK_UNS_UNS_SAT): Likewise. - (UNSPEC_VPACK_UNS_UNS_MOD): Likewise. - (UNSPEC_VUPKHSB): Likewise. - (UNSPEC_VUNPACK_HI_SIGN): Likewise. - (UNSPEC_VUNPACK_LO_SIGN): Likewise. - (UNSPEC_VUPKHSH): Likewise. - (UNSPEC_VUPKLSB): Likewise. - (UNSPEC_VUPKLSH): Likewise. - (VI2): Likewise. - (VI_char): Likewise. - (VI_scalar): Likewise. - (VI_unit): Likewise. - (VP): Likewise. - (VP_small): Likewise. - (VP_small_lc): Likewise. - (VU_char): Likewise. - (add<mode>3): Likewise. - (altivec_vaddcuw): Likewise. - (altivec_vaddu<VI_char>s): Likewise. - (altivec_vadds<VI_char>s): Likewise. - (sub<mode>3): Likewise. - (altivec_vsubcuw): Likewise. - (altivec_vsubu<VI_char>s): Likewise. - (altivec_vsubs<VI_char>s): Likewise. - (altivec_vavgs<VI_char>): Likewise. - (altivec_vcmpbfp): Likewise. - (altivec_eq<mode>): Likewise. - (altivec_gt<mode>): Likewise. - (altivec_gtu<mode>): Likewise. - (umax<mode>3): Likewise. - (smax<mode>3): Likewise. - (umin<mode>3): Likewise. - (smin<mode>3): Likewise. - (altivec_vpkuhum): Likewise. - (altivec_vpkuwum): Likewise. - (altivec_vpkshss): Likewise. - (altivec_vpkswss): Likewise. - (altivec_vpkuhus): Likewise. - (altivec_vpkshus): Likewise. - (altivec_vpkuwus): Likewise. - (altivec_vpkswus): Likewise. - (altivec_vpks<VI_char>ss): Likewise. - (altivec_vpks<VI_char>us): Likewise. - (altivec_vpku<VI_char>us): Likewise. - (altivec_vpku<VI_char>um): Likewise. - (altivec_vrl<VI_char>): Likewise. - (altivec_vsl<VI_char>): Likewise. - (altivec_vsr<VI_char>): Likewise. - (altivec_vsra<VI_char>): Likewise. - (altivec_vsldoi_<mode>): Likewise. - (altivec_vupkhsb): Likewise. - (altivec_vupkhs<VU_char>): Likewise. - (altivec_vupkls<VU_char>): Likewise. - (altivec_vupkhsh): Likewise. - (altivec_vupklsb): Likewise. - (altivec_vupklsh): Likewise. - (altivec_vcmpequ<VI_char>_p): Likewise. - (altivec_vcmpgts<VI_char>_p): Likewise. - (altivec_vcmpgtu<VI_char>_p): Likewise. - (abs<mode>2): Likewise. - (vec_unpacks_hi_v16qi): Likewise. - (vec_unpacks_hi_v8hi): Likewise. - (vec_unpacks_lo_v16qi): Likewise. - (vec_unpacks_hi_<VP_small_lc>): Likewise. - (vec_unpacks_lo_v8hi): Likewise. - (vec_unpacks_lo_<VP_small_lc>): Likewise. - (vec_pack_trunc_v8h): Likewise. - (vec_pack_trunc_v4si): Likewise. - (vec_pack_trunc_<mode>): Likewise. - - * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8 - V2DI builtins. - (vec_vmaxsd): Likewise. - (vec_vmaxud): Likewise. - (vec_vminsd): Likewise. - (vec_vminud): Likewise. - (vec_vpksdss): Likewise. - (vec_vpksdus): Likewise. - (vec_vpkudum): Likewise. - (vec_vpkudus): Likewise. - (vec_vrld): Likewise. - (vec_vsld): Likewise. - (vec_vsrad): Likewise. - (vec_vsrd): Likewise. - (vec_vsubudm): Likewise. - (vec_vupkhsw): Likewise. - (vec_vupklsw): Likewise. - - 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com> - Pat Haugen <pthaugen@us.ibm.com> - Peter Bergner <bergner@vnet.ibm.com> - - * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add - documentation for the power8 crypto builtins. - - * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md. - - * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support - macros for defining power8 builtin functions. - (BU_P8V_AV_2): Likewise. - (BU_P8V_AV_P): Likewise. - (BU_P8V_VSX_1): Likewise. - (BU_P8V_OVERLOAD_1): Likewise. - (BU_P8V_OVERLOAD_2): Likewise. - (BU_CRYPTO_1): Likewise. - (BU_CRYPTO_2): Likewise. - (BU_CRYPTO_3): Likewise. - (BU_CRYPTO_OVERLOAD_1): Likewise. - (BU_CRYPTO_OVERLOAD_2): Likewise. - (XSCVSPDP): Fix typo, point to the correct instruction. - (VCIPHER): Add power8 crypto builtins. - (VCIPHERLAST): Likewise. - (VNCIPHER): Likewise. - (VNCIPHERLAST): Likewise. - (VPMSUMB): Likewise. - (VPMSUMH): Likewise. - (VPMSUMW): Likewise. - (VPERMXOR_V2DI): Likewise. - (VPERMXOR_V4SI: Likewise. - (VPERMXOR_V8HI: Likewise. - (VPERMXOR_V16QI: Likewise. - (VSHASIGMAW): Likewise. - (VSHASIGMAD): Likewise. - (VPMSUM): Likewise. - (VPERMXOR): Likewise. - (VSHASIGMA): Likewise. - - * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define - __CRYPTO__ if the crypto instructions are available. - (altivec_overloaded_builtins): Add support for overloaded power8 - builtins. - - * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add - support for power8 crypto builtins. - (builtin_function_type): Likewise. - (altivec_init_builtins): Add support for builtins that take vector - long long (V2DI) arguments. - - * config/rs6000/crypto.md: New file, define power8 crypto - instructions. - - 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com> - Pat Haugen <pthaugen@us.ibm.com> - Peter Bergner <bergner@vnet.ibm.com> - - * doc/invoke.texi (Option Summary): Add power8 options. - (RS/6000 and PowerPC Options): Likewise. - - * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use - constraints.md instead of rs6000.h. Reorder w* constraints. Add - wm, wn, wr documentation. - - * gcc/config/rs6000/constraints.md (wm): New constraint for VSX - registers if direct move instructions are enabled. - (wn): New constraint for no registers. - (wq): New constraint for quad word even GPR registers. - (wr): New constraint if 64-bit instructions are enabled. - (wv): New constraint if power8 vector instructions are enabled. - (wQ): New constraint for quad word memory locations. - - * gcc/config/rs6000/predicates.md (const_0_to_15_operand): New - constraint for 0..15 for crypto instructions. - (gpc_reg_operand): If VSX allow registers in VSX registers as well - as GPR and floating point registers. - (int_reg_operand): New predicate to match only GPR registers. - (base_reg_operand): New predicate to match base registers. - (quad_int_reg_operand): New predicate to match even GPR registers - for quad memory operations. - (vsx_reg_or_cint_operand): New predicate to allow vector logical - operations in both GPR and VSX registers. - (quad_memory_operand): New predicate for quad memory operations. - (reg_or_indexed_operand): New predicate for direct move support. - - * gcc/config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): - Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS. - (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8). - (POWERPC_MASKS): Add power8 options. - (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the - various options. - - * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros): - Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8. - - * gcc/config/rs6000/rs6000.opt (-mvsx-timode): Add documentation. - (-mpower8-fusion): New power8 options. - (-mpower8-fusion-sign): Likewise. - (-mpower8-vector): Likewise. - (-mcrypto): Likewise. - (-mdirect-move): Likewise. - (-mquad-memory): Likewise. - - * gcc/config/rs6000/rs6000.c (power8_cost): Initial definition for - power8. - (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR - registers. - (rs6000_debug_reg_print): Print the base register class if - -mdebug=reg. - (rs6000_debug_vector_unit): Add p8_vector. - (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint - definitions. Also print fusion state. - (rs6000_init_hard_regno_mode_ok): Set up power8 constraints. - (rs6000_builtin_mask_calculate): Add power8 builtin support. - (rs6000_option_override_internal): Add support for power8. - (rs6000_common_init_builtins): Add debugging for skipped builtins - if -mdebug=builtin. - (rs6000_adjust_cost): Add power8 support. - (rs6000_issue_rate): Likewise. - (insn_must_be_first_in_group): Likewise. - (insn_must_be_last_in_group): Likewise. - (force_new_group): Likewise. - (rs6000_register_move_cost): Likewise. - (rs6000_opt_masks): Likewise. - - * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a - power8 capable assembler, default to power7 options. - (TARGET_DIRECT_MOVE): Likewise. - (TARGET_CRYPTO): Likewise. - (TARGET_P8_VECTOR): Likewise. - (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support. - (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise. - (VECTOR_MEM_P8_VECTOR_P): Likewise. - (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise. - (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise. - (TARGET_XSCVDPSPN): Likewise. - (TARGET_XSCVSPDPN): Likewsie. - (TARGET_SYNC_HI_QI): Likewise. - (TARGET_SYNC_TI): Likewise. - (MASK_CRYPTO): Likewise. - (MASK_DIRECT_MOVE): Likewise. - (MASK_P8_FUSION): Likewise. - (MASK_P8_VECTOR): Likewise. - (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the - TFmode temporary used by some of the direct move instructions to - get two FP temporary registers does not force creation of a stack - frame. - (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs. - (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so - that any VSX registers are tieable, even if they are also an - Altivec vector mode. - (r6000_reg_class_enum): Add wm, wr, wv constraints. - (RS6000_BTM_P8_VECTOR): Power8 builtin support. - (RS6000_BTM_CRYPTO): Likewise. - (RS6000_BTM_COMMON): Likewise. - - * config/rs6000/rs6000.md (cpu attribute): Add power8. - * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise. - (enum rs6000_vector): Add power8 vector support. - - - Backport from mainline - 2013-03-20 Pat Haugen <pthaugen@us.ibm.com> - - * config/rs6000/predicates.md (indexed_address, update_address_mem - update_indexed_address_mem): New predicates. - * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type" - attribute for load/store instructions. - * config/rs6000/dfp.md (movsd_store): Likewise. - (movsd_load): Likewise. - * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise. - (unnamed HI->DI extend define_insn): Likewise. - (unnamed SI->DI extend define_insn): Likewise. - (unnamed QI->SI extend define_insn): Likewise. - (unnamed QI->HI extend define_insn): Likewise. - (unnamed HI->SI extend define_insn): Likewise. - (unnamed HI->SI extend define_insn): Likewise. - (extendsfdf2_fpr): Likewise. - (movsi_internal1): Likewise. - (movsi_internal1_single): Likewise. - (movhi_internal): Likewise. - (movqi_internal): Likewise. - (movcc_internal1): Correct mnemonic for stw insn. Set correct "type" - attribute for load/store instructions. - (mov<mode>_hardfloat): Set correct "type" attribute for load/store - instructions. - (mov<mode>_softfloat): Likewise. - (mov<mode>_hardfloat32): Likewise. - (mov<mode>_hardfloat64): Likewise. - (mov<mode>_softfloat64): Likewise. - (movdi_internal32): Likewise. - (movdi_internal64): Likewise. - (probe_stack_<mode>): Likewise. - - Backport from mainline - 2013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com> - - * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary - floating point, and decimal floating point to reload iterator. - - * config/rs6000/constraints.md (wl constraint): New constraints to - return FLOAT_REGS if certain options are used to reduce the number - of separate patterns that exist in the file. - (wx constraint): Likewise. - (wz constraint): Likewise. - - * config/rs6000/rs6000.c (rs6000_debug_reg_global): If - -mdebug=reg, print wg, wl, wx, and wz constraints. - (rs6000_init_hard_regno_mode_ok): Initialize new constraints. - Initialize the reload functions for 64-bit binary/decimal floating - point types. - (reg_offset_addressing_ok_p): If we are on a power7 or later, use - LFIWZX and STFIWX to load/store 32-bit decimal types, and don't - create the buffer on the stack to overcome not having a 32-bit - load and store. - (rs6000_emit_move): Likewise. - (rs6000_secondary_memory_needed_rtx): Likewise. - (rs6000_alloc_sdmode_stack_slot): Likewise. - (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f - via xxlxor, just like DFmode 0.0. - - * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro) - (define as 1 if we are running on a power7 or newer. - (enum r6000_reg_class_enum): Add new constraints. - - * config/rs6000/dfp.md (movsd): Delete, combine with binary - floating point moves in rs6000.md. Combine power6x (mfpgpr) moves - with other moves by using conditional constraits (wg). Use LFIWZX - and STFIWX for loading SDmode on power7. Use xxlxor to create - 0.0f. - (movsd splitter): Likewise. - (movsd_hardfloat): Likewise. - (movsd_softfloat): Likewise. - - * config/rs6000/rs6000.md (FMOVE32): New iterators to combine - binary and decimal floating point moves. - (fmove_ok): New attributes to combine binary and decimal floating - point moves, and to combine power6x (mfpgpr) moves along normal - floating moves. - (real_value_to_target): Likewise. - (f32_lr): Likewise. - (f32_lm): Likewise. - (f32_li): Likewise. - (f32_sr): Likewise. - (f32_sm): Likewise. - (f32_si): Likewise. - (movsf): Combine binary and decimal floating point moves. Combine - power6x (mfpgpr) moves with other moves by using conditional - constraits (wg). Use LFIWZX and STFIWX for loading SDmode on - power7. - (mov<mode> for SFmode/SDmode); Likewise. - (SFmode/SDmode splitters): Likewise. - (movsf_hardfloat): Likewise. - (mov<mode>_hardfloat for SFmode/SDmode): Likewise. - (movsf_softfloat): Likewise. - (mov<mode>_softfloat for SFmode/SDmode): Likewise. - - * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl) - (wx and wz constraints. - - * config/rs6000/constraints.md (wg constraint): New constraint to - return FLOAT_REGS if -mmfpgpr (power6x) was used. - - * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg - constraint. - - * config/rs6000/rs6000.c (rs6000_debug_reg_global): If - -mdebug=reg, print wg, wl, wx, and wz constraints. - (rs6000_init_hard_regno_mode_ok): Initialize new constraints. - Initialize the reload functions for 64-bit binary/decimal floating - point types. - (reg_offset_addressing_ok_p): If we are on a power7 or later, use - LFIWZX and STFIWX to load/store 32-bit decimal types, and don't - create the buffer on the stack to overcome not having a 32-bit - load and store. - (rs6000_emit_move): Likewise. - (rs6000_secondary_memory_needed_rtx): Likewise. - (rs6000_alloc_sdmode_stack_slot): Likewise. - (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f - via xxlxor, just like DFmode 0.0. - - - * config/rs6000/dfp.md (movdd): Delete, combine with binary - floating point moves in rs6000.md. Combine power6x (mfpgpr) moves - with other moves by using conditional constraits (wg). Use LFIWZX - and STFIWX for loading SDmode on power7. - (movdd splitters): Likewise. - (movdd_hardfloat32): Likewise. - (movdd_softfloat32): Likewise. - (movdd_hardfloat64_mfpgpr): Likewise. - (movdd_hardfloat64): Likewise. - (movdd_softfloat64): Likewise. - - * config/rs6000/rs6000.md (FMOVE64): New iterators to combine - 64-bit binary and decimal floating point moves. - (FMOVE64X): Likewise. - (movdf): Combine 64-bit binary and decimal floating point moves. - Combine power6x (mfpgpr) moves with other moves by using - conditional constraits (wg). - (mov<mode> for DFmode/DDmode): Likewise. - (DFmode/DDmode splitters): Likewise. - (movdf_hardfloat32): Likewise. - (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise. - (movdf_softfloat32): Likewise. - (movdf_hardfloat64_mfpgpr): Likewise. - (movdf_hardfloat64): Likewise. - (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise. - (movdf_softfloat64): Likewise. - (mov<mode>_softfloat64 for DFmode/DDmode): Likewise. - (reload_<mode>_load): Move to later in the file so they aren't in - the middle of the floating point move insns. - (reload_<mode>_store): Likewise. - - * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg - constraint. - - * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg - constraint if -mdebug=reg. - (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if - -mfpgpr. Enable using dd reload support if needed. - - * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit - binary and decimal floating point moves in rs6000.md. - (movtd_internal): Likewise. - - * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and - decimal floating point moves. - (movtf): Likewise. - (movtf_internal): Likewise. - (mov<mode>_internal, TDmode/TFmode): Likewise. - (movtf_softfloat): Likewise. - (mov<mode>_softfloat, TDmode/TFmode): Likewise. - - * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with - movdi_internal64, using wg constraint for move direct operations. - (movdi_internal64): Likewise. - - * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print - MODES_TIEABLE_P for selected modes. Print the numerical value of - the various virtual registers. Use GPR/FPR first/last values) - (instead of hard coding the register numbers. Print which modes - have reload functions registered. - (rs6000_option_override_internal): If -mdebug=reg, trace the - options settings before/after setting cpu, target and subtarget - settings. - (rs6000_secondary_reload_trace): Improve the RTL dump for - -mdebug=addr and for secondary reload failures in - rs6000_secondary_reload_inner. - (rs6000_secondary_reload_fail): Likewise. - (rs6000_secondary_reload_inner): Likewise. - - * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience - macros for first/last GPR and FPR registers. - (LAST_GPR_REGNO): Likewise. - (FIRST_FPR_REGNO): Likewise. - (LAST_FPR_REGNO): Likewise. - - * config/rs6000/vector.md (mul<mode>3): Use the combined macro - VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to - VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P. - (vcond<mode><mode>): Likewise. - (vcondu<mode><mode>): Likewise. - (vector_gtu<mode>): Likewise. - (vector_gte<mode>): Likewise. - (xor<mode>3): Don't allow logical operations on TImode in 32-bit - to prevent the compiler from converting DImode operations to - TImode. - (ior<mode>3): Likewise. - (and<mode>3): Likewise. - (one_cmpl<mode>2): Likewise. - (nor<mode>3): Likewise. - (andc<mode>3): Likewise. - - * config/rs6000/constraints.md (wt constraint): New constraint - that returns VSX_REGS if TImode is allowed in VSX registers. - - * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy - constant under VSX. - - * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is - similar to TImode, but it is restricted to being in the GPRs. - - * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow - TImode to occupy a single VSX register. - - * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to - -mvsx-timode for power7/power8. - (power7 cpu): Likewise. - (power8 cpu): Likewise. - - * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make - sure that TFmode/TDmode take up two registers if they are ever - allowed in the upper VSX registers. - (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX - registers. - (rs6000_init_hard_regno_mode_ok): Likewise. - (rs6000_debug_reg_global): Add debugging for PTImode and wt - constraint. Print if LRA is turned on. - (rs6000_option_override_internal): Give an error if -mvsx-timode - and VSX is not enabled. - (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If - -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode - to reg+offset addressing. Use PTImode when checking offset - addresses for validity. - (reg_offset_addressing_ok_p): Likewise. - (rs6000_legitimate_offset_address_p): Likewise. - (rs6000_legitimize_address): Likewise. - (rs6000_legitimize_reload_address): Likewise. - (rs6000_legitimate_address_p): Likewise. - (rs6000_eliminate_indexed_memrefs): Likewise. - (rs6000_emit_move): Likewise. - (rs6000_secondary_reload): Likewise. - (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit - reloads to fpr registers to continue to use reg+offset addressing) - (but 64-bit reloads to altivec registers need reg+reg addressing. - Drop test for PRE_MODIFY, since VSX loads/stores no longer support - it. Treat LO_SUM like a PLUS operation. - (rs6000_secondary_reload_class): If type is 64-bit, prefer to use - FLOAT_REGS instead of VSX_RGS to allow use of reg+offset - addressing. - (rs6000_cannot_change_mode_class): Do not allow TImode in VSX - registers to share a register with a smaller sized type, since VSX - puts scalars in the upper 64-bits. - (print_operand): Add support for PTImode. - (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of - VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX - registers, but don't have arithmetic support. - (rs6000_memory_move_cost): Add test for VSX. - (rs6000_opt_masks): Add -mvsx-timode. - - * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves - for TImode. - (VSs): Likewise. - (VSr): Use wt constraint for TImode. - (VSv): Drop TImode support. - (vsx_movti): Delete, replace with versions for 32-bit and 64-bit. - (vsx_movti_64bit): Likewise. - (vsx_movti_32bit): Likewise. - (vec_store_<mode>): Use VSX iterator instead of vector iterator. - (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put - one '?' on the appropriate output constraint. Do not allow TImode - logical operations on 32-bit systems. - (vsx_ior<mode>3): Likewise. - (vsx_xor<mode>3): Likewise. - (vsx_one_cmpl<mode>2): Likewise. - (vsx_nor<mode>3): Likewise. - (vsx_andc<mode>3): Likewise. - (vsx_concat_<mode>): Likewise. - (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes. - - * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from - OPTION_MASK_VSX_TIMODE. - (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt. - (STACK_SAVEAREA_MODE): Use PTImode instead of TImode. - - * config/rs6000/rs6000.md (INT mode attribute): Add PTImode. - (TI2 iterator): New iterator for TImode, PTImode. - (wd mode attribute): Add values for vector types. - (movti_string): Replace TI move operations with operations for - TImode and PTImode. Add support for TImode being allowed in VSX - registers. - (mov<mode>_string, TImode/PTImode): Likewise. - (movti_ppc64): Likewise. - (mov<mode>_ppc64, TImode/PTImode): Likewise. - (TI mode splitters): Likewise. - - * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt - constraint. - -2014-04-04 Richard Biener <rguenther@suse.de> - - * tree-ssanames.c (make_ssa_name_fn): Fix assert. - -2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE. - -2014-04-01 Richard Biener <rguenther@suse.de> - - * gimple.h (struct gimple_statement_base): Align subcode to - 16 bits. - -2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de> - - * doc/invoke.texi (mapp-regs): Clarify. - -2014-03-31 H.J. Lu <hongjiu.lu@intel.com> - - PR rtl-optimization/60700 - Backport from mainline - 2013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org> - - PR rtl-optimization/57637 - * function.c (move_insn_for_shrink_wrap): Also check the - GEN set of the LIVE problem for the liveness analysis - if it exists, otherwise give up. - -2014-03-30 Kaz Kojima <kkojima@gcc.gnu.org> - - Backport from mainline - 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org> - - PR target/60039 - * config/sh/sh.md (udivsi3_i1): Clobber R1 register. - -2014-03-26 Martin Jambor <mjambor@suse.cz> - - PR ipa/60419 - * ipa.c (symtab_remove_unreachable_nodes): Clear thunk and - alias flags of nodes in the border. - -2014-03-26 Eric Botcazou <ebotcazou@adacore.com> - - PR rtl-optimization/60452 - * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment. - <case REG>: Return 1 for invalid offsets from the frame pointer. - -2014-03-24 Richard Biener <rguenther@suse.de> - - PR tree-optimization/60429 - * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Remove - duplicated line. - -2014-03-23 Eric Botcazou <ebotcazou@adacore.com> - - PR rtl-optimization/60601 - * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere. - - * gcc.c (eval_spec_function): Initialize save_growing_value. - -2014-03-20 Jakub Jelinek <jakub@redhat.com> - - PR target/60568 - * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT - into CONST, put pic register as first operand of PLUS. Use - gen_const_mem for both 32-bit and 64-bit PIC got loads. - -2014-03-20 Eric Botcazou <ebotcazou@adacore.com> - - * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work - around for store forwarding issue in the FPU on the UT699. - * config/sparc/sparc.md (in_branch_delay): Return false for single FP - loads and operations if -mfix-ut699 is specified. - (divtf3_hq): Tweak attribute. - (sqrttf2_hq): Likewise. - -2014-03-18 Kai Tietz <ktietz@redhat.com> - - PR rtl-optimization/56356 - * sdbout.c (sdbout_parms): Verify that parms' - incoming argument is valid. - (sdbout_reg_parms): Likewise. - -2014-03-18 Eric Botcazou <ebotcazou@adacore.com> - - * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use - proper constant for the store mode. - -2014-03-17 Mikael Pettersson <mikpelinux@gmail.com> - Committed by Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline: - - 2013-06-20 Joern Rennecke <joern.rennecke@embecosm.com> - - PR rtl-optimization/57425 - PR rtl-optimization/57569 - * alias.c (write_dependence_p): Remove parameters mem_mode and - canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized. - Changed all callers. - (canon_anti_dependence): Get comments and semantics in sync. - Add parameter mem_canonicalized. Changed all callers. - * rtl.h (canon_anti_dependence): Update prototype. - - 2013-06-16 Joern Rennecke <joern.rennecke@embecosm.com> - - PR rtl-optimization/57425 - PR rtl-optimization/57569 - * alias.c (write_dependence_p): Add new parameters mem_mode, - canon_mem_addr and mem_canonicalized. Change type of writep to bool. - Changed all callers. - (canon_anti_dependence): New function. - * cse.c (check_dependence): Use canon_anti_dependence. - * cselib.c (cselib_invalidate_mem): Likewise. - * rtl.h (canon_anti_dependence): Declare. - -2014-03-17 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2014-03-11 Richard Biener <rguenther@suse.de> - - PR tree-optimization/60429 - PR tree-optimization/60485 - * tree-ssa-structalias.c (set_union_with_increment): Properly - take into account all fields that overlap the shifted vars. - (do_sd_constraint): Likewise. - (do_ds_constraint): Likewise. - (get_constraint_for_ptr_offset): Likewise. - -2014-03-15 Eric Botcazou <ebotcazou@adacore.com> - - * config/sparc/sparc-protos.h (tls_call_delay): Delete. - (eligible_for_call_delay): New prototype. - * config/sparc/sparc.c (tls_call_delay): Rename into... - (eligible_for_call_delay): ...this. Return false if the instruction - cannot be put in the delay slot of a branch. - (eligible_for_restore_insn): Simplify. - (eligible_for_return_delay): Return false if the instruction cannot be - put in the delay slot of a branch and simplify. - (eligible_for_sibcall_delay): Return false if the instruction cannot be - put in the delay slot of a branch. - * config/sparc/sparc.md (fix_ut699): New attribute. - (tls_call_delay): Delete. - (in_call_delay): Reimplement. - (eligible_for_sibcall_delay): Rename into... - (in_sibcall_delay): ...this. - (eligible_for_return_delay): Rename into... - (in_return_delay): ...this. - (in_branch_delay): Reimplement. - (in_uncond_branch_delay): Delete. - (in_annul_branch_delay): Delete. - -2014-03-14 Georg-Johann Lay <avr@gjlay.de> - - Backport from 2014-03-14 trunk r208562. - - PR target/59396 - * config/avr/avr.c (avr_set_current_function): Pass function name - through default_strip_name_encoding before sanity checking instead - of skipping the first char of the assembler name. - -2014-03-13 Georg-Johann Lay <avr@gjlay.de> - - Backport from 2014-03-13 trunk r208532. - - PR target/60486 - * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in - calls of avr_out_plus_1. - -2014-03-13 Joey Ye <joey.ye@arm.com> - - Backport from mainline - 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com> - - PR tree-optimization/60454 - * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection. - -2014-03-06 Matthias Klose <doko@ubuntu.com> - - * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if - MULTILIB_OSDIRNAMES is not defined. - -2014-03-06 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/60276 - * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Avoid - a -Wsign-compare warning. - - * Makefile.in (tree-ssa-uninit.o): Depend on $(PARAMS_H). - - Backport from mainline - 2014-02-21 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56490 - * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param. - * tree-ssa-uninit.c: Include params.h. - (compute_control_dep_chain): Add num_calls argument, return false - if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass - num_calls to recursive call. - (find_predicates): Change dep_chain into normal array, add num_calls - variable and adjust compute_control_dep_chain caller. - (find_def_preds): Likewise. - - 2014-02-13 Jakub Jelinek <jakub@redhat.com> - - PR target/43546 - * expr.c (compress_float_constant): If x is a hard register, - extend into a pseudo and then move to x. - - 2014-02-11 Richard Henderson <rth@redhat.com> - Jakub Jelinek <jakub@redhat.com> - - PR debug/59776 - * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR - around drhs if type conversion to lacc->type is not useless. - - 2014-02-08 Jakub Jelinek <jakub@redhat.com> - - PR ipa/60026 - * ipa-cp.c (determine_versionability): Fail at -O0 - or __attribute__((optimize (0))) or -fno-ipa-cp functions. - * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly. - - 2014-02-06 Jakub Jelinek <jakub@redhat.com> - - PR target/60062 - * tree.h (opts_for_fn): New inline function. - (opt_for_fn): Define. - * config/i386/i386.c (ix86_function_regparm): Use - opt_for_fn (decl, optimize) instead of optimize. - - 2014-02-05 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/57499 - * tree-eh.c (cleanup_empty_eh): Bail out on totally empty - bb with no successors. - -2014-03-04 Richard Biener <rguenther@suse.de> - - PR tree-optimization/60382 - * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider - dead PHIs a reduction. - -2014-02-25 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2014-02-21 Richard Biener <rguenther@suse.de> - - PR tree-optimization/60276 - * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field. - (STMT_VINFO_MIN_NEG_DIST): New macro. - * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record - STMT_VINFO_MIN_NEG_DIST. - * tree-vect-stmts.c (vectorizable_load): Verify if assumptions - made for negative dependence distances still hold. - -2014-02-25 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2014-02-21 Richard Biener <rguenther@suse.de> - - PR middle-end/60291 - * tree-ssa-live.c (mark_all_vars_used_1): Do not walk - DECL_INITIAL for globals not in the current function context. - - 2014-02-20 Richard Biener <rguenther@suse.de> - - PR middle-end/60221 - * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH - regions at -O0. - - 2014-02-14 Richard Biener <rguenther@suse.de> - - PR tree-optimization/60183 - * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating - loads. - (tree_ssa_phiprop): Calculate and free post-dominators. - -2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - PR target/55426 - * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit - conversions. - -2014-02-24 John David Anglin <danglin@gcc.gnu.org> - - * config/pa/pa.c (pa_output_move_double): Don't valididate when - adjusting offsetable addresses. - -2014-02-23 David Holsgrove <david.holsgrove@xilinx.com> - - * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg names - -2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com> - - * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED - definition. - -2014-02-23 David Holsgrove <david.holsgrove@xilinx.com> - - * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk - and define TARGET_ASM_OUTPUT_MI_THUNK and - TARGET_ASM_CAN_OUTPUT_MI_THUNK. - -2014-02-23 David Holsgrove <david.holsgrove@xilinx.com> - - * config/microblaze/predicates.md: Add cmp_op predicate. - * config/microblaze/microblaze.md: Add branch_compare instruction - which uses cmp_op predicate and emits cmp insn before branch. - * config/microblaze/microblaze.c (microblaze_emit_compare): Rename - to microblaze_expand_conditional_branch and consolidate logic. - (microblaze_expand_conditional_branch): emit branch_compare - insn instead of handling cmp op separate from branch insn. - -2014-02-21 Martin Jambor <mjambor@suse.cz> - - PR ipa/55260 - * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct - info when checking whether lattices are bottom. - -2014-02-21 Jakub Jelinek <jakub@redhat.com> - - * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode - mode for mask of V8SFmode permutation. - -2014-02-20 Richard Henderson <rth@redhat.com> - - PR c++/60272 - * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize - on failure the store back into EXPECT. Always make a new pseudo for - OLDVAL. - -2014-02-20 Jakub Jelinek <jakub@redhat.com> - - PR target/57896 - * config/i386/i386.c (expand_vec_perm_interleave2): Don't call - gen_reg_rtx if d->testing_p. - (expand_vec_perm_pshufb2, expand_vec_perm_even_odd_1, - expand_vec_perm_broadcast_1): Return early if d->testing_p and - we will certainly return true. - -2014-02-20 Richard Biener <rguenther@suse.de> - - * tree-cfg.c (replace_uses_by): Mark altered BBs before - doing the substitution. - -2014-02-19 H.J. Lu <hongjiu.lu@intel.com> - - Backport from mainline - 2014-02-19 H.J. Lu <hongjiu.lu@intel.com> - - PR target/60207 - * config/i386/i386.c (construct_container): Remove TFmode check - for X86_64_INTEGER_CLASS. - -2014-02-19 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2014-02-19 Uros Bizjak <ubizjak@gmail.com> - - PR target/59794 - * config/i386/i386.c (type_natural_mode): Warn for ABI changes - only when -Wpsabi is enabled. - -2014-02-19 Terry Guo <terry.guo@arm.com> - - Backport from mainline - 2014-02-08 Terry Guo <terry.guo@arm.com> - - * doc/invoke.texi: Document ARM -march=armv7e-m. - -2014-02-18 Kai Tietz <ktietz@redhat.com> - - Backport from mainline - 2014-02-18 Kai Tietz <ktietz@redhat.com> - - PR target/60193 - * config/i386/i386.c (ix86_expand_prologue): Use - rax register as displacement for restoring %r10, %rax. - Additional fix wrong offset for restoring both-registers. - -2014-02-18 Eric Botcazou <ebotcazou@adacore.com> - - * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous - assertion with conditional return. - -2014-02-18 Jakub Jelinek <jakub@redhat.com> - Uros Bizjak <ubizjak@gmail.com> - - PR driver/60233 - * config/i386/driver-i386.c (host_detect_local_cpu): If - YMM state is not saved by the OS, also clear has_f16c. Move - CPUID 0x80000001 handling before YMM state saving checking. - -2014-02-14 Roland McGrath <mcgrathr@google.com> - - * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic. - * configure: Regenerated. - * config.in: Regenerated. - * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic - instead of ASM_SHORT. - -2014-02-13 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2014-02-13 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in - operands[2], not operands[3]. - -2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com> - - * config/s390/s390.c (s390_asm_output_function_label): Fix crash - caused by bad second argument to warning_at() with -mhotpatch and - nested functions (e.g. with gfortran). - -2014-02-12 H.J. Lu <hongjiu.lu@intel.com> - - Backport from mainline - 2014-02-12 H.J. Lu <hongjiu.lu@intel.com> - Uros Bizjak <ubizjak@gmail.com> - - PR target/60151 - * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler. - -2014-02-12 Eric Botcazou <ebotcazou@adacore.com> - - PR rtl-optimization/60116 - * combine.c (try_combine): Also remove dangling REG_DEAD notes on the - other_insn once the combination has been validated. - -2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com> - - * config/microblaze/microblaze.md: Add movsi4_rev insn pattern. - * config/microblaze/predicates.md: Add reg_or_mem_operand predicate. - -2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com> - - * config/microblaze/microblaze.c: Extend mcpu version format - -2014-02-10 David Holsgrove <david.holsgrove@xilinx.com> - - * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE. - -2014-02-10 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2014-01-30 Richard Biener <rguenther@suse.de> - - PR tree-optimization/59903 - * tree-vect-loop.c (vect_transform_loop): Guard multiple-types - check properly. - - 2014-02-10 Richard Biener <rguenther@suse.de> - - PR tree-optimization/60115 - * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and - MEM_REF handling. Properly verify that the accesses are not - out of the objects bound. - -2014-02-05 James Greenhalgh <james.greenhalgh@arm.com> - - Backport from mainline. - 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com> - - PR target/59718 - * doc/invoke.texi (-march): Clarify documentation for ARM. - (-mtune): Likewise. - (-mcpu): Likewise. - -2014-02-04 John David Anglin <danglin@gcc.gnu.org> - - PR target/59777 - * config/pa/pa.c (legitimize_tls_address): Return original address - if not passed a SYMBOL_REF rtx. - (hppa_legitimize_address): Call legitimize_tls_address for all TLS - addresses. - (pa_emit_move_sequence): Simplify TLS source operands. - (pa_legitimate_constant_p): Reject all TLS constants. - * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment. - (CONSTANT_ADDRESS_P): Reject TLS CONST addresses. - -2014-02-04 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2014-02-02 Uros Bizjak <ubizjak@gmail.com> - - PR target/60017 - * config/i386/i386.c (classify_argument): Fix handling of bit_offset - when calculating size of integer atomic types. - -2014-02-02 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2014-01-30 Jakub Jelinek <jakub@redhat.com> - - * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning. - -2014-01-31 Richard Henderson <rth@redhat.com> - - PR middle-end/60004 - * tree-eh.c (lower_try_finally_switch): Delay lowering finally block - until after else_eh is processed. - -2014-01-30 David Holsgrove <david.holsgrove@xilinx.com> - - Backport from mainline - * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace - comparison_operator with ordered_comparison_operator. - -2014-01-25 Walter Lee <walt@tilera.com> - - Backport from mainline - 2014-01-25 Walter Lee <walt@tilera.com> - - * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and - avoid clobbering a live register. - -2014-01-25 Walter Lee <walt@tilera.com> - - Backport from mainline - 2014-01-25 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins): - Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}. - * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins): - Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}. - -2014-01-25 Walter Lee <walt@tilera.com> - - Backport from mainline - 2014-01-25 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier - insns before bundling. - * config/tilegx/tilegx.md (tile_network_barrier): Update comment. - -2014-01-25 Walter Lee <walt@tilera.com> - - Backport from mainline - 2014-01-25 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx.c (tilegx_expand_builtin): Set - PREFETCH_SCHEDULE_BARRIER_P to true for prefetches. - * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto. - -2014-01-25 Walter Lee <walt@tilera.com> - - Backport from mainline - 2014-01-25 Walter Lee <walt@tilera.com> - - * config/tilepro/tilepro.md (ctzdi2): Use register_operand - predicate. - (clzdi2): Ditto. - (ffsdi2): Ditto. - -2014-01-25 Walter Lee <walt@tilera.com> - - Backport from mainline - 2014-01-25 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New. - (TARGET_EXPAND_TO_RTL_HOOK): Define. - -2014-01-24 H.J. Lu <hongjiu.lu@intel.com> - - Backport from mainline - 2014-01-23 H.J. Lu <hongjiu.lu@intel.com> - - PR target/59929 - * config/i386/i386.md (pushsf splitter): Get stack adjustment - from push operand if code of push isn't PRE_DEC. - -2014-01-23 David Holsgrove <david.holsgrove@xilinx.com> - - Backport from mainline. - * config/microblaze/microblaze.md: Add trap insn and attribute - -2014-01-23 Marek Polacek <polacek@redhat.com> - - Backport from mainline - 2013-10-21 Marek Polacek <polacek@redhat.com> - - PR middle-end/58809 - * fold-const.c (fold_range_test): Return 0 if the type is not - an integral type. - -2014-01-22 David Holsgrove <david.holsgrove@xilinx.com> - - * config/microblaze/microblaze.md: Correct bswaphi2 insn. - -2014-01-22 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2014-01-20 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false - for SImode_address_operand operands, having only a REG argument. - - 2014-01-20 Jakub Jelinek <jakub@redhat.com> - - PR target/59880 - * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false - if operands[1] is a REG or ZERO_EXTEND of a REG. - - 2014-01-18 Uros Bizjak <ubizjak@gmail.com> - H.J. Lu <hongjiu.lu@intel.com> - - PR target/59379 - * config/i386/i386.md (*lea<mode>): Zero-extend return register - to DImode for zero-extended addresses. - -2014-01-21 Andrew Pinski <apinski@cavium.com> - Steve Ellcey <sellcey@mips.com> - - PR target/59462 - * config/mips/mips.c (mips_print_operand): Check operand mode instead - of operator mode. - -2014-01-21 Andrey Belevantsev <abel@ispras.ru> - - Backport from mainline - 2013-12-23 Andrey Belevantsev <abel@ispras.ru> - - PR rtl-optimization/57422 - * sel-sched.c (mark_unavailable_hard_regs): Fix typo when calling - add_to_hard_reg_set. - -2014-01-20 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/59860 - * tree.h (fold_builtin_strcat): New prototype. - * builtins.c (fold_builtin_strcat): No longer static. Add len - argument, if non-NULL, don't call c_strlen. Optimize - directly into __builtin_memcpy instead of __builtin_strcpy. - (fold_builtin_2): Adjust fold_builtin_strcat caller. - * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT. - -2014-01-20 Richard Biener <rguenther@suse.de> - - PR middle-end/59860 - * builtins.c (fold_builtin_strcat): Remove case better handled - by tree-ssa-strlen.c. - -2014-01-19 John David Anglin <danglin@gcc.gnu.org> - - * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of - long non-pic millicode calls. - -2014-01-17 John David Anglin <danglin@gcc.gnu.org> - - * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short - call to $$dyncall when TARGET_LONG_CALLS is true. - -2014-01-17 H.J. Lu <hongjiu.lu@intel.com> - - Backport from mainline - 2014-01-14 H.J. Lu <hongjiu.lu@intel.com> - - PR target/59794 - * config/i386/i386.c (type_natural_mode): Add a bool parameter - to indicate if type is used for function return value. Warn - ABI change if the vector mode isn't available for function - return value. - (ix86_function_arg_advance): Pass false to type_natural_mode. - (ix86_function_arg): Likewise. - (ix86_gimplify_va_arg): Likewise. - (function_arg_32): Don't warn ABI change. - (ix86_function_value): Pass true to type_natural_mode. - (ix86_return_in_memory): Likewise. - (ix86_struct_value_rtx): Removed. - (TARGET_STRUCT_VALUE_RTX): Likewise. - -2014-01-17 Charles Baylis <charles.baylis@linaro.org> - - Backport from mainline - 2013-12-19 Charles Baylis <charles.baylis@linaro.org> - - PR target/59142 - * config/arm/arm-ldmstm.ml: Use low_register_operand for Thumb - patterns. - * config/arm/ldmstm.md: Regenerate. - - 2013-12-19 Charles Baylis <charles.baylis@linaro.org> - - PR target/59142 - * config/arm/predicates.md (arm_hard_general_register_operand): - New predicate. - (arm_hard_register_operand): Remove. - * config/arm/arm-ldmstm.ml: Use arm_hard_general_register_operand - for all patterns. - * config/arm/ldmstm.md: Regenerate. - - 2013-12-19 Charles Baylis <charles.baylis@linaro.org> - - PR target/59142 - * config/arm/predicates.md (vfp_hard_register_operand): New predicate. - * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use - vfp_hard_register_operand. - -2014-01-17 Kugan Vivekanandarajah <kuganv@linaro.org> - - Backport from mainline - 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org> - Kugan Vivekanandarajah <kuganv@linaro.org> - - PR target/59695 - * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect - truncation. - -2014-01-17 Terry Guo <terry.guo@arm.com> - - PR target/59826 - * config/arm/arm.md (prefetch): Set insn type attribute to load1. - -2014-01-16 Jakub Jelinek <jakub@redhat.com> - - PR target/59839 - * config/i386/i386.c (ix86_expand_builtin): If target doesn't - satisfy operand 0 predicate for gathers, use a new pseudo as - subtarget. - -2014-01-16 Richard Henderson <rth@redhat.com> - - PR debug/54694 - * reginfo.c (global_regs_decl): Globalize. - * rtl.h (global_regs_decl): Declare. - * ira.c (do_reload): Diagnose frame_pointer_needed and it - reserved via global_regs. - -2014-01-16 Peter Bergner <bergner@vnet.ibm.com> - - Backport from mainline - 2014-01-15 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.c (ix86_hard_regno_mode_ok): Use - VALID_AVX256_REG_OR_OI_MODE. - - 2013-09-05 Peter Bergner <bergner@vnet.ibm.com> - - PR target/58139 - * reginfo.c (choose_hard_reg_mode): Scan through all mode classes - looking for widest mode. - -2014-01-16 Marek Polacek <polacek@redhat.com> - - Backported from mainline - 2014-01-16 Marek Polacek <polacek@redhat.com> - - PR middle-end/59827 - * gimple-low.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if - it is error_mark_node. - -2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - PR target/59803 - * config/s390/s390.c (s390_preferred_reload_class): Don't return - ADDR_REGS for invalid symrefs in non-PIC code. - -2014-01-14 Uros Bizjak <ubizjak@gmail.com> - - Revert: - 2014-01-08 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.c (ix86_data_alignment): Calculate max_align - from prefetch_block tune setting. - -2014-01-13 Jakub Jelinek <jakub@redhat.com> - - Backported from mainline - 2014-01-10 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/59745 - * tree-predcom.c (tree_predictive_commoning_loop): Call - free_affine_expand_cache if giving up because components is NULL. - -2014-01-10 Yufeng Zhang <yufeng.zhang@arm.com> - - * config/arm/arm.c (arm_expand_neon_args): Call expand_expr - with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned - rtx is const0_rtx or not. - -2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC - extraction in good case. - -2014-01-10 Huacai Chen <chenhc@lemote.com> - - * config/mips/driver-native.c (host_detect_local_cpu): Handle new - kernel strings for Loongson-2E/2F/3A. - -2014-01-10 Richard Biener <rguenther@suse.de> - - PR tree-optimization/59715 - * tree-flow.h (split_critical_edges): Declare. - * tree-cfg.c (split_critical_edges): Export. - * tree-ssa-sink.c (execute_sink_code): Split critical edges. - -2014-01-09 Richard Sandiford <rdsandiford@googlemail.com> - - * config/mips/mips.h (ISA_HAS_WSBH): Define. - * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New - constants. - (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns. - -2014-01-09 Richard Sandiford <rdsandiford@googlemail.com> - - PR rtl-optimization/59137 - * reorg.c (steal_delay_list_from_target): Call update_block for - elided insns. - (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise. - -2014-01-09 Richard Sandiford <rdsandiford@googlemail.com> - - Revert: - 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com> - - * config/mips/mips.c (mips_truncated_op_cost): New function. - (mips_rtx_costs): Adjust test for BADDU. - * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands. - - 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com> - - * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into... - (*baddu_si): ...this new pattern. - -2014-01-09 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-11-18 Richard Biener <rguenther@suse.de> - - PR tree-optimization/59125 - PR tree-optimization/54570 - * tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining - is not complete do not treat component-references with offset zero - but different fields as equal. - * tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h. - (compute_object_sizes): Apply TLC. Propagate the constant - results into all uses and fold their stmts. - * passes.def (pass_all_optimizations): Move pass_object_sizes - after the first pass_forwprop and before pass_fre. - - 2013-12-03 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/59362 - * tree-object-size.c (object_sizes): Change into array of - vec<unsigned HOST_WIDE_INT>. - (compute_builtin_object_size): Check computed bitmap for - non-NULL instead of object_sizes. Call safe_grow on object_sizes - vector if new SSA_NAMEs appeared. - (init_object_sizes): Check computed bitmap for non-NULL. - Call safe_grow on object_sizes elements instead of initializing - it with XNEWVEC. - (fini_object_sizes): Call release on object_sizes elements, don't - set it to NULL. - -2014-01-09 Richard Earnshaw <rearnsha@arm.com> - - PR rtl-optimization/54300 - * regcprop.c (copyprop_hardreg_forward_1): Ensure any unused - outputs in a single-set are killed from the value chains. - -2014-01-09 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/59724 - * ifcvt.c (cond_exec_process_if_block): Don't call - flow_find_head_matching_sequence with 0 longest_match. - * cfgcleanup.c (flow_find_head_matching_sequence): Count even - non-active insns if !stop_after. - (try_head_merge_bb): Revert 2014-01-07 changes. - -2014-01-09 Hans-Peter Nilsson <hp@axis.com> - - Backport from mainline - 2013-12-23 Hans-Peter Nilsson <hp@axis.com> - - PR middle-end/59584 - * config/cris/predicates.md (cris_nonsp_register_operand): - New define_predicate. - * config/cris/cris.md: Replace register_operand with - cris_nonsp_register_operand for destinations in all - define_splits where a register is set more than once. - -2014-01-08 H.J. Lu <hongjiu.lu@intel.com> - - Backport from mainline - 2013-12-25 H.J. Lu <hongjiu.lu@intel.com> - - PR target/59587 - * config/i386/i386.c (struct ptt): Add a field for processor name. - (processor_target_table): Sync with processor_type. Add - processor names. - (cpu_names): Removed. - (ix86_option_override_internal): Default x_ix86_tune_string - to processor_target_table[TARGET_CPU_DEFAULT].name. - (ix86_function_specific_print): Assert arch and tune < - PROCESSOR_max. Use processor_target_table to print arch and - tune names. - * config/i386/i386.h (TARGET_CPU_DEFAULT): Default to - PROCESSOR_GENERIC32. - (target_cpu_default): Removed. - (processor_type): Reordered. - -2014-01-08 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2014-01-05 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.c (ix86_data_alignment): Calculate max_align - from prefetch_block tune setting. - (nocona_cost): Correct size of prefetch block to 64. - -2014-01-08 Martin Jambor <mjambor@suse.cz> - - PR ipa/59610 - * ipa-prop.c (ipa_compute_jump_functions): Bail out if not optimizing. - (parm_preserved_before_stmt_p): Assume modification present when not - optimizing. - -2014-01-07 John David Anglin <danglin@gcc.gnu.org> - - PR target/59652 - * config/pa/pa.c (pa_legitimate_address_p): Return false before reload - for 14-bit register offsets when INT14_OK_STRICT is false. - -2014-01-07 Roland Stigge <stigge@antcom.de> - Michael Meissner <meissner@linux.vnet.ibm.com> - - PR 57386/target - * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): - Only check TFmode for SPE constants. Don't check TImode or TDmode. - -2014-01-07 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/58668 - * cfgcleanup.c (flow_find_cross_jump): Don't count - any jumps if dir_p is NULL. Remove p1 variable and make USE/CLOBBER - check consistent with other places. - (flow_find_head_matching_sequence): Don't count USE or CLOBBER insns. - (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence - counting change. - * ifcvt.c (count_bb_insns): Don't count USE or CLOBBER insns. - -2014-01-07 Mike Stump <mikestump@comcast.net> - Jakub Jelinek <jakub@redhat.com> - - PR pch/59436 - * tree.h (struct tree_optimization_option): Change optabs - type from unsigned char * to void *. - * optabs.c (init_tree_optimization_optabs): Adjust - TREE_OPTIMIZATION_OPTABS initialization. - -2014-01-07 Jakub Jelinek <jakub@redhat.com> - - Backported from mainline - 2013-12-16 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/58956 - PR middle-end/59470 - * gimple.h (walk_stmt_load_store_addr_fn): New typedef. - (walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Use it - for callback params. - * gimple.c (walk_stmt_load_store_ops): Likewise. - (walk_stmt_load_store_addr_ops): Likewise. Adjust all callback - calls to supply the gimple operand containing the base tree - as an extra argument. - * tree-ssa-ter.c (find_ssaname, find_ssaname_in_store): New helper - functions. - (find_replaceable_in_bb): For calls or GIMPLE_ASM, only set - same_root_var if USE is used somewhere in the stores of the stmt. - * ipa-prop.c (visit_ref_for_mod_analysis): Remove name of the stmt - argument and ATTRIBUTE_UNUSED, add another unnamed tree argument. - * ipa-pure-const.c (check_load, check_store, check_ipa_load, - check_ipa_store): Likewise. - * gimple.c (gimple_ior_addresses_taken_1): Likewise. - * ipa-split.c (test_nonssa_use, mark_nonssa_use): Likewise. - (verify_non_ssa_vars, visit_bb): Adjust their callers. - * cfgexpand.c (add_scope_conflicts_1): Use - walk_stmt_load_store_addr_fn type for visit variable. - (visit_op, visit_conflict): Remove name of the stmt - argument and ATTRIBUTE_UNUSED, add another unnamed tree argument. - * tree-sra.c (asm_visit_addr): Likewise. Remove name of the data - argument and ATTRIBUTE_UNUSED. - * cgraphbuild.c (mark_address, mark_load, mark_store): Add another - unnamed tree argument. - -2014-01-03 Andreas Schwab <schwab@linux-m68k.org> - - * config/m68k/m68k.c (handle_move_double): Handle pushes with - overlapping registers also for registers other than the stack - pointer. - -2014-01-03 Jakub Jelinek <jakub@redhat.com> - - PR target/59625 - * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider - asm goto as jump. - -2014-01-01 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/59647 - * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode - new_rtx into UNSIGNED_FLOAT rtxes. - -2013-12-28 Eric Botcazou <ebotcazou@adacore.com> - - * doc/invoke.texi (output file options): Document -fada-spec-parent. - -2013-12-26 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/driver-i386.c (decode_caches_intel): Add missing entries. - -2013-12-20 Jakub Jelinek <jakub@redhat.com> - - PR c++/59255 - Backported from mainline - 2013-08-19 Dehao Chen <dehao@google.com> - - * value-prof.c (gimple_ic): Fix the bug of adding EH edge. - -2013-12-19 James Greenhalgh <james.greenhalgh@arm.com> - - Backport from Mainline. - 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to... - (cmgeu): ...This. - (cmhi): Rename to... - (cmgtu): ...This. - * config/aarch64/aarch64-simd.md - (simd_mode): Add SF. - (aarch64_vcond_internal): Use new names for unsigned comparison insns. - (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs. - * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to... - (cstore<mode>_neg): ...This. - * config/aarch64/iterators.md - (VALLF): new. - (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>. - (COMPARISONS): New. - (UCOMPARISONS): Likewise. - (optab): Add missing comparisons. - (n_optab): New. - (cmp_1): Likewise. - (cmp_2): Likewise. - (CMP): Likewise. - (cmp): Remove. - (VCMP_S): Likewise. - (VCMP_U): Likewise. - (V_cmp_result): Add DF, SF modes. - (v_cmp_result): Likewise. - (v): Likewise. - (vmtype): Likewise. - * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New. - - Partial Backport from mainline. - 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/arm_neon.h - (vc<eq, lt, le, gt, ge, tst><qsd>_<u><8,16,32,64>): Remap - to builtins or C as appropriate. - -2013-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com> - Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - Backport from mainline - 2013-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com> - * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New - constant - (s390_hotpatch_trampoline_halfwords_max): New constant - (s390_hotpatch_trampoline_halfwords): New static variable - (get_hotpatch_attribute): New function - (s390_handle_hotpatch_attribute): New function - (s390_attribute_table): New target specific attribute table to implement - the hotpatch attribute - (s390_option_override): Parse hotpatch options - (s390_function_num_hotpatch_trampoline_halfwords): New function - (s390_can_inline_p): Implement target hook to - suppress hotpatching for explicitly inlined functions - (s390_asm_output_function_label): Generate hotpatch prologue - (TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table - (TARGET_CAN_INLINE_P): Define to implement target hook - * config/s390/s390.opt (mhotpatch): New options -mhotpatch, -mhotpatch= - * config/s390/s390-protos.h (s390_asm_output_function_label): Add - prototype - * config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific - function label generation for hotpatching - (FUNCTION_BOUNDARY): Align functions to eight bytes - * doc/extend.texi: Document hotpatch attribute - * doc/invoke.texi: Document -mhotpatch option - -2013-12-18 Eric Botcazou <ebotcazou@adacore.com> - - * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Fix thinko. - -2013-12-12 Vladimir Makarov <vmakarov@redhat.com> - - PR middle-end/59470 - * lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo - values if necessary. - -2013-12-12 Jakub Jelinek <jakub@redhat.com> - - PR libgomp/59467 - * gimplify.c (omp_check_private): Add copyprivate argument, if it - is true, don't check omp_privatize_by_reference. - (gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify - decl is private in outer context. Adjust omp_check_private caller. - -2013-12-10 Eric Botcazou <ebotcazou@adacore.com> - - PR rtl-optimization/58295 - * simplify-rtx.c (simplify_truncation): Restrict the distribution for - WORD_REGISTER_OPERATIONS targets. - -2013-12-10 Kai Tietz <ktietz@redhat.com> - - PR target/56807 - * config/i386/i386.c (ix86_expand_prologue): Address saved - registers stack-relative, not via frame-pointer. - -2013-12-09 Alan Modra <amodra@gmail.com> - - Apply from mainline - 2013-12-05 Alan Modra <amodra@gmail.com> - * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for - build != host. - <recursive call for build != host>: Clear GMPINC. Don't bother - saving CFLAGS. - * configure: Regenerate. - -2013-12-08 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-12-06 Uros Bizjak <ubizjak@gmail.com> - - PR target/59405 - * config/i386/i386.c (type_natural_mode): Properly handle - size 8 for !TARGET_64BIT. - -2013-12-07 Ralf Corsépius <ralf.corsepius@rtems.org> - - * config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT. - -2013-12-06 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/59388 - * tree-ssa-reassoc.c (update_range_test): If op == range->exp, - gimplify tem after stmt rather than before it. - -2013-12-06 Oleg Endo <olegendo@gcc.gnu.org> - - Backport from mainline - 2013-11-26 Oleg Endo <olegendo@gcc.gnu.org> - - PR target/58314 - PR target/50751 - * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement): - Prefix function names with 'sh_'. Make them non-static. - * config/sh/sh-protos.h (sh_disp_addr_displacement, - sh_max_mov_insn_displacement): Add declarations. - * config/sh/constraints.md (Q): Reject QImode. - (Sdd): Use match_code "mem". - (Snd): Fix erroneous matching of non-memory operands. - * config/sh/predicates.md (short_displacement_mem_operand): New - predicate. - (general_movsrc_operand): Disallow PC relative QImode loads. - * config/sh/sh.md (*mov<mode>_reg_reg): Remove it. - (*movqi, *movhi): Merge both insns into... - (*mov<mode>): ... this new insn. Replace generic 'm' constraints with - 'Snd' and 'Sdd' constraints. Calculate insn length dynamically based - on the operand types. - -2013-12-06 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-11-29 Richard Biener <rguenther@suse.de> - - PR tree-optimization/59334 - * tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug - in previous commit. - - 2013-11-28 Richard Biener <rguenther@suse.de> - - PR tree-optimization/59330 - * tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify - and fix delayed marking of free calls not necessary. - -2013-12-06 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-11-27 Richard Biener <rguenther@suse.de> - - PR tree-optimization/59288 - * tree-vect-loop.c (get_initial_def_for_induction): Do not - re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART. - - 2013-11-19 Richard Biener <rguenther@suse.de> - - PR tree-optimization/59164 - * tree-vect-loop.c (vect_analyze_loop_operations): Adjust - check whether we can create an epilogue loop to reflect the - cases where we create one. - - 2013-09-05 Richard Biener <rguenther@suse.de> - - PR tree-optimization/58137 - * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): - Do not create vectors of pointers. - * tree-vect-loop.c (get_initial_def_for_induction): Use proper - types for the components of the vector initializer. - * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing - allowing pointer vectors with PLUS_EXPR/MINUS_EXPR. - -2013-12-06 Oleg Endo <olegendo@gcc.gnu.org> - - PR target/51244 - PR target/59343 - * config/sh/sh.md (*cbranch_t): Check that there are no labels between - the s1 insn and the testing insn. Remove REG_DEAD note from s1 insn. - -2013-12-05 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-11-19 Richard Biener <rguenther@suse.de> - - PR middle-end/58956 - * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding - loads into stmts that may clobber it. - -2013-12-04 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/58726 - * combine.c (force_to_mode): Fix comment typo. Don't destructively - modify x for ROTATE, ROTATERT and IF_THEN_ELSE. - -2013-12-04 Jakub Jelinek <jakub@redhat.com> - Uros Bizjak <ubizjak@gmail.com> - - PR target/59163 - * config/i386/i386.c (ix86_legitimate_combined_insn): If for - !TARGET_AVX there is misaligned MEM operand with vector mode - and get_attr_ssememalign is 0, return false. - (ix86_expand_special_args_builtin): Add get_pointer_alignment - computed alignment and for non-temporal loads/stores also - at least GET_MODE_ALIGNMENT as MEM_ALIGN. - * config/i386/sse.md - (<sse>_loadu<ssemodesuffix><avxsizesuffix>, - <sse>_storeu<ssemodesuffix><avxsizesuffix>, - <sse2>_loaddqu<avxsizesuffix>, - <sse2>_storedqu<avxsizesuffix>, <sse3>_lddqu<avxsizesuffix>, - sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps, - sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps, - *vec_interleave_highv2df, *vec_interleave_lowv2df, - *vec_extractv2df_1_sse, sse2_loadhpd, sse2_loadlpd, sse2_movsd, - sse4_1_<code>v8qiv8hi2, sse4_1_<code>v4qiv4si2, - sse4_1_<code>v4hiv4si2, sse4_1_<code>v2qiv2di2, - sse4_1_<code>v2hiv2di2, sse4_1_<code>v2siv2di2, sse4_2_pcmpestr, - *sse4_2_pcmpestr_unaligned, sse4_2_pcmpestri, sse4_2_pcmpestrm, - sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned, - sse4_2_pcmpistri, sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add - ssememalign attribute. - * config/i386/i386.md (ssememalign): New define_attr. - -2013-12-03 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/59011 - * gimplify.c (nonlocal_vla_vars): New variable. - (gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into - nonlocal_vla_vars chain. - (gimplify_body): Call declare_vars on nonlocal_vla_vars chain - if outer_bind has DECL_INITIAL (current_function_decl) block. - - PR target/58864 - * optabs.c (emit_conditional_move): Save and restore - pending_stack_adjust and stack_pointer_delta if cmove can't be used. - -2013-12-02 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/59358 - * tree-vrp.c (union_ranges): To check for the partially - overlapping ranges or adjacent ranges, also compare *vr0max - with vr1max. - -2013-12-02 Richard Biener <rguenther@suse.de> - - PR tree-optimization/59139 - * tree-ssa-loop-niter.c (chain_of_csts_start): Properly match - code in get_val_for. - (get_val_for): Use gcc_checking_asserts. - -2013-11-27 Tom de Vries <tom@codesourcery.com> - Marc Glisse <marc.glisse@inria.fr> - - PR middle-end/59037 - * fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds - BIT_FIELD_REF. - * gimplify.c (gimple_fold_indirect_ref): Same. - -2013-12-01 Eric Botcazou <ebotcazou@adacore.com> - - * config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an - identifier node. - -2013-12-01 Bernd Edlinger <bernd.edlinger@hotmail.de> - - * expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument. - -2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - Backport from mainline - 2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - * config/arm/iterators.md (vrint_conds): New int attribute. - * config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute. - (smax<mode>3): Likewise. - (smin<mode>3): Likewise. - -2013-11-28 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-11-27 Uros Bizjak <ubizjak@gmail.com> - Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> - - PR target/56788 - * gcc.target/i386/xop-frczX.c: New test. - -2013-11-28 Terry Guo <terry.guo@arm.com> - - Backport mainline r205391 - 2013-11-26 Terry Guo <terry.guo@arm.com> - - * config/arm/arm.c (require_pic_register): Handle high pic base - register for thumb-1. - (arm_load_pic_register): Also initialize high pic base register. - * doc/invoke.texi: Update documentation for option -mpic-register. - -2013-11-27 Jakub Jelinek <jakub@redhat.com> - - Backported from mainline - 2013-11-26 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/59014 - * tree-vrp.c (register_edge_assert_for_1): Don't look - through conversions from non-integral types or through - narrowing conversions. - -2013-11-27 Eric Botcazou <ebotcazou@adacore.com> - - PR middle-end/59138 - * expr.c (emit_group_store): Don't write past the end of the structure. - (store_bit_field): Fix formatting. - -2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> - - Backport from mainline - 2013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de> - - * config/sparc/t-rtems: Add leon3 multilibs. - -2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> - - Backport from mainline - 2013-08-09 Eric Botcazou <ebotcazou@adacore.com> - - * configure.ac: Add GAS check for LEON instructions on SPARC. - * configure: Regenerate. - * config.in: Likewise. - * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the - sparc*-*-* block. - * config/sparc/sparc.opt (LEON, LEON3): New masks. - * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG - for LEON or LEON3. - (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3. - (AS_LEON_FLAG): New macro. - * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon - and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined. - Deal with LEON and LEON3 for the memory model. - * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3 - (atomic_compare_and_swap<mode>_1): Likewise. - (*atomic_compare_and_swap<mode>_1): Likewise. - -2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> - - Backport from mainline - 2013-07-23 Eric Botcazou <ebotcazou@adacore.com> - - * doc/invoke.texi (SPARC Options): Document new leon3 processor value. - -2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> - - Backport from mainline - 2013-07-22 Eric Botcazou <ebotcazou@adacore.com> - - * config.gcc (sparc*-*-*): Accept leon3 processor. - (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support. - * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry. - * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3. - * config/sparc/sparc.opt (enum processor_type): Add leon3. - (mfix-ut699): Adjust comment. - * config/sparc/sparc.h (TARGET_CPU_leon3): New define. - (CPP_CPU32_DEFAULT_SPEC): Add leon3 support. - (CPP_CPU_SPEC): Likewise. - (ASM_CPU_SPEC): Likewise. - * config/sparc/sparc.c (leon3_cost): New constant. - (sparc_option_override): Add leon3 support. - (mem_ref): New function. - (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled. - (sparc_do_work_around_errata): Look into the instruction in the delay - slot and adjust accordingly. Add fix for the data cache nullify issues - of the UT699. Change insertion position for the NOP. - * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete. - (leon3_load): New reservation. - (leon_store): Bump latency to 2. - (grfpu): New automaton. - (grfpu_alu): New unit. - (grfpu_ds): Likewise. - (leon_fp_alu): Adjust. - (leon_fp_mult): Delete. - (leon_fp_div): Split into leon_fp_divs and leon_fp_divd. - (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd. - * config/sparc/sparc.md (cpu): Add leon3. - * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699. - (swapsi): Likewise. - (atomic_test_and_set): Likewise. - (ldstub): Likewise. - -2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> - - Backport from mainline - 2013-04-10 Steven Bosscher <steven@gcc.gnu.org> - - * config/sparc/sparc.c: Include tree-pass.h. - (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine. - (sparc_reorg): Rename to sparc_do_work_around_errata. Move to - head of file. Change return type. Split off gate function. - (sparc_gate_work_around_errata): New function. - (pass_work_around_errata): New pass definition. - (insert_pass_work_around_errata) New pass insert definition to - insert pass_work_around_errata just after delayed-branch scheduling. - (sparc_option_override): Insert the pass. - * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence. - -2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de> - - Backport from mainline - 2013-05-28 Eric Botcazou <ebotcazou@adacore.com> - - * doc/invoke.texi (SPARC Options): Document -mfix-ut699. - * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the - mode if the instruction isn't available in the original mode. - * config/sparc/sparc.opt (mfix-ut699): New option. - * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699. - (divdf3): Turn into expander. - (divdf3_nofix): New insn. - (divdf3_fix): Likewise. - (divsf3): Disable if -mfix-ut699. - (sqrtdf2): Turn into expander. - (sqrtdf2_nofix): New insn. - (sqrtdf2_fix): Likewise. - (sqrtsf2): Disable if -mfix-ut699. - -2013-11-22 Eric Botcazou <ebotcazou@adacore.com> - - * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR. - -2013-11-21 Zhenqiang Chen <zhenqiang.chen@linaro.org> - - PR bootstrap/57683 - Backport from mainline: r197467 and r198999. - 2013-04-03 Jeff Law <law@redhat.com> - - * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H). - (lra-eliminations.o): Likewise. - - 2013-05-16 Jeff Law <law@redhat.com> - - * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H). - -2013-11-20 Eric Botcazou <ebotcazou@adacore.com> - - PR target/59207 - * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>: - Make sure neg2_ovf is set before being used. - -2013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - Dominik Vogt <vogt@linux.vnet.ibm.com> - - Backport from mainline - * config/s390/s390.c (s390_canonicalize_comparison): Don't fold - int comparisons with an out of range condition code. - (s390_optimize_nonescaping_tx): Skip empty BBs. - Generate the new tbegin RTX when removing the FPR clobbers (with - two SETs). - (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the - result before doing the retry calculations. - (s390_init_builtins): Make tbegin "returns_twice" and tabort - "noreturn". - * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for - the TDB setting part of an tbegin. - ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB. - ("tx_assist"): Set unused argument to an immediate zero instead of - loading zero into a GPR and pass it as argument. - * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin): - Remove inline and related attributes. - (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort) - (__TM_is_illegal, __TM_is_footprint_exceeded) - (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value - check. - -2013-11-19 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-11-18 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of - ix86_address_subreg_operand. Move subreg checks to - ix86_validate_address_register. Move address override check to - ix86_legitimate_address_p. - (ix86_validate_address_register): New function. - (ix86_legitimate_address_p): Call ix86_validate_address_register - to validate base and index registers. Add address override check - from ix86_decompose_address. - (ix86_decompose_address): Remove. - - Backport from mainline - 2013-11-17 Uros Bizjak <ubizjak@gmail.com> - - PR target/59153 - * config/i386/i386.c (ix86_address_subreg_operand): Do not - reject non-integer subregs. - (ix86_decompose_address): Do not reject invalid CONST_INT RTXes. - Move check for invalid x32 constant addresses ... - (ix86_legitimate_address_p): ... here. - -2013-11-19 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-11-07 Richard Biener <rguenther@suse.de> - - * tree-dfa.c (get_ref_base_and_extent): Fix casting. - -2013-11-19 Richard Biener <rguenther@suse.de> - - PR tree-optimization/57517 - * tree-predcom.c (combinable_refs_p): Verify the combination - is always executed when the refs are. - -2013-11-19 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-11-05 Richard Biener <rguenther@suse.de> - - PR middle-end/58941 - * tree-dfa.c (get_ref_base_and_extent): Merge common code - in MEM_REF and TARGET_MEM_REF handling. Make sure to - process trailing array detection before diving into the - view-converted object (and possibly apply some extra offset). - -2013-11-18 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-10-21 Richard Biener <rguenther@suse.de> - - PR tree-optimization/58794 - * fold-const.c (operand_equal_p): Compare FIELD_DECL operand - of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place. - - 2013-10-21 Richard Biener <rguenther@suse.de> - - PR middle-end/58742 - * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C - to (T) X for sign-changing conversions (or no conversion). - - 2013-11-06 Richard Biener <rguenther@suse.de> - - PR tree-optimization/58653 - * tree-predcom.c (ref_at_iteration): Rewrite to generate - a MEM_REF. - (prepare_initializers_chain): Adjust. - - PR tree-optimization/59047 - * tree-predcom.c (ref_at_iteration): Handle bitfield accesses - properly. - - 2013-10-15 Richard Biener <rguenther@suse.de> - - PR tree-optimization/58143 - * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow): - New function. - (rewrite_to_defined_overflow): Likewise. - (move_computations_dom_walker::before_dom): Rewrite stmts - with undefined signed overflow that are not always executed - into unsigned arithmetic. - -2013-11-14 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-11-10 Uros Bizjak <ubizjak@gmail.com> - - * mode-switching.c (optimize_mode_switching): Mark block as - nontransparent, if last_mode at block exit is different from no_mode. - - Backport from mainline - 2013-11-06 Uros Bizjak <ubizjak@gmail.com> - - PR target/59021 - * config/i386/i386.c (ix86_avx_u128_mode_needed): Require - AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers. - (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn - RTXes that return in AVX256 register. - -2013-11-14 Jakub Jelinek <jakub@redhat.com> - Uros Bizjak <ubizjak@gmail.com> - - PR target/59101 - * config/i386/i386.md (*anddi_2): Only allow CCZmode if - operands[2] satisfies_constraint_Z that might have bit 31 set. - -2013-11-12 H.J. Lu <hongjiu.lu@intel.com> - - Backported from mainline - 2013-11-12 H.J. Lu <hongjiu.lu@intel.com> - - PR target/59088 - * config/i386/i386.c (initial_ix86_tune_features): Set - X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and - X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for m_HASWELL. - -2013-11-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> - - Backported from mainline - 2013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> - - PR target/58854 - * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage - -2013-11-11 Jakub Jelinek <jakub@redhat.com> - - Backported from mainline - 2013-11-06 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/58970 - * expr.c (get_bit_range): Handle *offset == NULL_TREE. - (expand_assignment): If *bitpos is negative, set *offset - and adjust *bitpos, so that it is not negative. - - 2013-11-05 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/58997 - * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect - get_iv_value to be in iv->mode rather than iv->extend_mode. - (iv_extend): Likewise. Otherwise, if iv->extend != extend, - use lowpart_subreg on get_iv_value before calling simplify_gen_unary. - * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right - mode. - -2013-11-10 Karlson2k <k2k@narod.ru> - Kai Tietz <ktietz@redhat.com> - - Merged from trunk - PR plugins/52872 - * configure.ac: Adding for exported symbols check - and for rdynamic-check executable-extension. - * configure: Regenerated. - -2013-11-07 H.J. Lu <hongjiu.lu@intel.com> - - PR target/59034 - * config/i386/i386.md (push peepholer/splitter): Use Pmode - with stack_pointer_rtx. - -2013-11-05 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos. - -2013-11-05 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/58984 - * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument, - set *SIZE_P if non-NULL on success. - (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust - callers. - (ipcp_transform_function): Likewise. Punt if size of access - is different from TYPE_SIZE on v->value's type. - -2013-11-03 H.J. Lu <hongjiu.lu@intel.com> - - Backport from mainline - 2013-10-12 H.J. Lu <hongjiu.lu@intel.com> - - PR target/58690 - * config/i386/i386.c (ix86_copy_addr_to_reg): New function. - (ix86_expand_movmem): Replace copy_addr_to_reg with - ix86_copy_addr_to_reg. - (ix86_expand_setmem): Likewise. - -2013-10-29 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com> - - PR rtl-optimization/58079 - * combine.c (combine_simplify_rtx): Avoid using SUBST if - simplify_comparison has widened a comparison with an integer. - -2013-10-29 Martin Jambor <mjambor@suse.cz> - - PR middle-end/58789 - Backport from mainline - 2013-05-09 Martin Jambor <mjambor@suse.cz> - - PR lto/57084 - * gimple-fold.c (canonicalize_constructor_val): Call - cgraph_get_create_real_symbol_node instead of cgraph_get_create_node. - - Backport from mainline - 2013-03-16 Jan Hubicka <jh@suse.cz> - - * cgraph.h (cgraph_get_create_real_symbol_node): Declare. - * cgraph.c (cgraph_get_create_real_symbol_node): New function. - * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead - of cgraph_get_create_node. - * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. - -2013-10-28 Tom de Vries <tom@codesourcery.com> - - * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn. - Don't commit insertions after NOTE_INSN_FUNCTION_BEG. - -2013-10-26 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-10-22 Uros Bizjak <ubizjak@gmail.com> - - PR target/58779 - * config/i386/i386.c (put_condition_code) <case GTU, case LEU>: - Remove CCCmode handling. - <case LTU>: Return 'c' suffix for CCCmode. - <case GEU>: Return 'nc' suffix for CCCmode. - (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks. - * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove. - (*sub<mode>3_cc_overflow): Ditto. - (*subsi3_zext_cc_overflow): Ditto. - -2013-10-26 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-10-19 Uros Bizjak <ubizjak@gmail.com> - - PR target/58792 - * config/i386/i386.c (ix86_function_value_regno): Add DX_REG, - ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG - and SI_REG for 64bit SYSV ABI targets. - -2013-08-25 Richard Henderson <rth@twiddle.net> - - PR rtl/58542 - * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand - instead of create_convert_operand_to. - (maybe_emit_sync_lock_test_and_set): Likewise. - (expand_atomic_compare_and_swap): Likewise. - (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes. - -2013-10-25 Eric Botcazou <ebotcazou@adacore.com> - - PR rtl-optimization/58831 - * alias.c (init_alias_analysis): At the beginning of each iteration, set - the reg_seen[N] bit if static_reg_base_value[N] is non-null. - -2013-10-25 Eric Botcazou <ebotcazou@adacore.com> - - * recog.c (search_ofs): New static variable moved from... - (peep2_find_free_register): ...here. - (peephole2_optimize): Initialize it. - -2013-10-24 David Edelsohn <dje.gcc@gmail.com> - - Backport from mainline - 2013-10-23 David Edelsohn <dje.gcc@gmail.com> - - PR target/58838 - * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add - TARGET_32BIT final condition. - (mulsi3_internal2 and splitter): Same. - -2013-10-23 Tom de Vries <tom@codesourcery.com> - - PR tree-optimization/58805 - * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check. - -2013-10-23 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-06-24 Richard Biener <rguenther@suse.de> - - PR tree-optimization/57488 - * tree-ssa-pre.c (insert): Clear NEW sets before each iteration. - -2013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> - - Backport from mainline - 2013-10-16 Ganesh Gopalasubramanian - <Ganesh.Gopalasubramanian@amd.com> - - * config/i386/i386.c (ix86_option_override_internal): Enable FMA4 - for AMD bdver3. - -2013-10-16 Jakub Jelinek <jakub@redhat.com> - - * BASE-VER: Set to 4.8.3. - * DEV-PHASE: Set to prerelease. - -2013-10-16 Release Manager - - * GCC 4.8.2 released. - -2013-10-12 James Greenhalgh <james.greenhalgh@arm.com> - - Backport from mainline. - 2013-10-12 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/arm_neon.h - (vtbx<1,3>_<psu>8): Fix register constriants. - -2013-10-10 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/58670 - * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument, - if any labels are in FALLTHRU_BB, use a special label emitted - immediately after the asm goto insn rather than label_rtx - of the LABEL_DECL. - (expand_asm_stmt): Adjust caller. - * cfgrtl.c (commit_one_edge_insertion): Force splitting of - edge if the last insn in predecessor is a jump with single successor, - but it isn't simplejump_p. - -2013-10-09 Jakub Jelinek <jakub@redhat.com> - - Backport from mainline - 2013-09-26 Richard Biener <rguenther@suse.de> - - PR tree-optimization/58539 - * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor - the fact that debug statements are not taking part in loop-closed - SSA construction. - -2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * config/s390/s390.c (s390_register_info): Make the call-saved FPR - loop to work also for 31bit ABI. - Save the stack pointer for frame_size > 0. - -2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry") - ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove - constraint letters from expanders. - ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the - retry count to general_operand. - ("tabort"): Give operand 0 a mode. - ("tabort_1"): Add mode and constraint letter for operand 0. - * doc/extend.texi: Fix protoype of __builtin_non_tx_store. - -2013-10-04 Marcus Shawcroft <marcus.shawcroft@arm.com> - - Backport from mainline. - - PR target/58460 - * config/aarch64/aarch64.md (*add_<shift>_<mode>) - (*add_<shift>_si_uxtw,*add_mul_imm_<mode>) - (*sub_<shift>_<mode>) - (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw): - Remove k constraint. - -2013-10-02 John David Anglin <danglin@gcc.gnu.org> - - * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file. - -2013-10-01 Jakub Jelinek <jakub@redhat.com> - Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - PR target/58574 - * config/s390/s390.c (s390_chunkify_start): Handle tablejump_p first, - continue when done, for other jumps look through PARALLEL - unconditionally. - -2013-09-30 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/58564 - * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0 - optimization, punt if sign_bit_p looked through any zero extension. - -2013-09-27 Paulo Matos <pmatos@broadcom.com> - - Backport from mainline. - - PR middle-end/58463 - 2013-03-27 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56716 - * tree-ssa-structalias.c (perform_var_substitution): Adjust - dumping for ref nodes. - -2013-09-27 Paulo Matos <pmatos@broadcom.com> - - Backport from mainline. - - 2013-09-27 Paulo Matos <pmatos@broadcom.com> - PR middle-end/58463 - * gcc.dg/pr58463.c: New test. - -2013-09-23 Eric Botcazou <ebotcazou@adacore.com> - - * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy - assignment statements. - -2013-09-23 Alan Modra <amodra@gmail.com> - - PR target/58330 - * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems. - -2013-09-23 Alan Modra <amodra@gmail.com> - - * config/rs6000/predicates.md (add_cint_operand): New. - (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand. - * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset - using add_cint_operand. - (largetoc_high_plus_aix): Likewise. - * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand. - -2013-09-20 John David Anglin <danglin@gcc.gnu.org> - - PR middle-end/56791 - * config/pa/pa.c (pa_option_override): Disable auto increment and - decrement instructions until reload is completed. - - * config/pa/pa.md: In "scc" insn patterns, change output template to - handle const0_rtx in reg_or_0_operand operands. - -2013-09-19 Jakub Jelinek <jakub@redhat.com> - - * omp-low.c (expand_omp_sections): Always pass len - 1 to - GOMP_sections_start, even if !exit_reachable. - -2013-09-18 Richard Earnshaw <rearnsha@arm.com> - - * arm.c (arm_expand_prologue): Validate architecture supports - LDRD/STRD before accepting tuning preferences. - (arm_expand_epilogue): Likewise. - -2013-09-18 Daniel Morris <danielm@ecoscentric.com> - Paolo Carlini <paolo.carlini@oracle.com> - - PR c++/58458 - * doc/implement-cxx.texi: Fix references to the C++ standards. - -2013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - PR tree-optimization/58088 - * fold-const.c (mask_with_trailing_zeros): New function. - (fold_binary_loc): Make sure we don't recurse infinitely - when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2. - Use mask_with_trailing_zeros where appropriate. - -2013-09-14 John David Anglin <danglin@gcc.gnu.org> - - PR target/58382 - * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC - calls to word_mode. - -2013-09-13 Christian Bruel <christian.bruel@st.com> - - PR target/58314 - * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads. - -2013-09-11 Andi Kleen <ak@linux.intel.com> - - Backport from mainline - * doc/extend.texi: Use __atomic_store_n instead of - __atomic_store in HLE example. - -2013-09-11 Andi Kleen <ak@linux.intel.com> - - Backport from mainline - * doc/extend.texi: Dont use __atomic_clear in HLE - example. Fix typo. - -2013-09-11 Andi Kleen <ak@linux.intel.com> - - Backport from mainline - * doc/extend.texi: Document that __atomic_clear and - __atomic_test_and_set should only be used with bool. - -2013-09-11 Richard Biener <rguenther@suse.de> - - PR middle-end/58377 - * passes.c (init_optimization_passes): Split critical edges - before late uninit warning pass in the -Og pipeline. - -2013-09-11 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/58385 - * fold-const.c (build_range_check): If both low and high are NULL, - use omit_one_operand_loc to preserve exp side-effects. - -2013-09-10 Richard Earnshaw <rearnsha@arm.com> - - PR target/58361 - * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to - support conditional execution. - (combine_vcvt_f64_<FCVTI32typename>): Likewise. - -2013-09-10 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/58365 - * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P - resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if - it differs. - -2013-09-09 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/58364 - * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on - BOOLEAN_TYPE, only invert in_p and continue with arg0 if - the current range can't be an unconditional true or false. - -2013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - PR target/57735 - Backport from mainline - 2013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com> - - * explow.c (plus_constant): Pass "mode" to immed_double_int_const. - Use gen_int_mode rather than GEN_INT. - -2013-09-09 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-08-27 Richard Biener <rguenther@suse.de> - - PR tree-optimization/57521 - * tree-if-conv.c (if_convertible_bb_p): Verify that at least - one edge is non-critical. - (find_phi_replacement_condition): Make sure to use a non-critical - edge. Cleanup and remove old bug workarounds. - (bb_postdominates_preds): Remove. - (if_convertible_loop_p_1): Do not compute post-dominators. - (combine_blocks): Do not free post-dominators. - (main_tree_if_conversion): Likewise. - -2013-09-09 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-09-03 Richard Biener <rguenther@suse.de> - - PR middle-end/57656 - * fold-const.c (negate_expr_p): Fix division case. - (negate_expr): Likewise. - -2013-09-09 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-08-29 Richard Biener <rguenther@suse.de> - - PR tree-optimization/57685 - * tree-vrp.c (register_edge_assert_for_1): Recurse only for - single-use operands to avoid exponential complexity. - -2013-09-09 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-08-30 Richard Biener <rguenther@suse.de> - - PR tree-optimization/58223 - * tree-loop-distribution.c (has_anti_dependence): Rename to ... - (has_anti_or_output_dependence): ... this and adjust to also - look for output dependences. - (mark_nodes_having_upstream_mem_writes): Adjust. - (rdg_flag_uses): Likewise. - -2013-09-03 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-08-29 Richard Biener <rguenther@suse.de> - - PR tree-optimization/58246 - * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly - handle the dominance check inside a basic-block. - -2013-09-03 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-08-30 Richard Biener <rguenther@suse.de> - - PR tree-optimization/58228 - * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not - allow invariant loads in nested loop vectorization. - -2013-09-03 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-08-30 Richard Biener <rguenther@suse.de> - - PR tree-optimization/58010 - * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove - assert that we have a loop-closed PHI. - -2013-09-01 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-08-31 Uros Bizjak <ubizjak@gmail.com> - - * config/alpha/alpha.c (alpha_emit_conditional_move): Update - "cmp" RTX before signed_comparison_operator check to account - for "code" changes. - -2013-09-01 John David Anglin <danglin@gcc.gnu.org> - - * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns. - -2013-08-30 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/58277 - * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up - after seeing too many stmts with vdef in between dombb and current - bb, invalidate everything. - -2013-08-29 Oleg Endo <olegendo@gcc.gnu.org> - - Backport from mainline - 2013-08-05 Oleg Endo <olegendo@gcc.gnu.org> - - PR other/12081 - * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new - class insn_gen_fn. - * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument - rtx (*) (rtx, ...) with insn_gen_fn. - * genoutput.c (output_insn_data): Cast gen_? function pointers to - insn_gen_fn::stored_funcptr. Add initializer braces. - - Backport from mainline - 2013-08-07 Oleg Endo <olegendo@gcc.gnu.org> - - PR other/12081 - * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef. - (rs6000_emit_swdiv_high_precision, rs6000_emit_swdiv_low_precision, - rs6000_emit_swrsqrt): Don't cast result of GEN_FCN to gen_2arg_fn_t. - -2013-08-29 Jakub Jelinek <jakub@redhat.com> - - Backported from mainline - 2013-05-27 Richard Biener <rguenther@suse.de> - - PR middle-end/57381 - PR tree-optimization/57417 - * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test - for unchanged base. - (set_ssa_val_to): Compare addresses using - get_addr_base_and_unit_offset. - - PR tree-optimization/57396 - * tree-affine.c (double_int_constant_multiple_p): Properly - return false for val == 0 and div != 0. - - PR tree-optimization/57343 - * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not - use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED. - (number_of_iterations_cond): Do not build the folded tree. - -2013-08-28 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/58257 - * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag. - -2013-08-28 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-06-24 Richard Biener <rguenther@suse.de> - - PR middle-end/56977 - * passes.c (init_optimization_passes): Move pass_fold_builtins - and pass_dce earlier with -Og. - -2013-08-28 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-08-27 H.J. Lu <hongjiu.lu@intel.com> - - * config/i386/driver-i386.c (host_detect_local_cpu): Update - Haswell processor detection. - - Backport from mainline - 2013-08-27 Christian Widmer <shadow@umbrox.de> - - PR target/57927 - * config/i386/driver-i386.c (host_detect_local_cpu): Add detection - of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown - AVX2 capable processors. - -2013-08-23 Jakub Jelinek <jakub@redhat.com> - - PR target/58218 - * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define. - * config/i386/i386.c (x86_64_elf_section_type_flags): New function. - - PR tree-optimization/58209 - * tree-tailcall.c (find_tail_calls): Give up for pointer result types - if m or a is non-NULL. - -2013-08-21 Richard Earnshaw <rearnsha@arm.com> - - PR target/56979 - * arm.c (aapcs_vfp_allocate): Decompose the argument if the - suggested mode for the assignment isn't compatible with the - registers required. - -2013-08-20 Alan Modra <amodra@gmail.com> - - PR target/57865 - * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust. - (rs6000_emit_epilogue): Likewise. - -2013-08-19 Peter Bergner <bergner@vnet.ibm.com> - Jakub Jelinek <jakub@redhat.com> - - Backport from mainline - * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping - destination and source operands. - -2013-08-18 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/58006 - * tree-parloops.c (take_address_of): Don't ICE if get_name - returns NULL. - (eliminate_local_variables_stmt): Remove clobber stmts. - -2013-08-16 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/58164 - * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr - walk gimple_goto_dest of GIMPLE_GOTO. - - PR tree-optimization/58165 - * tree-call-cdce.c (shrink_wrap_one_built_in_call): If - bi_call must be the last stmt in a bb, don't split_block, instead - use fallthru edge from it and give up if there is none. - Release conds vector when returning early. - -2013-08-15 David Given <dg@cowlark.com> - - Backport from mainline - 2013-04-26 Vladimir Makarov <vmakarov@redhat.com> - - * lra-constraints.c (process_alt_operands): Use #if HAVE_ATTR_enable - instead of #ifdef. - -2013-08-14 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/58145 - * tree-sra.c (build_ref_for_offset): If prev_base has - TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF. - -2013-08-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * config/s390/htmxlintrin.h: Add file missing from last commit. - * config/s390/htmintrin.h: Likewise. - * config/s390/s390intrin.h: Likewise. - -2013-08-14 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-08-13 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix - when Pmode != word_mode. Add length_address attribute. - (sse3_monitor_<mode>): Merge from sse3_monitor and - sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when - Pmode != word_mode. Update insn length attribute. - * config/i386/i386.c (ix86_option_override_internal): Update - ix86_gen_monitor selection for merged sse3_monitor insn. - -2013-08-14 Jakub Jelinek <jakub@redhat.com> - Alexandre Oliva <aoliva@redhat.com> - - PR target/58067 - * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC - and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle - there also UNSPEC_PLTOFF. - -2013-08-13 Jakub Jelinek <jakub@redhat.com> - - PR sanitizer/56417 - * asan.c (instrument_strlen_call): Fix typo in comment. - Use char * type even for the lhs of POINTER_PLUS_EXPR. - -2013-08-13 Vladimir Makarov <vmakarov@redhat.com> - - Backport from mainline - 2013-06-06 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/57459 - * lra-constraints.c (update_ebb_live_info): Fix typo for operand - type when setting live regs. - -2013-08-13 Marek Polacek <polacek@redhat.com> - Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/57980 - * tree-tailcall.c (process_assignment): Return false - when not dealing with integers or floats. - -2013-08-12 Andrew Haley <aph@redhat.com> - - Backport from mainline: - * 2013-07-11 Andreas Schwab <schwab@suse.de> - - * config/aarch64/aarch64-linux.h (CPP_SPEC): Define. - -2013-08-13 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-08-12 Perez Read <netfirewall@gmail.com> - - PR target/58132 - * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before - operand 0 for intel asm alternative. - (*movabs<mode>_2): Ditto for operand 1. - -2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org> - - Backport from mainline: - 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org> - - * config/arm/neon.md (vcond): Fix floating-point vector - comparisons against 0. - -2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - Backport from mainline: - 2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - * config/arm/neon.md (movmisalign<mode>): Disable when we - don't allow unaligned accesses. - (*movmisalign<mode>_neon_store): Likewise. - (*movmisalign<mode>_neon_load): Likewise. - (*movmisalign<mode>_neon_store): Likewise. - (*movmisalign<mode>_neon_load): Likewise. - -2013-08-06 Martin Jambor <mjambor@suse.cz> - - PR middle-end/58041 - * gimple-ssa-strength-reduction.c (replace_ref): Make sure built - MEM_REF has proper alignment information. - -2013-08-05 Richard Earnshaw <rearnsha@arm.com> - - PR rtl-optimization/57708 - * recog.c (peep2_find_free_register): Validate all regs in a - multi-reg mode. - -2013-08-02 Eric Botcazou <ebotcazou@adacore.com> - - * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add - the implied StoreLoad barrier for atomic operations if before. - -2013-08-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - Backports from mainline: - 2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to - UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT. - (struct machine_function): Add tbegin_p. - (s390_canonicalize_comparison): Fold CC mode compares to - conditional jump if possible. - (s390_emit_jump): Return the emitted jump. - (s390_branch_condition_mask, s390_branch_condition_mnemonic): - Handle CCRAWmode compares. - (s390_option_override): Default to -mhtm if available. - (s390_reg_clobbered_rtx): Handle floating point regs as well. - (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for - FPRs instead of df_regs_ever_live_p. - (s390_optimize_nonescaping_tx): New function. - (s390_init_frame_layout): Extend clobbered_regs array to cover - FPRs as well. - (s390_emit_prologue): Call s390_optimize_nonescaping_tx. - (s390_expand_tbegin): New function. - (enum s390_builtin): New enum definition. - (code_for_builtin): New array definition. - (s390_init_builtins): New function. - (s390_expand_builtin): New function. - (TARGET_INIT_BUILTINS): Define. - (TARGET_EXPAND_BUILTIN): Define. - * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX. - * config/s390/predicates.md (s390_comparison): Handle CCRAWmode. - (s390_alc_comparison): Likewise. - * config/s390/s390-modes.def: Add CCRAWmode. - * config/s390/s390.h (processor_flags): Add PF_TX. - (TARGET_CPU_HTM): Define macro. - (TARGET_HTM): Define macro. - (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm. - * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to - UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT. - (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT) - (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum - values. - (TBEGIN_MASK, TBEGINC_MASK): New constants. - ("*cc_to_int"): Move up. - ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer - constants other than 0. - ("*ccraw_to_int"): New insn and splitter definition. - ("tbegin", "tbegin_nofloat", "tbegin_retry") - ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort") - ("tx_assist"): New expander. - ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1") - ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition. - * config/s390/s390.opt: Add -mhtm option. - * config/s390/s390-protos.h (s390_emit_jump): Add return type. - * config/s390/htmxlintrin.h: New file. - * config/s390/htmintrin.h: New file. - * config/s390/s390intrin.h: New file. - * doc/extend.texi: Document htm builtins. - * config.gcc: Add the new header files to extra_headers. - - 2013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be - enabled without -march=zEC12. - * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine - flags to be set. - -2013-08-01 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> - - Backport from mainline - 2013-05-13 Ganesh Gopalasubramanian - <Ganesh.Gopalasubramanian@amd.com> - - * config/i386/i386.c (processor_target_table): Modified default - alignment values for AMD BD and BT architectures. - -2013-07-31 Sriraman Tallam <tmsriram@google.com> - - * config/i386/i386.c (dispatch_function_versions): Fix array - indexing of function_version_info to match actual_versions. - -2013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de> - - * config.gcc (*-*-rtems*): Use __cxa_atexit by default. - * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define. - -2013-07-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - Backport from mainline - 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define. - - 2013-07-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * config/s390/linux-unwind.h: Use the proper dwarf to hard reg - mapping for FPRs when creating the fallback framestate. - - 2013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com> - - * config/s390/s390.md ("movcc"): Swap load and store instructions. - -2013-07-25 Terry Guo <terry.guo@arm.com> - - Backport from mainline: - 2013-07-25 Terry Guo <terry.guo@arm.com> - - * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for - shift_add/shift_sub0/shift_sub1 RTXs. - -2013-07-22 Iain Sandoe <iain@codesourcery.com> - - Backport from mainline: - 2013-07-22 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if - it is not needed after split. - - 2013-07-20 Iain Sandoe <iain@codesourcery.com> - - PR target/51784 - * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a - second label for nonlocal goto receivers. Don't output pic base labels - unless we're producing PIC; mark that action unreachable(). - (ix86_save_reg): If the function contains a nonlocal label, save the - PIC base reg. - * config/darwin-protos.h (machopic_should_output_picbase_label): New. - * gcc/config/darwin.c (emitted_pic_label_num): New GTY. - (update_pic_label_number_if_needed): New. - (machopic_output_function_base_name): Adjust for nonlocal receiver - case. - (machopic_should_output_picbase_label): New. - * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New. - (nonlocal_goto_receiver): New insn and split. - -2013-07-19 Wei Mi <wmi@google.com> - - Backport from mainline: - 2013-07-18 Vladimir Makarov <vmakarov@redhat.com> - Wei Mi <wmi@google.com> - - PR rtl-optimization/57878 - * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the - top. Promote lra_assert to gcc_assert. - (reload_pseudo_compare_func): Check regs first for reload pseudos. - -2013-07-11 Georg-Johann Lay <avr@gjlay.de> - - Backport from 2013-07-19 trunk r201051. - - PR target/57516 - * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn. - * config/avr/avr.md (adjust_len): Add `round'. - * config/avr/avr-protos.h (avr_out_round): New prototype. - (avr_out_plus): Add `out_label' argument. - * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument. - (avr_out_plus): Pass down `out_label' to avr_out_plus_1. - Handle the case where `insn' is just a pattern. - (avr_out_bitop): Handle the case where `insn' is just a pattern. - (avr_out_round): New function. - (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND. - -2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com> - - * config/i386/bmiintrin.h (_bextr_u32): New. - (_bextr_u64): Ditto. - (_blsi_u32): New. - (_blsi_u64): Ditto. - (_blsr_u32): Ditto. - (_blsr_u64): Ditto. - (_blsmsk_u32): Ditto. - (_blsmsk_u64): Ditto. - (_tzcnt_u32): Ditto. - (_tzcnt_u64): Ditto. - -2013-07-17 James Greenhalgh <james.greenhalgh@arm.com> - - Backport From mainline: - 2013-07-03 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64-builtins.c - (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1. - * config/aarch64/aarch64-simd-builtins.def (ld1): New. - (st1): Likewise. - * config/aarch64/aarch64-simd.md - (aarch64_ld1<VALL:mode>): New. - (aarch64_st1<VALL:mode>): Likewise. - * config/aarch64/arm_neon.h - (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins. - -2013-07-11 Georg-Johann Lay <avr@gjlay.de> - - Backport from 2013-07-11 trunk r200901. - - PR target/57631 - * config/avr/avr.c (avr_set_current_function): Sanity-check signal - name seen by assembler/linker if available. - -2013-07-10 Georg-Johann Lay <avr@gjlay.de> - - Backport from 2013-07-10 trunk r200872. - - PR target/57844 - * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode - of my_fp. - -2013-07-10 Georg-Johann Lay <avr@gjlay.de> - - Backport from 2013-07-10 trunk r200870. - - PR target/57506 - * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb) - (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb) - (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1): - Remove duplicate devices. - * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs. - * config/avr/t-multilib: Regenerate. - * config/avr/avr-tables.opt: Regenerate. - * doc/avr-mmcu.texi: Regenerate. - -2013-07-10 Georg-Johann Lay <avr@gjlay.de> - - PR target/56987 - * config/avr/avr.opt (Waddr-space-convert): Fix typo. - -2013-07-09 Joseph Myers <joseph@codesourcery.com> - - * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only - adjust register size for TDmode and TFmode for VSX registers. - -2013-07-08 Kai Tietz <ktietz@redhat.com> - - Backport from mainline - PR target/56892 - * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as - hook_bool_const_tree_true. - -2013-07-08 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-07-07 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/driver-i386.c (host_detect_local_cpu): Do not check - signature_TM2_ebx, it interferes with signature_INTEL_ebx. - - Backport from mainline - 2013-07-06 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/sse.md (sse_movlhps): Change alternative 3 - of operand 2 to "m". - -2013-07-08 Eric Botcazou <ebotcazou@adacore.com> - - * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H). - -2013-07-08 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/57829 - * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that - mask bits outside of mode are just sign-extension from mode to HWI. - -2013-07-03 Jakub Jelinek <jakub@redhat.com> - - PR target/57777 - * config/i386/predicates.md (vsib_address_operand): Disallow - SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic. - -2013-06-30 Terry Guo <terry.guo@arm.com> - - Backport from mainline - 2013-03-27 Bin Cheng <bin.cheng@arm.com> - - PR target/56102 - * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix - rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with - mult-word mode. - -2013-06-28 Jakub Jelinek <jakub@redhat.com> - - PR target/57736 - * config/i386/i386.c (ix86_expand_builtin): If target == NULL - and mode is VOIDmode, don't create a VOIDmode pseudo to copy result - into. - -2013-06-27 Jakub Jelinek <jakub@redhat.com> - - PR target/57623 - * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and - constraints of operand 1 and 2. - - PR target/57623 - * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments - to match RTL canonicalization. Swap predicates and - constraints of operand 1 and 2. - - * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var - decl before the loop, initialize to NULL. - (vectorizable_load): Initialize ptr_incr to NULL. - -2013-06-24 Martin Jambor <mjambor@suse.cz> - - PR tree-optimization/57358 - * ipa-prop.c (parm_ref_data_preserved_p): Always return true when - not optimizing. - -2013-06-24 Alan Modra <amodra@gmail.com> - - * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian. - (gen_easy_altivec_constant): Likewise. - * config/rs6000/predicates.md (easy_vector_constant_add_self, - easy_vector_constant_msb): Likewise. - -2013-06-21 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-06-20 Uros Bizjak <ubizjak@gmail.com> - - PR target/57655 - * config/i386/i386.c (construct_container): Report error if - long double is used with disabled x87 float returns. - -2013-06-20 Wei Mi <wmi@google.com> - - Backport from mainline - 2013-06-19 Wei Mi <wmi@google.com> - - PR rtl-optimization/57518 - * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno] - if regno is used in paradoxical subreg. - (update_equiv_regs): Check pdx_subregs[regno] before - set a reg to be equivalent with a mem. - - -2013-06-20 David Edelsohn <dje.gcc@gmail.com> - - Backport from mainline - 2013-06-19 David Edelsohn <dje.gcc@gmail.com> - - PR driver/57652 - * collect2.c (collect_atexit): New. - (collect_exit): Delete. - (main): Register collect_atexit with atexit. - (collect_wait): Change collect_exit to exit. - (do_wait): Same. - * collect2.h (collect_exit): Delete. - * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit. - -2013-06-19 Matthias Klose <doko@ubuntu.com> - - PR driver/57651 - * file-find.h (find_a_file): Add a mode parameter. - * file-find.c (find_a_file): Likewise. - * gcc-ar.c (main): Call find_a_file with R_OK for the plugin, - with X_OK for the executables. - * collect2.c (main): Call find_a_file with X_OK. - -2013-06-19 Igor Zamyatin <igor.zamyatin@intel.com> - - * doc/invoke.texi (core-avx2): Document. - (atom): Updated with MOVBE. - -2013-06-19 Jakub Jelinek <jakub@redhat.com> - - PR driver/57651 - * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for - PERSONALITY in $PATH derived prefixes. - -2013-06-19 Paolo Carlini <paolo.carlini@oracle.com> - - PR c++/56544 - * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document - that now in C++ the value is correct per the C++ standards. - -2013-06-19 Alan Modra <amodra@gmail.com> - - Apply mainline patches - 2013-06-13 Alan Modra <amodra@gmail.com> - * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define. - * config/rs6000/rs6000.md (signbittf2): New insn. - (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST. - (abstf2_internal, cmptf_internal2): Likewise. - * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise. - - 2013-06-11 Anton Blanchard <anton@samba.org> - * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate - correct shift value in little-endian mode. - - 2013-06-07 Alan Modra <amodra@gmail.com> - * config/rs6000/rs6000.c (setup_incoming_varargs): Round up - va_list_gpr_size. - - 2013-06-04 Alan Modra <amodra@gmail.com> - * config/rs6000/rs6000.c (output_toc): Correct little-endian float - constant output. - - 2013-05-10 Alan Modra <amodra@gmail.com> - * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases. - (HAVE_LD_LARGE_TOC): Don't mention AIX in help text. - * configure: Regenerate. - - 2013-05-09 Alan Modra <amodra@gmail.com> - * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and - powerpc64le. - * configure: Regenerate. - - 2013-05-07 Anton Blanchard <anton@samba.org> - * configure.ac (HAVE_LD_LARGE_TOC): Use right linker emulation - for powerpc64 little endian. - * configure: Regenerate. - - 2013-05-06 Alan Modra <amodra@gmail.com> - * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define. - (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT. - * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define. - * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define. - (LINK_TARGET_SPEC): Use ENDIAN_SELECT. - * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig. - - 2013-05-06 Alan Modra <amodra@gmail.com> - * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from - (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too. - (DEFAULT_ASM_ENDIAN): Define. - (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT. - * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options. - Update -K PIC clause from sysv4.h. - (ASM_SPEC_COMMON): Use ENDIAN_SELECT. - (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise. - - 2013-05-06 Alan Modra <amodra@gmail.com> - * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words - twice for little-endian. - (ashrdi3_no_power, ashrdi3): Support little-endian. - - 2013-04-25 Alan Modra <amodra@gmail.com> - * config.gcc: Support little-endian powerpc-linux targets. - * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define. - (LINK_OS_LINUX_SPEC): Define. - * config/rs6000/linuxspe.h (TARGET_DEFAULT): - Preserve MASK_LITTLE_ENDIAN. - * config/rs6000/default64.h (TARGET_DEFAULT): Likewise. - * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise. - * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero. - (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define. - (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above. - * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF. - Correct fp word order for little-endian. Don't shift toc entries - smaller than a word for little-endian. - * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment. - (bswapdi2 splits): Correct low-part subreg for little-endian. - Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove - low/high where such is correct only for be. - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow - little-endian for -mcall-aixdesc. - -2013-06-12 Martin Jambor <mjambor@suse.cz> - - * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is - within bounds at the beginning of the function. - -2013-06-12 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/57537 - * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If - vect_handle_widen_op_by_const, convert oprnd1 to half_type1. - -2013-06-10 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-06-10 Uros Bizjak <ubizjak@gmail.com> - - * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use - cmp_code to construct REG_EQUAL note. - -2013-06-10 Oleg Endo <olegendo@gcc.gnu.org> - - Backport from mainline - 2013-05-20 Oleg Endo <olegendo@gcc.gnu.org> - - PR target/56547 - * config/sh/sh.md (fmasf4): Remove empty constraints strings. - (*fmasf4, *fmasf4_media): New insns. - -2013-06-09 Jakub Jelinek <jakub@redhat.com> - - PR target/57568 - * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure - that operands[2] doesn't overlap with operands[0]. - -2013-06-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com> - - * recog.c (offsettable_address_addr_space_p): Fix calculation of - address mode. Move pointer mode initialization to the same place. - -2013-06-07 Sofiane Naci <sofiane.naci@arm.com> - - Backport from mainline - * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute. - -2013-06-07 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-06-05 Uros Bizjak <ubizjak@gmail.com> - - * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all - GE, GT, GEU and GTU compares, modulo DImode compares with zero. - - Backport from mainline - 2013-05-23 Uros Bizjak <ubizjak@gmail.com> - - PR target/57379 - * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE. - * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct - REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec. - -2013-06-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - Backport from mainline. - 2013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - - * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define. - -2013-06-03 James Greenhalgh <james.greenhalgh@arm.com> - - Backport from mainline. - 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf - format specifier in 'X' case. - -2013-05-31 Richard Henderson <rth@redhat.com> - - PR target/56742 - * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New. - (ix86_reorg): Call it. - -2012-05-31 Jakub Jelinek <jakub@redhat.com> - - * BASE-VER: Set to 4.8.2. - * DEV-PHASE: Set to prerelease. - -2013-05-31 Release Manager - - * GCC 4.8.1 released. - -2013-05-24 Greta Yorsh <Greta.Yorsh@arm.com> - - Backport from mainline - 2013-05-02 Greta Yorsh <Greta.Yorsh@arm.com> - - PR target/56732 - * config/arm/arm.c (arm_expand_epilogue): Check really_return before - generating simple_return for naked functions. - -2013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com> - - PR tree-ssa/57385 - * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check - that index is not negative. - -2013-05-23 Martin Jambor <mjambor@suse.cz> - - PR middle-end/57347 - * tree.h (contains_bitfld_component_ref_p): Declare. - * tree-sra.c (contains_bitfld_comp_ref_p): Move... - * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its caller. - * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does - not access a bit-field. Assert all final offsets are byte-aligned. - -2013-05-23 Richard Biener <rguenther@suse.de> - - PR rtl-optimization/57341 - * ira.c (validate_equiv_mem_from_store): Use anti_dependence - instead of true_dependence. - -2013-05-23 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/57344 - * expmed.c (store_split_bit_field): If op0 is a REG or - SUBREG of a REG, don't lower unit. Handle unit not being - always BITS_PER_WORD. - -2013-05-22 Uros Bizjak <ubizjak@gmail.com> - - PR target/57356 - * config/i386/i386.md (*movti_internal_rex64): Emit movaps/movups - for non-sse2 targets. - (*movti_internal): Simplify mode attribute calculation. - -2013-05-22 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-05-21 Richard Biener <rguenther@suse.de> - - PR tree-optimization/57318 - * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not - estimate stmts with side-effects as likely eliminated. - - 2013-05-21 Richard Biener <rguenther@suse.de> - - PR tree-optimization/57330 - * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly - preserve the call stmts fntype. - - 2013-05-21 Richard Biener <rguenther@suse.de> - - PR tree-optimization/57303 - * tree-ssa-sink.c (statement_sink_location): Properly handle - self-assignments. - -2013-05-21 Magnus Granberg <baldrick@free.fr> - - PR plugins/56754 - * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H). - -2013-05-21 Eric Botcazou <ebotcazou@adacore.com> - - Backport from mainline - 2013-05-14 Eric Botcazou <ebotcazou@adacore.com> - - * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete. - * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise. - -2013-05-17 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/57281 - PR rtl-optimization/57300 - * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove. - (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo - what the other splitter did if the registers are dead. - -2013-05-17 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-05-16 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/driver-i386.c (host_detect_local_cpu): Determine - cache parameters using detect_caches_amd also for CYRIX, - NSC and TM2 signatures. - - 2013-05-16 Uros Bizjak <ubizjak@gmail.com> - Dzianis Kahanovich <mahatma@eu.by> - - PR target/45359 - PR target/46396 - * config/i386/driver-i386.c (host_detect_local_cpu): Detect - VIA/Centaur processors and determine their cache parameters - using detect_caches_amd. - - 2013-05-15 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.c (ix86_option_override_internal): Update - processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add - PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on - non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets. - * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead - of TARGET_3DNOW. - (*prefetch_3dnow): Enable for TARGET_PRFCHW only. - -2013-05-17 Jakub Jelinek <jakub@redhat.com> - - * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread - linking. - - PR tree-optimization/57051 - * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR, - case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling. - -2013-05-16 Jakub Jelinek <jakub@redhat.com> - - * omp-low.c (extract_omp_for_data): For collapsed loops, - if at least one of the loops is known at compile time to - iterate zero times, set count to 0. - (expand_omp_regimplify_p): New function. - (expand_omp_for_generic): For collapsed loops, if at least - one of the loops isn't known to iterate at least once, - add runtime check with setting count to 0. - (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): - For unsigned types if it isn't known at compile time that - the loop will iterate at least once, add runtime check to bypass - the whole loop if initial condition isn't true. - -2013-05-14 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/57251 - * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle - the case when both op0 and op1 have VOIDmode. - -2013-05-13 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/57230 - * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop - check. - -2013-05-12 Joern Rennecke <joern.rennecke@embecosm.com> - - * config/epiphany/epiphany.c (epiphany_init): Check size of - NUM_MODES_FOR_MODE_SWITCHING. - (epiphany_expand_prologue): - Remove CONFIG_REGNUM initial value handling code. - (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG. - (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise. - (emit_set_fp_mode, epiphany_mode_after): Likewise. - (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>: - Don't return 1 for FP_MODE_NONE. - * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING): - Add value for EPIPHANY_MSW_ENTITY_CONFIG. - (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define. - * config/epiphany/epiphany.md (save_config): New pattern. - -2013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de> - - * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib. - Add mthumb/march=armv7-a multilib. - Add mthumb/march=armv7-r multilib. - Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib. - -2013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org> - - PR target/57237 - * config/v850/t-rtems: Add more multilibs. - -2013-05-10 Richard Biener <rguenther@suse.de> - - PR tree-optimization/57214 - * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do - not propagate from SSA names that occur in abnormal PHI nodes. - -2013-05-10 Alan Modra <amodra@gmail.com> - - PR target/55033 - * varasm.c (default_elf_select_section): Move !DECL_P check.. - (get_named_section): ..to here before calling get_section_name. - Adjust assertion. - (default_section_type_flags): Add DECL_P check. - * config/i386/winnt.c (i386_pe_section_type_flags): Likewise. - * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise. - -2013-05-09 Joern Rennecke <joern.rennecke@embecosm.com> - - * config/epiphany/epiphany.c (epiphany_expand_prologue): - When using gen_stack_adjust_str with a register offset, add a - REG_FRAME_RELATED_EXPR note. - -2013-05-09 Martin Jambor <mjambor@suse.cz> - - PR middle-end/56988 - * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref. - * ipa-cp.c (find_aggregate_values_for_callers_subset): Fill in the - by_ref flag of ipa_agg_replacement_value structures. - (known_aggs_to_agg_replacement_list): Likewise. - * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag. - (read_agg_replacement_chain): Likewise. - (ipcp_transform_function): Also check that by_ref flags match. - -2013-05-08 Diego Novillo <dnovillo@google.com> - - PR bootstrap/54659 - - Revert: - - 2012-08-17 Diego Novillo <dnovillo@google.com> - - PR bootstrap/54281 - * configure.ac: Add libintl.h to AC_CHECK_HEADERS list. - * config.in: Regenerate. - * configure: Regenerate. - * intl.h: Always include libintl.h if HAVE_LIBINTL_H is - set. - -2013-05-08 Paolo Carlini <paolo.carlini@oracle.com> - - PR tree-optimization/57200 - * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations): - Only call inform if the preceding warning_at returns true. - -2013-05-07 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/57149 - * tree-ssa-uninit.c (uninit_undefined_value_p): New inline. - (can_skip_redundant_opnd, compute_uninit_opnds_pos, - collect_phi_def_edges, execute_late_warn_uninitialized): Use - uninit_undefined_value_p instead of ssa_undefined_value_p. - - PR debug/57184 - * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR - for modifier == EXPAND_INITIALIZER. - -2013-05-07 Richard Biener <rguenther@suse.de> - - Backport from mainline - 2013-05-06 Richard Biener <rguenther@suse.de> - - PR tree-optimization/57185 - * tree-parloops.c (add_field_for_reduction): Handle anonymous - SSA names properly. - - 2013-04-19 Richard Biener <rguenther@suse.de> - - PR tree-optimization/57000 - * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals. - -2013-05-06 Michael Meissner <meissner@linux.vnet.ibm.com> - - Backport from trunk - 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/57150 - * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode - to save TFmode registers and DImode to save TImode registers for - caller save operations. - (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to - mark being partially clobbered since they only use the first - double word. - - * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode - and TDmode only use the upper 64-bits of each VSX register. - -2013-05-06 Oleg Endo <olegendo@gcc.gnu.org> - - PR target/57108 - * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator. - -2013-05-06 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-05-06 Uros Bizjak <ubizjak@gmail.com> - - PR target/57106 - * config/i386/i386.c (add_parameter_dependencies): Add dependence - between "first_arg" and "insn", not "last" and "insn". - -2013-05-03 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/57130 - * combine.c (make_compound_operation) <case SUBREG>: Pass - SET instead of COMPARE as in_code to the recursive call - if needed. - - Backported from mainline - 2013-04-26 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/57051 - * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR - and VEC_RSHIFT_EXPR if shift count is a multiple of element - bitsize. - - 2013-04-12 Marc Glisse <marc.glisse@inria.fr> - - * fold-const.c (fold_binary_loc): Call const_binop also for mixed - vector-scalar operations. - -2013-05-03 Marek Polacek <polacek@redhat.com> - - Backport from mainline - 2013-04-25 Marek Polacek <polacek@redhat.com> - - PR tree-optimization/57066 - * builtins.c (fold_builtin_logb): Return +Inf for -Inf. - -2013-05-02 Vladimir Makarov <vmakarov@redhat.com> - - Backport from mainline - 2013-05-02 Vladimir Makarov <vmakarov@redhat.com> - - * lra-constraints.c (process_alt_operands): Add checking alt - number to choose the best alternative. - - 2013-05-01 Vladimir Makarov <vmakarov@redhat.com> - - PR target/57091 - * lra-constraints.c (best_small_class_operands_num): Remove. - (process_alt_operands): Remove small_class_operands_num. Take - small classes operands into losers and only if the operand is not - matched. Modify debugging output. - (curr_insn_transform): Remove best_small_class_operands_num. - Print insn name. - -2013-05-02 Vladimir Makarov <vmakarov@redhat.com> - - Backport from mainline - 2013-04-29 Vladimir Makarov <vmakarov@redhat.com> - - PR target/57097 - * lra-constraints.c (process_alt_operands): Discourage a bit more - using memory for pseudos. Print cost dump for alternatives. - Modify cost values for conflicts with early clobbers. - (curr_insn_transform): Spill pseudos reassigned to NO_REGS. - -2013-05-02 Vladimir Makarov <vmakarov@redhat.com> - - Backport from mainline - 2013-04-24 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimizations/57046 - * lra-constraints (split_reg): Set up lra_risky_transformations_p - for multi-reg splits. - -2013-05-02 Vladimir Makarov <vmakarov@redhat.com> - - Backport from mainline - 2013-04-22 Vladimir Makarov <vmakarov@redhat.com> - - PR target/57018 - * lra-eliminations.c (mark_not_eliminable): Prevent elimination of - a set sp if no stack realignment. - -2013-05-02 Vladimir Makarov <vmakarov@redhat.com> - - Backport from mainline - 2013-04-18 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/56999 - * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and - related code. - (lra_coalesce): Remove split_origin_bitmap and related code. - * lra.c (lra): Coalesce after undoing inheritance. Recreate live - ranges if necessary. - -2013-05-02 Vladimir Makarov <vmakarov@redhat.com> - - Backport from mainline - 2013-04-19 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/56847 - * lra-constraints.c (process_alt_operands): Discourage alternative - with non-matche doffsettable memory constraint fro memory with - known offset. - -2013-05-02 Ian Bolton <ian.bolton@arm.com> - - Backport from mainline - 2013-03-28 Ian Bolton <ian.bolton@arm.com> - - * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame - record only when desired or required. - -2013-04-30 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/57104 - * tsan.c (instrument_expr): Don't instrument accesses to - DECL_HARD_REGISTER VAR_DECLs. - -2013-04-30 Uros Bizjak <ubizjak@gmail.com> - - Backport from mainline - 2013-04-29 Uros Bizjak <ubizjak@gmail.com> - - PR target/44578 - * config/i386/i386.md (*zero_extendsidi2_rex64): Add "!" to m->?*y - alternative. - (*zero_extendsidi2): Ditto. - - Backport from mainline - 2013-04-29 Uros Bizjak <ubizjak@gmail.com> - - PR target/57098 - * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory. - -2013-04-29 Richard Biener <rguenther@suse.de> - - PR middle-end/57103 - * tree-cfg.c (move_stmt_op): Fix condition under which to update - TREE_BLOCK. - (move_stmt_r): Remove redundant checking. - -2013-04-29 Christian Bruel <christian.bruel@st.com> - - PR target/57108 - * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0. - -2013-04-29 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/57083 - * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with - non-singleton shift count range, zero extend low_bound for uns case. - -2013-04-28 Eric Botcazou <ebotcazou@gcc.gnu.org> - - * stor-layout.c (finalize_size_functions): Allocate a structure and - reset cfun before dumping the functions. - -2013-04-27 Jakub Jelinek <jakub@redhat.com> - - PR target/56866 - * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't - use xop_pmacsdqh if uns_p. - * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of - the immediate rotate count. - -2013-04-25 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/57003 - * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg, - call note_stores with kill_clobbered_value callback again after - killing regs_invalidated_by_call. - -2013-04-25 Ian Bolton <ian.bolton@arm.com> - - Backported from mainline. - 2013-03-22 Ian Bolton <ian.bolton@arm.com> - - * config/aarch64/aarch64.c (aarch64_print_operand): New - format specifier for printing a constant in hex. - * config/aarch64/aarch64.md (insv_imm<mode>): Use the X - format specifier for printing second operand. - -2013-04-24 James Greenhalgh <james.greenhalgh@arm.com> - - Backported from mainline. - 2013-04-24 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints. - (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise. - (vld1<q>_<sufp><8, 16, 32, 64>): Likewise. - -2013-04-24 Greta Yorsh <Greta.Yorsh@arm.com> - - Backported from mainline. - PR target/56797 - * config/arm/arm.c (load_multiple_sequence): Require SP - as base register for loads if SP is in the register list. - -2013-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> - Steven Bosscher <steven@gcc.gnu.org> - - Backported from mainline. - PR rtl-optimization/56605 - * loop-iv.c (implies_p): Handle equal RTXs and subregs. - -2013-04-22 Marek Polacek <polacek@redhat.com> - - Backported from mainline. - 2013-04-22 Marek Polacek <polacek@redhat.com> - - PR sanitizer/56990 - * tsan.c (instrument_expr): Don't instrument expression - in case its size is zero. - -2013-04-22 Yufeng Zhang <yufeng.zhang@arm.com> - - Backported from mainline. - 2013-04-10 Yufeng Zhang <yufeng.zhang@arm.com> - * config/aarch64/aarch64.c (aarch64_print_extension): New function. - (aarch64_start_file): Use the new function. - -2013-04-18 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56984 - * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N - and (x >> M) >= N don't register any assertion if N << M is the - minimum value. - -2013-04-17 David Edelsohn <dje.gcc@gmail.com> - - PR target/56948 - * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative. - -2013-04-15 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56962 - * gimple-ssa-strength-reduction.c (record_increment): Only set - initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and - either rhs1 or rhs2 is equal to c->base_expr. - -2013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * emit-rtl.c (reset_all_used_flags): New function. - (verify_rtl_sharing): Call reset_all_used_flags before and after - performing the checks. - -2013-04-15 Eric Botcazou <ebotcazou@adacore.com> - - PR target/56890 - * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value. - (S_MODES): Set H_MODE bit. - (SF_MODES): Set only S_MODE and SF_MODE bits. - (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits. - (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes. - <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes. - <MODE_FLOAT>: Likewise. - -2013-04-12 Vladimir Makarov <vmakarov@redhat.com> - - PR target/56903 - * config/i386/i386.c (ix86_hard_regno_mode_ok): Add - lra_in_progress for return. - -2013-04-12 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56918 - PR tree-optimization/56920 - * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...) - instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second - argument to rshift method. - -2013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as - well. - -2013-04-11 Marek Polacek <polacek@redhat.com> - - PR tree-optimization/48184 - * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum - value to 1. - -2013-04-11 James Greenhalgh <james.greenhalgh@arm.com> - - Backported from mainline. - 2013-04-11 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix - floating-point vector comparisons against 0. - -2013-04-11 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56899 - * fold-const.c (extract_muldiv_1): Apply distributive law - only if TYPE_OVERFLOW_WRAPS (ctype). - -2013-04-10 David S. Miller <davem@davemloft.net> - - * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc - or -mcpu=hypersparc. - -2013-04-10 Jakub Jelinek <jakub@redhat.com> - - Backported from mainline - 2013-04-09 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56883 - * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk, - expand_omp_for_static_chunk): Use simple_p = true in - force_gimple_operand_gsi calls when assigning to addressable decls. - -2013-04-09 Marek Polacek <polacek@redhat.com> - - PR tree-optimization/48762 - * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum - value to 1. - -2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * config/s390/s390.c (s390_expand_insv): Only accept insertions - within mode size. - -2013-04-08 Marek Polacek <polacek@redhat.com> - - PR rtl-optimization/48182 - * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum - value to 1. - -2013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> - - PR target/55487 - * config/pa/pa.c (legitimize_pic_address): Before incrementing label - nuses, make sure we have a label. - -2013-04-04 Ian Lance Taylor <iant@google.com> - - Backport from mainline: - * doc/standards.texi (Standards): The Go frontend supports the Go - 1 language standard. - -2013-04-04 Marek Polacek <polacek@redhat.com> - - Backport from mainline: - 2013-04-04 Marek Polacek <polacek@redhat.com> - - PR tree-optimization/48186 - * predict.c (maybe_hot_frequency_p): Return false if - HOT_BB_FREQUENCY_FRACTION is 0. - (cgraph_maybe_hot_edge_p): Likewise. - -2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - Backport from mainline: - 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> - - PR target/56720 - * config/arm/iterators.md (v_cmp_result): New mode attribute. - * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases. - -2013-04-04 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56837 - * tree-loop-distribution.c (classify_partition): For non-zero - values require that the value has the same precision as its - mode to be useful as memset value. - -2013-04-03 Roland McGrath <mcgrathr@google.com> - - Backport from mainline: - 2013-03-26 Roland McGrath <mcgrathr@google.com> - - * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather - than fprintf with a non-constant, non-format string. - -2013-04-03 Marek Polacek <polacek@redhat.com> - - Backport from mainline: - 2013-04-03 Marek Polacek <polacek@redhat.com> - - PR sanitizer/55702 - * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN - functions. - -2013-04-03 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56817 - * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): - Split out ... - (tree_unroll_loops_completely_1): ... new function to manually - walk the loop tree, properly defering outer loops of unrolled - loops to later iterations. - -2013-04-02 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/56745 - * ifcvt.c (cond_exec_find_if_block): Don't try to optimize - if then_bb has no successors and else_bb is EXIT_BLOCK_PTR. - -2013-04-02 Wei Mi <wmi@google.com> - - * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for - ashl<mode>3_mask, *<shift_insn><mode>3_mask and - *<rotate_insn><mode>3_mask in i386.md. - -2013-04-01 Wei Mi <wmi@google.com> - - * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn. - Truncate operand 2 using %b asm operand modifier. - (*<shift_insn><mode>3_mask): Ditto. - (*<rotate_insn><mode>3_mask): Ditto. - -2013-04-01 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.md (*movsf_internal): Change type of - alternatives 3,4 to imov. - -2013-03-29 Paolo Carlini <paolo.carlini@oracle.com> - - PR lto/56777 - * doc/invoke.texi ([-fwhole-program]): Fix typo. - -2013-03-29 Kirill Yukhin <kirill.yukhin@intel.com> - - * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256): - Fix declaration name. - -2013-03-28 Gerald Pfeifer <gerald@pfeifer.com> - - * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual. - * doc/extend.texi (Named Address Spaces): Ditto. - (Variable Attributes): Ditto. - -2013-03-28 Eric Botcazou <ebotcazou@adacore.com> - - * toplev.c (process_options): Do not disable -fomit-frame-pointer on a - general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS - is not enabled. - -2013-03-27 Walter Lee <walt@tilera.com> - - Backport from mainline: - 2013-03-27 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid - double-decrement of next_scratch_regno. - -2013-03-27 Walter Lee <walt@tilera.com> - - Backport from mainline: - 2013-03-27 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on - input operands. - (insn_v1mulus): Ditto. - (insn_v2muls): Ditto. - -2013-03-27 Walter Lee <walt@tilera.com> - - Backport from mainline: - 2013-03-27 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete - extra tab. - (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto. - -2013-03-27 Walter Lee <walt@tilera.com> - - Backport from mainline: - 2013-03-27 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr. - (*sibcall_value): Ditto. - -2013-03-27 Walter Lee <walt@tilera.com> - - Backport from mainline: - 2013-03-27 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ... - (insn_mnz_v8qi): ... this ... - (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the - vector equivalent. - (insn_v<n>mnz): Replaced by ... - (insn_v1mnz): ... this ... - (insn_v2mnz): ... and this. Replace (const_int 0) with the vector - equivalent. - (insn_mz_<mode>): Replaced by ... - (insn_mz_v8qi): ... this ... - (insn_mz_v4hi): ... and this. Replace (const_int 0) with the - vector equivalent. - (insn_v<n>mz): Replaced by ... - (insn_v1mz): ... this ... - (insn_v2mz): ... and this. Replace (const_int 0) with the vector - equivalent. - -2013-03-26 Eric Botcazou <ebotcazou@adacore.com> - - * doc/invoke.texi (SPARC options): Remove -mlittle-endian. - -2013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de> - - * config/rtems.opt: Add -pthread option. - -2013-03-26 Sofiane Naci <sofiane.naci@arm.com> - - * config/aarch64/aarch64.c (aarch64_classify_address): Support - PC-relative load in SI modes and above only. - -2013-03-26 Walter Lee <walt@tilera.com> - - Backport from mainline: - 2013-03-26 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define. - * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define. - -2013-03-26 Walter Lee <walt@tilera.com> - - Backport from mainline: - 2013-03-25 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add - TILEGX_INSN_SHUFFLEBYTES1. - * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for - shufflebytes1. - (tilegx_builtins): Ditto. - * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern. - -2013-03-26 Walter Lee <walt@tilera.com> - - Backport from mainline: - 2013-03-25 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline - tests for constraint J, K, N, P. - -2013-03-26 Walter Lee <walt@tilera.com> - - Backport from mainline: - 2013-03-25 Walter Lee <walt@tilera.com> - - * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format): - Use indirect/pcrel encoding. - * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format): - Ditto. - -2013-03-25 Richard Biener <rguenther@suse.de> - - PR middle-end/56694 - * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the - must-not-throw stmt location. - -2012-03-22 Jakub Jelinek <jakub@redhat.com> - - * BASE-VER: Set to 4.8.1. - * DEV-PHASE: Set to prerelease. - -2013-03-22 Release Manager - - * GCC 4.8.0 released. - -2013-03-21 Walter Lee <walt@tilera.com> - - * config/tilegx/sync.md (atomic_test_and_set): New pattern. - -2013-03-21 Mark Wielaard <mjw@redhat.com> - - * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions. - -2013-03-20 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56661 - * tree-ssa-sccvn.c (visit_use): Only value-number calls if - the result does not have to be distinct. - -2013-03-20 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56635 - * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Give up - if lhs of then_assign and else_assign don't have compatible types. - -2013-03-17 Jakub Jelinek <jakub@redhat.com> - - PR target/56640 - * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG" - class names. Remove trailing comma after "ALL_REGS". - -2013-03-16 Jakub Jelinek <jakub@redhat.com> - - * DEV-PHASE: Set to prerelease. - -2013-03-14 Andi Kleen <ak@linux.intel.com> - - PR target/56619 - * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE, - __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs. - Document _x* TSX intrinsics. - -2013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com> - David Holsgrove <david.holsgrove@xilinx.com> - - * configure.ac: Add MicroBlaze TLS support detection. - * configure: Regenerate. - * config/microblaze/microblaze-protos.h - (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p, - symbol_mentioned_p, label_mentioned_p): Add prototypes. - * config/microblaze/microblaze.c (microblaze_address_type): Add - ADDRESS_TLS and tls_reloc address types. - (microblaze_address_info): Add tls_reloc. - (TARGET_HAVE_TLS): Define. - (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1, - microblaze_tls_referenced_p, microblaze_cannot_force_const_mem, - symbol_mentioned_p, label_mentioned_p, tls_mentioned_p, - load_tls_operand, microblaze_call_tls_get_addr, - microblaze_legitimize_tls_address): New functions. - (microblaze_classify_unspec): Handle UNSPEC_TLS. - (get_base_reg): Use microblaze_tls_symbol_p. - (microblaze_classify_address): Handle TLS. - (microblaze_legitimate_pic_operand): Use symbol_mentioned_p, - label_mentioned_p and microblaze_tls_referenced_p. - (microblaze_legitimize_address): Handle TLS. - (microblaze_address_insns): Handle ADDRESS_TLS. - (pic_address_needs_scratch): Handle TLS. - (print_operand_address): Handle TLS. - (microblaze_expand_prologue): Check TLS_NEEDS_GOT. - (microblaze_expand_move): Handle TLS. - (microblaze_legitimate_constant_p): Check - microblaze_cannot_force_const_mem and microblaze_tls_symbol_p. - (TARGET_CANNOT_FORCE_CONST_MEM): Define. - * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define - (PIC_OFFSET_TABLE_REGNUM): Set. - * config/microblaze/linux.h (TLS_NEEDS_GOT): Define. - * config/microblaze/microblaze.md (UNSPEC_TLS): Define. - (addsi3, movsi_internal2, movdf_internal): Update constraints - * config/microblaze/predicates.md (arith_plus_operand): Define - (move_operand): Redefine as move_src_operand, check - microblaze_tls_referenced_p. - -2013-03-14 Ian Bolton <ian.bolton@arm.com> - - * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ. - (*and_<SHIFT:optab><mode>3nr_compare0): Likewise. - -2013-03-14 Ian Bolton <ian.bolton@arm.com> - - * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct - CC mode for AND. - -2013-03-14 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/53265 - * common.opt (Waggressive-loop-optimizations): New option. - * tree-ssa-loop-niter.c: Include tree-pass.h. - (do_warn_aggressive_loop_optimizations): New function. - (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds - if number_of_latch_executions returned constant. - (estimate_numbers_of_iterations_loop): Call number_of_latch_executions - early. If number_of_latch_executions returned constant, set - nb_iterations_upper_bound back to it. - * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations - field. - * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H). - * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document. - - * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove. - (MULTILIB_OSDIRNAMES): Set. - * genmultilib: If defaultosdirname doesn't start with :: , set - defaultosdirname2 instead, clear it and emit two . multilib_raw - entries instead of just one. - -2013-03-14 Kaz Kojima <kkojima@gcc.gnu.org> - - * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE. - (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default. - * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE. - (SUBTARGET_OVERRIDE_OPTIONS): New. - -2013-03-13 Oleg Endo <olegendo@gcc.gnu.org> - - PR target/49880 - * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask. - (musermode): Convert to Var(TARGET_USERMODE). - * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY, - MASK_ARCH): Add MASK_FPU_SINGLE_ONLY. - * config/sh/sh.c (sh_option_override): Use - TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case. - * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4 - condition. - (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of - TARGET_SH4. - (udivsi3_i4_single, divsi3_i4_single): Use - TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4. - -2013-03-13 Dave Korn <dave.korn.cygwin@....> - - * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the - default setting. - -2013-03-13 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56608 - * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar - calls when vectorizing basic-blocks. - -2013-03-13 Jakub Jelinek <jakub@redhat.com> - - PR plugins/45078 - * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to - tm_file. - -2013-03-12 Jakub Jelinek <jakub@redhat.com> - - * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier. - -2013-03-11 Jan Hubicka <jh@suse.cz> - - PR lto/56557 - * lto-streamer-out.c (output_symbol_p): Skip references from - constructors of external variables. - -2013-03-11 Jan Hubicka <jh@suse.cz> - - PR middle-end/56571 - * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating - from pseudos. - * emit-rtl.c (verify_rtx_sharing): Likewise. - (copy_insn_1): Likewise. - * rtl.c (copy_rtx): Likewise. - -2013-03-11 Georg-Johann Lay <avr@gjlay.de> - - PR target/56591 - * config/avr/avr.c (avr_print_operand): Add space after '%c' in - output_operand_lossage message. - -2013-03-11 Richard Earnshaw <rearnsha@arm.com> - - PR target/56470 - * arm.c (shift_op): Validate RTL pattern on the fly. - (arm_print_operand, case 'S'): Don't use shift_operator to validate - the RTL. - -2013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> - - PR target/56347 - * config/pa/pa.md (call_value): Check for calls to powf and direct to - new call patterns that clobber %fr12. - (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn, - split and postreload patterns. - * config/pa/pa.c (pa_conditional_register_usage): Revert marking - registers %fr12 and %fr12R as call used. - -2013-03-09 Steven Bosscher <steven@gcc.gnu.org> - - * dse.c (delete_dead_store_insn): Respect TDF_DETAILS. - (canon_address, record_store, replace_read, check_mem_read_rtx, - scan_insn, dse_step1, dse_step2_init, dse_step2_spill, - dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6, - rest_of_handle_dse): Likewise. - -2013-03-09 Richard Sandiford <rdsandiford@googlemail.com> - - PR middle-end/56524 - * tree.h (tree_optimization_option): Rename target_optabs to optabs. - Add base_optabs. - (TREE_OPTIMIZATION_OPTABS): Update after previous field change. - (TREE_OPTIMIZATION_BASE_OPTABS): New macro. - (save_optabs_if_changed): Replace with... - (init_tree_optimization_optabs): ...this. - * optabs.c (save_optabs_if_changed): Rename to... - (init_tree_optimization_optabs): ...this. Take the optimization node - as argument. Do nothing if the base optabs are already correct. - Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need - to recompute optabs. - * function.h (function): Remove optabs field. - * function.c (invoke_set_current_function_hook): Call - init_tree_optimization_optabs. Use the result to initialize - this_fn_optabs. - -2013-02-27 Aldy Hernandez <aldyh@redhat.com> - - * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE - if GTMA_HAS_NO_INSTRUMENTATION. - (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit. - (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION. - * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define. - * gimple-pretty-print.c (dump_gimple_transaction): Handle - GTMA_HAS_NO_INSTRUMENTATION. - -2013-03-08 Jakub Jelinek <jakub@redhat.com> - - * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against - libasan_preinit.o. - -2013-03-08 Marek Polacek <polacek@redhat.com> - Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56478 - * predict.c (is_comparison_with_loop_invariant_p): Change the - type of loop_step to tree. - (predict_loops): Adjust. - (predict_iv_comparison): Perform the computations on double_ints. - -2013-03-08 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56570 - * tree-cfg.c (verify_expr_location_1): Verify locations for - DECL_DEBUG_EXPR. - * tree-sra.c (create_access_replacement): Strip locations - from DECL_DEBUG_EXPRs. - -2013-03-08 Richard Biener <rguenther@suse.de> - - * tree-inline.c (expand_call_inline): Do not associate - a BLOCK with the location in BLOCK_SOURCE_LOCATION. - * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION. - -2013-03-08 Richard Biener <rguenther@suse.de> - - * tree-ssa-ter.c (is_replaceable_p): Do not TER across location - or block changes with -Og. Fix for location / block encoding - changes and PHI arguments with locations. - -2013-03-07 Steven Bosscher <steven@gcc.gnu.org> - - * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT - for all counters. - (struct output_info): Likewise. - (register_overhead): Remove bad gcc_assert. - (bitmap_find_bit): If there is only a single bitmap element, do not - count a miss as a search. - (print_statistics): Update for counter type changes. - (dump_bitmap_statistics): Likewise. Print headers such that they - are properly lined up with the printed counters. - -2013-03-07 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56559 - * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2, - check that it has only a single use. - -2013-03-07 Richard Biener <rguenther@suse.de> - - * doc/invoke.texi (fwhole-program): Discourage use in combination - with -flto. - -2013-03-06 Jakub Jelinek <jakub@redhat.com> - - * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def. - - PR tree-optimization/56539 - * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT - instead of GSI_CONTINUE_LINKING as last argument to - force_gimple_operand_gsi. Adjust function comment. - - * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add - aarch64-cores.def. - - PR middle-end/56548 - * expr.c (expand_cond_expr_using_cmove): When expanding cmove in - promoted mode, convert the result back to the original mode. - -2013-03-06 Richard Biener <rguenther@suse.de> - - PR middle-end/56294 - * tree-into-ssa.c (insert_phi_nodes_for): Add dumping. - (insert_updated_phi_nodes_compare_uids): New function. - (update_ssa): Sort symbols_to_rename after UID before - traversing it to insert PHI nodes. - -2013-03-06 Richard Biener <rguenther@suse.de> - - PR middle-end/50494 - * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): - Do not adjust alignment of DECL_IN_CONSTANT_POOL decls. - - Revert - 2013-02-13 Richard Biener <rguenther@suse.de> - - PR lto/50494 - * varasm.c (output_constant_def_1): Get the decl representing - the constant as argument. - (output_constant_def): Wrap output_constant_def_1. - (make_decl_rtl): Use output_constant_def_1 with the decl - representing the constant. - (build_constant_desc): Optionally re-use a decl already - representing the constant. - (tree_output_constant_def): Adjust. - -2013-03-06 Joey Ye <joey.ye@arm.com> - - PR lto/50293 - * gcc.c (convert_white_space): New function. - (main): Handles white space in function name. - -2013-03-06 Oleg Endo <olegendo@gcc.gnu.org> - - PR target/56529 - * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT - instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy - to SH_DIV_CALL_TABLE for TARGET_SH2. - * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib - list. - * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp, - call-table options. - -2013-03-05 Sterling Augustine <saugustine@google.com> - Cary Coutant <ccoutant@google.com> - - PR debug/55364 - * dwarf2out.c (resolve_addr): Don't call - remove_loc_list_addr_table_entries a second time for the same - expression. - -2013-03-05 Jakub Jelinek <jakub@redhat.com> - - PR debug/56510 - * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming. - (avoid_complex_debug_insns): New function. - (expand_debug_locations): Call it. - - PR rtl-optimization/56484 - * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending - lifetimes of hard registers on small register class machines. - -2013-03-05 David Holsgrove <david.holsgrove@xilinx.com> - - * config/microblaze/microblaze-protos.h: Rename - microblaze_is_interrupt_handler to microblaze_is_interrupt_variant. - * config/microblaze/microblaze.c (microblaze_attribute_table): Add - fast_interrupt. - (microblaze_fast_interrupt_function_p): New function. - (microblaze_is_interrupt_handler): Rename to - microblaze_is_interrupt_variant and add fast_interrupt check. - (microblaze_must_save_register): Use microblaze_is_interrupt_variant. - (save_restore_insns): Likewise. - (compute_frame_size): Likewise. - (microblaze_function_prologue): Add FAST_INTERRUPT_NAME. - (microblaze_globalize_label): Likewise. - * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME. - * config/microblaze/microblaze.md: Use wrapper - microblaze_is_interrupt_variant. - -2013-03-05 Kai Tietz <ktietz@redhat.com> - - * sdbout.c (sdbout_one_type): Switch to current function's section - supporting cold/hot. - -2013-03-05 David Holsgrove <david.holsgrove@xilinx.com> - - * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian, - -mxl-reorder. - -2013-03-05 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56461 - * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING, - if VALGRIND_GET_VBITS is defined, temporarily make object - memory all defined, and restore previous valgrind addressability - and definability afterwards. Free this_object at the end. - - PR middle-end/56461 - * lra.c (lra): Call lra_clear_live_ranges if live_p, - right before calling lra_create_live_ranges, also call it - when clearing live_p. Only call lra_clear_live_ranges - at the end if live_p. - - PR middle-end/56461 - * sched-deps.c (delete_dep_node): Free DEP_REPLACE. - -2013-03-05 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56521 - * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize - value-id. - -2013-03-05 Steven Bosscher <steven@gcc.gnu.org> - - PR c++/55135 - * except.h (remove_unreachable_eh_regions): New prototype. - * except.c (remove_eh_handler_splicer): New function, split out - of remove_eh_handler. - (remove_eh_handler): Use remove_eh_handler_splicer. Add comment - warning about running it on many EH regions one at a time. - (remove_unreachable_eh_regions_worker): New function, walk the - EH tree in depth-first order and remove non-marked regions. - (remove_unreachable_eh_regions): New function. - * tree-eh.c (mark_reachable_handlers): New function, split out - from remove_unreachable_handlers. - (remove_unreachable_handlers): Use mark_reachable_handlers and - remove_unreachable_eh_regions. - (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers - and remove_unreachable_eh_regions. - -2013-03-05 Richard Biener <rguenther@suse.de> - - PR middle-end/56525 - * loop-init.c (fix_loop_structure): Remove loops in two stages, - not freeing them until the end. - -2013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO. - -2013-03-05 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56270 - * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts - of loads after scheduling an SLP instance. - -2013-03-05 Jakub Jelinek <jakub@redhat.com> - - * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and - tic6x.exp. - (check_gcc_parallelize): Run guality.exp as a separate job from - vect.exp with unsorted.exp and $(dg_target_exps) separately from - struct-layout-1.exp with stackalign.exp. - - * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap. - - PR middle-end/56461 - * tree-vect-slp.c (vect_supported_load_permutation_p): Free - load_index sbitmap even if some bit in it isn't set. - - PR middle-end/56461 - * tree-ssa-loop-niter.c (bb_queue): Remove typedef. - (discover_iteration_bound_by_body_walk): Change queues to - vec<vec<basic_block> > and queue to vec<basic_block>. Fix up - spelling in comment. Call safe_push on queues[bound_index] directly. - Release queues[queue_index] in every iteration unconditionally. - Release bounds vector. - - PR middle-end/56461 - * tree-vect-stmts.c (free_stmt_vec_info_vec): Call - free_stmt_vec_info on any left-over stmt_vec_info in the vector. - * tree-vect-loop.c (vect_create_epilog_for_reduction): Release - inner_phis vector. - -2013-03-05 Richard Biener <rguenther@suse.de> - - PR lto/56515 - * tree-inline.c (remap_blocks_to_null): New function. - (expand_call_inline): When expanding a call stmt without - an associated block inline remap all callee blocks to NULL. - -2013-03-05 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/56494 - * simplify-rtx.c (simplify_truncation): If C is narrower than A, - optimize (truncate:A (subreg:B (truncate:C X) 0)) into - (subreg:A (truncate:C X) 0) instead of (truncate:A X). - - PR middle-end/56461 - * sel-sched-ir.c (free_sched_pools): Release - succs_info_pool.stack[succs_info_pool.max_top] vectors too - if succs_info_pool.max_top isn't -1. - - PR bootstrap/56509 - * opts.c (opts_obstack, opts_concat): Moved to... - * opts-common.c (opts_obstack, opts_concat): ... here. - -2013-03-04 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56461 - * diagnostic.c (diagnostic_append_note): Save and restore old prefix. - -2013-03-04 Martin Jambor <mjambor@suse.cz> - - * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in - all appropriate places. - -2013-01-04 Eric Botcazou <ebotcazou@adacore.com> - - PR tree-optimization/56424 - * ipa-split.c (split_function): Do not set the RSO flag if result is - not by reference and its type is a register type. - -2013-03-04 David Holsgrove <david.holsgrove@xilinx.com> - - * config/microblaze/microblaze.c (microblaze_valid_pic_const): New. - (microblaze_legitimate_pic_operand): Likewise. - * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): Call - new function microblaze_legitimate_pic_operand. - * config/microblaze/microblaze-protos.h - (microblaze_legitimate_pic_operand): Declare. - -2013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com> - - * config/microblaze/predicates.md (call_insn_simple_operand): - New predicate for supported rtx code types. - * config/microblaze/microblaze.md (call_internal1): Use - call_insn_simple_operand predicate. - -2013-03-04 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56461 - * tree-loop-distribution.c (ldist_gen): Call partition_free after each - partitions.ordered_remove. - - PR middle-end/56461 - * tree-vect-stmts.c (vectorizable_conversion): Don't call - vec_oprnds0.create (1) for modifier == NONE. - - PR middle-end/56461 - * tree-vect-stmts.c (vectorizable_shift): Don't call create methods - on vec_oprnds0 or vec_oprnds1 before loop, only call it on - vec_oprnds1 right before pushing anything to it for - scalar_shift_arg. - - PR middle-end/56461 - * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just - set nbbs to 0 instead of having separate code path. - (vect_analyze_loop_form): Call destroy_loop_vec_info with true - instead of false as last argument if returning NULL. - -2013-03-03 Sandra Loosemore <sandra@codesourcery.com> - - * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments; - the attribute is now called "target" instead of "option". - (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma. - * doc/tm.texi.in (Target Attributes): Likewise document the correct - attribute/pragma name for TARGET_OPTION_VALID_P and - TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup. - * doc/tm.texi: Regenerated. - -2013-03-02 David Holsgrove <david.holsgrove@xilinx.com> - - * config/microblaze/microblaze.c: - Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met. - * config/microblaze/microblaze.h: Add -mxl-reorder to - DRIVER_SELF_SPECS. - * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2. - instructions emitted if TARGET_REORDER. - * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1 - or 0 for -m/-mno case, but initialises as 2 to detect default use case - separately. - -2013-03-01 Xinliang David Li <davidxl@google.com> - - * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom - walk length. - -2013-03-01 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56461 - * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path - vector even when returning true. Fix up function comment formatting. - - PR middle-end/56461 - * ira-build.c (ira_loop_nodes_count): New variable. - (create_loop_tree_nodes): Initialize it. - (finish_loop_tree_nodes): Use it instead of looking at current_loops. - - PR middle-end/56461 - * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy - method on dr_chain and result_chain. - * tree-vect-stmts.c (vectorizable_store): Only call - result_chain.create if j == 0. - - PR middle-end/56461 - * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call - vec_oprnds0->release (); rather than vec_oprnds0->truncate (0) - before overwriting it. - -2013-03-01 Tobias Burnus <burnus@net-b.de> - - * doc/extended.texi (C Extensions): Change order in @menu - to match @node. - (Other MIPS Built-in Functions): Move last MIPS entry before - "picoChip Built-in Functions". - (SH Built-in Functions): Move after RX Built-in Functions. - * doc/gcc.texi (Introduction): Change order in @menu to match @node. - * doc/md.texi (Constraints): Ditto. - * gty.texi (Type Information): Ditto. - (User-provided marking routines for template types): Make subsection. - * doc/invoke.texi (AArch64 Options): Move before - "Adapteva Epiphany Options". - -2013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com> - Jakub Jelinek <jakub@redhat.com> - - PR sanitizer/56454 - * asan.c (gate_asan): Lookup no_sanitize_address instead of - no_address_safety_analysis attribute. - * doc/extend.texi (no_address_safety_attribute): Rename to - no_sanitize_address attribute, mention no_address_safety_analysis - attribute as deprecated alias. - -2013-02-28 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56461 - * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument - type to vec<vec<tree> > *. - * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs - to be vec<tree> instead of vec<tree> *, set vec_defs - to vNULL and call vec_defs.create (number_of_vects), adjust other - uses of vec_defs. - * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call, - vectorizable_condition): Adjust vect_get_slp_defs callers. - -2013-02-28 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64.c - (aarch64_float_const_representable): Remove unused variable. - -2013-02-28 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64.c (aarch64_mangle_type): Make static. - -2013-02-28 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64-builtins.c - (aarch64_init_simd_builtins): Make static. - -2013-02-28 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64.c - (aarch64_simd_make_constant): Make static. - -2013-02-28 Martin Jambor <mjambor@suse.cz> - - * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements - with no initialization to the RHS of debug statements. - -2013-02-28 Martin Jambor <mjambor@suse.cz> - - PR tree-optimization/56294 - * tree-sra.c (analyze_access_subtree): Create replacement declarations. - Adjust dumping. - (get_access_replacement): Do not call create_access_replacement. - Assert a replacement exists. - (get_repl_default_def_ssa_name): Create the replacement declaration - itself. - -2013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> - - * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and - final_end_function. - -2013-02-28 Marek Polacek <polacek@redhat.com> - - PR rtl-optimization/56466 - * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure - if we're changing a loop. - (peel_loops_completely): Likewise. - -2013-02-28 Paolo Carlini <paolo.carlini@oracle.com> - - PR c++/55813 - * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete. - -2013-02-28 Georg-Johann Lay <avr@gjlay.de> - - PR target/56445 - * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty - macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX, - INTX_FTYPE_FX, FX_FTYPE_INTX. - * config/avr/builtins.def: Adjust respective DEF_BUILTIN. - -2013-02-28 Georg-Johann Lay <avr@gjlay.de> - - * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285) - (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795) - (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb) - (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a) - (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1) - (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p) - (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb) - (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161) - (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e) - (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4) - (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3) - (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1) - (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva) - (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3) - (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU. - (avrxmega6): Increase max flash segments from 5 to 6. - * config/avr/t-multilib: Regenerate. - * config/avr/avr-tables.opt: Regenerate. - * doc/avr-mmcu.texi: Regenerate. - -2013-02-28 Georg-Johann Lay <avr@gjlay.de> - - * config/avr/avr.h (device_to_arch): Rename to device_to_ld. - (avr_device_to_arch): Rename to avr_device_to_ld. - (avr_device_to_as): New prototype. - (EXTRA_SPEC_FUNCTIONS): Add device_to_as. - (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=. - * config/avr/driver-avr.c (avr_device_to_as): New. - (avr_device_to_arch): Rename to avr_device_to_ld. - -2013-02-27 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56461 - * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy - method on dr_chain and result_chain. - - PR middle-end/56461 - * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call - pointer_set_destroy on not_executed_last_iteration. - - PR middle-end/56461 - * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector. - - PR middle-end/56461 - * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of - FOR_EACH_DEFINED_FUNCTION when freeing state. - - PR middle-end/56461 - * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before - pool_free. - (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before - overwriting it. - - PR middle-end/56461 - * ipa-cp.c (decide_whether_version_node): Call vec_free on - known_aggs[i].items and release known_aggs vector. - - PR middle-end/56461 - * ipa-reference.c (propagate): Free node_info even for alias nodes. - -2013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com> - - * config/microblaze/microblaze.c (microblaze_emit_compare): - Use xor for EQ/NE comparisions. - * config/microblaze/microblaze.md (cstoresf4): Add constraints - (cbranchsf4): Adjust operator to comparison_operator. - -2013-02-27 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56461 - * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed - vector. - * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and - vec_safe_push, always update *slot. - (redirect_edge_var_map_clear): Use vec_free. - (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve. - (free_var_map_entry): Use vec_free. - * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use - FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT. - -2013-02-27 Andrey Belevantsev <abel@ispras.ru> - - PR middle-end/45472 - * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr - when the may_trap_p bit of the exprs being merged differs. - Reorder tests for speculativeness in the logical and operator. - -2013-02-27 Jakub Jelinek <jakub@redhat.com> - - * incpath.c (add_standard_paths): Use reconcat instead of concat - where appropriate and avoid leaking memory. - - * opts.h: Include obstack.h. - (opts_concat): New prototype. - (opts_obstack): New declaration. - * opts.c (opts_concat): New function. - (opts_obstack): New variable. - (init_options_struct): Call gcc_init_obstack on opts_obstack. - (finish_options): Use opts_concat instead of concat - and XOBNEWVEC instead of XNEWVEC. - * opts-common.c (generate_canonical_option, decode_cmdline_option, - generate_option): Likewise. - * Makefile.in (OPTS_H): Depend on $(OBSTACK_H). - * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack. - - PR target/56455 - * stmt.c (expand_switch_as_decision_tree_p): If flag_pic - and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true. - -2013-02-26 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56461 - * lra-spills.c (lra_spill): Free spill_hard_reg at the end. - -2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com> - - * config/arm/arm.c (const_ok_for_dimode_op): Back out last change. - (arm_block_move_unaligned_straight): Likewise. - (arm_adjust_block_mem): Likewise. - -2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com> - - PR target/48901 - * config/lm32/lm32.c (gen_int_relational): Remove unused variables - temp, cond and label. - * config/lm32/lm32.md (ashlsi3): Remove unused variable one. - - PR target/52500 - * config/c6x/c6x.c (dbx_register_map): Change to unsigned. - * config/c6x/c6x.h (dbx_register_map): Update declaration. - - PR target/52501 - * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end - of prologue/epilogue functions. - - PR target/52550 - * config/tilegx/tilegx.c (tilegx_expand_prologue): - Remove unused variable cfa_offset. - * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise. - - PR target/54639 - * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset - type promotion to unsigned. - - PR target/54640 - * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent - for HOST_WIDE_INT of 32 bit / same size as int. - (arm_block_move_unaligned_straight): Likewise. - (arm_adjust_block_mem): Likewise. - - PR target/54662 - * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of - ALL_CFLAGS. - -2013-02-26 Marek Polacek <polacek@redhat.com> - - PR tree-optimization/56426 - * tree-ssa-loop.c (tree_ssa_loop_init): Always call - scev_initialize. - -2013-02-26 Richard Biener <rguenther@suse.de> - - PR target/56444 - * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove - unused variable loops. - -2013-02-26 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56448 - * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at - TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF. - Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or - later operands of the references, or even first operand for - INDIRECT_REF, TARGET_MEM_REF or MEM_REF. - - PR tree-optimization/56443 - * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For - overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument - to type_for_mode langhook. - -2013-02-25 Matt Turner <mattst88@gmail.com> - - * doc/invoke.texi: Document r4700. - -2013-02-25 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56175 - * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate, - split out from ... - (simplify_bitwise_binary): ... here. Also guard the conversion - of (type) X op CST to (type) (X op ((type-x) CST)) with it. - -2013-02-25 Catherine Moore <clm@codesourcery.com> - - Revert: - 2013-02-24 Catherine Moore <clm@codesourcery.com> - Maciej W. Rozycki <macro@codesourcery.com> - Tom de Vries <tom@codesourcery.com> - Nathan Sidwell <nathan@codesourcery.com> - Iain Sandoe <iain@codesourcery.com> - Nathan Froyd <froydnj@codesourcery.com> - Chao-ying Fu <fu@mips.com> - - * doc/extend.texi (micromips, nomicromips, nocompression): - Document new function attributes. - * doc/invoke.texi (minterlink-compressed, mmicromips, - m14k, m14ke, m14kec): Document new options. - (minterlink-mips16): Update documentation. - * doc/md.texi (ZC, ZD): Document new constraints. - * configure.ac (gcc_cv_as_micromips): Check if linker - supports the .set micromips directive. - * configure: Regenerate. - * config.in: Regenerate. - * config/mips/mips-tables.opt: Regenerate. - * config/mips/micromips.md: New file. - * constraints.md (ZC, AD): New constraints. - * config/mips/predicates.md (movep_src_register): New predicate. - (movep_src_operand): New predicate. - (non_volatile_mem_operand): New predicate. - * config/mips/mips.md (multimem): New type. - (length): Differentiate between 17-bit and 18-bit branch offsets. - (MOVEP1, MOVEP2): New mode iterator. - (mov_<load>l): Use ZC constraint. - (mov_<load>r): Likewise. - (mov_<store>l): Likewise. - (mov_<store>r): Likewise. - (*branch_equality<mode>_inverted): Add microMIPS support. - (*branch_equality<mode>): Likewise. - (*jump_absolute): Likewise. - (indirect_jump_<mode>): Likewise. - (tablejump_<mode>): Likewise. - (<optab>_internal): Likewise. - (sibcall_internal): Likewise. - (sibcall_value_internal): Likewise. - (prefetch): Use constraint ZD. - * config/mips/mips.opt (minterlink-compressed): New option. - (minterlink-mips16): Now an alias for minterlink-compressed. - (mmicromips): New option. - * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint. - (compare_and_swap_12): Likewise. - (sync_add<mode>): Likewise. - (sync_<optab>_12): Likewise. - (sync_old_<optab>_12): Likewise. - (sync_new_<optab>_12): Likewise. - (sync_nand_12): Likewise. - (sync_old_nand_12): Likewise. - (sync_new_nand_12): Likewise. - (sync_sub<mode>): Likewise. - (sync_old_add<mode>): Likewise. - (sync_old_sub<mode>): Likewise. - (sync_new_add<mode>): Likewise. - (sync_new_sub<mode>): Likewise. - (sync_<optab><mode>): Likewise. - (sync_old_<optab><mode>): Likewise. - (sync_new_<optab><mode>): Likewise. - (sync_nand<mode>): Likewise. - (sync_old_nand<mode>): Likewise. - (sync_new_nand<mode>): Likewise. - (sync_lock_test_and_set<mode>): Likewise. - (test_and_set_12): Likewise. - (atomic_compare_and_swap<mode>): Likewise. - (atomic_exchange<mode>_llsc): Likewise. - (atomic_fetch_add<mode>_llsc): Likewise. - * config/mips/mips-cpus.def (m14kc, m14k): New processors. - * config/mips/mips-protos.h (umips_output_save_restore): New prototype. - (umips_save_restore_pattern_p): Likewise. - (umips_load_store_pair_p): Likewise. - (umips_output_load_store_pair): Likewise. - (umips_movep_target_p): Likewise. - (umips_12bit_offset_address_p): Likewise. - * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS. - (mips_base_mips16): Rename this... - (mips_base_compression_flags): ...to this. Update all uses. - (mips_attribute_table): Add micromips, nomicromips and nocompression. - (mips_mips16_decl_p): Delete. - (mips_nomips16_decl_p): Delete. - (mips_get_compress_on_flags): New function. - (mips_get_compress_off_flags): New function. - (mips_get_compress_mode): New function. - (mips_get_compress_on_name): New function. - (mips_get_compress_off_name): New function. - (mips_insert_attributes): Support multiple compression types. - (mips_merge_decl_attributes): Likewise. - (umips_12bit_offset_address_p): New function. - (mips_start_function_definition): Emit .set micromips directive. - (mips_call_may_need_jalx_p): New function. - (mips_function_ok_for_sibcall): Add microMIPS support. - (mips_print_operand_punctuation): Support short delay slots and - compact jumps. - (umips_swm_mask, umips_swm_encoding): New. - (umips_build_save_restore): New function. - (mips_for_each_saved_gpr_and_fpr): Add microMIPS support. - (was_mips16_p): Remove. - (old_compression_mode): New. - (mips_set_compression_mode): New function. - (mips_set_current_function): Add microMIPS support. - (mips_option_override): Likewise. - (umips_save_restore_pattern_p): New function. - (umips_output_save_restore): New function. - (umips_load_store_pair_p_1): New function. - (umips_load_store_pair_p): New function. - (umips_output_load_store_pair_1): New function. - (umips_output_load_store_pair): New function. - (umips_movep_target_p) New function. - (mips_prepare_pch_save): Add microMIPS support. - * config/mips/mips.h (TARGET_COMPRESSION): New. - (TARGET_CPU_CPP_BUILTINS): Update macro - to use new compression flags and to support microMIPS. - (MIPS_ISA_LEVEL_SPEC): Add m14k processors. - (MIPS_ARCH_FLOAT_SPEC): Likewise. - (ISA_HAS_LWXS): Include TARGET_MICROMIPS. - (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS. - (ASM_SPEC): Support mmicromips and mno-micromips. - (M16STORE_REG_P): New macro. - (MIPS_CALL): Support TARGET_MICROMIPS. - (MICROMIPS_J): New macro. - (mips_base_mips16): Rename this... - (mips_base_compression_flags): ...to this. - (UMIPS_12BIT_OFFSET_P): New macro. - * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS. - (MULTILIB_DIRNAMES): Likewise. - -2013-02-25 Tom de Vries <tom@codesourcery.com> - - PR rtl-optimization/56131 - * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment. - * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and - NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL. - -2013-02-25 Tobias Burnus <burnus@net-b.de> - - * doc/invoke.texi (-fsanitize=): Move from optimization - to debugging options. - -2013-02-25 Andrey Belevantsev <abel@ispras.ru> - - * sched-deps.c (sched_analyze_insn): Fix typo in comment. - -2013-02-25 Andrey Belevantsev <abel@ispras.ru> - Alexander Monakov <amonakov@ispras.ru> - - PR middle-end/56077 - * sched-deps.c (sched_analyze_insn): When reg_pending_barrier, - flush pending lists also on non-jumps. Adjust comment. - -2013-02-24 Catherine Moore <clm@codesourcery.com> - Maciej W. Rozycki <macro@codesourcery.com> - Tom de Vries <tom@codesourcery.com> - Nathan Sidwell <nathan@codesourcery.com> - Iain Sandoe <iain@codesourcery.com> - Nathan Froyd <froydnj@codesourcery.com> - Chao-ying Fu <fu@mips.com> - - * doc/extend.texi (micromips, nomicromips, nocompression): - Document new function attributes. - * doc/invoke.texi (minterlink-compressed, mmicromips, - m14k, m14ke, m14kec): Document new options. - (minterlink-mips16): Update documentation. - * doc/md.texi (ZC, ZD): Document new constraints. - * configure.ac (gcc_cv_as_micromips): Check if linker - supports the .set micromips directive. - * configure: Regenerate. - * config.in: Regenerate. - * config/mips/mips-tables.opt: Regenerate. - * config/mips/micromips.md: New file. - * constraints.md (ZC, AD): New constraints. - * config/mips/predicates.md (movep_src_register): New predicate. - (movep_src_operand): New predicate. - (non_volatile_mem_operand): New predicate. - * config/mips/mips.md (multimem): New type. - (length): Differentiate between 17-bit and 18-bit branch offsets. - (MOVEP1, MOVEP2): New mode iterator. - (mov_<load>l): Use ZC constraint. - (mov_<load>r): Likewise. - (mov_<store>l): Likewise. - (mov_<store>r): Likewise. - (*branch_equality<mode>_inverted): Add microMIPS support. - (*branch_equality<mode>): Likewise. - (*jump_absolute): Likewise. - (indirect_jump_<mode>): Likewise. - (tablejump_<mode>): Likewise. - (<optab>_internal): Likewise. - (sibcall_internal): Likewise. - (sibcall_value_internal): Likewise. - (prefetch): Use constraint ZD. - * config/mips/mips.opt (minterlink-compressed): New option. - (minterlink-mips16): Now an alias for minterlink-compressed. - (mmicromips): New option. - * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint. - (compare_and_swap_12): Likewise. - (sync_add<mode>): Likewise. - (sync_<optab>_12): Likewise. - (sync_old_<optab>_12): Likewise. - (sync_new_<optab>_12): Likewise. - (sync_nand_12): Likewise. - (sync_old_nand_12): Likewise. - (sync_new_nand_12): Likewise. - (sync_sub<mode>): Likewise. - (sync_old_add<mode>): Likewise. - (sync_old_sub<mode>): Likewise. - (sync_new_add<mode>): Likewise. - (sync_new_sub<mode>): Likewise. - (sync_<optab><mode>): Likewise. - (sync_old_<optab><mode>): Likewise. - (sync_new_<optab><mode>): Likewise. - (sync_nand<mode>): Likewise. - (sync_old_nand<mode>): Likewise. - (sync_new_nand<mode>): Likewise. - (sync_lock_test_and_set<mode>): Likewise. - (test_and_set_12): Likewise. - (atomic_compare_and_swap<mode>): Likewise. - (atomic_exchange<mode>_llsc): Likewise. - (atomic_fetch_add<mode>_llsc): Likewise. - * config/mips/mips-cpus.def (m14kc, m14k): New processors. - * config/mips/mips-protos.h (umips_output_save_restore): New prototype. - (umips_save_restore_pattern_p): Likewise. - (umips_load_store_pair_p): Likewise. - (umips_output_load_store_pair): Likewise. - (umips_movep_target_p): Likewise. - (umips_12bit_offset_address_p): Likewise. - * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS. - (mips_base_mips16): Rename this... - (mips_base_compression_flags): ...to this. Update all uses. - (mips_attribute_table): Add micromips, nomicromips and nocompression. - (mips_mips16_decl_p): Delete. - (mips_nomips16_decl_p): Delete. - (mips_get_compress_on_flags): New function. - (mips_get_compress_off_flags): New function. - (mips_get_compress_mode): New function. - (mips_get_compress_on_name): New function. - (mips_get_compress_off_name): New function. - (mips_insert_attributes): Support multiple compression types. - (mips_merge_decl_attributes): Likewise. - (umips_12bit_offset_address_p): New function. - (mips_start_function_definition): Emit .set micromips directive. - (mips_call_may_need_jalx_p): New function. - (mips_function_ok_for_sibcall): Add microMIPS support. - (mips_print_operand_punctuation): Support short delay slots and - compact jumps. - (umips_swm_mask, umips_swm_encoding): New. - (umips_build_save_restore): New function. - (mips_for_each_saved_gpr_and_fpr): Add microMIPS support. - (was_mips16_p): Remove. - (old_compression_mode): New. - (mips_set_compression_mode): New function. - (mips_set_current_function): Add microMIPS support. - (mips_option_override): Likewise. - (umips_save_restore_pattern_p): New function. - (umips_output_save_restore): New function. - (umips_load_store_pair_p_1): New function. - (umips_load_store_pair_p): New function. - (umips_output_load_store_pair_1): New function. - (umips_output_load_store_pair): New function. - (umips_movep_target_p) New function. - (mips_prepare_pch_save): Add microMIPS support. - * config/mips/mips.h (TARGET_COMPRESSION): New. - (TARGET_CPU_CPP_BUILTINS): Update macro - to use new compression flags and to support microMIPS. - (MIPS_ISA_LEVEL_SPEC): Add m14k processors. - (MIPS_ARCH_FLOAT_SPEC): Likewise. - (ISA_HAS_LWXS): Include TARGET_MICROMIPS. - (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS. - (ASM_SPEC): Support mmicromips and mno-micromips. - (M16STORE_REG_P): New macro. - (MIPS_CALL): Support TARGET_MICROMIPS. - (MICROMIPS_J): New macro. - (mips_base_mips16): Rename this... - (mips_base_compression_flags): ...to this. - (UMIPS_12BIT_OFFSET_P): New macro. - * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS. - (MULTILIB_DIRNAMES): Likewise. - -2013-02-24 Jakub Jelinek <jakub@redhat.com> - - PR target/52555 - * target-globals.c (save_target_globals): For init_reg_sets and - target_reinit remporarily set this_fn_optabs to this_target_optabs. - -2013-02-22 James Grennahlgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64-simd-builtins.def: Add copyright header. - * config/aarch64/t-aarch64 - (aarch64-builtins.o): Depend on aarch64-simd-builtins.def. - -2013-02-22 Vladimir Makarov <vmakarov@redhat.com> - - PR inline-asm/56148 - * lra-constraints.c (process_alt_operands): Reload operand - conflicting with earlier clobber only if no more other conflicting - operands. - -2013-02-22 Jakub Jelinek <jakub@redhat.com> - - PR sanitizer/56393 - * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o - if not linking a shared library. - -2013-02-22 Seth LaForge <sethml@google.com> - - * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian. - -2013-02-22 Greta Yorsh <Greta.Yorsh@arm.com> - - * config/arm/arm.md (split for extendsidi): Update condition. - (zero_extend<mode>di2,extend<mode>di2): Add an alternative. - * config/arm/iterators.md (qhs_extenddi_cstr): Likewise. - (qhs_zextenddi_cstr): Likewise. - -2013-02-21 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56420 - * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to - avoid signed wrapping. - (expand_mult): Handle properly multiplication by - ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by - ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior - in the compiler if coeff is HOST_WIDE_INT_MIN. - (expand_divmod): Don't make ext_op1 static, change it's type to uhwi. - Avoid undefined behavior in -INTVAL (op1). - - PR rtl-optimization/50339 - * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt - field. - * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT. - (compute_costs): Call compute_splitting_shift also for ASHIFTRT - into splitting_ashiftrt field. - (find_decomposable_shift_zext, resolve_shift_zext): Handle also - ASHIFTRT. - (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT - choices. - -2013-02-20 Aldy Hernandez <aldyh@redhat.com> - - PR middle-end/56108 - * trans-mem.c (execute_tm_mark): Do not expand transactions that - are sure to go irrevocable. - -2013-02-21 Hans-Peter Nilsson <hp@axis.com> - - * doc/rtl.texi (vec_concat, vec_duplicate): Mention that - scalars are valid operands. - -2013-02-21 Martin Jambor <mjambor@suse.cz> - - PR tree-optimization/56310 - * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy - only matching indices and non-negative final offsets. - (intersect_aggregates_with_edge): Pass src_idx to - agg_replacements_to_vector. Pass src_idx insstead of index to - intersect_with_agg_replacements. - -2013-02-21 Martin Jambor <mjambor@suse.cz> - - * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold - instead of hard-wired defaults. - -2013-02-21 Maciej W. Rozycki <macro@codesourcery.com> - - * doc/invoke.texi (MIPS Options): Update documentation of the - floating-point multiply-accumulate instruction restrictions. - -2013-02-21 Kostya Serebryany <kcc@google.com> - - * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as - asan_shadow_offset on x86_64 linux. - -2013-02-21 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56415 - Revert - 2013-02-11 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56273 - * tree-vrp.c (simplify_cond_using_ranges): Disable for the - first VRP run. - -2013-02-21 Jakub Jelinek <jakub@redhat.com> - - PR bootstrap/56258 - * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item - instead of @itemx. - - PR inline-asm/56405 - * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't - use movmisalign or extract_bit_field for EXPAND_MEMORY modifier. - -2013-02-20 Jan Hubicka <jh@suse.cz> - - PR tree-optimization/56265 - * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph when - target is referenced for first time. - -2013-02-20 Richard Biener <rguenther@suse.de> - - * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals. - * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise. - * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise. - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do - not return anything. - (rename_ssa_copies): Do not remove unused locals. - * tree-ssa-ccp.c (do_ssa_ccp): Likewise. - * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first. - * passes.c (execute_function_todo): Do not schedule unused locals - removal if cleanup_tree_cfg did something. - * tree-ssa-live.c (remove_unused_locals): Dump statistics - about the number of removed locals. - -2013-02-20 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56398 - * tree-vect-loop-manip.c (adjust_debug_stmts): Skip - SSA default defs. - -2013-02-20 Martin Jambor <mjambor@suse.cz> - - PR tree-optimization/55334 - * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to - restricted pointers to arrays. - -2013-02-20 Richard Biener <rguenther@suse.de> - Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56396 - * tree-ssa-ccp.c (n_const_val): New static variable. - (get_value): Return NULL for SSA names we don't have a lattice - entry for. - (ccp_initialize): Initialize n_const_val. - * tree-ssa-copy.c (n_copy_of): New static variable. - (init_copy_prop): Initialize n_copy_of. - (get_value): Return NULL_TREE for SSA names we don't have a - lattice entry for. - -2013-02-20 Martin Jambor <mjambor@suse.cz> - - * ipa-cp.c (initialize_node_lattices): Fix dumping condition. - -2013-02-20 Richard Biener <rguenther@suse.de> - - * genpreds.c (write_lookup_constraint): Do not compare first - letter of the constraint again. - -2013-02-20 Richard Biener <rguenther@suse.de> - - * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits - and ceil_log2. - (get_use_iv_cost): Terminate hashtable walk when coming across - an empty entry. - -2013-02-20 Igor Zamyatin <igor.zamyatin@intel.com> - - * config/i386/i386.c (initial_ix86_tune_features): Turn on fp - reassociation for avx2 targets. - -2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com> - - * config/microblaze/microblaze.c: microblaze_has_clz = 0 - Add version check for v8.10.a to enable microblaze_has_clz - * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined - version and TARGET_PATTERN_COMPARE check - * config/microblaze/microblaze.md: New clzsi2 instruction - -2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com> - - * config/microblaze/microblaze.md (call_value_intern): Check symbol is - function before branching. - -2012-02-19 Andrey Belevantsev <abel@ispras.ru> - - * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set - DUMP_INSN_RTX_UID. - (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim. - -2012-02-19 Andrey Belevantsev <abel@ispras.ru> - - PR middle-end/55889 - * sel-sched.c: Include ira.h. - (implicit_clobber_conflict_p): New function. - (moveup_expr): Use it. - * Makefile.in (sel-sched.o): Depend on ira.h. - -2013-02-19 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56384 - * tree-ssa-sccvn.h (struct vn_phi_s): Add type member. - (vn_hash_type): Split out from ... - (vn_hash_constant_with_type): ... here. - * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type. - (vn_phi_eq): Compare types from vn_phi_s structure. - (vn_phi_lookup): Populate vn_phi_s type. - (vn_phi_insert): Likewise. - -2013-02-19 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56350 - * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false - if haven't found reduction or nested cycle operand, rather than - asserting we must find it. - - PR tree-optimization/56381 - * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument - to fold_build3. - -2013-02-18 Aldy Hernandez <aldyh@redhat.com> - Jakub Jelinek <jakub@redhat.com> - - PR target/52555 - * genopinit.c (raw_optab_handler): Use this_fn_optabs. - (swap_optab_enable): Same. - (init_all_optabs): Use argument instead of global. - * tree.h (struct tree_optimization_option): New field target_optabs. - * expr.h (init_all_optabs): Add argument to prototype. - (TREE_OPTIMIZATION_OPTABS): New. - (save_optabs_if_changed): Protoize. - * optabs.h: Declare this_fn_optabs. - * optabs.c (save_optabs_if_changed): New. - Declare this_fn_optabs. - (init_optabs): Add argument to init_all_optabs() call. - * function.c (invoke_set_current_function_hook): Handle per - function optabs. - * function.h (struct function): New field optabs. - * config/mips/mips.c (mips_set_mips16_mode): Handle when - optimization_current_node has changed. - * target-globals.h (save_target_globals_default_opts): Protoize. - * target-globals.c (save_target_globals_default_opts): New. - -2013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> - - PR target/56347 - * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark - registers %fr12 and %fr12R as call used. - - PR target/56214 - * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode - and HImode, require all displacements to be an integer multiple of - their mode size. - * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses, - only allow QImode and HImode when reload is in progress and strict is - true. Likewise for symbolic addresses. Use base14_operand to check - displacements in REG+BASE addresses. - -2013-02-18 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56366 - * tree-vect-loop.c (get_initial_def_for_induction): Properly - handle sign-conversion of outer-loop initial induction value. - -2013-02-18 Richard Biener <rguenther@suse.de> - - PR middle-end/56349 - * cfghooks.c (merge_blocks): If we merge a latch into another - block adjust references to it. - * cfgloop.c (flow_loops_find): Reset latch before recomputing it. - (verify_loop_structure): Verify that a recorded latch is in fact - a latch. - -2013-02-18 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56321 - * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly - order SSA name release and virtual operand unlinking. - -2013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com> - - * config/microblaze/microblaze.md (save_stack_block): Define. - (restore_stack_block): Likewise. - -2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com> - - * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1. - * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1. - * config/microblaze/microblaze.c (microblaze_option_override): - Bail out early for PIC modes when target does not support PIC. - -2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com> - - * config/microblaze/microblaze.c (microblaze_asm_trampoline_template): - Replace with a microblaze version. - (microblaze_trampoline_init): Adapt for microblaze. - * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for - microblaze. - -2013-02-16 Jakub Jelinek <jakub@redhat.com> - Dodji Seketeli <dodji@redhat.com> - - PR asan/56330 - * asan.c (get_mem_refs_of_builtin_call): White space and style - cleanup. - (instrument_mem_region_access): Do not forget to always put - instrumentation of the of 'base' and 'base + len' in a "if (len != - 0) statement, even for cases where either 'base' or 'base + len' - are not instrumented -- because they have been previously - instrumented. Simplify the logic by putting all the statements - instrument 'base + len' inside a sequence, and then insert that - sequence right before the current insertion point. Then, to - instrument 'base + len', just get an iterator on that statement. - And do not forget to update the pointer to iterator the function - received as argument. - -2013-02-15 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/56348 - * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos. - -2013-02-15 Steven Bosscher <steven@gcc.gnu.org> - - * graph.c (start_graph_dump): Print dumpfile base as digraph label. - (clean_graph_dump_file): Pass base to start_graph_dump. - -2013-02-14 Richard Henderson <rth@redhat.com> - - PR target/55941 - * lower-subreg.c (simple_move): Check dest mode instead of src mode. - -2013-02-14 Steven Bosscher <steven@gcc.gnu.org> - - * collect2-aix.h: Define F_LOADONLY. - -2013-02-14 Richard Biener <rguenther@suse.de> - - PR lto/50494 - * varasm.c (output_constant_def_1): Get the decl representing - the constant as argument. - (output_constant_def): Wrap output_constant_def_1. - (make_decl_rtl): Use output_constant_def_1 with the decl - representing the constant. - (build_constant_desc): Optionally re-use a decl already - representing the constant. - (tree_output_constant_def): Adjust. - -2013-02-14 Dodji Seketeli <dodji@redhat.com> - - Fix an asan crash - * asan.c (instrument_builtin_call): Really put the length of the - second source argument into src1_len. - -2013-02-13 Jakub Jelinek <jakub@redhat.com> - - * asan.c (create_cond_insert_point): Add create_then_fallthru_edge - argument. If it is false, don't create edge from then_bb to - fallthru_bb. - (insert_if_then_before_iter): Pass true to it. - (build_check_stmt): Pass false to it. - (transform_statements): Flush hash table only on extended basic - block boundaries, rather than at the beginning of every bb. - Don't flush hash table on nonfreeing_call_p calls. - * tree-flow.h (nonfreeing_call_p): New prototype. - * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static. - -2013-02-13 David S. Miller <davem@davemloft.net> - - * expmed.c (expand_shift_1): Only strip scalar integer subregs. - -2013-02-13 Vladimir Makarov <vmakarov@redhat.com> - - PR target/56184 - * ira.c (max_regno_before_ira): Move from ... - (ira): ... here. - (fix_reg_equiv_init): Use max_regno_before_ira instead of - vec_safe_length. - -2013-02-13 Jakub Jelinek <jakub@redhat.com> - - * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change. - -2013-02-13 Richard Biener <rguenther@suse.de> - - PR lto/56295 - * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping - globals in MEM_REFs. - -2013-02-13 Richard Biener <rguenther@suse.de> - - * loop-init.c (loop_optimizer_init): Clear loop state when - re-initializing preserved loops. - * loop-unswitch.c (unswitch_single_loop): Return whether - we unswitched the loop. Do not verify loop state here. - (unswitch_loops): When we unswitched a loop discover new - loops. - -2013-02-13 Kostya Serebryany <kcc@google.com> - - * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset on x86_64 - linux. - * sanitizer.def: Rename __asan_init to __asan_init_v1. - -2013-02-12 Dodji Seketeli <dodji@redhat.com> - - Avoid instrumenting duplicated memory access in the same basic block - * Makefile.in (asan.o): Add new dependency on hash-table.h - * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types. - (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table) - (has_stmt_been_instrumented_p, empty_mem_ref_hash_table) - (free_mem_ref_resources, has_mem_ref_been_instrumented) - (has_stmt_been_instrumented_p, update_mem_ref_hash_table) - (get_mem_ref_of_assignment): New functions. - (get_mem_refs_of_builtin_call): Extract from - instrument_builtin_call and tweak a little bit to make it fit with - the new signature. - (instrument_builtin_call): Use the new - get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead - of is_gimple_builtin_call. - (instrument_derefs, instrument_mem_region_access): Insert the - instrumented memory reference into the hash table. - (maybe_instrument_assignment): Renamed instrument_assignment into - this, and change it to advance the iterator when instrumentation - actually happened and return true in that case. This makes it - homogeneous with maybe_instrument_assignment, and thus give a - chance to callers to be more 'regular'. - (transform_statements): Clear the memory reference hash table - whenever we enter a new BB, when we cross a function call, or when - we are done transforming statements. Use - maybe_instrument_assignment instead of instrumentation. No more - need to special case maybe_instrument_assignment and advance the - iterator after calling it; it's now handled just like - maybe_instrument_call. Update comment. - -2013-02-13 Richard Biener <rguenther@suse.de> - - * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): - Fix loop discovery code. - -2013-02-12 Vladimir Makarov <vmakarov@redhat.com> - - PR inline-asm/56148 - * lra-constraints.c (process_alt_operands): Match early clobber - operand with itself. Check conflicts with earlyclobber only if - the operand is not reloaded. Prefer to reload conflicting operand - if earlyclobber and matching operands are the same. - -2013-02-12 Richard Biener <rguenther@suse.de> - - PR lto/56297 - * lto-streamer-out.c (write_symbol): Do not output symbols - for hard register variables. - -2013-02-12 Georg-Johann Lay <avr@gjlay.de> - - PR target/54222 - * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders. - (umulsidi3_insn, mulsidi3_insn): New insns. - -2013-02-12 Christophe Lyon <christophe.lyon@linaro.org> - - * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type. - (struct tune_params): Add vec_costs field. - * config/arm/arm.c (arm_builtin_vectorization_cost) - (arm_add_stmt_cost): New functions. - (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST) - (TARGET_VECTORIZE_ADD_STMT_COST): Define. - (arm_default_vec_cost): New struct of type cpu_vec_costs. - (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune) - (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune) - (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune) - (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field. - -2013-02-12 Richard Biener <rguenther@suse.de> - - PR lto/56295 - * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off - decls again if possible. - -2013-02-12 Richard Biener <rguenther@suse.de> - - PR middle-end/56288 - * tree-ssa.c (verify_ssa_name): Fix check, move - SSA_NAME_IN_FREE_LIST check up. - -2013-02-12 Jakub Jelinek <jakub@redhat.com> - Steven Bosscher <steven@gcc.gnu.org> - - PR rtl-optimization/56151 - * optabs.c (add_equal_note): Don't return 0 if target is a MEM, - equal to op0 or op1, and last_insn pattern is CODE operation - with MEM dest and one of the operands matches that MEM. - -2013-02-11 Sriraman Tallam <tmsriramgoogle.com> - - * doc/extend.texi: Document Function Multiversioning and "default" - parameter string to target attribute. - * config/i386/i386.c (get_builtin_code_for_version): Return 0 if - target attribute parameter is "default". - (ix86_compare_version_priority): Remove checks for target attribute. - (ix86_mangle_function_version_assembler_name): Change error to sorry. - Remove check for target attribute equal to NULL. Add assert. - (ix86_generate_version_dispatcher_body): Change error to sorry. - -2013-02-11 Iain Sandoe <iain@codesourcery.com> - Jack Howarth <howarth@bromo.med.uc.edu> - Patrick Marlier <patrick.marlier@gmail.com> - - PR libitm/55693 - * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and - define ENDFILE_SPEC as TM_DESTRUCTOR. - * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR. - -2013-02-11 Alexander Potapenko <glider@google.com> - Jack Howarth <howarth@bromo.med.uc.edu> - Jakub Jelinek <jakub@redhat.com> - - PR sanitizer/55617 - * config/darwin.c (cdtor_record): Rename ctor_record. - (sort_cdtor_records): Rename sort_ctor_records. - (finalize_dtors): New routine to sort destructors by - priority before use in assemble_integer. - (machopic_asm_out_destructor): Use finalize_dtors if needed. - -2013-02-11 Uros Bizjak <ubizjak@gmail.com> - - PR rtl-optimization/56275 - * simplify-rtx.c (avoid_constant_pool_reference): Check that - offset is non-negative and less than cmode size before - calling simplify_subreg. - -2013-02-11 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56264 - * cfgloop.h (fix_loop_structure): Adjust prototype. - * loop-init.c (fix_loop_structure): Return the number of - newly discovered loops. - * tree-cfgcleanup.c (repair_loop_structures): When new loops - are discovered, do a full loop-closed SSA rewrite. - -2013-02-11 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56273 - * tree-vrp.c (simplify_cond_using_ranges): Disable for the - first VRP run. - (check_array_ref): Fix missing newline in dumps. - (search_for_addr_array): Likewise. - -2013-02-09 David Edelsohn <dje.gcc@gmail.com> - - * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine. - -2013-02-09 Jakub Jelinek <jakub@redhat.com> - - PR target/56256 - * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define. - -2013-02-08 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/56246 - * lra-constraints.c (simplify_operand_subreg): Try to reuse - reload pseudo. - * lra.c (lra): Clear lra_optional_reload_pseudos only when all - constraints are satisfied. - -2013-02-08 Jeff Law <law@redhat.com> - - PR debug/53948 - * emit-rtl.c (reg_is_parm_p): New function. - * regs.h (reg_is_parm_p): New prototype. - * ira-conflicts.c (ira_build_conflicts): Allow parameters in - callee-clobbered registers. - -2013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/56043 - * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): - If there is no implicit builtin declaration, just return NULL. - -2013-02-08 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/sse.md (FMAMODEM): New mode iterator. - (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM - mode iterator. Do not use TARGET_SSE_MATH in insn constraint. - -2013-02-08 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only - when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set. - * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto. - -2013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com> - - * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT. - (microblaze*-*-elf): Likewise. - * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to - LINK_SPEC. - * config/microblaze/microblaze-c.c: Add builtin defines for - _LITTLE_ENDIAN and _BIG_ENDIAN. - * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and - add to TARGET_DEFAULT flags. - Expand ASM_SPEC and LINK_SPEC. - Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN. - * config/microblaze/microblaze.md: Update extendsidi2 and - movdi_internal instructions to use low-order / high-order reg - print_operands. - * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian - options and inversemask / mask of LITTLE_ENDIAN. - * config/microblaze/t-microblaze: Expand multilib options to - include mlittle-endian (le) and update exceptions patterns. - -2013-02-08 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/56195 - * lra-constraints.c (get_reload_reg): Don't reuse regs - if they have smaller mode than requested, if they have - wider mode than requested, try to return a SUBREG. - - PR tree-optimization/56250 - * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize - if type is unsigned and code isn't MULT_EXPR. - -2013-02-08 Georg-Johann Lay <avr@gjlay.de> - - PR tree-optimization/56064 - * fixed-value.c (fixed_from_double_int): Sign/zero extend payload - bits according to mode. - * fixed-value.h (fixed_from_double_int) - (const_fixed_from_double_int): Adjust comments. - -2013-02-08 Richard Biener <rguenther@suse.de> - - PR lto/56231 - * lto-streamer.h (struct data_in): Remove current_file, current_line - and current_col members. - * lto-streamer-out.c (lto_output_location): Stream changed bits - en-block for efficiency. - * lto-streamer-in.c (clear_line_info): Remove. - (lto_input_location): Cache current file, line and column - globally via local statics. Read changed bits en-block. - (input_function): Do not call clear_line_info. - (lto_read_body): Likewise. - (lto_input_toplevel_asms): Likewise. - -2013-02-08 Michael Matz <matz@suse.de> - - PR tree-optimization/52448 - * tree-ssa-phiopt.c (struct name_to_bb): Add phase member. - (nt_call_phase): New static. - (add_or_mark_expr): Only mark accesses with newer phase than any - call seen. - (nonfreeing_call_p): New. - (nt_init_block): Update nt_call_phase, mark blocks as visited. - (nt_fini_block): Keep blocks marked as visited. - (get_non_trapping): Initialize nt_call_phase, and reset aux pointer. - -2013-02-08 Richard Biener <rguenther@suse.de> - - * ira.c (ira): Free broken dominator information. - -2013-02-08 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro. - -2013-02-08 Marek Polacek <polacek@redhat.com> - - * cfgloop.c (verify_loop_structure): Add more checking of headers. - -2013-02-08 Richard Biener <rguenther@suse.de> - - PR middle-end/56181 - * cfgloop.h (flow_loops_find): Adjust. - (bb_loop_header_p): Declare. - * cfgloop.c (bb_loop_header_p): New function split out from ... - (flow_loops_find): ... here. Adjust function signature, - support incremental loop structure update. - (verify_loop_structure): Cleanup. Verify a loop is a loop. - * cfgloopmanip.c (fix_loop_structure): Move ... - * loop-init.c (fix_loop_structure): ... here. - (apply_loop_flags): Split out from ... - (loop_optimizer_init): ... here. - (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find - in incremental mode, only remove dead loops here. - -2013-02-08 Georg-Johann Lay <avr@gjlay.de> - - PR target/54222 - * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add. - * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators. - (round<mode>3, round<mode>3_const): New expanders for fixed-mode. - (*round<mode>3.libgcc): New insns for fixed-modes. - * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME. - (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs. - (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs. - * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline - implementations. Define to __builtin_avr_absFX, - __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively. - (roundFX, countlsFX): Define to __builtin_avr_roundFX, - __builtin_avr_countlsFX, respectively. - * config/avr/avr-c.c (target.h): Include it. - (enum avr_builtin_id): New enum. - (avr_resolve_overloaded_builtin): New static function. - (avr_register_target_pragmas): Use it to set - targetm.resolve_overloaded_builtin. - * config/avr/avr.c (avr_init_builtins): Supply myriads of local - tree nodes used by DEF_BUILTIN. - (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them. - (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR. - <AVR_BUILTIN_xxBITS>: Same. - -2013-02-08 Richard Biener <rguenther@suse.de> - - * cfgloop.c (verify_loop_structure): Properly handle - a loop exiting to another loop header. - * ira-int.h (ira_loops): Remove. - * ira.c (ira_loops): Remove. - (ira): Use loop_optimizer_init and loop_optimizer_finalize. - (do_reload): Use loop_optimizer_finalize. - * ira-build.c (create_loop_tree_nodes): Use get_loops and - number_of_loops to access the loop tree. - (more_one_region_p): Likewise. - (finish_loop_tree_nodes): Likewise. - (rebuild_regno_allocno_maps): Likewise. - (mark_loops_for_removal): Likewise. - (mark_all_loops_for_removal): Likewise. - (remove_unnecessary_regions): Likewise. - (ira_build): Likewise. - * ira-emit.c (setup_entered_from_non_parent_p): Likewise. - -2013-02-08 Richard Biener <rguenther@suse.de> - - * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency. - * ipa-pure-const.c (analyze_function): Avoid calling - mark_irreducible_loops twice. - * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup. - -2013-02-07 David S. Miller <davem@davemloft.net> - - * dwarf2out.c (based_loc_descr): Perform leaf register remapping - on 'reg'. - * var-tracking.c (vt_add_function_parameter): Test the presence of - HAVE_window_save properly and do not remap argument registers when - we have a leaf function. - -2013-02-07 Uros Bizjak <ubizjak@gmail.com> - - PR bootstrap/56227 - * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT - instead of "ll". - * config/i386/i386.c (ix86_print_operand): Ditto. - -2013-02-07 Vladimir Makarov <vmakarov@redhat.com> - - * lra-constraints.c (process_alt_operands): Fix recently added comment. - -2013-02-07 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/56225 - * lra-constraints.c (process_alt_operands): Check that reload hard - reg can hold value for strict_low_part. - -2013-02-07 Jakub Jelinek <jakub@redhat.com> - - PR debug/56154 - * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to - dwarf2out_end_function. - (in_first_function_p, maybe_at_text_label_p, - first_loclabel_num_not_at_text_label): New variables. - (dwarf2out_var_location): In the first function find out - lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0. - (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New - functions. - -2013-02-07 Eric Botcazou <ebotcazou@adacore.com> - - PR rtl-optimization/56178 - * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a - SUBREG of a register. Tidy up related block of code. - * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL - note if the source is a register or a SUBREG of a register. - -2013-02-07 Jakub Jelinek <jakub@redhat.com> - - PR target/56228 - * config/rs6000/rs6000.md (ptrm): New mode attr. - (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11, - call_value_indirect_aix<pttrsize>, - call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of - m in constraints. - -2013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at> - - * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable - if -bnortl. Convert to strcmp and strncmp. - -2013-02-07 Alan Modra <amodra@gmail.com> - - PR target/54009 - * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM - addresses won't wrap when offsetting. - (rs6000_secondary_reload): Provide secondary reloads needed for - wrapping LO_SUM addresses. - -2013-02-06 Thomas Schwinge <thomas@codesourcery.com> - - * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define - MACH, just __MACH__. - -2013-02-06 Richard Biener <rguenther@suse.de> - - * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP - instead of calling fix_loop_structure. - -2013-02-06 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56217 - * omp-low.c (use_pointer_for_field): Return false if - lower_send_shared_vars doesn't generate any copy-out code. - -2013-02-06 Tom de Vries <tom@codesourcery.com> - - PR rtl-optimization/56131 - * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN - to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb - of the label is NULL. Add comment. - -2013-02-05 Jakub Jelinek <jakub@redhat.com> - - * tree.h (struct tree_decl_with_vis): Remove thread_local field. - - PR sanitizer/55374 - * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define. - (STATIC_LIBTSAN_LIBS): Likewise. - * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define. - (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC - is defined, don't add anything else beyond that. - (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define. - (LINK_COMMAND_SPEC): Use them. - - PR tree-optimization/56205 - * tree-stdarg.c (check_all_va_list_escapes): Return true if - there are any PHI nodes that set non-va_list_escape_vars SSA_NAME - and some va_list_escape_vars SSA_NAME appears in some PHI argument. - -2013-02-05 Richard Biener <rguenther@suse.de> - - PR tree-optimization/53342 - PR tree-optimization/53185 - * tree-vectorizer.h (vect_check_strided_load): Remove. - * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do - not disallow peeling for vectorized strided loads. - (vect_check_strided_load): Make static and simplify. - (vect_analyze_data_refs): Adjust. - * tree-vect-stmts.c (vectorizable_load): Handle peeled loops - correctly when vectorizing strided loads. - -2013-02-05 Richard Biener <rguenther@suse.de> - - * doc/install.texi: Refer to ISL, not PPL. - -2013-02-05 Jan Hubicka <jh@suse.cz> - - PR tree-optimization/55789 - * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1. - -2013-02-05 Jan Hubicka <jh@suse.cz> - - PR tree-optimization/55789 - * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove - the dead call anyway. - -2013-02-05 Eric Botcazou <ebotcazou@adacore.com> - - PR sanitizer/55374 - * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard. - -2013-02-04 Alexander Potapenko <glider@google.com> - Jack Howarth <howarth@bromo.med.uc.edu> - Jakub Jelinek <jakub@redhat.com> - - PR sanitizer/55617 - * config/darwin.c (sort_ctor_records): Stabilized qsort - on constructor priority by using original position. - (finalize_ctors): New routine to sort constructors by - priority before use in assemble_integer. - (machopic_asm_out_constructor): Use finalize_ctors if needed. - -2013-02-04 Jakub Jelinek <jakub@redhat.com> - - PR libstdc++/54314 - * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn - about visibility on artificial decls. - * config/sol2.c (solaris_assemble_visibility): Likewise. - -2013-02-04 Kai Tietz <ktietz@redhat.com> - - PR target/56186 - * config/i386/i386.c (function_value_ms_64): Add additional valtype - argument and improve checking of return-argument types for 16-byte - modes. - (ix86_function_value_1): Add additional valtype argument on call - of function_value_64. - (return_in_memory_ms_64): Sync 16-byte sized mode handling with - handling infunction_value_64 function. - -2013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org> - - * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue. - -2013-02-04 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56188 - * tree-ssa-structalias.c (label_visit): Consider case with - initially non-empty points-to set. - (perform_var_substitution): Dump node mapping and clean up. - -2013-02-04 Richard Guenther <rguenther@suse.de> - - PR lto/56168 - * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin - node prevail as last resort. - (lto_symtab_merge_decls): Remove guard on LTRANS here. - (lto_symtab_prevailing_decl): Builtins are their own prevailing decl. - -2013-02-04 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56113 - * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add): - Merge into ... - (equiv_class_lookup_or_add): ... this. - (label_visit): Adjust and fix error in previous patch. - (perform_var_substitution): Adjust. - -2013-02-03 Oleg Endo <olegendo@gcc.gnu.org> - - * config/sh/divtab.c: Fix formatting and comments throughout the file. - * config/sh/sh4-300.md: Likewise. - * config/sh/sh4a.md: Likewise. - * config/sh/constraints.md: Likewise. - * config/sh/sh.md: Likewise. - * config/sh/netbsd-elf.h: Likewise. - * config/sh/predicates.md: Likewise. - * config/sh/sh-protos.h: Likewise. - * config/sh/ushmedia.h: Likewise. - * config/sh/linux.h: Likewise. - * config/sh/sh.c: Likewise. - * config/sh/superh.h: Likewise. - * config/sh/elf.h: Likewise. - * config/sh/sh4.md: Likewise. - * config/sh/sh.h: Likewise. - -2013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> - - * config/pa/constraints.md: Adjust unused letters. Change "T" - constraint to match_test floating_point_store_memory_operand(). - * config/pa/predicates.md (reg_plus_base_memory_operand): New. - (base14_operand): New. - (floating_point_store_memory_operand): New. - (integer_store_memory_operand): Revise to use base14_operand and - reg_plus_base_memory_operand. - (move_dest_operand): Allow symbolic_memory_operands. - (symbolic_memory_operand): Check for LO_SOM. - (symbolic_operand): Change default case to break. - * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force - CONST_DOUBLE values to be reloaded by putting them into memory when - the destination is a floating point register. - (movdf): Remove code to handle CONST_DOUBLE. - (movsf): Likewise. - (reload_indf_r1): New. - (reload_insf_r1): New. - Consistently use "Q" and "T" constraints with integer and floating - point move instructions, respectively. - (movdi): Remove FAIL. - Change predicate for source operand unamed DImode move from - general_operand to move_src_operand. - (umulsidi3): Change predicate for destination operand to - register_operand. - Likewise for similar unamed patterns. - * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare. - * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis. - (hppa_legitimize_address): Simplify mask calculation. - (pa_emit_move_sequence): Revised handling of secondary reloads from - REG+D addresses for floating point loads and stores. Directly handle - loading CONST0_RTX (mode) to a floating point register. - (pa_secondary_reload): Handle reloading DF and SFmode constant values - to floating point registers. Don't restrict secondary reloads to - floating point registers to integer modes. Revise some comments and - cleanup some code. - (TARGET_LEGITIMATE_ADDRESS_P): Define. - (pa_legitimate_address_p): New. - (pa_legitimize_reload_address): New. - * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New. - (STRICT_REG_OK_FOR_BASE_P): New. - (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments. - (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address. - -2013-02-03 David Edelsohn <dje.gcc@gmail.com> - Andrew Dixie <andrewd@gentrack.com> - - * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY - flag set. - -2013-02-03 Richard Sandiford <rdsandiford@googlemail.com> - - * expmed.c (extract_bit_field_1): Pass the full width of the - structure to get_best_reg_extraction_insn. - -2013-02-01 David Edelsohn <dje.gcc@gmail.com> - - PR target/54601 - * configure.ac (use_cxa_atexit): Add AIX. - * configure: Regenerate. - - * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o. - -2013-02-01 Jakub Jelinek <jakub@redhat.com> - - PR debug/54793 - * final.c (need_profile_function): New variable. - (final_start_function): Drop ATTRIBUTE_UNUSED from first argument. - If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG - is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED - notes, targetm.asm_out.function_prologue doesn't emit anything, - HAVE_prologue and profiler should be emitted before prologue, - set need_profile_function instead of emitting it. - (final_scan_insn): If need_profile_function, emit - profile_function on the first NOTE_INSN_BASIC_BLOCK or - NOTE_INSN_FUNCTION_BEG note. - -2013-02-01 Richard Henderson <rth@redhat.com> - - * config/rs6000/rs6000.md (smulditi3): New. - (umulditi3): New. - - * config/alpha/alpha.md (umulditi3): New. - -2013-02-01 David Edelsohn <dje.gcc@gmail.com> - - * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2. - (ASM_OUTPUT_ALIGNED_LOCAL): New. - -2013-02-01 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56113 - * tree-ssa-structalias.c (label_visit): Reduce work for - single-predecessor nodes. - -2013-02-01 Eric Botcazou <ebotcazou@adacore.com> - - * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the - range isn't testing for zero. - -2013-01-31 Steven Bosscher <steven@gcc.gnu.org> - - PR middle-end/56113 - * fwprop.c (fwprop_init): Set up loops without CFG modifications. - -2013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com> - Nick Clifton <nickc@redhat.com> - - * config/v850/constraints.md (Q): Define as a memory constraint. - * config/v850/predicates.md (label_ref_operand): New predicate. - (e3v5_shift_operand): New predicate. - (ior_operator): New predicate. - * config/v850/t-v850: Add e3v5 multilib. - * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype. - (v850_gen_movdi): Prototype. - * config/v850/v850.c: Add support for e3v5 architecture. - Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to - TARGET_V850E_UP. - (construct_save_jarl): Add e3v5 long JARL support. - (v850_adjust_insn_length): New function. Adjust length of call - insns when using e3v5 instructions. - (v850_gen_movdi): New function: Generate instructions to move a - DImode value. - * config/v850/v850.h (TARGET_CPU_v850e3v5): Define. - (CPP_SPEC): Define __v850e3v5__ as appropriate. - (TARGET_USE_FPU): Enable for e3v5. - (CONST_OK_FOR_W): New macro. - (ADJUST_INSN_LENGTH): Define. - * config/v850/v850.md (UNSPEC_LOOP): Define. - (attr cpu): Add v850e3v5. - Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP. - (movdi): New pattern. - (movdi_internal): New pattern. - (cbranchsf4): Conditionalize on TARGET_USE_FPU. - (cbranchdf4): Conditionalize on TARGET_USE_FPU. - (cstoresf4): Likewise. - (cstoredf4): Likewise. - (insv): New pattern. - (rotlso3_a): New pattern. - (rotlsi3_b): New pattern - (rotlsi3_v850e3v5): New pattern. - (doloop_begin): New pattern. - (fix_loop_counter): New pattern. - (doloop_end): New pattern. - (branch_normal): Add e3v5 long branch support. - (branch_invert): Likewise. - (branch_z_normal): Likewise. - (branch_z_invert): Likewise. - (branch_nz_normal): Likewise. - (branch_nz_invert): Likewise. - (call_internal_short): Add e3v5 register-indirect JARL support. - (call_internal_long): Likewise. - (call_value_internal_short): Likewise. - (call_value_internal_long): Likewise. - * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options. - (mloop): New option. - * config.gcc: Add support for configuring v840e3v5 target. - * doc/invoke.texi: Document new v850 specific command line options. - -2013-01-31 Paul Koning <ni1d@arrl.net> - - PR debug/55059 - PR debug/54508 - * dwarf2out.c (prune_unused_types_mark): Mark all of parent's - children if parent is a class. - (prune_unused_types_prune): Don't add DW_AT_declaration. - -2013-01-31 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56157 - * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to - match up operand with SLP child. - -2013-01-31 Jason Merrill <jason@redhat.com> - - PR debug/54410 - * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template - parameters the first time. - (gen_scheduled_generic_parms_dies): Check completeness here. - -2013-01-31 Richard Biener <rguenther@suse.de> - - PR middle-end/53073 - * common.opt (faggressive-loop-optimizations): New flag, - enabled by default. - * doc/invoke.texi (faggressive-loop-optimizations): Document. - * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard - infer_loop_bounds_from_undefined by it. - -2013-01-31 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56150 - * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not - visit virtual operands. - (find_uses_to_rename_bb): Likewise. - -2013-01-31 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56150 - * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle - mixed store non-store stmts. - -2013-01-30 Jakub Jelinek <jakub@redhat.com> - - PR sanitizer/55374 - * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if - LIBASAN_EARLY_SPEC is defined. - (LIBASAN_EARLY_SPEC): Define to empty string if not already defined. - (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address, - before %o. - * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define. - - PR c++/55742 - * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose - invalid args instead of ICEing on it. - (ix86_valid_target_attribute_tree): Return error_mark_node if - ix86_valid_target_attribute_inner_p failed. - (ix86_valid_target_attribute_p): Return false only if - ix86_valid_target_attribute_tree returned error_mark_node. Allow - target("default") attribute. - (sorted_attr_string): Change argument from const char * to tree, - merge in all target attribute arguments rather than just one. - Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC - instead of free. Avoid using strcat. - (ix86_mangle_function_version_assembler_name): Mangle - target("default") as if no target attribute is present. Adjust - sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC - instead of xmalloc and XDELETEVEC instead of free. - (ix86_function_versions): Don't return true if one of the decls - doesn't have target attribute. If they don't and one of the decls - is DECL_FUNCTION_VERSIONED, report an error. Adjust - sorted_attr_string caller. Use XDELETEVEC instead of free. - (ix86_supports_function_versions): Remove. - (make_name): Fix up formatting. - (make_dispatcher_decl): Remove resolver_name and its initialization. - Avoid leaking memory. - (is_function_default_version): Return true if there is - target("default") attribute rather than no target attribute at all. - (make_resolver_func): Avoid leaking memory. - (ix86_generate_version_dispatcher_body): Likewise. - (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove. - * target.def (supports_function_versions): Remove. - * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove. - * doc/tm.texi: Regenerated. - -2013-01-30 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/56144 - * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo - for values with side effects. - -2013-01-30 Richard Biener <rguenther@suse.de> - - * sparseset.h (sparseset_bit_p): Use gcc_checking_assert. - (sparseset_pop): Likewise. - * cfganal.c (compute_idf): Likewise. Increase work-stack size - to be able to use quick_push in the worker loop. - -2013-01-30 Marek Polacek <polacek@redhat.com> - - * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs. - -2013-01-30 Richard Biener <rguenther@suse.de> - - PR lto/56147 - * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check. - -2013-01-30 Georg-Johann Lay <avr@gjlay.de> - - PR tree-optimization/56064 - * fixed-value.c (fixed_from_double_int): New function. - * fixed-value.h (fixed_from_double_int): New prototype. - (const_fixed_from_double_int): New static inline function. - * fold-const.c (native_interpret_fixed): New static function. - (native_interpret_expr) <FIXED_POINT_TYPE>: Use it. - (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true. - (native_encode_fixed): New static function. - (native_encode_expr) <FIXED_CST>: Use it. - (native_interpret_int): Move double_int worker code to... - * double-int.c (double_int::from_buffer): ...this new static method. - * double-int.h (double_int::from_buffer): Prototype it. - -2013-01-30 Richard Biener <rguenther@suse.de> - - * tree-ssa-structalias.c (final_solutions, final_solutions_obstack): - New pointer-map and obstack. - (init_alias_vars): Allocate pointer-map and obstack. - (delete_points_to_sets): Free them. - (find_what_var_points_to): Cache result. - (find_what_p_points_to): Adjust for changed interface of - find_what_var_points_to. - (compute_points_to_sets): Likewise. - (ipa_pta_execute): Likewise. - -2013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> - - * configure.ac (HAVE_AS_SPARC_NOBITS): New test. - * configure: Regenerate. - * config.in: Regenerate. - * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit - #nobits/#progbits if supported. - -2013-01-29 Oleg Endo <olegendo@gcc.gnu.org> - - PR target/56121 - * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a, - bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a, - bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition. - -2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> - - * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove. - (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all. - -2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> - - * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL. - * config/arm/cortex-a7.md (cortex_a7_call): Update required units. - -2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> - - * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New - declaration. - * config/arm/arm.c (arm_mac_accumulator_is_result): New function. - * config/arm/cortex-a7.md: New bypasses using - arm_mac_accumulator_is_result. - -2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> - - * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation. - (cortex_a7_neon_mla): Likewise. - (cortex_a7_fpfmad): New reservation. - (cortex_a7_fpmacs): Use ffmas and update required units. - (cortex_a7_fpmuld): Update required units and latency. - (cortex_a7_fpmacd): Likewise. - (cortex_a7_fdivs, cortex_a7_fdivd): Likewise. - (cortex_a7_neon). Likewise. - (bypass) Update participating units. - -2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> - - * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute. - * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type - from fmac to ffma. - * config/arm/vfp11.md (vfp_farith): Use ffmas. - (vfp_fmul): Use ffmad. - * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas. - (cortex_r4_fmacd): Use ffmad. - * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas. - * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas. - (cortex_a9_fmacd): Use ffmad. - * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas. - (cortex_a8_vfp_macd): Use ffmad. - * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas. - (cortex_a5_fpmacd): Use ffmad. - * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas. - (cortex_a15_vfp_macd): Use ffmad. - * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad. - -2013-01-29 Jason Merrill <jason@redhat.com> - - PR libstdc++/54314 - * varasm.c (default_assemble_visibility): Don't warn about - visibility on artificial decls. - -2013-01-29 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56113 - * tree-ssa-structalias.c (equiv_class_lookup): Also return - the bitmap leader. - (label_visit): Free duplicate bitmaps and record the leader instead. - (perform_var_substitution): Adjust. - -2013-01-29 Richard Biener <rguenther@suse.de> - - PR tree-optimization/55270 - * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed - the CFG, schedule loops for fixup. - -2013-01-29 Nick Clifton <nickc@redhat.com> - - * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow - SP_REG. - -2013-01-28 Leif Ekblad <leif@rdos.net> - - * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets. - * config/i386/i386.h (TARGET_RDOS): New macro. - (DEFAULT_LARGE_SECTION_THRESHOLD): New macro. - * config/i386/i386.c (ix86_option_override_internal): For 64bit - TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1. - * config/i386/i386.opt (mlarge-data-threshold): Initialize to - DEFAULT_LARGE_SECTION_THRESHOLD. - * config/i386/i386.md (R14_REG, R15_REG): New constants. - * config/i386/rdos.h: New file. - * config/i386/rdos64.h: New file. - -2013-01-28 Bernd Schmidt <bernds@codesourcery.com> - - PR other/54814 - * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of - TEST_HARD_REG_BIT. - -2013-01-28 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/56117 - * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib - call cselib_lookup_from_insn on the MEM before calling - add_insn_mem_dependence. - -2013-01-28 Richard Biener <rguenther@suse.de> - - * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK - to a stmt that didn't have one. - (copy_phis_for_bb): Likewise for PHI arguments. - (copy_debug_stmt): Likewise for debug stmts. - -2013-01-28 Richard Biener <rguenther@suse.de> - - PR tree-optimization/56034 - * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION. - (partition_builtin_p): Adjust. - (generate_code_for_partition): Handle PKIND_REDUCTION. Assert - it is the last partition. - (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking - up the vertex for the definition. - (classify_partition): Classify whether a partition is a - PKIND_REDUCTION, thus has uses outside of the loop. - (ldist_gen): Inherit PKIND_REDUCTION when merging partitions. - Merge all PKIND_REDUCTION partitions into the last partition. - (tree_loop_distribution): Seed partitions from reductions as well. - -2013-01-28 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56125 - * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize - pow(x,c) into sqrt(x) * powi(x, n/2) or - 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when - optimizing for size. - Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or - 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an - integer. - - PR tree-optimization/56094 - * gimplify.c (force_gimple_operand_1): Temporarily set input_location - to UNKNOWN_LOCATION while gimplifying expr. - -2013-01-27 Uros Bizjak <ubizjak@gmail.com> - - PR target/56114 - * config/i386/i386.md (*movabs<mode>_1): Add square brackets around - operand 0 in movabs insn template for -masm=intel asm alternative. - (*movabs<mode>_2): Ditto for operand 1. - -2013-01-26 David Holsgrove <david.holsgrove@xilinx.com> - - PR target/54663 - * config.gcc (microblaze*-linux*): Add tmake_file to allow building - of microblaze-c.o - -2013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com> - - * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update - tm_file. - -2013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> - - * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS): - Undef to avoid warning. - -2013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at> - - * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld. - * configure: Regenerate. - -2013-01-25 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56098 - * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr - for stmts with volatile ops. - (cond_store_replacement): Don't optimize if assign has volatile ops. - (cond_if_else_store_replacement_1): Don't optimize if either - then_assign or else_assign have volatile ops. - (hoist_adjacent_loads): Don't optimize if either def1 or def2 have - volatile ops. - -2013-01-25 Georg-Johann Lay <avr@gjlay.de> - - * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__. - -2013-01-25 Georg-Johann Lay <avr@gjlay.de> - - * doc/extend.texi (Example of asm with clobbered asm reg): Fix - missing ':' in asm example. - -2013-01-25 Tejas Belagod <tejas.belagod@arm.com> - - * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane - entries into lane and laneq entries. - * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>): - Remove AdvSIMD scalar modes. - (aarch64_sq<r>dmulh_laneq<mode>): New. - (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD - modes. - * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics' - builtin implementations to relfect changes in RTL in aarch64-simd.md. - * config/aarch64/iterators.md (VCOND): New. - (VCONQ): New. - -2013-01-25 Georg-Johann Lay <avr@gjlay.de> - - PR target/54222 - * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument. - Add NULL LIBNAME argument to existing definitions. - (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New. - * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument. - * config/avr/avr.c (DEF_BUILTIN): Same. - (avr_init_builtins): Pass down LIBNAME to add_builtin_function. - (avr_expand_builtin): Expand to a vanilla call if a libgcc - implementation is available (DECL_ASSEMBLER_NAME is set). - (avr_fold_absfx): New static function. - (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR, - AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR, - AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK, - AVR_BUILTIN_ABSLLK. - * config/avr/stdfix.h (abshr, absr, abslr, absllr) - (abshk, absk, abslk, absllk): Provide as static inline functions. - -2013-01-25 Marek Polacek <polacek@redhat.com> - - PR tree-optimization/56035 - * cfgloopmanip.c (fix_loop_structure): Remove redundant condition. - -2012-01-24 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative. - (*movtf_internal_rex64): Add (!o,C) alternative - (*movxf_internal_rex64): Ditto. - (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives. - -2013-01-24 Shenghou Ma <minux.ma@gmail.com> - - * doc/invoke.texi: fix typo. - * doc/objc.texi: fix typo. - -2013-01-24 Richard Sandiford <rdsandiford@googlemail.com> - - * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint - for the first two alternatives. - -2013-01-24 Diego Novillo <dnovillo@google.com> - - * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o. - (ggc-zone.o): Remove. - * configure.ac: Remove option --with-gc. - * configure: Re-generate. - * doc/install.texi: Remove documentation for --with-gc. - * gengtype.c (write_enum_defn): Remove. Update all users. - (write_Types_process_field): Remove generation of gt_e_* argument. - (output_type_enum): Remove. Update all users. - (write_enum_defn): Remove. Update all users. - (enum alloc_zone): Remove. Update all users. - (write_splay_tree_allocator_def): Remove generation of gt_e_* argument. - * ggc-common.c (ggc_splay_alloc): Remove first argument. - Update all callers. - (struct ptr_data): Remove field TYPE. Update all users. - (gt_pch_note_object): Remove argument TYPE. Update all users. - * ggc-internal.h (ggc_pch_alloc_object): Remove last argument. - Update all users. - * ggc-none.c (ggc_alloc_typed_stat): Remove. - (struct alloc_zone): Remove. - (ggc_internal_alloc_zone_stat): Remove. - (ggc_internal_cleared_alloc_zone_stat): Remove. - * ggc-page.c (ggc_alloc_typed_stat): Remove. - (ggc_pch_count_object): Remove last argument. Update all users. - (ggc_pch_alloc_object): Remove last argument. Update all users. - (struct alloc_zone): Remove. - * ggc-zone.c: Remove. - * ggc.h (gt_pch_note_object): Remove last argument. Update all users. - (struct alloc_zone): Remove. - (ggc_alloc_typed_stat): Remove. - (ggc_alloc_typed): Remove. - (ggc_splay_alloc): Remove first argument. - (rtl_zone): Remove. Update all users. - (tree_zone): Remove. Update all users. - (tree_id_zone): Remove. Update all users. - (ggc_internal_zone_alloc_stat): Remove. Update all users. - (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users. - (ggc_internal_zone_vec_alloc_stat): Remove. Update all users. - * tree-ssanames.c: Remove references to zone allocator in comments. - -2013-01-24 Georg-Johann Lay <avr@gjlay.de> - - * config/avr/avr.c (avr_out_fract): Make register numbers that - might be outside of source operand signed. - -2013-01-24 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/constraints.md (Yf): New constraint. - * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead - of f constraint to conditionaly disable x87 register preferences. - (*movdf_internal): Ditto. - (*movsf_internal): Ditto. - -2013-01-24 Steven Bosscher <steven@gcc.gnu.org> - - PR inline-asm/55934 - * lra-assigns.c (assign_by_spills): Throw away the pattern of asms - that have operands with impossible constraints. - Add a FIXME for a speed-up opportunity. - * lra-constraints.c (process_alt_operands): Verify that a class - selected from constraints on asms is valid for the operand mode. - (curr_insn_transform): Remove incorrect comment. - -2013-01-23 David Edelsohn <dje.gcc@gmail.com> - - * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that - TOC operand is a valid symbol ref in the constant pool. - -2013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com> - - * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS - -2013-01-23 Georg-Johann Lay <avr@gjlay.de> - - PR target/54222 - * config/avr/stdfix.h: New file. - * t-avr (stdfix-gcc.h): New rule to build it. - (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h. - -2013-01-23 Kostya Serebryany <kcc@google.com> - - * config/darwin.h: remove dependency on - CoreFoundation (asan on Mac OS). - -2013-01-23 Jakub Jelinek <jakub@redhat.com> - - PR target/49069 - * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand - instead of cmpdi_operand for first comparison operand. - Don't assert that comparison operands aren't both constants. - -2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com> - - * doc/install.texi (Downloading the Source): Update references to - downloading separate components. - -2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com> - - * doc/extend.texi (__int128): Improve grammar. - -2013-01-22 Uros Bizjak <ubizjak@gmail.com> - - PR target/56028 - * config/i386/i386.md (*movti_internal_rex64): Change (o,riF) - alternative to (o,r). - (*movdi_internal_rex64): Remove (!o,n) alternative. - (DImode immediate->memory splitter): Remove. - (DImode immediate->memory peephole2): Remove. - (movtf): Enable for TARGET_64BIT || TARGET_SSE. - (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r) - alternative to (!o,*r). - (*movtf_internal_sse): New pattern. - (*movxf_internal_rex64): New pattern. - (*movxf_internal): Disable for TARGET_64BIT. - (*movdf_internal_rex64): Remove (!o,F) alternative. - -2013-01-22 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56074 - * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc) - isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION. - * tree-vect-loop-manip.c (find_loop_location): Also ignore - stmt locations where LOCATION_LOCUS of the stmt location is - UNKNOWN_LOCATION or BUILTINS_LOCATION. - - PR target/55686 - * config/i386/i386.md (UNSPEC_STOS): New. - (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1, - *strsetqi_1): Add UNSPEC_STOS. - -2013-01-22 Paolo Carlini <paolo.carlini@oracle.com> - - PR c++/56067 - * doc/invoke.texi: Remove left over -Wsynth example. - -2013-01-21 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56051 - * fold-const.c (fold_binary_loc): Don't fold - X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either - a narrowing conversion, or widening conversion from signed - to unsigned. - -2013-01-21 Uros Bizjak <ubizjak@gmail.com> - - PR rtl-optimization/56023 - * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions, - dependent on debug instruction. - -2013-01-21 Martin Jambor <mjambor@suse.cz> - - PR middle-end/56022 - * function.c (allocate_struct_function): Call - invoke_set_current_function_hook earlier. - -2013-01-21 Jakub Jelinek <jakub@redhat.com> - - * reload1.c (init_reload): Only initialize reload_obstack - during the first call. - -2013-01-21 Marek Polacek <polacek@redhat.com> - - * cfgloop.c (verify_loop_structure): Fix up grammar. - -2013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com> - - * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift, - pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift. - -2013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> - - PR target/56058 - * config/arm/marvell-pj4.md: Update copyright year. - Fix up use of alu to alu_reg and simple_alu_imm. - -2013-01-21 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA. - -2013-01-20 Vladimir Makarov <vmakarov@redhat.com> - - PR target/55433 - * lra-constraints.c (curr_insn_transform): Don't reuse original - insn for secondary memory move when memory mode should be different. - -2013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> - - * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi, - atomic_storedi_1): New patterns. - -2013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com> - - btver2 pipeline descriptions. - * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline - descriptions. - * config/i386/i386.md (btver2_decode): New type attributes. - * config/i386/sse.md (btver2_decode, btver2_sse_attr): New - type attributes. - * config/i386/btver2.md: New file describing btver2 pipelines. - -2013-01-19 Andrew Pinski <apinski@cavium.com> - - PR tree-optimization/52631 - * tree-ssa-sccvn (visit_use): Before looking up the original - statement, try looking up the simplified expression. - -2013-01-19 Anthony Green <green@moxielogic.com> - - * config/moxie/moxie.c (moxie_expand_prologue): Set - current_function_static_stack_size. - -2013-01-18 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/56029 - * tree-phinodes.c (reserve_phi_args_for_new_edge): Set - gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION. - -2013-01-18 Sharad Singhai <singhai@google.com> - - PR tree-optimization/55995 - * dumpfile.c (dump_loc): Print location only if available. - * tree-vectorizer.c (increase_alignment): Intialize vect_location. - -2013-01-18 Vladimir Makarov <vmakarov@redhat.com> - - PR target/55433 - * lra-constraints.c (curr_insn_transform): Reuse original insn for - secondary memory move. - (inherit_reload_reg): Use rclass instead of cl for - check_secondary_memory_needed_p. - -2013-01-18 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/56015 - * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle - the case where writing real complex part of target modifies op1. - -2013-01-18 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64-simd.md - (aarch64_vcond_internal<mode>): Handle unordered cases. - * config/aarch64/iterators.md (v_cmp_result): New. - -2013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com> - Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> - - * config/arm/marvell-pj4.md: New file. - * config/arm/arm.c (arm_issue_rate): Add marvell_pj4. - * config/arm/arm.md (generic_sched): Add marvell_pj4. - (generic_vfp): Likewise. - * config/arm/arm-cores.def: Add marvell-pj4. - * config/arm/arm-tune.md: Regenerate. - * config/arm/arm-tables.opt: Regenerate. - * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4. - * doc/invoke.texi: Document marvell-pj4. - -2013-01-18 Tejas Belagod <tejas.belagod@arm.com> - - * config/aarch64/arm_neon.h: Map scalar types to standard types. - -2013-01-18 Alexandre Oliva <aoliva@redhat.com> - - PR debug/54114 - PR debug/54402 - PR debug/49888 - * var-tracking.c (negative_power_of_two_p): New. - (global_get_addr_cache, local_get_addr_cache): New. - (get_addr_from_global_cache, get_addr_from_local_cache): New. - (vt_canonicalize_addr): Rewrite using the above. Adjust the - heading comment. - (vt_stack_offset_p): Remove. - (vt_canon_true_dep): Always canonicalize loc's address. - (clobber_overlapping_mems): Make sure we have a MEM. - (local_get_addr_clear_given_value): New. - (val_reset): Clear local cached entries. - (compute_bb_dataflow): Create and release the local cache. - Disable duplicate MEMs clobbering. - (emit_notes_in_bb): Clobber MEMs likewise. - (vt_emit_notes): Create and release the local cache. - (vt_initialize, vt_finalize): Create and release the global - cache, respectively. - * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs. - -2013-01-18 Alexandre Oliva <aoliva@redhat.com> - - PR libmudflap/53359 - * tree-mudflap.c (mudflap_finish_file): Skip deferred decls - not found in the symtab. - -2013-01-18 Alexandre Oliva <aoliva@redhat.com> - - PR debug/56006 - PR rtl-optimization/55547 - PR rtl-optimization/53827 - PR debug/53671 - PR debug/49888 - * alias.c (offset_overlap_p): New, factored out of... - (memrefs_conflict_p): ... this. Use absolute sizes. Retain - the conservative special case for symbolic constants. Don't - adjust zero sizes on alignment. - -2013-01-18 Bernd Schmidt <bernds@codesourcery.com> - - PR rtl-optimization/52573 - * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a - REG_UNUSED for the same register. - -2013-01-17 Richard Biener <rguenther@suse.de> - Marek Polacek <polacek@redhat.com> - - PR rtl-optimization/55833 - * loop-unswitch.c (unswitch_loops): Move loop verification... - (unswitch_single_loop): ...here. Call mark_irreducible_loops. - * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter. - Set it to true when we're removing a loop from hierarchy tree in - an irreducible region. - (fix_bb_placements): Adjust caller. - (fix_loop_placements): Likewise. - -2013-01-17 Georg-Johann Lay <avr@gjlay.de> - - * config/avr/builtins.def (DEF_BUILTIN): Factor out - "__builtin_avr_" from NAME, turn NAME to an uppercase identifier. - Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'. - Remove ID. Adjust comments. - * config/avr/avr-c.c (avr_builtin_name): Remove. - (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop. - * config/avr/avr.c (avr_tolower): New static function. - (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'. - Stringify NAME, prefix it with "__builtin_avr_" and lowercase it. - (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for - default expansion. - -2013-01-17 Jan Hubicka <jh@suse.cz> - - PR tree-optimization/55273 - * loop-iv.c (iv_number_of_iterations): Consider zero iteration case. - -2013-01-17 Uros Bizjak <ubizjak@gmail.com> - - PR target/55981 - * config/i386/sync.md (atomic_store<mode>): Always generate SWImode - store through atomic_store<mode>_1. - (atomic_store<mode>_1): Macroize insn using SWI mode iterator. - -2013-01-17 Martin Jambor <mjambor@suse.cz> - - PR tree-optimizations/55264 - * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true - for virtual methods. - * ipa.c (symtab_remove_unreachable_nodes): Never return true for - virtual methods before inlining is over. - * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for - virtual functions. - * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as - non-virtual. - -2013-01-16 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/56005 - * sched-deps.c (sched_analyze_2): Check deps->readonly for adding - pending reads for prefetch. - -2013-01-16 Ian Bolton <ian.bolton@arm.com> - - * config/aarch64/aarch64.md - (*cstoresi_neg_uxtw): New pattern. - (*cmovsi_insn_uxtw): New pattern. - (*<optab>si3_uxtw): New pattern. - (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern. - (*<optab>si3_insn_uxtw): New pattern. - (*bswapsi2_uxtw): New pattern. - -2013-01-16 Richard Biener <rguenther@suse.de> - - * tree-inline.c (tree_function_versioning): Remove set but - never used variable. - -2013-01-16 Richard Biener <rguenther@suse.de> - - PR tree-optimization/55964 - * tree-flow.h (rename_variables_in_loop): Remove. - (rename_variables_in_bb): Likewise. - * tree-loop-distribution.c (update_phis_for_loop_copy): Remove. - (copy_loop_before): Adjust and delete update-ssa status. - * tree-vect-loop-manip.c (rename_variables_in_bb): Make static. - (rename_variables_in_bb): Likewise. Properly walk over predecessors. - (rename_variables_in_loop): Remove. - (slpeel_update_phis_for_duplicate_loop): Likewise. - (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops, - use available cfg machinery instead of duplicating it. - Update PHI nodes and perform poor-mans SSA update here. - (slpeel_tree_peel_loop_to_edge): Adjust. - -2013-01-16 Richard Biener <rguenther@suse.de> - - PR tree-optimization/54767 - PR tree-optimization/53465 - * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465. - (vrp_visit_phi_node): For PHI arguments coming via backedges - drop all symbolical range information. - (execute_vrp): Compute backedges. - -2013-01-16 Richard Biener <rguenther@suse.de> - - * doc/install.texi: Update CLooG and ISL requirements to - 0.18.0 and 0.11.1. - -2013-01-16 Christian Bruel <christian.bruel@st.com> - - PR target/55301 - * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol. - (broken_move): Handle UNSPECV_SP_SWITCH_B. - * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG). - -2013-01-16 DJ Delorie <dj@redhat.com> - - * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New. - (UNSPECV_SP_SWITCH_E): New. - (sp_switch_1): Change to an unspec. - (sp_switch_2): Change to an unspec. Don't use post-inc when we - replace $r15. - -2013-01-16 Uros Bizjak <ubizjak@gmail.com> - - * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument - with MEMMODEL_MASK before comparing with MEMMODEL_* memory types. - * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto. - (expand_mem_thread_fence): Ditto. - (expand_mem_signal_fence): Ditto. - (expand_atomic_load): Ditto. - (expand_atomic_store): Ditto. - -2013-01-16 Alexandre Oliva <aoliva@redhat.com> - - PR rtl-optimization/55547 - PR rtl-optimization/53827 - PR debug/53671 - PR debug/49888 - * alias.c (memrefs_conflict_p): Set sizes to negative after - AND adjustments. - -2013-01-15 Jakub Jelinek <jakub@redhat.com> - - PR target/55940 - * function.c (thread_prologue_and_epilogue_insns): Always - add crtl->drap_reg to set_up_by_prologue.set, even if - stack_realign_drap is false. - -2013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de> - - * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, - and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3, - *call): Fix indention. - -2013-01-15 Tom de Vries <tom@codesourcery.com> - - PR target/55876 - * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG. - Update comment. - -2013-01-15 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/55153 - * sched-deps.c (sched_analyze_2): Add pending reads for prefetch. - -2013-01-15 Martin Jambor <mjambor@suse.cz> - - PR tree-optimization/55920 - * tree-sra.c (analyze_access_subtree): Do not mark non-removable - accesses as grp_to_be_debug_replaced. - -2013-01-15 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/55920 - * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced - there is non-useless type conversion needed from debug rhs to lhs, - use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR. - -2013-01-15 Joseph Myers <joseph@codesourcery.com> - Mikael Pettersson <mikpe@it.uu.se> - - PR target/43961 - * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for - Thumb. - (ASM_OUTPUT_CASE_LABEL): Remove. - (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty. - * final.c (shorten_branches): Update alignment of labels before - jump tables if CASE_VECTOR_SHORTEN_MODE. - -2013-01-15 Richard Biener <rguenther@suse.de> - - PR bootstrap/55961 - * system.h: Do not include gmp.h for building host tools. - -2013-01-15 Richard Biener <rguenther@suse.de> - - PR middle-end/55882 - * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly - account for bitpos when computing alignment. - -2013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com> - - * config/i386/i386-c.c (ix86_target_macros_internal): New case. - (ix86_target_macros_internal): Likewise. - - * config/i386/i386.c (m_CORE2I7): Removed. - (m_CORE_HASWELL): New macro. - (m_CORE_ALL): Likewise. - (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL. - (initial_ix86_arch_features): Likewise. - (processor_target_table): Initializations for Core avx2. - (cpu_names): New names "core-avx2". - (ix86_option_override_internal): Changed PROCESSOR_COREI7 by - PROCESSOR_CORE_HASWELL. - (ix86_issue_rate): New case. - (ia32_multipass_dfa_lookahead): Likewise. - (ix86_sched_init_global): Likewise. - - * config/i386/i386.h (TARGET_HASWELL): New macro. - (target_cpu_default): New TARGET_CPU_DEFAULT_haswell. - (processor_type): New PROCESSOR_HASWELL. - -2013-01-15 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/55955 - * tree-vect-loop.c (vectorizable_reduction): Give up early on - *SHIFT_EXPR and *ROTATE_EXPR codes. - - PR tree-optimization/48766 - * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for - -ftrapv disable -fwrapv. - -2013-01-14 Georg-Johann Lay <avr@gjlay.de> - - PR target/55974 - * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH - etc. to 1 and not to __flash. - Use LL suffix for __INT24_MAX__ with -mint8. - Use ULL suffix for __UINT24_MAX__ with -mint8. - -2013-01-14 Georg-Johann Lay <avr@gjlay.de> - - * config/avr/avr-arch.h - (struct base_arch_s): Use typedef avr_arch_t instead. - (struct arch_info_s): Use typedef avr_arch_info_t instead. - (struct mcu_type_s): Use typedef avr_mcu_t instead. - * config/avr/avr.c: Same. - * config/avr/avr-devices.c: Same. - * config/avr/driver-avr.c: Same. - * config/avr/gen-avr-mmcu-texi.c: Same. - * config/avr/avr-mcus.def: Adjust comment. - -2013-01-14 Tejas Belagod <tejas.belagod@arm.com> - - * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New. - * config/aarch64/iterators.md (VALLDI): New. - -2013-01-14 Uros Bizjak <ubizjak@gmail.com> - Andi Kleen <ak@linux.intel.com> - - PR target/55948 - * config/i386/sync.md (atomic_store<mode>_1): New pattern. - (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE - memmodel flag. - -2013-01-14 Georg-Johann Lay <avr@gjlay.de> - - * config/avr/avr-stdint.h: Remove trailing blanks. - * config/avr/avr-log.h: Same. - * config/avr/avr-arch.h: Same. - * config/avr/avr-devices.c: Same. - * config/avr/avr-dimode.md: Same. - * config/avr/predicates.md: Same. - * config/avr/avr-c.c: Same. And fix typo. - - * config/avr/avr-protos.h: Same. And: - (function_arg_regno_p): Rename to avr_function_arg_regno_p. - (init_cumulative_args): Rename to avr_init_cumulative_args. - (expand_prologue): Rename to avr_expand_prologue. - (expand_epilogue): Rename to avr_expand_epilogue. - (adjust_insn_length): Rename to avr_adjust_insn_length. - (notice_update_cc): Rename to avr_notice_update_cc. - (final_prescan_insn): Rename to avr_final_prescan_insn. - * config/avr/avr.c: Same. - * config/avr/avr.h: Same. - * config/avr/avr.md: Remove trailing blanks. - (prologue): Use avr_expand_prologue. - (epilogue, sibcall_epilogue): Use avr_expand_epilogue. - -2013-01-14 Richard Biener <rguenther@suse.de> - - * tree-cfg.c (verify_expr_location, verify_expr_location_1, - verify_location, collect_subblocks): New functions. - (verify_gimple_in_cfg): Verify that locations only reference - BLOCKs in the functions BLOCK tree. - -2013-01-14 Richard Biener <rguenther@suse.de> - - * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated - PHI argument. - * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly - unshare reference. - (insert_out_of_ssa_copy_on_edge): Likewise. - (rewrite_close_phi_out_of_ssa): Likewise. - * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare - debug expressions. - * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare - propagated constants. - * tree-cfg.c (tree_node_can_be_shared): Handled component-refs - can not be shared. - -2013-01-14 Georg-Johann Lay <avr@gjlay.de> - - * config/avr/avr-modes.def: Add GPL copyright notice. - -2013-01-13 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/sync.md (mem_thread_fence): Mask operands[0] with - MEMMODEL_MASK to determine memory model. - (atomic_store<mode>): Ditto from operands[2]. - * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool. - -2013-01-13 Jakub Jelinek <jakub@redhat.com> - - PR fortran/55935 - * gimple-fold.c (get_symbol_constant_value): Call unshare_expr. - (fold_gimple_assign): Don't call unshare_expr here. - (fold_ctor_reference): Call unshare_expr. - -2013-01-13 Terry Guo <terry.guo@arm.com> - - * Makefile.in (s-mlib): New argument MULTILIB_REUSE. - * doc/fragments.texi: Document MULTILIB_REUSE. - * gcc.c (multilib_reuse): New internal spec. - (set_multilib_dir): Also search multilib from multilib_reuse. - * genmultilib (tmpmultilib3): Refactor code. - (tmpmultilib4): Ditto. - (multilib_reuse): New multilib argument. - -2013-01-13 Richard Sandiford <rdsandiford@googlemail.com> - - * Makefile.in: Update copyright. - -2013-01-12 Tom de Vries <tom@codesourcery.com> - - PR middle-end/55890 - * calls.c (expand_call): Check if arg_nr is valid. - -2013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com> - - * doc/extend.texi (X86 Built-in Functions): Add whitespace in - __builtin_ia32_paddb256 and __builtin_ia32_pavgb256 - documentation. Add missing '__' in front of - __builtin_ia32_packssdw256. - -2013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - PR target/55719 - * config/s390/s390.c (s390_preferred_reload_class): Do not return - NO_REGS for larl operands. - (s390_reload_larl_operand): Use s390_load_address instead of - emit_move_insn. - -2013-01-11 Richard Biener <rguenther@suse.de> - - * tree-cfg.c (verify_node_sharing_1): Split out from ... - (verify_node_sharing): ... here. - (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree. - -2013-01-11 Eric Botcazou <ebotcazou@adacore.com> - - * configure.ac (Tree checking): Set TREECHECKING to yes if enabled. - Substitute TREECHECKING. - * configure: Regenerate. - * Makefile.in (TREECHECKING): New. - -2013-01-11 Richard Guenther <rguenther@suse.de> - - PR tree-optimization/44061 - * tree-vrp.c (extract_range_basic): Compute zero as - value-range for __builtin_constant_p of function parameters. - -2013-01-10 Richard Sandiford <rdsandiford@googlemail.com> - - Update copyright years. - -2013-01-10 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/55672 - * lra-eliminations.c (mark_not_eliminable): Permit addition with - const to be eliminable. - -2013-01-10 David Edelsohn <dje.gcc@gmail.com> - - * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix. - * configure: Regenerate. - -2013-01-10 Richard Biener <rguenther@suse.de> - - * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes. - -2013-01-10 Richard Biener <rguenther@suse.de> - - PR bootstrap/55792 - * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set - locations for virtual PHI arguments. - (rewrite_update_phi_arguments): Likewise. - -2013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com> - - * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi - on to assembler. - -2013-01-10 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/55921 - * tree-complex.c (expand_complex_asm): New function. - (expand_complex_operations_1): Call it for GIMPLE_ASM. - -2013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> - - PR target/55718 - * config/s390/s390.c (s390_symref_operand_p) - (s390_loadrelative_operand_p): Merge the two functions. - (s390_check_qrst_address, print_operand_address): Add parameters - to s390_loadrelative_operand_p invokation. - (s390_check_symref_alignment): Use s390_loadrelative_operand_p. - (s390_reload_larl_operand, s390_secondary_reload): Use - s390_loadrelative_operand_p instead of s390_symref_operand_p. - (legitimize_pic_address): Handle @GOTENT and @PLT + addend. - -2013-01-09 Mike Stump <mikestump@comcast.net> - - * dse.c (record_store): Remove unnecessary assert. - -2013-01-09 Jan Hubicka <jh@suse.cz> - - PR tree-optimization/55569 - * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type. - * cfgloop.h (scale_loop_profile): Likewise. - -2013-01-09 Jan Hubicka <jh@suse.cz> - - PR lto/45375 - * ipa-inline.c (ipa_inline): Remove extern inlines and virtual - functions. - * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data. - -2013-01-09 Richard Sandiford <rdsandiford@googlemail.com> - - PR middle-end/55114 - * expr.h (maybe_emit_group_store): Declare. - * expr.c (maybe_emit_group_store): New function. - * builtins.c (expand_builtin_int_roundingfn): Call it. - (expand_builtin_int_roundingfn_2): Likewise. - -2013-01-09 Vladimir Makarov <vmakarov@redhat.com> - - PR rtl-optimization/55829 - * lra-constraints.c (match_reload): Add code for absent output. - (curr_insn_transform): Add code for reloads of matched inputs - without output. - -2013-01-09 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/sse.md (*vec_interleave_highv2df): Change mode - attribute of movddup insn to DF. - (*vec_interleave_lowv2df): Ditto. - (vec_dupv2df): Ditto. - -2013-01-09 Jan Hubicka <jh@suse.cz> - - PR tree-optimiation/55875 - * tree-ssa-loop-niter.c (number_of_iterations_cond): Add - EVERY_ITERATION parameter. - (number_of_iterations_exit): Check if exit is executed every iteration. - (idx_infer_loop_bounds): Similarly here. - (n_of_executions_at_most): Simplify - to only test for cases where statement is dominated by the - particular bound; handle correctly the "postdominance" test. - (scev_probably_wraps_p): Use max loop iterations info - as a global bound first. - -2013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com> - Nick Clifton <nickc@redhat.com> - - * config/v850/v850.md (cbranchsf4): New pattern. - (cstoresf4): New pattern. - (cbranchdf4): New pattern. - (cstoredf4): New pattern. - (movsicc): Disallow floating point comparisons. - (cmpsf_le_insn): Fix order of operators. - (cmpsf_lt_insn): Likewise. - (cmpsf_eq_insn): Likewise. - (cmpdf_le_insn): Likewise. - (cmpdf_lt_insn): Likewise. - (cmpdf_eq_insn): Likewise. - (cmpsf_ge_insn): Use LE comparison. - (cmpdf_ge_insn): Likewise. - (cmpsf_gt_insn): Use LT comparison. - (cmpdf_gt_insn): Likewise. - (cmpsf_ne_insn): Delete pattern. - (cmpdf_ne_insn): Delete pattern. - * config/v850/v850.c (v850_gen_float_compare): Use - gen_cmpdf_eq_insn for NE comparison. - (v850_float_z_comparison_operator) - (v850_float_nz_comparison_operator): Move from here ... - * config/v850/predicates.md: ... to here. Move GT and GE - comparisons into v850_float_z_comparison_operator. - * config/v850/v850-protos.h (v850_float_z_comparison_operator): - Delete prototype. - (v850_float_nz_comparison_operator): Likewise. - -2013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> - - * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv - with calls to gen_insvsi/gen_insvdi. - -2013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com> - - * config/i386/i386.c (initial_ix86_tune_features): Set up - X86_TUNE_AVX128_OPTIMAL for m_BTVER2. - -2013-01-09 Steven Bosscher <steven@gcc.gnu.org> - Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/48189 - * predict.c (predict_loops): If max is 0, don't call compare_tree_int. - If nitercst is 0, don't predict the exit edge. - -2013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> - - * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r - in asm_fprintf with reg_names. - (aarch64_print_operand_address): Likewise. - (aarch64_return_addr): Likewise. - * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove. - -2013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> - - * config/pa/pa.h (VAL_U6_BITS_P): Define. - (INT_U6_BITS): Likewise. - * config/pa/predicates.md (uint6_operand): New predicate. - (shift5_operand, shift6_operand): Likewise. - * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of - arith32_operand. - (lshrdi3): Use shift6_operand. - (shrpsi4, shrpdi4): New insn patterns. - (extzv): Delete expander. - (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand - predicates in unamed zero extract patterns. Tighten common constraint. - (extv): Delete expander. - (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand - predicates in unamed sign extract patterns. Tighten common constraint. - (insv): Delete expander. - (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand - predicates in unamed insert patterns. Tighten common constraint. - Change uint32_operand predicate to uint6_operand predicate in unamed - DImode pattern to insert constant values of type 1...1xxxx. - -2013-01-04 Jan Hubicka <jh@suse.cz> - - PR tree-optimization/55823 - * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering - issue. - -2013-01-08 Jakub Jelinek <jakub@redhat.com> - Uros Bizjak <ubizjak@gmail.com> - - PR rtl-optimization/55845 - * df-problems.c (can_move_insns_across): Stop scanning at - volatile_insn_p source instruction or give up if - across_from .. across_to range contains any volatile_insn_p - instructions. - -2013-01-08 Tejas Belagod <tejas.belagod@arm.com> - - * config/aarch64/aarch64-simd.md (vec_init<mode>): New. - * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init): - Declare. - * config/aarch64/aarch64.c (aarch64_simd_dup_constant, - aarch64_simd_make_constant, aarch64_expand_vector_init): New. - -2013-01-08 Jakub Jelinek <jakub@redhat.com> - - PR fortran/55341 - * asan.c (asan_clear_shadow): New function. - (asan_emit_stack_protection): Use it. - -2013-01-08 Tejas Belagod <tejas.belagod@arm.com> - - * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>, - aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand - with tab instead of space. - -2013-01-08 Nick Clifton <nickc@redhat.com> - - * config/rl78/rl78.c (rl78_expand_prologue): Always select - register bank 0 at the start of an interrupt handler. - * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and - MDBH registers. - -2013-01-08 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64-simd.md - (aarch64_simd_bsl<mode>_internal): Add floating-point modes. - (aarch64_simd_bsl): Likewise. - (aarch64_vcond_internal<mode>): Likewise. - (vcond<mode><mode>): Likewise. - (aarch64_cm<cmp><mode>): Fix constraints, add new modes. - * config/aarch64/iterators.md (V_cmp_result): Add V2DF. - -2013-01-08 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64-builtins.c - (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf. - -2013-01-08 Martin Jambor <mjambor@suse.cz> - - PR debug/55579 - * tree-sra.c (analyze_access_subtree): Return true also after - potentially creating a debug-only replacement. - -2013-01-08 Jakub Jelinek <jakub@redhat.com> - - PR middle-end/55890 - * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p. - - PR tree-optimization/54120 - * tree-vrp.c (range_fits_type_p): Don't allow - src_precision < precision from signed vr to unsigned_p - if vr->min or vr->max is negative. - (simplify_float_conversion_using_ranges): Test can_float_p - against CODE_FOR_nothing. - -2013-01-08 Jakub Jelinek <jakub@redhat.com> - Richard Biener <rguenther@suse.de> - - PR middle-end/55851 - * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P - types instead of just INTEGER_TYPE types. - -2013-01-07 Mark Kettenis <kettenis@openbsd.org> - - * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, - TF_SIZE): Define. - -2013-01-07 Steve Ellcey <sellcey@mips.com> - - PR target/42661 - * config/mips/mips.opt: Change mad to mmad to match documentation. - -2013-01-07 Georg-Johann Lay <avr@gjlay.de> - - PR target/55897 - * doc/extend.texi (AVR Named Address Spaces): __memx goes into - .progmemx.data now. - -2013-01-07 Georg-Johann Lay <avr@gjlay.de> - - PR target/55897 - * config/avr/avr.h (ADDR_SPACE_COUNT): New enum. - (avr_addrspace_t): Add .section_name field. - * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as - array size. - (avr_addrspace): Same. Initialize .section_name. Remove last - NULL entry. Put __memx into .progmemx.data. - (progmem_section_prefix): Remove. - (avr_asm_init_sections): No need to initialize progmem_section. - (avr_asm_named_section): Use avr_addrspace[].section_name to get - section name prefix. - (avr_asm_select_section): Ditto. And use get_unnamed_section to - retrieve the progmem section. - * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop - boundary to run over avr_addrspace[]. - (avr_register_target_pragmas): Ditto. - -2013-01-06 Jakub Jelinek <jakub@redhat.com> - - * varasm.c (output_constant_def_contents): For asan_protect_global - protected strings, adjust DECL_ALIGN if needed, before testing for - anchored symbols. - (place_block_symbol): Adjust size for asan protected STRING_CSTs if - TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected - normal decls. - (output_object_block): For asan protected decls, emit asan padding - after their contents. - * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here. - (asan_finish_file): Test it here instead. - -2013-01-07 Nick Clifton <nickc@redhat.com> - Matthias Klose <doko@debian.org> - Doug Kwan <dougkwan@google.com> - H.J. Lu <hongjiu.lu@intel.com> - - PR driver/55470 - * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold. - - * common.opt: Add fuse-ld=bfd and fuse-ld=gold. - - * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2. - - * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold. - - * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold. - -2013-01-07 Georg-Johann Lay <avr@gjlay.de> - - PR target/54461 - * doc/install.texi (Cross-Compiler-Specific Options): Document - --with-avrlibc. - -2013-01-07 Tejas Belagod <tejas.belagod@arm.com> - - * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32, - vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64, - vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16, - vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32, - vqmovun_high_s64): Fix source operand number and update copyright. - -2013-01-07 Richard Biener <rguenther@suse.de> - - PR middle-end/55890 - * gimple.h (gimple_call_builtin_p): New overload. - * gimple.c (validate_call): New function. - (gimple_call_builtin_p): Likewise. - * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): - Use gimple_call_builtin_p. - (find_func_clobbers): Likewise. - * tree-ssa-strlen.c (adjust_last_stmt): Likewise. - (strlen_optimize_stmt): Likewise. - -2013-01-07 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const. - (vld1q_dup_*): Likewise. - (vld1_*): Likewise. - (vld1q_*): Likewise. - (vld1_lane_*): Likewise. - (vld1q_lane_*): Likewise. - -2013-01-07 Richard Biener <rguenther@suse.de> - - * lto-streamer.h (LTO_minor_version): Bump to 2. - -2013-01-07 James Greenhalgh <james.greenhalgh@arm.com> - - * config/aarch64/aarch64-protos.h - (aarch64_const_double_zero_rtx_p): Rename to... - (aarch64_float_const_zero_rtx_p): ...this. - (aarch64_float_const_representable_p): New. - (aarch64_output_simd_mov_immediate): Likewise. - * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor - move immediate case. - * config/aarch64/aarch64.c - (aarch64_const_double_zero_rtx_p): Rename to... - (aarch64_float_const_zero_rtx_p): ...this. - (aarch64_print_operand): Allow printing of new constants. - (aarch64_valid_floating_const): New. - (aarch64_legitimate_constant_p): Check for valid floating-point - constants. - (aarch64_simd_valid_immediate): Likewise. - (aarch64_vect_float_const_representable_p): New. - (aarch64_float_const_representable_p): Likewise. - (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0. - (aarch64_output_simd_mov_immediate): New. - * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative. - (*movdf_aarch64): Likewise. - * config/aarch64/constraints.md (Ufc): New. - (Y): call aarch64_float_const_zero_rtx. - * config/aarch64/predicates.md (aarch64_fp_compare_operand): New. - -2013-01-07 Richard Biener <rguenther@suse.de> - - PR tree-optimization/55888 - PR tree-optimization/55862 - * tree-ssa-pre.c (phi_translate_1): Revert previous change. - (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT, - not if it is contained therein. - -2013-01-07 Georg-Johann Lay <avr@gjlay.de> - - * config/avr/t-avr: Typo. - -2013-01-07 Georg-Johann Lay <avr@gjlay.de> - - PR55243 - * config/avr/t-avr: Don't automatically rebuild - $(srcdir)/config/avr/t-multilib - $(srcdir)/config/avr/avr-tables.opt - $(srcdir)/doc/avr-mmcu.texi - (avr-mcus): New phony target to build them on request. - (s-avr-mlib, s-avr-mmcu-texi): Remove. - * avr/avr-mcus.def: Adjust comments. - -2013-01-07 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove. - -2013-01-06 Richard Sandiford <rdsandiford@googlemail.com> - - * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder. - -2013-01-06 Richard Sandiford <rdsandiford@googlemail.com> - - * config/tilepro/gen-mul-tables.cc: Put copyright on one line. - -2013-01-05 David Edelsohn <dje.gcc@gmail.com> - - * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling - to generate profiling. - * config/rs6000/aix64.h (LIB_SPEC): Same. - -2013-01-04 Andrew Pinski <apinski@cavium.com> - - * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs): - New function. - (TARGET_FIXED_CONDITION_CODE_REGS): Define. - -2013-01-04 Uros Bizjak <ubizjak@gmail.com> - - * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode - unconditionally. - (ix86_expand_move): Ditto. - (ix86_zero_extend_to_Pmode): Ditto. - (ix86_expand_call): Ditto. - (ix86_expand_special_args_builtin): Ditto. - (ix86_expand_builtin): Ditto. - -2013-01-04 Richard Biener <rguenther@suse.de> - - PR tree-optimization/55862 - * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after - translating them through PHI nodes. - -2013-01-04 Martin Jambor <mjambor@suse.cz> - - PR tree-optimization/55755 - * tree-sra.c (sra_modify_assign): Do not check that an access has no - children when trying to avoid producing a VIEW_CONVERT_EXPR. - -2013-01-04 Marek Polacek <polacek@redhat.com> - - PR middle-end/55859 - * opts.c (default_options_optimization): Clarify error message. - -2013-01-04 Richard Biener <rguenther@suse.de> - - PR middle-end/55863 - * fold-const.c (split_tree): Undo -X - 1 to ~X folding for - reassociation. - -2013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> - - PR target/53789 - * config/pa/pa.md (movsi): Revert previous change. - * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol - references. - -2013-01-03 Richard Henderson <rth@redhat.com> - - * config/i386/i386.c (ix86_expand_move): Always assign to op1 - after eliminating TLS symbols. - -2013-01-03 Marc Glisse <marc.glisse@inria.fr> - - PR bootstrap/50167 - * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf. - * graphite-poly.c (debug_gmp_value): Likewise. - -2013-01-03 Uros Bizjak <ubizjak@gmail.com> - - PR target/55712 - * config/i386/i386-c.c (ix86_target_macros_internal): Depending on - selected code model, define __code_mode_small__, __code_model_medium__, - __code_model_large__, __code_model_32__ or __code_model_kernel__. - * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix - xchg temporary register with %k. Declare temporary register as - early clobbered. - [__x86_64__]: For medium and large code models, preserve %rbx register. - -2013-01-03 Richard Biener <rguenther@suse.de> - - * tree-data-ref.c (dump_conflict_function): Use less vertical spacing. - (dump_subscript): Adjust. - (finalize_ddr_dependent): Do not dump redundant info. - (analyze_siv_subscript): Adjust. - (subscript_dependence_tester): Likewise. - (compute_affine_dependence): Likewise. - -2013-01-03 Richard Biener <rguenther@suse.de> - - Revert - 2013-01-03 Richard Biener <rguenther@suse.de> - - PR tree-optimization/55857 - * tree-vect-stmts.c (vectorizable_load): Do not setup - re-alignment for invariant loads. - - 2013-01-02 Richard Biener <rguenther@suse.de> - - * tree-vect-stmts.c (vectorizable_load): When vectorizing an - invariant load do not generate a vector load from the scalar location. - -2013-01-03 Richard Biener <rguenther@suse.de> - - * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason - for not vectorizing. - * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do - not build INDIRECT_REFs, call get_name once only. - (vect_create_data_ref_ptr): Likewise. Dump base object kind - based on DR_BASE_OBJECT, not DR_BASE_ADDRESS. - -2013-01-03 Richard Biener <rguenther@suse.de> - - PR tree-optimization/55857 - * tree-vect-stmts.c (vectorizable_load): Do not setup - re-alignment for invariant loads. - -2013-01-03 Richard Biener <rguenther@suse.de> - - PR lto/55848 - * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always - prefer a built-in decl. - -2013-01-03 Jakub Jelinek <jakub@redhat.com> - - * gcc.c (process_command): Update copyright notice dates. - * gcov.c (print_version): Likewise. - * gcov-dump.c (print_version): Likewise. - - PR rtl-optimization/55838 - * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on - iv0.step, iv1.step and step. - -2013-01-03 Jakub Jelinek <jakub@redhat.com> - Marc Glisse <marc.glisse@inria.fr> - - PR tree-optimization/55832 - * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and - ABS_EXPR<x> < 0 folding use constant_boolean_node instead of - integer_{one,zero}_node. - -2013-01-03 Jakub Jelinek <jakub@redhat.com> - - PR debug/54402 - * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param. - * var-tracking.c (reverse_op): Don't add reverse ops to - VALUEs that have already - PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list. - -2013-01-02 Gerald Pfeifer <gerald@pfeifer.com> - - * doc/contrib.texi: Note years as release manager for Mark Mitchell. - -2013-01-02 Teresa Johnson <tejohnson@google.com> - - * dumpfile.c (dump_loc): Print filename with location. - * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use - new location_t parameter to emit complete unroll message with - new dump framework. - (canonicalize_loop_induction_variables): Compute loops location - and pass to try_unroll_loop_completely. - * loop-unroll.c (report_unroll_peel): New function. - (peel_loops_completely): Use new dump format with location - for main dumpfile message, and invoke report_unroll_peel on success. - (decide_unrolling_and_peeling): Ditto. - (decide_peel_once_rolling): Remove old dumpfile message subsumed - by report_unroll_peel. - (decide_peel_completely): Ditto. - (decide_unroll_constant_iterations): Ditto. - (decide_unroll_runtime_iterations): Ditto. - (decide_peel_simple): Ditto. - (decide_unroll_stupid): Ditto. - * cfgloop.c (get_loop_location): New function. - * cfgloop.h (get_loop_location): Declare. - -2013-01-02 Sriraman Tallam <tmsriram@google.com> - - * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for - NULL. - -2013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> - - PR middle-end/55198 - * expr.c (expand_expr_real_1): Don't use bitfield extraction for non - BLKmode objects when EXPAND_MEMORY is specified. - -2013-01-02 Sriraman Tallam <tmsriram@google.com> - - * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug - in loop predicate. - (fold_builtin_cpu): Do not share cpu model decls across statements. - -2013-01-02 Jason Merrill <jason@redhat.com> - - PR c++/55804 - * tree.c (build_array_type_1): Revert earlier change. - -2013-01-02 Yufeng Zhang <yufeng.zhang@arm.com> - - * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and - "cortex-a57". - * config/aarch64/aarch64-tune.md: Re-generate. - -2013-01-02 Richard Biener <rguenther@suse.de> - - * tree-vect-stmts.c (vectorizable_load): When vectorizing an - invariant load do not generate a vector load from the scalar location. - -2013-01-02 Richard Biener <rguenther@suse.de> - - PR bootstrap/55784 - * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS. - * configure: Regenerate. - -2013-01-02 Richard Sandiford <rdsandiford@googlemail.com> - - * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2) - (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3) - (expand_builtin_int_roundingfn_2): Keep the original target around - for the fallback case. - -2013-01-02 Richard Sandiford <rdsandiford@googlemail.com> - - * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int - to be clear for sign changes. - -2013-01-01 Jan Hubicka <jh@suse.cz> - - * ipa-inline-analysis.c: Fix formatting. - -2013-01-01 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/55831 - * tree-vect-loop.c (get_initial_def_for_induction): Use - gsi_after_labels instead of gsi_start_bb. - -Copyright (C) 2013 Free Software Foundation, Inc. - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. |