2017-12-01 TCWG Automation Make Linaro GCC Snapshot 7.2-2017.11. gcc/ * LINARO-VERSION: Update. 2017-11-16 Maxim Kuvyrkov Merge branches/gcc-7-branch rev 254792. 2017-10-13 TCWG Automation gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2017-10-13 TCWG Automation Make Linaro GCC Snapshot 7.2-2017.10. gcc/ * LINARO-VERSION: Update. 2017-10-11 Yvan Roux Merge branches/gcc-7-branch rev 253626. 2017-09-14 TCWG Automation gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2017-09-14 TCWG Automation Make Linaro GCC Snapshot 7.2-2017.09. gcc/ * LINARO-VERSION: Update. 2017-09-13 Yvan Roux Merge branches/gcc-7-branch rev 252337. 2017-09-13 Yvan Roux gcc/ Backport from trunk r250672. 2017-07-28 Tamar Christina * config/aarch64/aarch64.c (aarch64_simd_container_mode): Add prototype. (aarch64_expand_mov_immediate): Add HI support. (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New. (aarch64_can_const_movi_rtx_p): New. (aarch64_preferred_reload_class): Remove restrictions of using FP registers for certain SIMD operations. (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves. (aarch64_valid_floating_const): Add integer move validation. (aarch64_simd_imm_scalar_p): Remove. (aarch64_output_scalar_simd_mov_immediate): Generalize function. (aarch64_legitimate_constant_p): Expand list of supported cases. * config/aarch64/aarch64-protos.h (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New. (aarch64_reinterpret_float_as_int): New. (aarch64_simd_imm_scalar_p): Remove. * config/aarch64/constraints.md (Uvi): New. (Dd): Split into Ds and new Dd. * config/aarch64/aarch64.md (*movsi_aarch64): Add SIMD mov case. (*movdi_aarch64): Add SIMD mov case. gcc/ Backport from trunk r250673. 2017-07-28 Tamar Christina Richard Sandiford * config/aarch64/aarch64.md (mov): Generalize. (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64): Add integer and movi cases. (movi-split-hf-df-sf split, fp16): New. (enabled): Added TARGET_FP_F16INST. * config/aarch64/iterators.md (GPF_HF): New. * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New. gcc/testsuite/ Backport from trunk r250674. 2017-07-28 Tamar Christina Bilyan Borisov * gcc.target/aarch64/dbl_mov_immediate_1.c: New. * gcc.target/aarch64/flt_mov_immediate_1.c: New. * gcc.target/aarch64/f16_mov_immediate_1.c: New. * gcc.target/aarch64/f16_mov_immediate_2.c: New. * gcc.target/aarch64/pr63304_1.c: Changed to double. gcc/ Backport from trunk r250680. 2017-07-28 Tamar Christina * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Add new special pattern. * config/aarch64/aarch64.md (*movdi_aarch64): Add reg/32bit const mov case. gcc/testsuite/ Backport from trunk r250680. 2017-07-28 Tamar Christina * gcc.target/aarch64/int_mov_immediate_1.c: New. gcc/ Backport from trunk r250766. 2017-08-01 Tamar Christina * config/aarch64/aarch64.c (aarch64_can_const_movi_rtx_p): Move 0 check. gcc/ Backport from trunk r250818. 2017-08-02 Tamar Christina * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): Correct endianness. gcc/ Backport from trunk r251051. 2017-08-11 Tamar Christina * config/aarch64/aarch64.md (mov): Change. (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64): aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero. * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed. gcc/testsuite/ Backport from trunk r251086. 2017-08-14 Szabolcs Nagy * gcc.target/aarch64/dbl_mov_immediate_1.c: Add -mno-pc-relative-literal-loads. 2017-09-13 Yvan Roux gcc/ Backport from trunk r250475. 2017-07-24 Jackson Woodruff * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge): New. (aarch64_mls_elt_merge): Likewise. gcc/testsuite/ Backport from trunk r250475. 2017-07-24 Jackson Woodruff * gcc.target/aarch64/simd/vmla_elem_1.c: New. 2017-09-13 Yvan Roux gcc/ Backport from trunk r251663. 2017-09-04 Bernd Edlinger PR target/77308 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for TARGET_NEON and TARGET_IWMMXT. (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for TARGET_NEON and TARGET_IWMMXT. (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here. gcc/testsuite/ Backport from trunk r251663. 2017-09-04 Bernd Edlinger PR target/77308 * gcc.target/arm/pr77308-1.c: New test. gcc/ Backport from trunk r251681. 2017-09-04 Wilco Dijkstra * config/arm/arm.c (arm_legitimate_index_p): Add comment. (thumb2_legitimate_index_p): Use correct range for DI/DF mode. gcc/ Backport from trunk r251752. 2017-09-06 Bernd Edlinger PR target/77308 * config/arm/predicates.md (arm_general_adddi_operand): Create new non-vfp predicate. * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates. 2017-09-13 Yvan Roux gcc/ Backport from trunk r250631. 2017-07-27 Kyrylo Tkachov Sudakshina Das * config/aarch64/aarch64.md (define_split for and3nr_compare): Move non aarch64_logical_operand to a register. (define_split for and_3nr_compare0): Move non register immediate operand to a register. * config/aarch64/predicates.md (aarch64_mov_imm_operand): New. gcc/testsuite/ Backport from trunk r250631. 2017-07-27 Kyrylo Tkachov Sudakshina Das * gcc.target/aarch64/tst_imm_split_1.c: New Test. 2017-09-13 Yvan Roux gcc/ Backport from trunk r250597. 2017-07-26 Andrew Pinski * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of vec_unalign_load_cost and vec_unalign_store_cost. 2017-09-13 Yvan Roux gcc/ Backport from trunk r250592. 2017-07-26 Andrew Pinski * config/aarch64/aarch64.c (thunderx_vector_cost): Fix vec_fp_stmt_cost. 2017-09-13 Yvan Roux libstdc++-v3/ Backport from trunk r250464. 2017-07-23 Michael Collison Add optimized implementation of mersenne twister for aarch64 * config/cpu/aarch64/opt/ext/opt_random.h: New file. (__arch64_recursion): New function. (__aarch64_lsr_128): New function. (__aarch64_lsl_128): New function. (operator==): New function. (simd_fast_mersenne_twister_engine): Implement method _M_gen_rand. * config/cpu/aarch64/opt/bits/opt_random.h: New file. * include/ext/random: (simd_fast_mersenne_twister_engine): add _M_state private array. 2017-09-13 Yvan Roux gcc/ Backport from trunk r250444. 2017-07-21 Jim Wilson * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA. (qdf24xx): Likewise. * config/aarch64/aarch64-options-extensions.def (rdma); New. * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New. (AARCH64_FL_V8_1): Renumber. (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA. (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA. * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a. * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add rdma to feature modifiers list. gcc/testsuite/ Backport from trunk r250444. 2017-07-21 Jim Wilson * lib/target-supports.exp (add_options_for_arm_v8_1a_neon): Delete redundant -march option. (check_effective_target_arm_v8_1a_neon_ok_nocache): Try armv8-a+rdma in addition to armv8.1-a. 2017-09-13 Yvan Roux gcc/testsuite/ Backport from trunk r250149. 2017-07-12 Christophe Lyon * lib/target-supports.exp (check_stack_check_available): Make testcase name depend on stack_kind. 2017-09-13 Yvan Roux gcc/ Backport from trunk r249999. 2017-07-05 Ramana Radhakrishnan * config/arm/neon.md (fma4): Remove %?. (fma4_intrinsic): Likewise. (*fmsub4): Likewise. (*fmsub4_intrinsic): Likewise. 2017-09-13 Yvan Roux gcc/ Backport from trunk r249832. 2017-06-30 Yvan Roux * doc/invoke.texi (AArch64): Add missing options and remove redundant ones. 2017-09-13 Yvan Roux gcc/ Backport from trunk r249828. 2017-06-29 Julian Brown Naveen H.S * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry. * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type. (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag. (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH. 2017-09-13 Yvan Roux gcc/ Backport from trunk r249827. 2017-06-29 Naveen H.S * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the check for CC usage into AARCH64_FUSE_CMP_BRANCH. * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for CC usage from generic code to here. * sched-deps.c (sched_macro_fuse_insns): Move the condition for CC usage into the target macros. 2017-09-13 Yvan Roux gcc/ Backport from trunk r249805. 2017-06-29 Steve Ellcey * ccmp.c (ccmp_tree_comparison_p): New function. (ccmp_candidate_p): Update to use above function. (get_compare_parts): New function. (expand_ccmp_next): Update to use new functions. (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use new functions. (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1, take mode as argument. * ccmp.h (expand_ccmp_expr): Add mode as argument. * expr.c (expand_expr_real_1): Pass mode as argument. gcc/testsuite/ Backport from trunk r249806. 2017-06-29 Steve Ellcey * gcc.target/aarch64/ccmp_2.c: New test. 2017-09-13 Yvan Roux gcc/ Backport from trunk r249721. 2017-06-28 Michael Collison PR target/68535 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary set of base_reg (arm_gen_movmemqi): Removed unused variable 'i'. Convert 'for' loop into 'while' loop. (arm_expand_prologue): Remove last unnecessary set of insn. (thumb_pop): Remove unused variable 'pushed_words'. (thumb_exit): Remove last unnecessary set of regs_to_pop. 2017-09-11 Yvan Roux gcc/ Backport from trunk r249639. 2017-06-26 Christophe Lyon * doc/sourcebuild.texi (ARM-specific attributes): Document new arm_neon_ok_no_float_abi effective target. gcc/testsuite/ Backport from trunk r249639. 2017-06-26 Christophe Lyon * lib/target-supports.exp (check_effective_target_arm_neon_ok_nocache): Add flags with -mfloat-abi=hard. Include arm_neon.h. (check_effective_target_arm_neon_ok_no_float_abi_nocache): New. (check_effective_target_arm_neon_ok_no_float_abi): New. * gcc.target/arm/lto/pr65837_0.c: Require arm_neon_ok_no_float_abi. Add -mfpu=neon to dg-lto-options. * gcc.target/arm/lto/pr65837-attr_0.c: Require arm_neon_ok_no_float_abi. Remove dg-suppress-ld-options. 2017-08-18 TCWG Automation gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2017-08-18 TCWG Automation Make Linaro GCC Snapshot 7.2-2017.08. gcc/ * LINARO-VERSION: Update. 2017-08-17 Yvan Roux Merge branches/gcc-7-branch rev 251138. 2017-08-17 Yvan Roux gcc/ Backport from trunk r249740. 2017-06-28 Wilco Dijkstra PR target/79665 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep): Remove redundant if. (aarch_forward_to_shift_is_not_shifted_reg): Remove. * config/arm/aarch-common-protos.h (aarch_forward_to_shift_is_not_shifted_re): Remove. * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass. 2017-08-17 Yvan Roux gcc/ Backport from trunk r249764. 2017-06-28 Ramana Radhakrishnan * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New. (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT. (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249741. 2017-06-28 Wilco Dijkstra * config/aarch64/aarch64 (aarch64_expand_mov_immediate): Convert memory address to Pmode. (aarch64_print_operand): Assert MEM operands are always Pmode. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249502. 2017-06-22 James Greenhalgh * match.pd (A / (1 << B) -> A >> B): New. * generic-match-head.c: Include optabs-tree.h. * gimple-match-head.c: Likewise. * optabs-tree.h (target_supports_op_p): New. * optabs-tree.c (target_supports_op_p): New. gcc/testsuite/ Backport from trunk r249502. 2017-06-22 James Greenhalgh * gcc.dg/tree-ssa/forwprop-37.c: New. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249459. 2017-06-21 Andrew Pinski * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs): Increment Arith_shift and Arith_shift_reg by 1. * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend): New tuning flag. * config/aarch64/aarch64.c (thunderx_tunings): Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. (aarch64_strip_extend): Add new argument and test for it. (aarch64_cheap_mult_shift_p): New function. (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't add a cost if it is true. Update calls to aarch64_strip_extend. (aarch64_rtx_costs): Update calls to aarch64_strip_extend. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249410. 2017-06-20 James Greenhalgh * config/aarch64/aarch64-cores.def: Rearrange to sort by architecture, then by implementer ID. * config/aarch64/aarch64-tune.md: Regenerate. 2017-08-16 Yvan Roux gcc/lto/ Backport from trunk r249224. 2017-06-15 Jan Hubicka Thomas Preud'homme PR lto/69866 * lto-symtab.c (lto_symtab_merge_symbols): Drop useless definitions that resolved externally. gcc/testsuite/ Backport from trunk r249224. 2017-06-15 Thomas Preud'homme PR lto/69866 * gcc.dg/lto/pr69866_0.c: New test. * gcc.dg/lto/pr69866_1.c: Likewise. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249702. 2017-06-27 Michael Collison * config/aarch64/aarch64-simd.md (aarch64_combine): Directly call aarch64_split_simd_combine. * (aarch64_combine_internal): Delete pattern. * config/aarch64/aarch64.c (aarch64_split_simd_combine): Allow register and subreg operands. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249458. 2017-06-21 Andrew Pinski * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88 tunings. (thunderxt88): Likewise. * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable. (thunderx_prefetch_tune): New variable. (thunderx2t99_prefetch_tune): Update for the correct values. (thunderxt88_tunings): New variable. (thunderx_tunings): Use thunderx_prefetch_tune instead of generic_prefetch_tune. (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249457. 2017-06-21 Kyrylo Tkachov * config/aarch64/atomics.md (aarch64_compare_and_swap_lse, SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z. (aarch64_compare_and_swap_lse, GPI): Likewise. (aarch64_atomic_cas, SHORT): Likewise for operand 2. (aarch64_atomic_cas, GPI): Likewise. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249444. 2017-06-21 Wilco Dijkstra * config/aarch64/aarch64.md (movti_aarch64): Emit mov rather than orr. (movtf_aarch64): Likewise. * config/aarch64/aarch64-simd.md (aarch64_simd_mov): Emit mov rather than orr. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249443. 2017-06-21 Wilco Dijkstra * config/aarch64/aarch64-simd.md (aarch64_simd_dup): Swap alternatives, make integer dup more expensive. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249414. 2017-06-20 James Greenhalgh * config/aarch64/aarch64-option-extensions.def (rcpc): New. * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New. gcc/ Backport from trunk r249923. 2017-07-03 James Greenhalgh * doc/invoke.texi (rcpc architecture extension): Document it. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249223. 2017-06-15 Ramana Radhakrishnan * emit-rtl.h (is_leaf): Update comment about local register allocator. 2017-08-16 Yvan Roux gcc/testsuite/ Backport from trunk r249215. 2017-06-15 Thomas Preud'homme * gcc.target/arm/its.c: Check that no IT blocks has more than 2 instructions in it rather than the number of IT blocks being 2. Transfer scan directive arm_thumb2 restriction to the whole testcase and restrict further to Thumb-only targets. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249200. 2017-06-14 Wilco Dijkstra * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency. (cortex_a53_fconst): Likewise. (cortex_a53_fpmul): Likewise. (cortex_a53_f_load_64): Likewise. (cortex_a53_f_load_many): Likewise. (cortex_a53_advsimd_alu): Likewise. (cortex_a53_advsimd_alu_q): Likewise. (cortex_a53_advsimd_mul): Likewise. (cortex_a53_advsimd_mul_q): Likewise. (fpmac bypass): Add new bypass for fpmac-fpmac case. Add missing fmul, r2f_cvt and fconst cases. 2017-08-16 Yvan Roux gcc/testsuite/ Backport from trunk r249122. gcc/testsuite/ 2017-06-12 Tamar Christina * gcc.target/arm/sdiv_costs_1.c: Disable on softfloat. gcc/testsuite/ Backport from trunk r249125. 2017-06-12 Tamar Christina * gcc.target/arm/sdiv_costs_1.c: Require arm_v8_vfp_ok. gcc/testsuite/ Backport from trunk r249148. 2017-06-13 Tamar Christina * gcc.target/arm/sdiv_costs_1.c: Require arm_arch_v8a_ok and add march option. gcc/testsuite/ Backport from trunk r249214. 2017-06-15 Tamar Christina * gcc.target/arm/sdiv_costs_1.c: Use dg-add-options. 2017-08-16 Yvan Roux gcc/ Backport from trunk r249064. 2017-06-09 Tamar Christina * config/aarch64/aarch64.md (lrint2): New. gcc/testsuite/ Backport from trunk r249064. 2017-06-09 Tamar Christina * gcc.target/aarch64/lrint-matherr.h: New. * gcc.target/aarch64/inline-lrint_1.c: New. * gcc.target/aarch64/inline-lrint_2.c: New. * gcc.target/aarch64/no-inline-lrint_1.c: New. * gcc.target/aarch64/no-inline-lrint_2.c: New. gcc/testsuite/ Backport from trunk r249127. 2017-06-12 Tamar Christina * gcc.target/aarch64/inline-lrint_1.c: Broaden regexp. * gcc.target/aarch64/inline-lrint_2.c: Likewise. * gcc.target/aarch64/no-inline-lrint_1.c: Likewise. * gcc.target/aarch64/no-inline-lrint_2.c: Likewise. 2017-08-10 Yvan Roux gcc/testsuite/ Backport from trunk r249059. 2017-06-09 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok): Test for null definitions instead of them being undefined. Add entry for ARMv7VE. Reindent entry for ARMv8-M Baseline. Add comment warning about using the effective target for architecture extension. (check_effective_target_arm_arch_v7ve_ok): Remove. (add_options_for_arm_arch_v7ve): Likewise. 2017-07-11 TCWG Automation gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2017-07-11 TCWG Automation Make Linaro GCC Snapshot 7.1-2017.07. gcc/ * LINARO-VERSION: Update. 2017-07-07 Yvan Roux Merge branches/gcc-7-branch rev 250046. 2017-07-06 Yvan Roux gcc/testsuite/ Backport from trunk r249592. 2017-06-22 Jeff Law * gcc.c-torture/compile/stack-check-1.c: Require "untyped_assembly". gcc/ Backport from trunk r250013. 2017-07-06 Christophe Lyon * doc/sourcebuild.texi (Test Directives, Variants of dg-require-support): Add documentation for dg-require-stack-check. gcc/testsuite/ Backport from trunk r250013. 2017-07-06 Christophe Lyon * lib/target-supports-dg.exp (dg-require-stack-check): New. * lib/target-supports.exp (check_stack_check_available): New. * g++.dg/other/i386-9.C: Add dg-require-stack-check. * gcc.c-torture/compile/stack-check-1.c: Likewise. * gcc.dg/graphite/run-id-pr47653.c: Likewise. * gcc.dg/pr47443.c: Likewise. * gcc.dg/pr48134.c: Likewise. * gcc.dg/pr70017.c: Likewise. * gcc.target/aarch64/stack-checking.c: Likewise. * gcc.target/arm/stack-checking.c: Likewise. * gcc.target/i386/pr48723.c: Likewise. * gcc.target/i386/pr55672.c: Likewise. * gcc.target/i386/pr67265-2.c: Likewise. * gcc.target/i386/pr67265.c: Likewise. * gnat.dg/opt49.adb: Likewise. * gnat.dg/stack_check1.adb: Likewise. * gnat.dg/stack_check2.adb: Likewise. * gnat.dg/stack_check3.adb: Likewise. 2017-07-06 Yvan Roux gcc/ Backport from trunk r248924. 2017-06-06 Maxim Kuvyrkov * dbgcnt.def (prefetch): New debug counter. * tree-ssa-loop-prefetch.c (dbgcnt.h): New include. (schedule_prefetches): Stop issueing prefetches if debug counter tripped. gcc/ Backport from trunk r248925. 2017-06-06 Maxim Kuvyrkov * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref): New "uid" fields to hold pretty-print IDs of group and ref. Memory references are now identified as : instead of using [random] addresses. (dump_mem_details): Simplify, no functional change. (dump_mem_ref): Simplify and make output more concise. Replace couple of fprintf's throughout code with calls to dump_mem_ref. (find_or_create_group): Initialize group uid. (record_ref): Initialize ref uid. Improve debug output. (prune_group_by_reuse, should_issue_prefetch_p,) (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,) (mark_nontemporal_store, determine_loop_nest_reuse): Improve debug output. gcc/ Backport from trunk r249240. 2017-06-16 Maxim Kuvyrkov * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune): New tune structure. (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size. [Unrelated to main purpose of the patch] Place the pointer field last to enable type checking errors when tune structure are wrongly merged. * config/aarch64/aarch64.c (generic_prefetch_tune,) (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,) (thunderx2t99_prefetch_tune): New tune constants. (tune_params *_tunings): Update all tunings (no functional change). (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES, PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE from tunings structures. gcc/ Backport from trunk r249241. 2017-06-16 Maxim Kuvyrkov * config/aarch64/aarch64.c (aarch64_override_options_internal): Set flag_prefetch_loop_arrays according to tuning data. gcc/ Backport from trunk r249242. 2017-06-16 Maxim Kuvyrkov * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update prefetch settings, and enable prefetching by default at -O3. 2017-07-05 Yvan Roux gcc/ Backport from trunk r249272. 2017-06-16 James Greenhalgh PR target/71778 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET if given a non-constant argument for an intrinsic which requires a constant. gcc/testsuite/ Backport from trunk r249272. 2017-06-16 James Greenhalgh PR target/71778 * gcc.target/arm/pr71778.c: New. 2017-07-05 Yvan Roux gcc/ Backport from trunk r249187. 2017-06-14 Andrew Pinski Naveen H.S PR target/71663 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Improve vector initialization code gen for only variable case. gcc/testsuite/ Backport from trunk r249187. 2017-06-14 Andrew Pinski Naveen H.S PR target/71663 * gcc.target/aarch64/vect-init-1.c: Newtestcase. * gcc.target/aarch64/vect-init-2.c: Likewise. * gcc.target/aarch64/vect-init-3.c: Likewise. * gcc.target/aarch64/vect-init-4.c: Likewise. * gcc.target/aarch64/vect-init-5.c: Likewise. 2017-07-05 Yvan Roux gcc/ Backport from trunk r248953. 2017-06-07 Tamar Christina * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more expensive than udiv. Remove floating point cases from mod. gcc/testsuite/ Backport from trunk r248953. 2017-06-07 Tamar Christina * gcc.target/aarch64/sdiv_costs_1.c: New. gcc/ Backport from trunk r249062. 2017-06-09 Tamar Christina * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive than udiv. gcc/testsuite/ Backport from trunk r249062. 2017-06-09 Tamar Christina * gcc.target/arm/sdiv_costs_1.c: New. 2017-07-05 Yvan Roux gcc/ Backport from trunk r248870. 2017-06-05 Kyrylo Tkachov * config/aarch64/aarch64.md (sub3_compare1_imm): New define_insn. (peephole2): New peephole2 to emit the above. * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate. gcc/testsuite/ Backport from trunk r248870. 2017-06-05 Kyrylo Tkachov * gcc.target/aarch64/subs_compare_2.c: New test. 2017-07-05 Yvan Roux gcc/ Backport from trunk r248951. 2017-06-07 Tamar Christina * config/arm/aarch-cost-tables.h (cortexa53_extra_cost): Increase idiv cost. 2017-07-05 Yvan Roux gcc/ Backport from trunk r248949. 2017-06-07 Tamar Christina * config/aarch64/aarch64.md (copysignsf3): Fix mask generation. 2017-07-05 Yvan Roux gcc/ Backport from trunk r248921. 2017-06-06 Kyrylo Tkachov * config/aarch64/atomics.md (atomic_compare_and_swap expander): Use aarch64_reg_or_zero predicate for operand 4. (aarch64_compare_and_swap define_insn_and_split): Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint. (aarch64_store_exclusive): Likewise for operand 2. gcc/testsuite/ Backport from trunk r248921. 2017-06-06 Kyrylo Tkachov * gcc.target/aarch64/atomic_cmp_exchange_zero_reg_1.c: New test. 2017-07-05 Yvan Roux gcc/ Backport from trunk r248880. 2017-06-05 Thomas Preud'homme * config/arm/arm.h: explain F symbol found in description of ARM register allocation in its legend. 2017-07-05 Yvan Roux gcc/ Backport from trunk r248871. 2017-06-05 Kyrylo Tkachov * config/aarch64/aarch64-simd.md (aarch64_store_lane0): New pattern. gcc/testsuite/ Backport from trunk r248871. 2017-06-05 Kyrylo Tkachov * gcc.target/aarch64/store_lane0_str_1.c: New test. 2017-07-05 Yvan Roux gcc/ Backport from trunk r248869. 2017-06-05 Kyrylo Tkachov * config/aarch64/aarch64.c (define_peephole2 above *sub__): New peephole. gcc/testsuite/ Backport from trunk r248869. 2017-06-05 Kyrylo Tkachov * gcc.target/aarch64/subs_compare_1.c: New test. 2017-07-04 Yvan Roux gcc/ Backport from trunk r248836. 2017-06-02 Sudakshina Das * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for comparision with zero. gcc/testsuite/ Backport from trunk r248836. 2017-06-02 Sudakshina Das * gcc.target/aarch64/cmp_shifted_reg_1.c: New. 2017-07-04 Yvan Roux gcc/ Backport from trunk r248835. 2017-06-02 Kyrylo Tkachov * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane): Use VALL_F16 iterator rather than VALL. gcc/testsuite/ Backport from trunk r248835. 2017-06-02 Kyrylo Tkachov * gcc.target/aarch64/hfmode_ins_1.c: New test. 2017-07-04 Yvan Roux gcc/ Backport from trunk r248056. 2017-05-15 Renlin Li * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare. * config/aarch64/aarch64.c (aarch64_expand_call): Define. * config/aarch64/constraints.md (Usf): Add long call check. * config/aarch64/aarch64.md (call): Use aarch64_expand_call. (call_value): Likewise. (sibcall): Likewise. (sibcall_value): Likewise. (call_insn): New. (call_value_insn): New. (sibcall_insn): Update rtx pattern. (sibcall_value_insn): Likewise. (call_internal): Remove. (call_value_internal): Likewise. (sibcall_internal): Likewise. (sibcall_value_internal): Likewise. (call_reg): Likewise. (call_symbol): Likewise. (call_value_reg): Likewise. (call_value_symbol): Likewise. 2017-07-04 Yvan Roux gcc/ Backport from trunk r248090. 2017-05-16 Matthew Wahab * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic operations in fast-math mode. (vaddq_f16): Likewise. (vmul_f16): Likewise. (vmulq_f16): Likewise. (vsub_f16): Likewise. (vsubq_f16): Likewise. * config/arm/neon.md (add3): New. (sub3): New. (fma:3): New. Also remove outdated comment. (mul3): New. gcc/testsuite/ Backport from trunk r248090. 2016-05-16 Matthew Wahab * gcc.target/arm/armv8_2-fp16-arith-1.c: Expand comment. Update expected output of vadd, vsub and vmul instructions. * gcc.target/arm/armv8_2-fp16-arith-2.c: New. * gcc.target/arm/armv8_2-fp16-neon-2.c: New. * gcc.target/arm/armv8_2-fp16-neon-3.c: New. gcc/testsuite/ Backport from trunk r248117. 2017-05-16 Tamar Christina * gcc.target/arm/armv8_2-fp16-neon-1.c (vceqz): Fix regex. * gcc.target/arm/armv8_2-fp16-neon-2.c (vceqz): Fix regex. 2017-07-04 Yvan Roux gcc/ Backport from trunk r248832. 2017-06-02 Kyrylo Tkachov * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Emit CBNZ inside loop when doing a strong exchange and comparing against zero. Generate the CC flags after the loop. gcc/testsuite/ Backport from trunk r248832. 2017-06-02 Kyrylo Tkachov * gcc.target/aarch64/atomic_cmp_exchange_zero_strong_1.c: New test. 2017-07-04 Yvan Roux gcc/ Backport from trunk r248686. 2017-05-30 Wilco Dijkstra * config/arm/arm-builtins.c (arm_expand_builtin): Remove const. 2017-07-04 Yvan Roux gcc/ Backport from trunk r248419. 2017-05-24 Thomas Preud'homme * config/arm/arm.c (arm_expand_prologue): Fix typo in comment. 2017-07-04 Yvan Roux gcc/testsuite/ Backport from trunk r248326. 2017-05-22 Thomas Preud'homme * gcc.target/arm/movsi_movt.c: New test. * gcc.target/arm/movdi_movt.c: New test. 2017-07-03 Yvan Roux gcc/ Backport from trunk r248142. 2017-05-17 Thomas Preud'homme * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and restoring of callee-saved registers. 2017-06-23 Yvan Roux gcc/ Backport from trunk r249566. 2017-06-22 Jeff Law * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle frame sizes that do not satisfy aarch64_uimm12_shift. gcc/testsuite/ Backport from trunk r249566. 2017-06-22 Jeff Law * gcc.c-torture/compile/stack-check-1.c: New test. 2017-06-15 TCWG Automation gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2017-06-15 TCWG Automation Make Linaro GCC Snapshot 7.1-2017.06. gcc/ * LINARO-VERSION: Update. 2017-06-14 Yvan Roux Merge branches/gcc-7-branch rev 249190. 2017-06-14 Yvan Roux gcc/ Backport from trunk r247640. 2017-05-05 Andre Vieira Prakhar Bahuguna PR target/71607 * config/arm/arm.md (use_literal_pool): Remove. (64-bit immediate split): No longer takes cost into consideration if arm_disable_literal_pool is enabled. * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is used when arm_disable_literal_pool is enabled. (arm_max_const_double_inline_cost): Remove use of arm_disable_literal_pool. (push_minipool_fix): Add assert. (arm_reorg): Add return if arm_disable_literal_pool is enabled. * config/arm/vfp.md (no_literal_pool_df_immediate): New. (no_literal_pool_sf_immediate): New. gcc/testsuite/ Backport from trunk r247640. 2017-05-05 Andre Vieira Thomas Preud'homme Prakhar Bahuguna PR target/71607 * gcc.target/arm/thumb2-slow-flash-data.c: Renamed to ... * gcc.target/arm/thumb2-slow-flash-data-1.c: ... this. * gcc.target/arm/thumb2-slow-flash-data-2.c: New. * gcc.target/arm/thumb2-slow-flash-data-3.c: New. * gcc.target/arm/thumb2-slow-flash-data-4.c: New. * gcc.target/arm/thumb2-slow-flash-data-5.c: New. * gcc.target/arm/tls-disable-literal-pool.c: New. gcc/testsuite/ Backport from trunk r248270. 2017-05-19 Prakhar Bahuguna * gcc.target/arm/tls-disable-literal-pool.c: Change require-effective-target to tls_native. Move dg-error to return statement line and change to dg-message. 2017-06-14 Yvan Roux gcc/ Backport from trunk r247603. 2016-05-04 Kyrylo Tkachov * config/aarch64/aarch64.md (prefetch); Adjust predicate and constraint on operand 0 to allow more general addressing modes. Adjust output template. * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p): New function. * config/aarch64/aarch64-protos.h (aarch64_address_valid_for_prefetch_p): Declare prototype. * config/aarch64/constraints.md (Dp): New address constraint. * config/aarch64/predicates.md (aarch64_prefetch_operand): New predicate. gcc/testsuite/ Backport from trunk r247603. 2016-05-04 Kyrylo Tkachov * gcc.target/aarch64/prfm_imm_offset_1.c: New test. 2017-06-14 Yvan Roux gcc/ Backport from trunk r247750. 2017-05-08 Bernd Edlinger * target.def (compute_frame_layout): New optional target hook. * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook. * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation. * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout target hook. * reload1.c (verify_initial_elim_offsets): Likewise. * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define. (use_simple_return_p): Call arm_compute_frame_layout if needed. (arm_get_frame_offsets): Split up into this ... (arm_compute_frame_layout): ... and this function. 2017-06-13 Yvan Roux gcc/ Backport from trunk r247407. 2017-04-29 Prathamesh Kulkarni PR tree-optimization/79697 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC. (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or BUILT_IN_STRNDUP. * gimple-fold.c (gimple_fold_builtin_realloc): New function. (gimple_fold_builtin): Call gimple_fold_builtin_realloc. gcc/testsuite/ Backport from trunk r247407. 2017-04-29 Prathamesh Kulkarni PR tree-optimization/79697 * gcc.dg/tree-ssa/pr79697.c: New test. gcc/ Backport from trunk r247635. 2017-05-05 Prathamesh Kulkarni PR tree-optimization/80613 * tree-ssa-dce.c (propagate_necessity): Remove cases for BUILT_IN_STRDUP and BUILT_IN_STRNDUP. gcc/testsuite/ Backport from trunk r247635. 2017-05-05 Prathamesh Kulkarni PR tree-optimization/80613 * gcc.dg/tree-ssa/pr79697.c (k): Remove. 2017-06-13 Yvan Roux gcc/ Backport from trunk r247720. 2017-05-06 Richard Sandiford * lra-constraints.c (lra_copy_reg_equiv): New function. (split_reg): Use it to copy equivalence information from the original register to the spill register. gcc/testsuite/ Backport from trunk r247720. 2017-05-06 Richard Sandiford * gcc.target/aarch64/spill_1.c: New test. 2017-06-13 Yvan Roux gcc/ Backport from trunk r247831. 2017-05-10 Wilco Dijkstra PR target/80671 * config/aarch64/cortex-a57-fma-steering.c (merge_forest): Move member access before delete. 2017-06-13 Yvan Roux libgcc/ Backport from trunk r247812. 2017-05-09 Andreas Tobler * config.host: Use the generic FreeBSD t-slibgcc-elf-ver for arm*-*-freebsd* instead of the t-slibgcc-libgcc. 2017-06-13 Yvan Roux gcc/ Backport from trunk r247746. 2017-05-08 Richard Sandiford * config/aarch64/constraints.md (Usa): New constraint. * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it. 2017-06-13 Yvan Roux gcc/ Backport from trunk r247505. 2017-04-26 Tamar Christina * expr.c (expand_expr_real_2): Re-cost if previous costs are the same. 2017-06-12 Yvan Roux gcc/testsuite/ Backport from trunk r247714. 2017-05-06 Tom de Vries PR testsuite/80557 * gcc.target/arm/pr69180.c: Replace absolute line numbers. 2017-06-12 Yvan Roux gcc/testsuite/ Backport from trunk r247713. * gcc.target/aarch64/spellcheck_1.c: Replace absolute line numbers. * gcc.target/aarch64/spellcheck_2.c: Same. * gcc.target/aarch64/spellcheck_3.c: Same. 2017-05-06 Tom de Vries PR testsuite/80557 2017-06-12 Yvan Roux libgcc/ Backport from trunk r247710. 2017-05-05 Joshua Conner * config/arm/unwind-arm.h (_Unwind_decode_typeinfo_ptr): Use pc-relative indirect handling for fuchsia. * config/t-slibgcc-fuchsia: New file. * config.host (*-*-fuchsia*, aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add definitions. 2017-06-12 Yvan Roux gcc/ Backport from trunk r247643. 2017-05-05 Wilco Dijkstra * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w. (movdi_aarch64): Likewise. 2017-06-12 Yvan Roux gcc/ Backport from trunk r247631. 2017-05-05 Wilco Dijkstra * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr): New function. (arm_early_store_addr_dep_ptr): Likewise. * config/arm/aarch-common-protos.h (arm_early_load_addr_dep_ptr): Add prototype. (arm_early_store_addr_dep_ptr): Likewise. * config/arm/cortex-a53.md: Add new bypasses. 2017-06-12 Yvan Roux gcc/ Backport from trunk r247609. 2017-05-04 Wilco Dijkstra * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4. (cortexa53_tunings): Likewise. (cortexa57_tunings): Likewise. (cortexa72_tunings): Likewise. (cortexa73_tunings): Likewise. 2017-06-08 Yvan Roux gcc/ Backport from trunk r247125. 2017-04-25 Julian Brown Naveen H.S * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation. 2017-06-08 Yvan Roux gcc/ Backport from trunk r247124. 2017-04-25 Julian Brown Naveen H.S * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation. (thunderx2t99_sha): New Reservation. 2017-06-06 Yvan Roux gcc/ Backport from trunk r247122. 2017-04-25 Julian Brown Naveen H.S * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set): Fix type for 1-element load. 2017-05-17 TCWG Automation gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2017-05-17 TCWG Automation Make Linaro GCC Snapshot 7.1-2017.05. gcc/ * LINARO-VERSION: Update. 2017-05-10 Yvan Roux Merge branches/gcc-7-branch rev 247824. 2017-05-10 Christophe Lyon gcc/ Backport from trunk r247646. 2017-05-05 Thomas Preud'homme * config.gcc: Allow combinations of aprofile and rmprofile values for --with-multilib-list. * config/arm/t-multilib: New file. * config/arm/t-aprofile: Remove initialization of MULTILIB_* variables. Remove setting of ISA and floating-point ABI in MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS and MULTILIB_DIRNAMES respectively. Add comment to introduce all matches. Add architecture matches for marvel-pj4 and generic-armv7-a CPU options. * config/arm/t-rmprofile: Likewise except for the matches changes. * doc/install.texi (--with-multilib-list): Document the combination of aprofile and rmprofile values and warn about pitfalls in doing that. gcc/ Backport from trunk r247650. 2017-05-05 Nathan Sidwell * config.gcc (arm*-*-*): Add missing 'fi'. gcc/ Backport from trunk r247741. 2017-05-08 Thomas Preud'homme * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from with_multilib_list after it has been checked. 2017-05-10 Christophe Lyon gcc/ Backport from trunk r247606. 2017-05-04 Wilco Dijkstra * config/aarch64/aarch64.c (generic_addrcost_table): Change HI/TI mode setting. gcc/ Backport from trunk r247608. 2017-05-04 Wilco Dijkstra * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4. Set loop alignment to 8. gcc/ Backport from trunk r247610. 2017-05-04 Wilco Dijkstra * config/aarch64/aarch64.c (generic_tunings): Update prefetch model. 2017-05-10 Christophe Lyon gcc/ Backport from trunk r247584. 2017-05-04 Prakhar Bahuguna * gcc/config/arm/arm-builtins.c (arm_init_builtins): Rename __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename __builtin_arm_stfscr to __builtin_arm_set_fpscr. gcc/testsuite/ Backport from trunk r247584. 2017-05-04 Prakhar Bahuguna * gcc.target/arm/fpscr.c: New file. 2017-05-10 Christophe Lyon gcc/testsuite/ Backport from trunk r247582. 2017-05-04 Thomas Preud'homme * gcc.c-torture/execute/pr78622.c: Require c99_runtime effective target. 2017-05-10 Christophe Lyon gcc/ Backport from trunk r247542. 2017-05-03 Thomas Preud'homme * config/arm/iterators.md (CCSI): New mode iterator. (arch): New mode attribute. * config/arm/sync.md (atomic_compare_and_swap_1): Rename into ... (atomic_compare_and_swap_1): This and ... (atomic_compare_and_swap_1): This. Use CCSI code iterator for success result mode. * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use the corresponding new insn generators. 2017-05-09 Christophe Lyon gcc/ Backport from trunk r247504. 2017-04-27 Tamar Christina * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case. gcc/testsuite/ Backport from trunk r247504. 2017-04-27 Tamar Christina * gcc.dg/lsr-div1.c: New testcase. 2017-05-02 Yvan Roux Create Linaro branch from gcc-7-branch at r247521. * .gitreview: New file. gcc/ * LINARO-VERSION: New file. * configure.ac: Add Linaro version string. * configure: Regenerate. gcc/ Cherry-pick from linaro/gcc-4_9-branch r217544. 2014-11-14 Yvan Roux Add Linaro release macros (Linaro only patch.) * Makefile.in (LINAROVER, LINAROVER_C, LINAROVER_S): Define. (CFLAGS-cppbuiltin.o): Add LINAROVER macro definition. (cppbuiltin.o): Depend on $(LINAROVER). * cppbuiltin.c (parse_linarover): New. (define_GNUC__): Define __LINARO_RELEASE__ and __LINARO_SPIN__ macros.