1. 03 Jun, 2019 17 commits
    • Corrections for C++2a library status table · bf5824f9
      	* doc/xml/manual/status_cxx2020.xml: Add missing row for P0920R2.
      	Fix bgcolor for P0340R3.
      	* doc/html/*: Regenerate.
      
      From-SVN: r271868
      Jonathan Wakely committed
    • PR libstdc++/90686 update C++2a library status docs · 512a80ec
      	PR libstdc++/90686
      	* doc/xml/manual/status_cxx2014.xml: Document what's missing from
      	<experimental/memory_resource>.
      	* doc/xml/manual/status_cxx2020.xml: Document status of P1285R0,
      	P0339R6, P0340R3, P1164R1 and P1357R1.
      	* doc/html/*: Regenerate.
      
      From-SVN: r271867
      Jonathan Wakely committed
    • Enforce allocator::value_type consistency for containers in C++2a · ebaf3659
      In previous standards it is undefined for a container and its allocator
      to have a different value_type. Libstdc++ has traditionally allowed it
      as an extension, automatically rebinding the allocator to the
      container's value_type. Since GCC 8.1 that extension has been disabled
      for C++11 and later when __STRICT_ANSI__ is defined (i.e. for
      -std=c++11, -std=c++14, -std=c++17 and -std=c++2a).
      
      Since the acceptance of P1463R1 into the C++2a draft an incorrect
      allocator::value_type now requires a diagnostic. This patch implements
      that by enabling the static_assert for -std=gnu++2a as well.
      
      	* doc/xml/manual/status_cxx2020.xml: Document P1463R1 status.
      	* include/bits/forward_list.h [__cplusplus > 201703]: Enable
      	allocator::value_type assertion for C++2a.
      	* include/bits/hashtable.h: Likewise.
      	* include/bits/stl_deque.h: Likewise.
      	* include/bits/stl_list.h: Likewise.
      	* include/bits/stl_map.h: Likewise.
      	* include/bits/stl_multimap.h: Likewise.
      	* include/bits/stl_multiset.h: Likewise.
      	* include/bits/stl_set.h: Likewise.
      	* include/bits/stl_vector.h: Likewise.
      	* testsuite/23_containers/deque/48101-3_neg.cc: New test.
      	* testsuite/23_containers/forward_list/48101-3_neg.cc: New test.
      	* testsuite/23_containers/list/48101-3_neg.cc: New test.
      	* testsuite/23_containers/map/48101-3_neg.cc: New test.
      	* testsuite/23_containers/multimap/48101-3_neg.cc: New test.
      	* testsuite/23_containers/multiset/48101-3_neg.cc: New test.
      	* testsuite/23_containers/set/48101-3_neg.cc: New test.
      	* testsuite/23_containers/unordered_map/48101-3_neg.cc: New test.
      	* testsuite/23_containers/unordered_multimap/48101-3_neg.cc: New test.
      	* testsuite/23_containers/unordered_multiset/48101-3_neg.cc: New test.
      	* testsuite/23_containers/unordered_set/48101-3_neg.cc: New test.
      	* testsuite/23_containers/vector/48101-3_neg.cc: New test.
      
      From-SVN: r271866
      Jonathan Wakely committed
    • tree-vrp.h (value_range_base::nonzero_p): New. · f2b00d2b
      	* tree-vrp.h (value_range_base::nonzero_p): New.
      	(value_range_base::set_nonnull): Rename to...
      	(value_range_base::set_nonzero): ...this.
      	(value_range_base::set_null): Rename to...
      	(value_range_base::set_zero): ...this.
      	(value_range::set_nonnull): Remove.
      	(value_range::set_null): Remove.
      	* tree-vrp.c (range_is_null): Remove.
      	(range_is_nonnull): Remove.
      	(extract_range_from_binary_expr): Use value_range_base::*zero_p
      	instead of range_is_*null.
      	(extract_range_from_unary_expr): Same.
      	(value_range_base::set_nonnull): Rename to...
      	(value_range_base::set_nonzero): ...this.
      	(value_range::set_nonnull): Remove.
      	(value_range_base::set_null): Rename to...
      	(value_range_base::set_zero): ...this.
      	(value_range::set_null): Remove.
      	(extract_range_from_binary_expr): Rename set_*null uses to
      	set_*zero.
      	(extract_range_from_unary_expr): Same.
      	(union_helper): Same.
      	* vr-values.c (get_value_range): Use set_*zero instead of
      	set_*null.
      	(vr_values::extract_range_from_binary_expr): Same.
      	(vr_values::extract_range_basic): Same.
      
      From-SVN: r271865
      Aldy Hernandez committed
    • Fix alignment option parser (PR90684) · 49f3f450
      Fix the alignment option parser to always allow up to 4 alignments.
      Now -falign-functions=16:8:8:8 no longer reports an error.
      
          gcc/
      	PR driver/90684
      	* opts.c (parse_and_check_align_values): Allow 4 alignment values.
      M    gcc/ChangeLog
      M    gcc/opts.c
      
      From-SVN: r271864
      Wilco Dijkstra committed
    • [AArch64] Emit TARGET_DOTPROD-specific sequence for <us>sadv16qi · 72215009
      Wilco pointed out that when the Dot Product instructions are available we can use them
      to generate an even more efficient expansion for the [us]sadv16qi optab.
      Instead of the current:
              uabdl2  v0.8h, v1.16b, v2.16b
              uabal   v0.8h, v1.8b, v2.8b
              uadalp  v3.4s, v0.8h
      
      we can generate:
            (1)  mov    v4.16b, 1
            (2)  uabd    v0.16b, v1.16b, v2.16b
            (3)  udot    v3.4s, v0.16b, v4.16b
      
      Instruction (1) can be CSEd across multiple such expansions and even hoisted outside of loops,
      so when this sequence appears frequently back-to-back (like in x264_r) we essentially only have 2 instructions
      per sum. Also, the UDOT instruction does the byte-to-word accumulation in one step, which allows us to use
      the much simpler UABD instruction before it.
      
      This makes it a shorter and lower-latency sequence overall for targets that support it.
      
      	* config/aarch64/iterators.md (MAX_OPP): New code attr.
      	* config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Rename to...
      	(aarch64_<su>abd<mode>_3): ... This.
      	(<sur>sadv16qi): Add TARGET_DOTPROD expansion.
      
      	* gcc.target/aarch64/ssadv16qi.c: Add +nodotprod to pragma.
      	* gcc.target/aarch64/usadv16qi.c: Likewise.
      	* gcc.target/aarch64/ssadv16qi-dotprod.c: New test.
      	* gcc.target/aarch64/usadv16qi-dotprod.c: Likewise.
      
      From-SVN: r271863
      Kyrylo Tkachov committed
    • target-supports.exp (add_options_for_aarch64_sve): New procedure. · c89503d9
      2019-06-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	* lib/target-supports.exp (add_options_for_aarch64_sve): New procedure.
      	(aarch64_sve_hw_bits): Call add_options_for_aarch64_sve.
      	(check_effective_target_aarch64_sve_hw): Likewise.
      
      From-SVN: r271862
      Prathamesh Kulkarni committed
    • Remove Java Trees from GENERIC manual. · 3fa97a0b
      2019-06-03  Martin Liska  <mliska@suse.cz>
      
      	* doc/generic.texi: Remove Java Trees.
      
      From-SVN: r271861
      Martin Liska committed
    • tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original full reference… · 1be54209
      tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original full reference tree and record in ref->ref.
      
      2019-06-03  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
      	full reference tree and record in ref->ref.
      	(vn_reference_lookup_3): Pass in original ref to
      	ao_ref_init_from_vn_reference.
      	(vn_reference_lookup): Likewise.
      	* tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
      	* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
      	Handle non-decl bases in the original reference.
      
      	* gcc.dg/tree-ssa/alias-access-path-1.c: Scan fre1.
      
      From-SVN: r271860
      Richard Biener committed
    • Fix typo in index comparison of CONSTRUCTOR. · 4c76ebd0
      2019-06-03  Martin Liska  <mliska@suse.cz>
      
      	* fold-const.c (operand_equal_p): Fix typo as compare_tree_int
      	returns 0 when operands are equal.
      
      From-SVN: r271859
      Martin Liska committed
    • re PR tree-optimization/90716 (gcc generates wrong debug information at -O2) · efb34006
      2019-06-03  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/90716
      	* tree-loop-distribution.c (destroy_loop): Process blocks in
      	correct order.
      
      	* gcc.dg/guality/pr90716.c: New testcase.
      
      From-SVN: r271858
      Richard Biener committed
    • re PR target/88837 ([SVE] Poor vector construction code in VL-specific mode) · 3a0afad0
      2019-06-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	PR target/88837
      	* vector-builder.h (vector_builder::count_dups): New method.
      	* config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
      	Declare prototype.
      	* config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
      	(vec_init<mode><Vel>): New pattern.
      	* config/aarch64/aarch64.c (emit_insr): New function.
      	(aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
      	(aarch64_sve_expand_vector_init_insert_elems): Likewise.
      	(aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
      	(aarch64_sve_expand_vector_init): Define two overloaded functions.
      
      testsuite/
      	* gcc.target/aarch64/sve/init_1.c: New test.
      	* gcc.target/aarch64/sve/init_1_run.c: Likewise.
      	* gcc.target/aarch64/sve/init_2.c: Likewise.
      	* gcc.target/aarch64/sve/init_2_run.c: Likewise.
      	* gcc.target/aarch64/sve/init_3.c: Likewise.
      	* gcc.target/aarch64/sve/init_3_run.c: Likewise.
      	* gcc.target/aarch64/sve/init_4.c: Likewise.
      	* gcc.target/aarch64/sve/init_4_run.c: Likewise.
      	* gcc.target/aarch64/sve/init_5.c: Likewise.
      	* gcc.target/aarch64/sve/init_5_run.c: Likewise.
      	* gcc.target/aarch64/sve/init_6.c: Likewise.
      	* gcc.target/aarch64/sve/init_6_run.c: Likewise.
      	* gcc.target/aarch64/sve/init_7.c: Likewise.
      	* gcc.target/aarch64/sve/init_7_run.c: Likewise.
      	* gcc.target/aarch64/sve/init_8.c: Likewise.
      	* gcc.target/aarch64/sve/init_8_run.c: Likewise.
      	* gcc.target/aarch64/sve/init_9.c: Likewise.
      	* gcc.target/aarch64/sve/init_9_run.c: Likewise.
      	* gcc.target/aarch64/sve/init_10.c: Likewise.
      	* gcc.target/aarch64/sve/init_10_run.c: Likewise.
      	* gcc.target/aarch64/sve/init_11.c: Likewise.
      	* gcc.target/aarch64/sve/init_11_run.c: Likewise.
      	* gcc.target/aarch64/sve/init_12.c: Likewise.
      	* gcc.target/aarch64/sve/init_12_run.c: Likewise.
      
      From-SVN: r271857
      Prathamesh Kulkarni committed
    • Fix ICE in vect_slp_analyze_node_operations_1 · bcde3345
      This patch fixes bug 90681.  It was caused by trying to SLP vectorize a non
      groupped load.  We've fixed it by tweaking a bit the implementation: mark
      masked loads as not vectorizable, but support them as an special case.  Then
      the detect them in the test for normal non-groupped loads that was already
      there.
      
      From-SVN: r271856
      Alejandro Martinez committed
    • re PR testsuite/90713 (FAIL: gcc.dg/gimplefe-40.c (internal compiler error)) · 961dce6b
      2019-06-03  Richard Biener  <rguenther@suse.de>
      
      	PR testsuite/90713
      	* gcc.dg/gimplefe-40.c: Add -maltivec for powerpc.
      
      From-SVN: r271855
      Richard Biener committed
    • Make debug(edge) more verbose. · 6eb3cadb
      2019-06-03  Martin Liska  <mliska@suse.cz>
      
      	* cfg.c (debug): Use TDF_DETAILS for debug and
      	print edge info only once.
      
      From-SVN: r271854
      Martin Liska committed
    • re PR target/89750 (Wrong code for _mm_comi_round_ss) · 467e9f38
      2019-05-06  H.J. Lu  <hongjiu.lu@intel.com>
      	    Hongtao Liu  <hongtao.liu@intel.com>
      
      	PR target/89750
      	PR target/86444
      	* config/i386/i386-expand.c (ix86_expand_sse_comi_round):
      	Modified, original implementation isn't correct.
      
      2019-05-06  H.J. Lu  <hongjiu.lu@intel.com>
      	    Hongtao Liu  <hongtao.liu@intel.com>
      
      	PR target/89750
      	PR target/86444
      	* gcc.target/i386/avx512f-vcomisd-2.c: New.
      	* gcc.target/i386/avx512f-vcomisd-2.c: Likewise.
      
      Co-Authored-By: Hongtao Liu <hongtao.liu@intel.com>
      
      From-SVN: r271853
      H.J. Lu committed
    • Daily bump. · 4bd04267
      From-SVN: r271852
      GCC Administrator committed
  2. 02 Jun, 2019 2 commits
    • re PR fortran/90539 (481.wrf slowdown by 25% on Intel Kaby with -Ofast… · 5d9c602d
      re PR fortran/90539 (481.wrf slowdown by 25% on Intel Kaby with -Ofast -march=native starting with r271377)
      
      2019-06-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/90539
      	* trans-expr.c (gfc_conv_subref_array_arg): If the size of the
      	expression can be determined to be one, treat it as contiguous.
      	Set likelyhood of presence of an actual argument according to
      	PRED_FORTRAN_ABSENT_DUMMY and likelyhood of being contiguous
      	according to PRED_FORTRAN_CONTIGUOUS.
      
      2019-06-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/90539
      	* predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
      
      2019-06-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/90539
      	* gfortran.dg/internal_pack_24.f90: New test.
      
      From-SVN: r271844
      Thomas Koenig committed
    • Daily bump. · 5efdd6ee
      From-SVN: r271843
      GCC Administrator committed
  3. 01 Jun, 2019 6 commits
  4. 31 May, 2019 15 commits
    • i386: Don't insert ENDBR after NOTE_INSN_DELETED_LABEL · 02ed9049
      NOTE_INSN_DELETED_LABEL is used to mark what used to be a 'code_label',
      but was not used for other purposes than taking its address which cannot
      be used as target for indirect jumps.
      
      Tested on Linux/x86-64 with -fcf-protection.
      
      For x86-64 libc.so on glibc master branch (commit f43b8dd55588c3),
      
      Before: 2961 endbr64
      After:  2943 endbr64
      
      gcc/
      
      	PR target/89355
      	* config/i386/i386-features.c (rest_of_insert_endbranch): Remove
      	NOTE_INSN_DELETED_LABEL check.
      
      gcc/testsuite/
      
      	PR target/89355
      	* gcc.target/i386/cet-label-3.c: New test.
      	* gcc.target/i386/cet-label-4.c: Likewise.
      	* gcc.target/i386/cet-label-5.c: Likewise.
      
      Co-Authored-By: Hongtao Liu <hongtao.liu@intel.com>
      
      From-SVN: r271828
      H.J. Lu committed
    • mips.c (mips_expand_builtin_insn): Swap the 1st and 3rd operands of the fmadd/fmsub/maddv builtin. · 29c15932
      	* config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
      	and 3rd operands of the fmadd/fmsub/maddv builtin.
      
      	* gcc.target/mips/msa-fmadd.c: New.
      
      From-SVN: r271826
      Jeff Law committed
    • tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define. · e7393c89
      	* tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
      	* gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
      	on OMP_SIMD if not nested inside of worksharing loop that also has
      	lastprivate conditional clause for the same decl.
      	(gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
      	* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
      	on simd.
      	(lower_rec_input_clauses): Likewise.  Handle lastprivate conditional
      	on simd construct.
      	(lower_lastprivate_conditional_clauses): Handle lastprivate conditional
      	on simd construct.
      	(lower_lastprivate_clauses): Likewise.
      	(lower_omp_sections): Call lower_lastprivate_conditional_clauses before
      	calling lower_rec_input_clauses.
      	(lower_omp_for): Likewise.
      	(lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
      	clause on simd construct.
      	* omp-expand.c (expand_omp_simd): Initialize cond_var if
      	OMP_CLAUSE__CONDTEMP_ clause is present.
      
      	* c-c++-common/gomp/lastprivate-conditional-2.c (foo): Don't expect
      	a sorry on lastprivate conditional on simd construct.
      	* gcc.dg/vect/vect-simd-6.c: New test.
      	* gcc.dg/vect/vect-simd-7.c: New test.
      
      From-SVN: r271825
      Jakub Jelinek committed
    • omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on ivar and lvar. · 1ce8fc63
      	* omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
      	ivar and lvar.
      
      	* gcc.dg/vect/vect-simd-5.c: New test.
      
      From-SVN: r271824
      Jakub Jelinek committed
    • runtime: drop unused C type reflection code · 2099d446
          
          In particular, drop __go_type_descriptors_equal, which is no longer
          used, and will be made obsolete by CL 179598.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/179858
      
      From-SVN: r271823
      Ian Lance Taylor committed
    • compiler: optimize append of make · 6303331c
          
          The gc compiler recognizes append(s, make([]T, n)...), and
          generates code to directly zero the tail instead of allocating a
          new slice and copying. This CL lets the Go frontend do basically
          the same.
          
          The difficulty is that at the point we handle append, there may
          already be temporaries introduced (e.g. in order_evaluations),
          which makes it hard to find the append-of-make pattern. The
          compiler could "see through" the value of a temporary, but it is
          only safe to do if the temporary is not assigned multiple times.
          For this, we add tracking of assignments and uses for temporaries.
          
          This also helps in optimizing non-escape slice make. We already
          optimize non-escape slice make with constant len/cap to stack
          allocation. But it failed to handle things like f(make([]T, n))
          (where the slice doesn't escape and n is constant), because of
          the temporary. With tracking of temporary assignments and uses,
          it can handle this now as well.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/179597
      
      From-SVN: r271822
      Ian Lance Taylor committed
    • compiler: handle int-to-string conversion with large integer constant · 2b5360d7
          
          Currently, Type_conversion_expression::do_is_constant thinks the
          int-to-string conversion is constant if the integer operand is
          constant, but Type_conversion_expression::do_get_backend actually
          generates a call to runtime.intstring if the integer does not fit
          in a "ushort", which makes it not suitable in constant context,
          such as static initializer.
          
          This CL makes it handle all constant integer input as constant,
          generating constant string.
          
          Fixes golang/go#32347.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/179777
      
      From-SVN: r271821
      Ian Lance Taylor committed
    • re PR c/43673 (Incorrect warning: use of 'D' length modifier with 'a' type character) · f2c2c4e3
      	PR c/43673
      	* c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
      	TEX_D32, TEX_D64 or TEX_D128.
      
      	PR c/43673
      	* gcc.dg/format-dfp-printf-1.c: New test.
      	* gcc.dg/format-dfp-scanf-1.c: Likewise.
      
      From-SVN: r271820
      Xiong Hu Luo committed
    • cp-demangle.c: Don't define CP_DYNAMIC_ARRAYS if __STDC_NO_VLA__ is non-zero. · 2a1c064a
      	* cp-demangle.c: Don't define CP_DYNAMIC_ARRAYS if __STDC_NO_VLA__
      	is non-zero.
      
      From-SVN: r271819
      Michael Forney committed
    • runtime: implement cheaper context switch on Linux/AMD64 · 4d12cf3c
          
          Currently, goroutine switches are implemented with libc
          getcontext/setcontext functions, which saves/restores the machine
          register states and also the signal context. This does more than
          what we need, and performs an expensive syscall.
          
          This CL implements a simplified version of getcontext/setcontext,
          in assembly, that only saves/restores the necessary part, i.e.
          the callee-save registers, and the PC, SP. A simplified version
          of makecontext, written in C, is also added. Currently this is
          only implemented on Linux/AMD64.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/178298
      
      From-SVN: r271818
      Ian Lance Taylor committed
    • apply unary op to both sides of (vec_cond x cst1 cst2) · 34a13a52
      2019-05-31  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* match.pd (~(vec?cst1:cst2)): New transformation.
      
      gcc/testsuite/
      	* g++.dg/tree-ssa/cprop-vcond.C: New file.
      
      From-SVN: r271817
      Marc Glisse committed
    • Simplify more EXACT_DIV_EXPR comparisons · 9cf60d3b
      2019-05-31  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
      	((size_t)(A /[ex] B) CMP C): New transformation.
      
      gcc/testsuite/
      	* gcc.dg/tree-ssa/cmpexactdiv-3.c: New file.
      	* gcc.dg/tree-ssa/cmpexactdiv-4.c: New file.
      	* gcc.dg/Walloca-13.c: Xfail.
      
      From-SVN: r271816
      Marc Glisse committed
    • New .md construct: define_insn_and_rewrite · f4fde1b3
      Several SVE patterns need define_insn_and_splits that generate the
      same insn_code, but with different operands.  That's probably a
      niche requirement, but it's cropping up often enough on the ACLE
      branch that I think it would be good to have a syntactic sugar for it.
      
      This patch therefore adds a new construct called define_insn_and_rewrite.
      It's basically a define_insn_and_split with an implicit split pattern,
      obtained by copying the insn pattern and replacing match_operands with
      match_dups and match_operators with match_op_dups.
      
      2019-05-31  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* doc/md.texi: Document define_insn_and_rewrite.
      	* rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
      	* gensupport.c (queue_elem): Update comment.
      	(replace_operands_with_dups): New function.
      	(gen_rewrite_sequence): Likewise.
      	(process_rtx): Handle DEFINE_INSN_AND_REWRITE.
      	* read-rtl.c (apply_subst_iterator): Likewise.
      	(add_condition_to_rtx, named_rtx_p): Likewise.
      	(rtx_reader::read_rtx_operand): Likewise.
      	* config/aarch64/aarch64-sve.md
      	(while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
      	(*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
      	define_insn_and_rewrite.
      	(*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
      	Remove separate define_split.
      
      From-SVN: r271815
      Richard Sandiford committed
    • Add noexcept to tuple<> and simplify tuple<T1,T2> noexcept-specifiers · b1bb4869
      	* include/std/tuple (tuple<>): Add noexcept to allocator-extended
      	constructors.
      	(tuple<T1, T2>::__nothrow_default_constructible()): New helper
      	function.
      	(tuple<T1, T2>::tuple(), explicit tuple<T1, T2>::tuple()): Use helper.
      
      From-SVN: r271814
      Jonathan Wakely committed