1. 27 Oct, 2019 2 commits
  2. 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
  3. 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
  4. 24 Oct, 2019 14 commits
    • gimplify.h (omp_construct_selector_matches): Declare. · 135df52c
      	* gimplify.h (omp_construct_selector_matches): Declare.
      	* gimplify.c (struct gimplify_omp_ctx): Add code member.
      	(gimplify_call_expr): Call omp_resolve_declare_variant and remap
      	called function if needed for flag_openmp.
      	(gimplify_scan_omp_clauses): Set ctx->code.
      	(omp_construct_selector_matches): New function.
      	* omp-general.h (omp_constructor_traits_to_codes,
      	omp_context_selector_matches, omp_resolve_declare_variant): Declare.
      	* omp-general.c (omp_constructor_traits_to_codes,
      	omp_context_selector_matches, omp_resolve_declare_variant): New
      	functions.
      c-family/
      	* c-common.h (c_omp_context_selector_matches): Remove.
      	* c-omp.c (c_omp_context_selector_matches): Remove.
      	* c-attribs.c (c_common_attribute_table): Add
      	"omp declare target {host,nohost,block}" attributes.
      c/
      	* c-parser.c (c_finish_omp_declare_variant): Use
      	omp_context_selector_matches instead of
      	c_omp_context_selector_matches.
      	* c-decl.c (c_decl_attributes): Add "omp declare target block"
      	attribute in between declare target and end declare target
      	pragmas.
      cp/
      	* decl2.c (cplus_decl_attributes): Add "omp declare target block"
      	attribute in between declare target and end declare target
      	pragmas.
      testsuite/
      	* c-c++-common/gomp/declare-variant-8.c: New test.
      
      From-SVN: r277427
      Jakub Jelinek committed
    • arc.c (hwloop_optimize): Add missing space in string literal. · f8cb8bcd
      	* config/arc/arc.c (hwloop_optimize): Add missing space in string
      	literal.
      	* config/rx/rx.c (rx_print_operand): Likewise.
      	* tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
      	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
      	* ipa-sra.c (create_parameter_descriptors, process_scan_results):
      	Likewise.
      	* genemit.c (emit_c_code): Likewise.
      	* plugin.c (try_init_one_plugin): Likewise.  Formatting fix.
      cp/
      	* call.c (convert_arg_to_ellipsis): Add missing space in string
      	literal.
      
      From-SVN: r277426
      Jakub Jelinek committed
    • symbols-summary.h (fast_function_summary<T *, [...]): Free m_vector. · ea3628bd
      	* symbols-summary.h (fast_function_summary<T *, V>::release,
      	fast_call_summary<T *, V>::release): Free m_vector.
      
      From-SVN: r277425
      Jan Hubicka committed
    • cgraphunit.c (symbol_table::process_new_functions): Call ipa_free_size_summary. · f658ad30
      
      	* cgraphunit.c (symbol_table::process_new_functions): Call
      	ipa_free_size_summary.
      	* ipa-cp.c (ipcp_cloning_candidate_p): Update.
      	(devirtualization_time_bonus): Update.
      	(ipcp_propagate_stage): Update.
      	* ipa-fnsummary.c (ipa_size_summaries): New.
      	(ipa_fn_summary_alloc): Alloc size summary.
      	(dump_ipa_call_summary): Update.
      	(ipa_dump_fn_summary): Update.
      	(analyze_function_body): Update.
      	(compute_fn_summary): Likewise.
      	(ipa_get_stack_frame_offset): New function.
      	(inline_update_callee_summaries): Do not update frame offsets.
      	(ipa_merge_fn_summary_after_inlining): Update frame offsets here;
      	remove call and function summary.
      	(ipa_update_overall_fn_summary): Update.
      	(inline_read_section): Update.
      	(ipa_fn_summary_write): Update.
      	(ipa_free_fn_summary): Do not remove summaries.
      	(ipa_free_size_summary): New.
      	(release summary pass): Also run at WPA.
      	* ipa-fnsummary.h (ipa_size_summary): Declare.
      	(ipa_fn_summary): Remove size, self_size, stack_frame_offset,
      	estimated_self_stack_size.
      	(ipa_size_summary_t): New type.
      	(ipa_size_summaries): Declare.
      	(ipa_free_size_summary): Declare.
      	(ipa_get_stack_frame_offset): Declare.
      	* ipa-icf.c (sem_function::merge): Update.
      	* ipa-inline-analysis.c (estimate_size_after_inlining): Update.
      	(estimate_growth): Update.
      	(growth_likely_positive): Update.
      	(clone_inlined_nodes): Update.
      	(inline_call): Update.
      	* ipa-inline.c (caller_growth_limits): Update.
      	(edge_badness): Update.
      	(recursive_inlining): Update.
      	(inline_small_functions): Update.
      	(inline_to_all_callers_1): Update.
      	* ipa-prop.h (ipa_edge_args_sum_t): Update comment.
      	* lto-partition.c (add_symbol_to_partition_1): Update.
      	(undo_parittion): Update.
      
      From-SVN: r277424
      Jan Hubicka committed
    • rs6000: Implement [u]avg<mode>3_ceil · 90a15807
      We already had those in fact, just under other names.  Use the standard
      names so that the vectorizer can use it.
      
      
      	* config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to...
      	(uavg<mode>3_ceil): ... This.
      	(altivec_vavgs<VI_char>): Rename to...
      	(avg<mode>3_ceil): ... This.
      	* config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH,
      	VAVGUW, VAVGSW): Adjust.
      
      From-SVN: r277421
      Segher Boessenkool committed
    • Add missing space to diagnostic in reshape_init_r. · 1c95aee0
      	* decl.c (reshape_init_r): Add missing space.
      
      From-SVN: r277419
      Marek Polacek committed
    • [C++ PATCH] Template parm index fix · bdf1426d
      https://gcc.gnu.org/ml/gcc-patches/2019-10/msg01761.html
      	* pt.c (reduce_template_parm_level): Attach the new TPI to the new
      	DECL.
      	(convert_generic_types_to_packs): Pass the copied type to
      	reduce_template_parm_level.
      
      From-SVN: r277416
      Nathan Sidwell committed
    • [dump] small source cleanup · 84d2160d
      https://gcc.gnu.org/ml/gcc-patches/2019-10/msg01760.html
      	* dumpfile.c (dump_begin): Reorder decls to use RAII.
      
      From-SVN: r277415
      Nathan Sidwell committed
    • Revert ABI changes to std::allocator in C++20 · 75c6a925
      The recent C++20 changes to remove the std::allocator<void> explicit
      specialization and the destructor in the std::allocator primary template
      change the result of some is_trivially_xxx type traits. To avoid those
      changes, this patch restores the explicit specialization and the
      destructor.
      
      In order to meet the C++20 requirements the std::allocator<void>
      explicit specialization must provide the same interface as the primary
      template (except for the unusable allocate and deallocate member
      functions) and the destructor in the primary template must be constexpr.
      
      	* include/bits/allocator.h (allocator<void>): Restore the explicit
      	specialization for C++20, but make its API consistent with the primary
      	template.
      	(allocator::~allocator()): Restore the destructor for C++20, but make
      	it constexpr.
      	* testsuite/20_util/allocator/rebind_c++20.cc: Check allocator<void>.
      	* testsuite/20_util/allocator/requirements/typedefs_c++20.cc: Likewise.
      	* testsuite/20_util/allocator/void.cc: Check that constructors and
      	destructors are trivial. Check for converting constructor in C++20.
      	* testsuite/ext/malloc_allocator/variadic_construct.cc: Simplify
      	dejagnu target selector.
      	* testsuite/ext/new_allocator/variadic_construct.cc: Likewise.
      
      From-SVN: r277410
      Jonathan Wakely committed
    • ipa-sra-19.c: Avoid unprototyped function · bf037872
      Power and IBM Z require a function prototype if a vector argument is
      passed.  Complete the prototype of k to prevent errors from being
      triggered on these platforms
      
      gcc/testsuite/ChangeLog:
      
      2019-10-24  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.dg/ipa/ipa-sra-19.c: Remove dg-skip-if. Add argument type to
      	prototype of k.
      
      From-SVN: r277409
      Andreas Krebbel committed
    • Make gt_pch_nx unreachable in symbol-summary classes. · 315d4248
      2019-10-24  Martin Liska  <mliska@suse.cz>
      
      	* symbol-summary.h (gt_pch_nx): Mark all functions
      	with gcc_unreachable as we do not expect to be called.
      
      From-SVN: r277408
      Martin Liska committed
    • Finish moving constraint and logic functionality of out pt.c. · 79c05c2b
      Also, reimplement and re-enable subsumption caching.
      
      gcc/cp/
      	* config-lang.in (gtfiles): Add logic.cc.
      	* constraint.cc (atomic_constraints_identical_p): Add assertions.
      	(hash_atomic_constraint): Likewise.
      	(constraints_equivalent_p): New.
      	(inchash::add_constraint): New.
      	(iterative_hash_constraint): New.
      	(decl_constraints): Moved from pt.c.
      	(get_constraints): Likewise.
      	(set_constraints): Likewise.
      	(remove_constraints): Likewise.
      	* cp-tree.h (CONSTR_P): New.
      	(init_constraint_processing): Remove.
      	(constraints_equivalent_p, iterative_hash_constraint): Declare.
      	* decl.c (cxx_init_decl_processing): Don't initialize constraints.
      	* logic.cc (subsumption_entry): Moved from pt.c.
      	(subsumption_hasher): Likewise.
      	(subsumption_cache): Likewise.
      	(lookup_subsumption): Likewise.
      	(save_subsumption): Likewise.
      	(subsumes_constraints_nonnull): Use subsumption cache.
      	* pt.c: Move aforementioned declarations out of this file.
      	(init_constraint_processing): Remove.
      
      From-SVN: r277407
      Andrew Sutton committed
    • tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction chains try harder… · 4352288a
      tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction chains try harder with operand swapping and instead of putting a...
      
      2019-10-24  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction
      	chains try harder with operand swapping and instead of
      	putting a shifted chain into the reduction operands put
      	a repetition of the final reduction op there as if we'd
      	reassociate the expression.
      
      	* gcc.dg/vect/slp-reduc-10a.c: New testcase.
      	* gcc.dg/vect/slp-reduc-10b.c: Likewise.
      	* gcc.dg/vect/slp-reduc-10c.c: Likewise.
      	* gcc.dg/vect/slp-reduc-10d.c: Likewise.
      	* gcc.dg/vect/slp-reduc-10e.c: Likewise.
      
      From-SVN: r277406
      Richard Biener committed
    • Simplify common case of use_future_t that uses std::allocator · 5ce55f3f
      There is no need to store and pass around the allocator object when it's
      an instance of std::allocator. Define a partial specialization of
      std::use_future_t and the corresponding completion token so that no
      allocator is stored. Overload the completion handler constructor to not
      expect an allocator to be stored.
      
      	* include/experimental/executor (__use_future_ct, use_future_t):
      	Define partial specializations for std::allocator.
      	(__use_future_ch): Overload constructor for completion tokens using
      	std::allocator.
      
      From-SVN: r277404
      Jonathan Wakely committed