1. 26 Sep, 2019 26 commits
    • xtensa: fix PR target/91880 · d7326aaf
      Xtensa hwloop_optimize segfaults when zero overhead loop is about to be
      inserted as the first instruction of the function.
      Insert zero overhead loop instruction into new basic block before the
      loop when basic block that precedes the loop is empty.
      
      2019-09-26  Max Filippov  <jcmvbkbc@gmail.com>
      gcc/
      	* config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead
      	loop instruction into new basic block before the loop when basic
      	block that precedes the loop is empty.
      
      gcc/testsuite/
      	* gcc.target/xtensa/pr91880.c: New test case.
      	* gcc.target/xtensa/xtensa.exp: New test suite.
      
      From-SVN: r276166
      Max Filippov committed
    • function.c (gimplify_parameters): Use build_clobber function. · 25b45c7c
      	* function.c (gimplify_parameters): Use build_clobber function.
      	* tree-ssa.c (execute_update_addresses_taken): Likewise.
      	* tree-inline.c (expand_call_inline): Likewise.
      	* tree-sra.c (clobber_subtree): Likewise.
      	* tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise.
      	* omp-low.c (lower_rec_simd_input_clauses, lower_rec_input_clauses,
      	lower_omp_single, lower_depend_clauses, lower_omp_taskreg,
      	lower_omp_target): Likewise.
      	* omp-expand.c (expand_omp_for_generic): Likewise.
      	* omp-offload.c (ompdevlow_adjust_simt_enter): Likewise.
      
      From-SVN: r276165
      Jakub Jelinek committed
    • rs6000-builtin.def: (LVSL... · 9ab2f9ae
      [gcc]
      
      2019-09-26  Will Schmidt <will_schmidt@vnet.ibm.com>
      	* config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
      	LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
      	LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
      	LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
      	LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
      	LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
      	LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
      	LD_ELEMREV_V16QI): Use the PURE attribute.
      
      [testsuite]
      
      2019-09-26  Will Schmidt <will_schmidt@vnet.ibm.com>
      	* gcc.target/powerpc/pure-builtin-redundant-load.c:  New.
      
      From-SVN: r276163
      Will Schmidt committed
    • rs6000-builtin.def: (LVSL... · be193fa7
      [gcc]
      
      2019-09-26  Will Schmidt <will_schmidt@vnet.ibm.com>
      	* config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
      	LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
      	LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
      	LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
      	LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
      	LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
      	LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
      	LD_ELEMREV_V16QI): Use the PURE attribute.
      
      [testsuite]
      
      2019-09-26  Will Schmidt <will_schmidt@vnet.ibm.com>
      	* gcc.target/powerpc/pure-builtin-redundant-load.c:  New.
      
      From-SVN: r276162
      Will Schmidt committed
    • [Darwin, PPC, Mode Iterators 2/n] Eliminate picbase expanders. · 4fc1d262
      We can use the mode iterators directly with an @pattern to avoid the
      need for an expander that was only there to pass the mode through.
      
      gcc/ChangeLog:
      
      2019-09-26  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/darwin.md: Replace the expanders for
      	load_macho_picbase and reload_macho_picbase with use of '@'
      	in their respective define_insns.
      	(nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase.
      	* config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass
      	Pmode to gen_load_macho_picbase.
      	* config/rs6000/rs6000.md: Likewise.
      
      From-SVN: r276159
      Iain Sandoe committed
    • re PR tree-optimization/91896 (ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1687) · 0bfc2041
      2019-09-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/91896
      	* tree-vect-loop.c (vectorizable_reduction): The single
      	def-use cycle optimization cannot apply when there's more
      	than one pattern stmt involved.
      
      	* gcc.dg/torture/pr91896.c: New testcase.
      
      From-SVN: r276158
      Richard Biener committed
    • tree-vect-loop.c (vect_analyze_loop_operations): Analyze loop-closed PHIs that… · 1b4dbccc
      tree-vect-loop.c (vect_analyze_loop_operations): Analyze loop-closed PHIs that are vect_internal_def.
      
      2019-09-26  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-loop.c (vect_analyze_loop_operations): Analyze
      	loop-closed PHIs that are vect_internal_def.
      	(vect_create_epilog_for_reduction): Exit early for nested cycles.
      	Simplify.
      	(vectorizable_lc_phi): New.
      	* tree-vect-stmts.c (vect_analyze_stmt): Call vectorize_lc_phi.
      	(vect_transform_stmt): Likewise.
      	* tree-vectorizer.h (stmt_vec_info_type): Add lc_phi_info_type.
      	(vectorizable_lc_phi): Declare.
      
      From-SVN: r276157
      Richard Biener committed
    • PR tree-optimization/91914 - Invalid strlen folding for offset into struct · 26cdf7bd
      gcc/testsuite/CHangeLog:
      	* gcc.dg/strlenopt-79.c: New test.
      
      From-SVN: r276156
      Martin Sebor committed
    • Define std::to_array for Debug Mode · c9fb0a85
      	* include/debug/array (to_array): Define for debug mode.
      
      From-SVN: r276155
      Jonathan Wakely committed
    • Implement C++20 constexpr changes to std::pair (P1032R1) · 7a9942f5
      	* include/bits/stl_pair.h (pair): Add _GLIBCXX20_CONSTEXPR to
      	piecewise construction constructor, assignment operators, and swap.
      	* include/std/tuple (pair::pair(piecewise_construct_t, tuple, tuple)):
      	Add _GLIBCXX20_CONSTEXPR.
      	(pair::pair(tuple, tuple, _Index_tuple, _Index_tuple)): Likewise.
      	* testsuite/20_util/pair/constexpr_assign.cc: New test.
      	* testsuite/20_util/pair/constexpr_swap.cc: New test.
      
      From-SVN: r276154
      Jonathan Wakely committed
    • Fix array index error in address_v6 comparisons · d5f7e049
      	* include/experimental/internet (operator==, operator<): Fix loop
      	condition to avoid reading past the end of the array.
      
      From-SVN: r276153
      Jonathan Wakely committed
    • Remove include directives for deleted Profile Mode headers · 8eb60b2f
      	* include/std/array: Remove references to profile mode.
      	* include/std/bitset: Likewise.
      	* include/std/deque: Likewise.
      	* include/std/forward_list: Likewise.
      	* include/std/list: Likewise.
      	* include/std/map: Likewise.
      	* include/std/set: Likewise.
      	* include/std/unordered_map: Likewise.
      	* include/std/unordered_set: Likewise.
      	* include/std/vector: Likewise.
      	* testsuite/17_intro/headers/c++1998/profile_mode.cc: New test.
      	* testsuite/17_intro/headers/c++2011/profile_mode.cc: New test.
      
      From-SVN: r276152
      Jonathan Wakely committed
    • tree-vect-loop.c (vect_analyze_loop_operations): Also call… · 9593e8e5
      tree-vect-loop.c (vect_analyze_loop_operations): Also call vectorizable_reduction for vect_double_reduction_def.
      
      2019-09-26  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-loop.c (vect_analyze_loop_operations): Also call
      	vectorizable_reduction for vect_double_reduction_def.
      	(vect_transform_loop): Likewise.
      	(vect_create_epilog_for_reduction): Move double-reduction
      	PHI creation and preheader argument setting of PHIs ...
      	(vectorizable_reduction): ... here.  Also process
      	vect_double_reduction_def PHIs, creating the vectorized
      	PHI nodes, remembering the scalar adjustment computed for
      	the epilogue in STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT.
      	Remember the original reduction code in STMT_VINFO_REDUC_CODE.
      	* tree-vectorizer.c (vec_info::new_stmt_vec_info):
      	Initialize STMT_VINFO_REDUC_CODE.
      	* tree-vectorizer.h (_stmt_vec_info::reduc_epilogue_adjustment): New.
      	(_stmt_vec_info::reduc_code): Likewise.
      	(STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise.
      	(STMT_VINFO_REDUC_CODE): Likewise.
      
      From-SVN: r276150
      Richard Biener committed
    • Add myself as an aarch64 maintainer · 5fdd1d33
      2019-09-26  Richard Sandiford  <richard.sandiford@arm.com>
      
      	* MAINTAINERS: Add myself as an aarch64 maintainer.
      
      From-SVN: r276149
      Richard Sandiford committed
    • driver: Also prune joined switches with negation · 6fdbe419
      When -march=native is passed to host_detect_local_cpu to the backend,
      it overrides all command lines after it.  That means
      
      $ gcc -march=native -march=armv8-a
      
      is treated as
      
      $ gcc -march=armv8-a -march=native
      
      Prune joined switches with Negative and RejectNegative to allow
      -march=armv8-a to override previous -march=native on command-line.
      
      This is the same fix as was applied for i386 in SVN revision 269164 but for
      aarch64 and arm.
      
      2019-09-26  Matt Turner  <mattst88@gmail.com>
      
      	PR driver/69471
      	* config/aarch64/aarch64.opt (march=): Add Negative(march=).
      	(mtune=): Add Negative(mtune=).
      	(mcpu=): Add Negative(mcpu=).
      	* config/arm/arm.opt: Likewise.
      
      From-SVN: r276148
      Matt Turner committed
    • [arm] Implement DImode SIMD32 intrinsics · 2b5b5e24
      This patch implements some more SIMD32, but these ones have a DImode result+addend.
      Apart from that there's nothing too exciting about them.
      
      Bootstrapped and tested on arm-none-linux-gnueabihf.
      
      	* config/arm/arm.md (arm_<simd32_op>): New define_insn.
      	* config/arm/arm_acle.h (__smlald, __smlaldx, __smlsld, __smlsldx):
      	Define.
      	* config/arm/arm_acle.h: Define builtins for the above.
      	* config/arm/iterators.md (SIMD32_DIMODE): New int_iterator.
      	(simd32_op): Handle the above.
      	* config/arm/unspecs.md: Define unspecs for the above.
      
      	* gcc.target/arm/acle/simd32.c: Update test.
      
      From-SVN: r276147
      Kyrylo Tkachov committed
    • [arm] Implement non-GE-setting SIMD32 intrinsics · 53cd0ac6
      This patch is part of a series to implement the SIMD32 ACLE intrinsics [1].
      The interesting parts implementation-wise involve adding support for setting and reading
      the Q bit for saturation and the GE-bits for the packed SIMD instructions.
      That will come in a later patch.
      
      For now, this patch implements the other intrinsics that don't need anything special ;
      just a mapping from arm_acle.h function to builtin to RTL expander+unspec.
      
      I've compressed as many as I could with iterators so that we end up needing only 3
      new define_insns.
      
      Bootstrapped and tested on arm-none-linux-gnueabihf.
      
      [1] https://developer.arm.com/docs/101028/latest/data-processing-intrinsics
      
      	* config/arm/arm.md (arm_<simd32_op>): New define_insn.
      	(arm_<sup>xtb16): Likewise.
      	(arm_usada8): Likewise.
      	* config/arm/arm_acle.h (__qadd8, __qsub8, __shadd8, __shsub8,
      	__uhadd8, __uhsub8, __uqadd8, __uqsub8, __qadd16, __qasx, __qsax,
      	__qsub16, __shadd16, __shasx, __shsax, __shsub16, __uhadd16, __uhasx,
      	__uhsax, __uhsub16, __uqadd16, __uqasx, __uqsax, __uqsub16, __sxtab16,
      	__sxtb16, __uxtab16, __uxtb16): Define.
      	* config/arm/arm_acle_builtins.def: Define builtins for the above.
      	* config/arm/unspecs.md: Define unspecs for the above.
      	* config/arm/iterators.md (SIMD32_NOGE_BINOP): New int_iterator.
      	(USXTB16): Likewise.
      	(simd32_op): New int_attribute.
      	(sup): Handle UNSPEC_SXTB16, UNSPEC_UXTB16.
      	* doc/sourcebuild.exp (arm_simd32_ok): Document.
      
      	* lib/target-supports.exp
      	(check_effective_target_arm_simd32_ok_nocache): New procedure.
      	(check_effective_target_arm_simd32_ok): Likewise.
      	(add_options_for_arm_simd32): Likewise.
      	* gcc.target/arm/acle/simd32.c: New test.
      
      From-SVN: r276146
      Kyrylo Tkachov committed
    • [arm] Update FP16 tests · 1275a541
      My recent assemble_real patch (r275873) meant that we now output
      negative FP16 constants in the same way as we'd output an integer
      subreg of them.  This patch updates gcc.target/arm/fp16-* accordingly.
      
      2019-09-26  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* gcc.target/arm/fp16-compile-alt-3.c: Expect (__fp16) -2.0
      	to be written as a negative short rather than a positive one.
      	* gcc.target/arm/fp16-compile-ieee-3.c: Likewise.
      
      From-SVN: r276145
      Richard Sandiford committed
    • [PATCH] Fix quoting in a call to internal_error · e2b1923b
      2019-09-26  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-sra.c (verify_splitting_accesses): Fix quoting in a call to
      	internal_error.
      
      From-SVN: r276144
      Martin Jambor committed
    • [PATCH] Fix continue condition in IPA-SRA's process_scan_results · 581b519f
      2019-09-26  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-sra.c (process_scan_results): Fix continue condition.
      
      From-SVN: r276143
      Martin Jambor committed
    • Add myself as aarch64 port maintainer · 16b17446
      	* MAINTAINERS: Add myself as aarch64 maintainer.
      
      From-SVN: r276142
      Kyrylo Tkachov committed
    • Add TODO_update_ssa for SLP BB vectorization (PR tree-optimization/91885). · 704bc4bb
      2019-09-26  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/91885
      	* tree-vectorizer.c (try_vectorize_loop_1):
      	Add TODO_update_ssa_only_virtuals similarly to what slp
      	pass does.
      2019-09-26  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/91885
      	* gcc.dg/pr91885.c: New test.
      
      From-SVN: r276141
      Martin Liska committed
    • [AArch64] Fix cost of (plus ... (const_int -C)) · 835d50c6
      The PLUS handling in aarch64_rtx_costs only checked for nonnegative
      constants, meaning that simple immediate subtractions like:
      
        (set (reg R1) (plus (reg R2) (const_int -8)))
      
      had a cost of two instructions.
      
      2019-09-26  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/aarch64.c (aarch64_rtx_costs): Use
      	aarch64_plus_immediate rather than aarch64_uimm12_shift
      	to test for valid PLUS immediates.
      
      From-SVN: r276140
      Richard Sandiford committed
    • Daily bump. · ec14f8ab
      From-SVN: r276139
      GCC Administrator committed
  2. 25 Sep, 2019 14 commits