1. 28 Oct, 2019 6 commits
    • Move jump threading before reload · 216779db
      r266734 has introduced a new instance of jump threading pass in order to
      take advantage of opportunities that combine opens up.  It was perceived
      back then that it was beneficial to delay it after reload, since that
      might produce even more such opportunities.
      
      Unfortunately jump threading interferes with hot/cold partitioning.  In
      the code from PR92007, it converts the following
      
        +-------------------------- 2/HOT ------------------------+
        |                                                         |
        v                                                         v
      3/HOT --> 5/HOT --> 8/HOT --> 11/COLD --> 6/HOT --EH--> 16/HOT
                  |                               ^
                  |                               |
                  +-------------------------------+
      
      into the following:
      
        +---------------------- 2/HOT ------------------+
        |                                               |
        v                                               v
      3/HOT --> 8/HOT --> 11/COLD --> 6/COLD --EH--> 16/HOT
      
      This makes hot bb 6 dominated by cold bb 11, and because of this
      fixup_partitions makes bb 6 cold as well, which in turn makes EH edge
      6->16 a crossing one.  Not only can't we have crossing EH edges, we are
      also not allowed to introduce new crossing edges after reload in
      general, since it might require extra registers on some targets.
      
      Therefore, move the jump threading pass between combine and hot/cold
      partitioning.  Building SPEC 2006 and SPEC 2017 with the old and the new
      code indicates that:
      
      * When doing jump threading right after reload, 3889 edges are threaded.
      * When doing jump threading right after combine, 3918 edges are
        threaded.
      
      This means this change will not introduce performance regressions.
      
      gcc/ChangeLog:
      
      2019-10-28  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR rtl-optimization/92007
      	* cfgcleanup.c (thread_jump): Add an assertion that we don't
      	call it after reload if hot/cold partitioning has been done.
      	(class pass_postreload_jump): Rename to
      	pass_jump_after_combine.
      	(make_pass_postreload_jump): Rename to
      	make_pass_jump_after_combine.
      	* passes.def(pass_postreload_jump): Move before reload, rename
      	to pass_jump_after_combine.
      	* tree-pass.h (make_pass_postreload_jump): Rename to
      	make_pass_jump_after_combine.
      
      gcc/testsuite/ChangeLog:
      
      2019-10-28  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR rtl-optimization/92007
      	* g++.dg/opt/pr92007.C: New test (from Arseny Solokha).
      
      From-SVN: r277507
      Ilya Leoshkevich committed
    • re PR ipa/92242 (LTO ICE in ipa_get_cs_argument_count ipa-prop.h:598) · 5a0236f8
      
      	PR ipa/92242
      	* ipa-fnsummary.c (ipa_merge_fn_summary_after_inlining): Check
      	for missing EDGE_REF
      	* ipa-prop.c (update_jump_functions_after_inlining): Likewise.
      
      From-SVN: r277504
      Jan Hubicka committed
    • Fortran] OpenACC – libgomp/testsuite – use 'stop' and 'dg-do run' · ffbdd78a
              * testsuite/libgomp.oacc-fortran/abort-1.f90: Add 'dg-do run'.
              * testsuite/libgomp.oacc-fortran/abort-2.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/lib-1.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/common-block-1.f90:
              Use 'stop' not abort().
              * testsuite/libgomp.oacc-fortran/common-block-2.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/common-block-3.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/data-1.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/data-2.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/data-5.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/dummy-array.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/gemm-2.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/gemm.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/host_data-2.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/host_data-3.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/host_data-4.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-collapse-3.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-collapse-4.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-independent.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-loop-1.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-map-1.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-1.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-2.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-3.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-6.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-vector-1.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-vector-2.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-1.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-2.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-3.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-4.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-5.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-6.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-7.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-reduction-1.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/lib-12.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/lib-13.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/lib-14.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90:
              Likewise and also add 'dg-do run'.
              * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction.f90:
              Ditto.
      
      From-SVN: r277503
      Tobias Burnus committed
    • Fortran] PR91863 - fix call to bind(C) with array descriptor · 1c027944
              PR fortran/91863
              * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Don't free data
              memory as that's done on the Fortran side.
              (gfc_conv_procedure_call): Handle void* pointers from
              gfc_conv_gfc_desc_to_cfi_desc.
      
              PR fortran/91863
              * gfortran.dg/bind-c-intent-out.f90: New.
      
      From-SVN: r277502
      Tobias Burnus committed
    • rs6000: Enable limited unrolling at -O2 · 6d099a76
      In PR88760, there are a few disscussion about improve or tune unroller for
      targets. And we would agree to enable unroller for small loops at O2 first.
      And we could see performance improvement(~10%) for below code:
      ```
        subroutine foo (i, i1, block)
          integer :: i, i1
          integer :: block(9, 9, 9)
          block(i:9,1,i1) = block(i:9,1,i1) - 10
        end subroutine foo
      
      ```
      This kind of code occurs a few times in exchange2 benchmark.
      
      Similar C code:
      ```
        for (i = 0; i < n; i++)
          arr[i] = arr[i] - 10;
      ```
      
      On powerpcle, for O2 , enable -funroll-loops and limit
      PARAM_MAX_UNROLL_TIMES=2 and PARAM_MAX_UNROLLED_INSNS=20, we can see >2%
      overall improvement for SPEC2017.
      
      This patch is only for rs6000 in which we see visible performance improvement.
      
      gcc/
      2019-10-25  Jiufu Guo  <guojiufu@linux.ibm.com>	    
      
      	PR tree-optimization/88760
      	* config/rs6000/rs6000-common.c (rs6000_option_optimization_table):
      	Enable -funroll-loops for -O2 and above.
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Set
      	PARAM_MAX_UNROLL_TIMES to 2 and PARAM_MAX_UNROLLED_INSNS to 20, and
      	do not turn on web and rngreg implicitly, if the unroller is not
      	explicitly enabled.
      	
      gcc.testsuite/
      2019-10-25  Jiufu Guo  <guojiufu@linux.ibm.com>
      
      	PR tree-optimization/88760
      	* gcc.target/powerpc/small-loop-unroll.c: New test.
      	* c-c++-common/tsan/thread_leak2.c: Update test.
      	* gcc.dg/pr59643.c: Update test.
      	* gcc.target/powerpc/loop_align.c: Update test.
      	* gcc.target/powerpc/ppc-fma-1.c: Update test.
      	* gcc.target/powerpc/ppc-fma-2.c: Update test.
      	* gcc.target/powerpc/ppc-fma-3.c: Update test.
      	* gcc.target/powerpc/ppc-fma-4.c: Update test.
      	* gcc.target/powerpc/pr78604.c: Update test.
      
      From-SVN: r277501
      Jiufu Guo committed
    • Daily bump. · cf20d00c
      From-SVN: r277499
      GCC Administrator committed
  2. 27 Oct, 2019 10 commits
  3. 26 Oct, 2019 6 commits
    • codecvt.xml: Switch pubs.opengroup.org to https. · c61f8150
      	* doc/xml/manual/codecvt.xml: Switch pubs.opengroup.org to https.
      	* doc/xml/manual/locale.xml (LC_ALL): Ditto.
      	* doc/xml/manual/messages.xml: Ditto.
      
      From-SVN: r277476
      Gerald Pfeifer committed
    • baseline_symbols.txt: Update. · 65ab2a54
      	* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
      
      From-SVN: r277475
      John David Anglin committed
    • rs6000: Fix allocate_stack in a corner case (PR91289) · 26bd2dab
      When we have -fstack-limit-symbol with sysv we can end up with a non-
      existing instruction (you cannot add an immediate to register 0).  Fix
      this by using register 11 instead.  It might be used for something else
      already though, so save and restore its value around this.  In
      optimizing compiles these extra moves are usually removed again: the
      restore by cprop_hardreg, and then the save by rtl_dce.
      
      
      	PR target/91289
      	* config/rs6000/rs6000-logue.c (rs6000_emit_allocate_stack): Don't add
      	an immediate to r0; use r11 instead.  Save and restore r11 to r0 around
      	this.
      
      From-SVN: r277472
      Segher Boessenkool committed
    • Adjust predicates and constraints of scalar insns. · 8bbf3dea
      Changelog
      
      gcc/
      	* config/i386/sse.md
      	(<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>,
      	<sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>,
      	<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>,
      	<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>,
      	<sse>_vmmaskcmp<mode>3):
      	Change predicates from vector_operand to nonimmediate_operand,
      	constraints xBm to xm, since scalar operations don't need
      	memory address alignment.
      	(avx512f_vmcmp<mode>3<round_saeonly_name>,
      	avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace
      	round_saeonly_nimm_predicate with
      	round_saeonly_nimm_scalar_predicate.
      	(fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
      	fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>,
      	*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
      	*fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>,
      	avx512f_vmfmadd_<mode>_mask3<round_name>,
      	avx512f_vmfmadd_<mode>_maskz_1<round_name>,
      	*avx512f_vmfmsub_<mode>_mask<round_name>,
      	avx512f_vmfmsub_<mode>_mask3<round_name>,
      	*avx512f_vmfmsub_<mode>_maskz_1<round_name>,
      	*avx512f_vmfnmadd_<mode>_mask<round_name>,
      	*avx512f_vmfnmadd_<mode>_mask3<round_name>,
      	*avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
      	*avx512f_vmfnmsub_<mode>_mask<round_name>,
      	*avx512f_vmfnmsub_<mode>_mask3<round_name>,
      	*avx512f_vmfnmsub_<mode>_maskz_1<round_name>,
      	cvtusi2<ssescalarmodesuffix>32<round_name>,
      	cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace
      	round_nimm_predicate with round_nimm_scalr_predicate.
      	(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
      	avx512f_sfixupimm<mode>_mask<round_saeonly_name>,
      	avx512er_vmrcp28<mode><round_saeonly_name>,
      	avx512er_vmrsqrt28<mode><round_saeonly_name>,
      	): Replace round_saeonly_nimm_predicate with
      	round_saeonly_nimm_scalar_predicate.
      	(avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace
      	vector_operand with nonimmediate_operand.
      	* config/i386/subst.md (round_scalar_nimm_predicate,
      	round_saeonly_scalar_nimm_predicate): Replace
      	vector_operand with nonimmediate_operand.
      
      From-SVN: r277470
      Hongtao Liu committed
    • Fix false dependence of scalar operation vrcp/vsqrt/vrsqrt/vrndscale · 011464ed
      For instructions with xmm operand:
      
      op %xmmN,%xmmQ,%xmmQ ----> op %xmmN, %xmmN, %xmmQ
      
      for instruction with mem operand or gpr operand:
      
      op mem/gpr, %xmmQ, %xmmQ
      
      --->  using pass rpad ---->
      
      xorps %xmmN, %xmmN, %xxN
      op mem/gpr, %xmmN, %xmmQ
      
      Performance influence of SPEC2017 fprate which is tested on SKX
      ----
      503.bwaves_r	-0.03%
      507.cactuBSSN_r -0.22%
      508.namd_r	-0.02%
      510.parest_r	0.37%
      511.povray_r	0.74%
      519.lbm_r	0.24%
      521.wrf_r	2.35%
      526.blender_r	0.71%
      527.cam4_r	0.65%
      538.imagick_r	0.95%
      544.nab_r	-0.37
      549.fotonik3d_r 0.24%
      554.roms_r	0.90%
      fprate geomean	0.50%
      -----
      
      Changelog
      gcc/
      	* config/i386/i386.md (*rcpsf2_sse): Add
      	avx_partial_xmm_update, prefer m constraint for TARGET_AVX.
      	(*rsqrtsf2_sse): Ditto.
      	(*sqrt<mode>2_sse): Ditto.
      	(sse4_1_round<mode>2): separate constraint vm, add
      	avx_partail_xmm_update, prefer m constraint for TARGET_AVX.
      	* config/i386/sse.md (*sse_vmrcpv4sf2"): New define_insn used
      	by pass rpad.
      	(*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>*):
      	Ditto.
      	(*sse_vmrsqrtv4sf2): Ditto.
      	(*avx512f_rndscale<mode><round_saeonly_name>): Ditto.
      	(*sse4_1_round<ssescalarmodesuffix>): Ditto.
      	(sse4_1_round<ssescalarmodesuffix>): Add m constraint and
      	<iptr> pointer size modifier since vround support memory operand.
      
      gcc/testsuite
      	* gcc.target/i386/pr87007-4.c: New test.
      	* gcc.target/i386/pr87007-5.c: Ditto.
      
      From-SVN: r277469
      Hongtao Liu committed
    • Daily bump. · 6755d2d0
      From-SVN: r277468
      GCC Administrator committed
  4. 25 Oct, 2019 18 commits
    • PR c++/91581 - ICE in exception-specification of defaulted ctor. · 9bdc2a8f
      	* g++.dg/cpp0x/noexcept55.C: New test.
      
      From-SVN: r277462
      Marek Polacek committed
    • Use implicitly-defined copy operations for test iterators · 0a70fb87
      All of these special member functions do exactly what the compiler would
      do anyway. By defining them as defaulted for C++11 and later we prevent
      move constructors and move assignment operators being defined (which is
      consistent with the previous semantics).
      
      Also move default init of the input_iterator_wrapper members from the
      derived constructor to the protected base constructor.
      
      	* testsuite/util/testsuite_iterators.h (output_iterator_wrapper)
      	(input_iterator_wrapper, forward_iterator_wrapper)
      	bidirectional_iterator_wrapper, random_access_iterator_wrapper): Remove
      	user-provided copy constructors and copy assignment operators so they
      	are defined implicitly.
      	(input_iterator_wrapper): Initialize members in default constructor.
      	(forward_iterator_wrapper): Remove assignments to members of base.
      
      From-SVN: r277459
      Jonathan Wakely committed
    • Fix compilation with Clang · eadcde8e
      The new constexpr destructor on std::allocator breaks compilation with
      Clang in C++2a mode. This only makes it constexpr if the compiler
      supports the P0784R7 features.
      
      	* include/bits/allocator.h: Check __cpp_constexpr_dynamic_alloc
      	before making the std::allocator destructor constexpr.
      	* testsuite/20_util/allocator/requirements/constexpr.cc: New test.
      
      From-SVN: r277458
      Jonathan Wakely committed
    • re PR target/85969 (avr/gen-avr-mmcu-specs.c:56: unused function ?) · 2cd6630f
      	PR target/85969
      	* config/avr/gen-avr-mmcu-specs.c (str_prefix_p): Remove unused
      	static function.
      
      From-SVN: r277455
      Georg-Johann Lay committed
    • [Fortran] OpenACC – permit common blocks in some clauses · ec084613
      2019-10-25  Cesar Philippidis <cesar@codesourcery.com>
      	    Tobias Burnus  <tobias@codesourcery.com>
      
      	gcc/fortran/
      	* openmp.c (gfc_match_omp_map_clause): Add and pass allow_commons
      	argument.
      	(gfc_match_omp_clauses): Update calls to permit common blocks for
      	OpenACC's copy/copyin/copyout, create/delete, host,
      	pcopy/pcopy_in/pcopy_out, present_or_copy, present_or_copy_in,
      	present_or_copy_out, present_or_create and self.
      
      	gcc/
      	* gimplify.c (oacc_default_clause): Privatize fortran common blocks.
      	(omp_notice_variable): Defer the expansion of DECL_VALUE_EXPR for
      	common block decls.
          
      	gcc/testsuite/
      	* gfortran.dg/goacc/common-block-1.f90: New test.
      	* gfortran.dg/goacc/common-block-2.f90: New test.
      	* gfortran.dg/goacc/common-block-3.f90: New test.
          
      	libgomp/
      	* testsuite/libgomp.oacc-fortran/common-block-1.f90: New test.
      	* testsuite/libgomp.oacc-fortran/common-block-2.f90: New test.
      	* testsuite/libgomp.oacc-fortran/common-block-3.f90: New test.
      
      Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
      
      Co-Authored-By: Tobias Burnus <tobias@codesourcery.com>
      
      From-SVN: r277451
      Cesar Philippidis committed
    • pr70100.c: Add -mvsx. · 643c11a1
              * gcc.target/powerpc/pr70100.c: Add -mvsx.
              Allow AIX ABI function name.
      
      From-SVN: r277450
      David Edelsohn committed
    • Guard use of concepts with feature test macro · f4568f03
      This fixes a regression when using Clang.
      
      	* include/bits/range_cmp.h: Check __cpp_lib_concepts before defining
      	concepts. Fix comment.
      
      From-SVN: r277449
      Jonathan Wakely committed
    • re PR tree-optimization/92222 (ice in useless_type_conversion_p, at gimple-expr.c:86) · 7098ab48
      2019-10-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92222
      	* tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove.
      	(_slp_oprnd_info::second_pattern): Likewise.
      	(_slp_oprnd_info::any_pattern): New.
      	(vect_create_oprnd_info): Adjust.
      	(vect_get_and_check_slp_defs): Compute whether any stmt is
      	in a pattern.
      	(vect_build_slp_tree_2): Avoid building up a node from scalars
      	if any of the operand defs, not just the first, is in a pattern.
      
      	* gcc.dg/torture/pr92222.c: New testcase.
      
      From-SVN: r277448
      Richard Biener committed
    • tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail swapping if we actually… · 77100812
      tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail swapping if we actually have to modify the IL on a shared stmt.
      
      2019-10-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail
      	swapping if we actually have to modify the IL on a shared stmt.
      	(vect_build_slp_tree_2): Never fail swapping on shared stmts
      	because we no longer modify the IL.
      
      From-SVN: r277446
      Richard Biener committed
    • Fix failure in gcc.target/sve/reduc_strict_3.c · bafe6f6a
      Unwanted unrolling meant that we had more single-precision FADDAs
      than expected.
      
      2019-10-25  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/reduc_strict_3.c (double_reduc1): Prevent
      	the loop from being unrolled.
      
      From-SVN: r277442
      Richard Sandiford committed
    • Update SVE tests for recent XPASSes · 7815eaa8
      Recent target-independent patches mean that several SVE tests
      now produce the code that we'd originally wanted them to produce.
      Really nice to see :-)
      
      This patch therefore updates the expected baseline, so that hopefully
      we don't regress from this point in future.
      
      2019-10-25  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/loop_add_5.c: Remove XFAILs for tests
      	that now pass.
      	* gcc.target/aarch64/sve/reduc_1.c: Likewise.
      	* gcc.target/aarch64/sve/reduc_2.c: Likewise.
      	* gcc.target/aarch64/sve/reduc_5.c: Likewise.
      	* gcc.target/aarch64/sve/reduc_8.c: Likewise.
      	* gcc.target/aarch64/sve/slp_13.c: Likewise.
      	* gcc.target/aarch64/sve/slp_5.c: Likewise.  Update expected
      	WHILELO counts.
      	* gcc.target/aarch64/sve/slp_7.c: Likewise.
      
      From-SVN: r277441
      Richard Sandiford committed
    • Fix typo in dump_tree_statistics. · f88b78ae
      2019-10-25  Martin Liska  <mliska@suse.cz>
      
      	* tree.c (dump_tree_statistics): Use sorted index 'j' and not 'i'.
      
      From-SVN: r277440
      Martin Liska committed
    • Fix reductions for fully-masked loops · 89d0345a
      Now that vectorizable_operation vectorises most loop stmts involved
      in a reduction, it needs to be aware of reductions in fully-masked loops.
      The LOOP_VINFO_CAN_FULLY_MASK_P parts of vectorizable_reduction now only
      apply to cases that use vect_transform_reduction.
      
      This new way of doing things is definitely an improvement for SVE though,
      since it means we can lift the old restriction of not using fully-masked
      loops for reduction chains.
      
      2019-10-25  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-loop.c (vectorizable_reduction): Restrict the
      	LOOP_VINFO_CAN_FULLY_MASK_P handling to cases that will be
      	handled by vect_transform_reduction.  Allow fully-masked loops
      	to be used with reduction chains.
      	* tree-vect-stmts.c (vectorizable_operation): Handle reduction
      	operations in fully-masked loops.
      	(vectorizable_condition): Reject EXTRACT_LAST_REDUCTION
      	operations in fully-masked loops.
      
      gcc/testsuite/
      	* gcc.dg/vect/pr65947-1.c: No longer expect doubled dump lines
      	for FOLD_EXTRACT_LAST reductions.
      	* gcc.dg/vect/pr65947-2.c: Likewise.
      	* gcc.dg/vect/pr65947-3.c: Likewise.
      	* gcc.dg/vect/pr65947-4.c: Likewise.
      	* gcc.dg/vect/pr65947-5.c: Likewise.
      	* gcc.dg/vect/pr65947-6.c: Likewise.
      	* gcc.dg/vect/pr65947-9.c: Likewise.
      	* gcc.dg/vect/pr65947-10.c: Likewise.
      	* gcc.dg/vect/pr65947-12.c: Likewise.
      	* gcc.dg/vect/pr65947-13.c: Likewise.
      	* gcc.dg/vect/pr65947-14.c: Likewise.
      	* gcc.dg/vect/pr80631-1.c: Likewise.
      	* gcc.dg/vect/pr80631-2.c: Likewise.
      	* gcc.dg/vect/vect-cond-reduc-3.c: Likewise.
      	* gcc.dg/vect/vect-cond-reduc-4.c: Likewise.
      
      From-SVN: r277438
      Richard Sandiford committed
    • tree-vect-loop.c (vectorizable_reduction): Verify STMT_VINFO_REDUC_IDX on the to… · ea133b14
      tree-vect-loop.c (vectorizable_reduction): Verify STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up correctly.
      
      2019-10-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-loop.c (vectorizable_reduction): Verify
      	STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up
      	correctly.
      	* tree-vect-patterns.c (vect_mark_pattern_stmts): Transfer
      	STMT_VINFO_REDUC_IDX from the original stmts to the pattern
      	stmts.
      
      From-SVN: r277437
      Richard Biener committed
    • policy_data_structures_biblio.xml: Switch pubs.opengroup.org to https. · a0f9baa2
      	* doc/xml/manual/policy_data_structures_biblio.xml: Switch
      	pubs.opengroup.org to https.
      
      From-SVN: r277436
      Gerald Pfeifer committed
    • * doc/xml/gnu/gpl-3.0.xml: Switch www.gnu.org to https. · 19dc1c31
      From-SVN: r277435
      Gerald Pfeifer committed
    • status_cxx2020.xml: Add rows and update status. · d57ebc34
      2019-09-09  Edward Smith-Rowland  <3dw4rd@verizon.net>
      
      	* doc/xml/manual/status_cxx2020.xml: Add rows and update status.
      
      From-SVN: r277434
      Edward Smith-Rowland committed
    • Daily bump. · 6bdddc9f
      From-SVN: r277433
      GCC Administrator committed