Commit Graph

167810 Commits

Author SHA1 Message Date
Johan Karlsson
715e3349b0 re PR debug/86964 (Too many debug symbols included, especially for extern globals)
PR debug/86964
	* dwarf2out.c (premark_used_variables): New function.
	(prune_unused_types_walk): Do not mark not premarked external
	variables.
	(prune_unused_types): Call premark_used_variables.

	* gcc.dg/debug/dwarf2/pr86964.c: New testcase.

From-SVN: r269925
2019-03-25 15:19:09 -06:00
Vladimir Makarov
33163a622d re PR rtl-optimization/89676 (Redundant moves for long long shift on 32bit x86)
2019-03-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/89676
	* lra-constraints.c (curr_insn_transform): Do match reload for
	early clobbers when the match was successful only for different
	registers.

From-SVN: r269924
2019-03-25 21:14:40 +00:00
Paolo Carlini
0abbc99c02 re PR c++/84661 (internal compiler error: Segmentation fault (strip_array_types()))
/cp
2019-03-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84661
	PR c++/85013
	* parser.c (cp_parser_binary_expression): Don't call cp_fully_fold
	to undo the disabling of warnings.

/testsuite
2019-03-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84661
	PR c++/85013
	* g++.dg/concepts/pr84661.C: New.
	* g++.dg/torture/pr85013.C: Likewise.

From-SVN: r269923
2019-03-25 20:43:36 +00:00
Jason Merrill
b25e675d7d PR c++/87748 - substitution failure error with decltype.
This issue is similar to PR 87480; in both cases we were doing non-dependent
substitution with processing_template_decl set, leading to member access
expressions seeming still instantiation-dependent, and therefore decltype
not being simplified to its actual type.  And as in that PR, the fix is to
clear processing_template_decl while substituting a default template
argument.

	* pt.c (most_specialized_partial_spec): Clear
	processing_template_decl.

From-SVN: r269921
2019-03-25 14:27:08 -04:00
Martin Sebor
51e471ae61 extend.texi (Common Type Attributes): Document vector_size.
gcc/ChangeLog:
	* doc/extend.texi (Common Type Attributes): Document vector_size.
	(Common Variable Attributes): Mention size constraint.  Correct
	quoting and typos.
	(Vector Extensions): Use @dfn when defining bas type.  Clarify
	base type and size constraints.

From-SVN: r269920
2019-03-25 11:23:31 -06:00
Marek Polacek
bf8c1b11d5 PR c++/89214 - ICE when initializing aggregates with bases.
* typeck2.c (digest_init_r): Warn about object slicing instead of
	crashing.

	* g++.dg/cpp1z/aggr-base8.C: New test.
	* g++.dg/cpp1z/aggr-base9.C: New test.

From-SVN: r269919
2019-03-25 16:38:48 +00:00
Marek Polacek
a55f758221 PR c++/89705 - ICE with reference binding with conversion function.
* call.c (reference_binding): If the result of the conversion function
	is a prvalue of non-class type, use the cv-unqualified type.

	* g++.dg/cpp0x/rv-conv2.C: New test.

From-SVN: r269918
2019-03-25 16:10:06 +00:00
Richard Biener
8d6419db2c re PR tree-optimization/89789 (Compile time hog during RPO VN)
2019-03-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89789
	* tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
	changes from non-undefined back to undefined.

	* gcc.dg/torture/pr89789.c: New testcase.

From-SVN: r269917
2019-03-25 13:53:50 +00:00
Thomas Otto
be5ce04a61 dwarf2out.c (comp_dir_string): cached_wd could be set to both a heap string and a gc string...
2019-03-25  Thomas Otto  <thomas.otto@pdv-fs.de>

	* dwarf2out.c (comp_dir_string): cached_wd could be set to both a
	heap string and a gc string, but since this variable is unknown to
	ggc the gc string might get reused and corrupted. Fixed by always
	using a heap string.

From-SVN: r269916
2019-03-25 13:50:46 +00:00
Nathan Sidwell
d03f6e7bf3 [C++] compiler incompatibility with lambdas
https://gcc.gnu.org/ml/gcc-patches/2019-03/msg00982.html
	* lambda.c (maybe_add_lambda_conv_op): Don't add to comdat group.
	* g++.dg/abi/lambda-static-1.C: New.

From-SVN: r269915
2019-03-25 12:22:47 +00:00
Richard Biener
c0eb90b5db re PR middle-end/89779 (internal compiler error: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in tree_nop_conversion_p, at tree.c:12798)
2019-03-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89779
	* tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
	to remove IV defs, delay actual removal.
	(tree_ssa_iv_optimize_loop): Likewise.  Avoid SCEV reset.
	(tree_ssa_iv_optimize): Remove eliminated IV defs at the
	very end, properly also reset loop control IV information.

From-SVN: r269914
2019-03-25 12:18:38 +00:00
Richard Biener
ecef0d3458 re PR tree-optimization/89802 ([9 Regresssion] ICE: verify_gimple failed (error: dead STMT in EH table))
2019-03-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89802
	* tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
	move EH data to folded stmt.

	* g++.dg/tree-ssa/pr89802.C: New testcase.

From-SVN: r269913
2019-03-25 12:15:59 +00:00
Jakub Jelinek
66ec77ce19 re PR c++/60702 (thread_local initialization)
PR c++/60702
	* g++.dg/tls/thread_local11.C: Remove scan-tree-dump-times directives
	for _ZTH* calls.
	* g++.dg/tls/thread_local11a.C: New test.

From-SVN: r269912
2019-03-25 12:53:56 +01:00
John David Anglin
b7ca376ae9 re PR libfortran/79540 (FAIL: gfortran.dg/fmt_fw_d.f90 -O0 execution test)
PR libgfortran/79540
	* io/write_float.def (build_float_string): Don't copy digits when
	ndigits is negative.

From-SVN: r269911
2019-03-25 11:48:36 +00:00
Andreas Krebbel
a260f36938 S/390: Cleanup builtin types file
gcc/ChangeLog:

2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Remove few unused types and
	fix sort order for others.

From-SVN: r269909
2019-03-25 10:10:31 +00:00
Andreas Krebbel
2cd76da88a S/390: Improve debug output for builtin matching
gcc/ChangeLog:

2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-c.c (s390_fn_types_compatible): Print the
	expected and found types with -mdebug during builtin matching.

From-SVN: r269908
2019-03-25 10:09:43 +00:00
Richard Biener
f22e586c69 re PR middle-end/89790 (ICE segfault in operand_equal_p() at fold-const.c:3000 with -Wduplicated-cond since r269838)
2019-03-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/89790
	* fold-const.c (operand_equal_p): Revert last change with
	updated comment.

	* g++.dg/pr89790.C: New testcase.

From-SVN: r269907
2019-03-25 10:05:15 +00:00
Kyrylo Tkachov
4c6d441da1 [doc] Fix typos in MINLOC, MAXLOC documentation
I think there's a typo in the documentation of the MINLOC and MAXLOC intrinsics.
It implies that when the BACK argument is true it returns the first occurrence of the min/max value,
but my understanding is that it should return the last occurrence.

This patch fixes the documentation.

	* intrinsic.texi (MINLOC): Fix typo in BACK argument documentation.
	(MAXLOC): Likewise.

From-SVN: r269906
2019-03-25 09:25:07 +00:00
GCC Administrator
af5a5a71b8 Daily bump.
From-SVN: r269905
2019-03-25 00:16:41 +00:00
Segher Boessenkool
06c1602ae4 rs6000: Make CSE'ing __tls_get_addr calls possible
CSE does not consider calls, not even const calls.  This patch puts a
REG_EQUAL note on the pseudo we assign the __tls_get_addr result to,
so that those pseudos can be CSE'd and the extra calls deleted as dead
code.

CSE should really handle const calls directly, but it is stage 4.


	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
	notes for the result of the __tls_get_addr calls.
	* config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.

From-SVN: r269902
2019-03-24 21:26:53 +01:00
Uros Bizjak
38a47a0fc6 * testsuite/ChangeLog: Fix ChangeLog entry.
From-SVN: r269901
2019-03-24 20:47:03 +01:00
Uros Bizjak
a688356b12 pr82281.c: Compile only for ia32 effective target.
* gcc.target/i386/pr82281.c: Compile only for ia32 effective target.
	(dg-options): Remove -m32. Add -msse2 -mtune=znver1.
	* gcc.target/i386/pr89676.c: Compile only for ia32 effective target.
	(dg-options): Remove -m32 and -march=i686. Add -mno-stv.

From-SVN: r269900
2019-03-24 20:39:59 +01:00
Jeff Law
f8443ff8b1 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
From-SVN: r269899
2019-03-24 13:25:49 -06:00
Iain Buclaw
70d2d77700 d/dmd: Merge upstream dmd 74ac873be
Introduces a fix for a segfault when building without object.d being
present, as well as MinGW host build errors in dmd/root/filename.c.

Updates a couple of non-portable tests, removing one and fixing the
other.

From-SVN: r269897
2019-03-24 16:20:43 +00:00
Jeff Law
4dd1130557 re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c -O1 start with r265398)
PR rtl-optimization/87761
	* regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
	not INSN.  Also check RTX_FRAME_RELATED_P.  Queue insns for DF rescan
	as needed.
	(pass_cprop_hardreg::execute): Add df note problem and defer insn
	rescans.  Reprocess blocks as needed, calling df_analyze before
	reprocessing.  Always call df_analyze before fixing up debug bind
	insns.

From-SVN: r269896
2019-03-24 09:20:52 -06:00
Thomas Koenig
866664a381 re PR fortran/78865 (ICE in create_tmp_var, at gimple-expr.c:473)
2019-03-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/78865
	* interface.c (compare_actual_formal): Change errors about
	missing or extra to gfc_error_now to make sure they are issued.
	Change "spec" to "specifier" in message.
	* resolve.c (resolve_global_procedure): Also check for mismatching
	interface with global symbols if the namespace has already been
	resolved.

2019-03-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/78865
	* gfortran.dg/altreturn_10.f90: New test.
	* gfortran.dg/whole_file_3.f90: Change dg-warning to dg-error.

From-SVN: r269895
2019-03-24 12:51:19 +00:00
GCC Administrator
c1e62ea1af Daily bump.
From-SVN: r269894
2019-03-24 00:16:16 +00:00
Segher Boessenkool
8ab1df5233 rs6000: Fix _mm_movemask_pi8 emulation for 32 bit
* config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
	big endian.

From-SVN: r269891
2019-03-23 17:15:48 +01:00
Johannes Pfau
27f18a6299 [libphobos] Update info about required autotools versions
From-SVN: r269888
2019-03-23 15:07:25 +00:00
Johannes Pfau
686e44763e [libphobos] Update MERGE file, remove ill-formatted changelog entry
Changelog entries are not required for upstream merges.

From-SVN: r269887
2019-03-23 15:07:16 +00:00
Andrew Pinski
e6b853501b [AARCH64] Fix zero_extendsidi2_aarch64 type attribute
2019-03-22  Andrew Pinski  <apinski@marvell.com>

        * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
        attrribute for uxtw.

From-SVN: r269886
2019-03-22 17:22:33 -07:00
GCC Administrator
43721f77bd Daily bump.
From-SVN: r269885
2019-03-23 00:16:25 +00:00
Joseph Myers
62a6133fd6 * gcc.pot: Regenerate.
From-SVN: r269882
2019-03-22 21:59:36 +00:00
Jonathan Wakely
fb5550a068 Remove broken links from libstdc++ manual to Doxygen pages
The Doxygen docs do not have stable URLs, so linking to specific pages
doesn't work well.

	* doc/xml/manual/backwards_compatibility.xml: Remove link to
	Doxygen-generated pages with unstable URL.
	* doc/xml/manual/concurrency_extensions.xml: Likewise.
	* doc/xml/manual/extensions.xml: Likewise.
	* doc/xml/manual/parallel_mode.xml: Likewise.
	* doc/xml/manual/support.xml: Likewise.

From-SVN: r269881
2019-03-22 20:57:35 +00:00
Jeff Law
23843f4740 re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c -O1 start with r265398)
PR rtl-optimization/87761
	* config/mips/mips-protos.h (mips_split_move): Add new argument.
	(mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
	(mips_split_move): Accept new INSN argument.  Try to forward SRC
	into the next instruction.
	(mips_split_move_insn): Pass INSN through to mips_split_move.

From-SVN: r269880
2019-03-22 12:14:56 -06:00
Vladimir Makarov
c07a0a226b re PR rtl-optimization/89676 (Redundant moves for long long shift on 32bit x86)
2019-03-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/89676
	* lra-constraints.c (curr_insn_transform): Do match reload for
	early clobbers even if the match was successful.

2019-03-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/89676
	* gcc.target/i386/pr89676.c: New.

From-SVN: r269878
2019-03-22 16:59:21 +00:00
Jonathan Wakely
eca5f9254b Avoid -Wconversion warnings when -Wsystem-headers is used
* include/bits/stl_algobase.h (__lg): Do arithmetic on type int to
	avoid -Wconversion warnings.

From-SVN: r269876
2019-03-22 16:45:48 +00:00
Jakub Jelinek
5c3703c552 re PR c++/60702 (thread_local initialization)
PR c++/60702
	* cp-tree.h (get_tls_wrapper_fn): Remove declaration.
	(maybe_get_tls_wrapper_call): Declare.
	* decl2.c (get_tls_wrapper_fn): Make static.
	(maybe_get_tls_wrapper_call): New function.
	* typeck.c (build_class_member_access_expr): Handle accesses to TLS
	variables.
	* semantics.c (finish_qualified_id_expr): Likewise.
	(finish_id_expression_1): Use maybe_get_tls_wrapper_call.
	* pt.c (tsubst_copy_and_build): Likewise.

	* g++.dg/tls/thread_local11.C: New test.
	* g++.dg/tls/thread_local11.h: New test.
	* g++.dg/tls/thread_local12a.C: New test.
	* g++.dg/tls/thread_local12b.C: New test.
	* g++.dg/tls/thread_local12c.C: New test.
	* g++.dg/tls/thread_local12d.C: New test.
	* g++.dg/tls/thread_local12e.C: New test.
	* g++.dg/tls/thread_local12f.C: New test.
	* g++.dg/tls/thread_local12g.C: New test.
	* g++.dg/tls/thread_local12h.C: New test.
	* g++.dg/tls/thread_local12i.C: New test.
	* g++.dg/tls/thread_local12j.C: New test.
	* g++.dg/tls/thread_local12k.C: New test.
	* g++.dg/tls/thread_local12l.C: New test.

From-SVN: r269875
2019-03-22 15:42:57 +01:00
Jakub Jelinek
a15ffa22b5 re PR c++/87481 (Endless loop with optimisation in C++17)
PR c++/87481
	* doc/invoke.texi (-fconstexpr-ops-limit=): Document.

	* c.opt (-fconstexpr-ops-limit=): New option.

	* constexpr.c (struct constexpr_ctx): Add constexpr_ops_count member.
	(cxx_eval_constant_expression): When not skipping, not constant class
	or location wrapper, increment *ctx->constexpr_ops_count and if it is
	above constexpr_loop_nest_limit, diagnose failure.
	(cxx_eval_outermost_constant_expr): Add constexpr_ops_count and
	initialize ctx.constexpr_ops_count to its address.
	(is_sub_constant_expr): Likewise.

	* g++.dg/cpp1y/constexpr-87481.C: New test.

From-SVN: r269874
2019-03-22 15:40:59 +01:00
Pierre-Marie de Rodat
29e0246c68 [Ada] GNAT.Sockets: fix recent regressions
The support for IPv6 that was added since last release triggered
regressions on various platforms. The size of structures passed to low
level routines was not correct anymore: it should depend on the address
family, now.

2019-03-22  Dmitriy Anisimkov  <anisimko@adacore.com>

gcc/ada/

	PR ada/89583
	* libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
	Send_Socket): Fix the computation of structure lengths passed to
	low level routines.
	(Is_IPv6_Address): Fix the number of expected colons.

2019-03-22  Simon Wright  <simon@pushface.org>

gcc/testsuite/

	PR ada/89583
	* gnat.dg/socket2.adb: New.

From-SVN: r269873
2019-03-22 13:59:02 +00:00
Bill Schmidt
b6c5f9f3dd mmintrin.h (_mm_sub_pi32): Fix typo.
[gcc]

2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.

[gcc/testsuite]

2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>

	* gcc.target/powerpc/mmx-psubd-2.c: Test _m_psubd.

From-SVN: r269871
2019-03-22 13:49:18 +00:00
Jakub Jelinek
bfdc651abd * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
<avx512>_fmsub_<mode>_mask3<round_name>,
	<avx512>_fnmadd_<mode>_mask3<round_name>,
	<avx512>_fnmsub_<mode>_mask3<round_name>,
	avx512f_vmfmadd_<mode>_mask3<round_name>,
	avx512f_vmfmsub_<mode>_mask3<round_name>,
	*avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
	instead of register_operand and %v instead of v for match_operand 1.
	(avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
	(*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this.  Use
	<round_nimm_predicate> instead of register_operand and %v instead of v
	for match_operand 1.

From-SVN: r269870
2019-03-22 13:58:09 +01:00
Jakub Jelinek
ecf392360a sse.md (<avx512>_fmadd_<mode>_mask<round_name>, [...]): Use <round_nimm_predicate> instead of nonimmediate_operand.
* config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
	<avx512>_fmadd_<mode>_mask3<round_name>,
	<avx512>_fmsub_<mode>_mask<round_name>,
	<avx512>_fmsub_<mode>_mask3<round_name>,
	<avx512>_fnmadd_<mode>_mask<round_name>,
	<avx512>_fnmadd_<mode>_mask3<round_name>,
	<avx512>_fnmsub_<mode>_mask<round_name>,
	<avx512>_fnmsub_<mode>_mask3<round_name>,
	<avx512>_fmaddsub_<mode>_mask<round_name>,
	<avx512>_fmaddsub_<mode>_mask3<round_name>,
	<avx512>_fmsubadd_<mode>_mask<round_name>,
	<avx512>_fmsubadd_<mode>_mask3<round_name>): Use
	<round_nimm_predicate> instead of nonimmediate_operand.
	(fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
	fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
	Use register_operand instead of <round_nimm_predicate> for the
	operand that needs to match output.
	(*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
	*fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
	Likewise.  Formatting fixes.

From-SVN: r269869
2019-03-22 11:12:18 +01:00
Jakub Jelinek
5c4ade6d44 re PR target/89784 (Missing AVX512 intrinsics)
PR target/89784
	* config/i386/i386.c (enum ix86_builtins): Remove
	IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
	* config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
	__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
	__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
	__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
	__builtin_ia32_vfmsubss3_mask3): New builtins.
	* config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<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_vmfmasub_<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_vmfnmasub_<mode>_maskz_1<round_name>): New define_insns.
	(avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
	* config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
	_mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
	_mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
	_mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
	_mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
	_mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
	_mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
	_mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
	_mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
	_mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
	_mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
	_mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
	_mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
	_mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
	_mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
	_mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
	_mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
	_mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
	_mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
	_mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.

	* gcc.target/i386/sse-13.c (__builtin_ia32_vfmaddsd3_mask,
	__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
	__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
	__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
	__builtin_ia32_vfmsubss3_mask3): Define.
	* gcc.target/i386/sse-23.c (__builtin_ia32_vfmaddsd3_mask,
	__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
	__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
	__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
	__builtin_ia32_vfmsubss3_mask3): Define.
	* gcc.target/i386/avx-1.c (__builtin_ia32_vfmaddsd3_mask,
	__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
	__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
	__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
	__builtin_ia32_vfmsubss3_mask3): Define.
	* gcc.target/i386/sse-14.c: Add tests for
	_mm_mask{,3,z}_f{,n}m{add,sub}_round_s{s,d} builtins.
	* gcc.target/i386/sse-22.c: Likewise.

2019-03-22  Hongtao Liu  <hongtao.liu@intel.com>

	* gcc.target/i386/avx512f-vfmaddXXXsd-1.c (avx512f_test): Add tests
	for _mm_mask{,3,z}_*.
	* gcc.target/i386/avx512f-vfmaddXXXss-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfmsubXXXsd-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfmsubXXXss-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfnmaddXXXsd-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfnmaddXXXss-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfnmsubXXXsd-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfnmsubXXXss-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfmaddXXXsd-2.c: New test.
	* gcc.target/i386/avx512f-vfmaddXXXss-2.c: New test.
	* gcc.target/i386/avx512f-vfmsubXXXsd-2.c: New test.
	* gcc.target/i386/avx512f-vfmsubXXXss-2.c: New test.
	* gcc.target/i386/avx512f-vfnmaddXXXsd-2.c: New test.
	* gcc.target/i386/avx512f-vfnmaddXXXss-2.c: New test.
	* gcc.target/i386/avx512f-vfnmsubXXXsd-2.c: New test.
	* gcc.target/i386/avx512f-vfnmsubXXXss-2.c: New test.

From-SVN: r269868
2019-03-22 11:08:40 +01:00
Martin Sebor
a411ae9b35 PR tree-optimization/89350 - Wrong -Wstringop-overflow= warning since r261518
gcc/ChangeLog:

	PR tree-optimization/89350
	* builtins.c (compute_objsize): Also ignore offsets whose upper
	bound is negative.
	* gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
	(builtin_memref::builtin_memref): Initialize new member.
	Allow EXPR to be null.
	(builtin_memref::extend_offset_range): Replace local with a member.
	Avoid assuming pointer offsets are unsigned.
	(builtin_memref::set_base_and_offset): Determine base object
	before computing offset range.
	(builtin_access::builtin_access): Handle memset.
	(builtin_access::generic_overlap): Replace local with a member.
	(builtin_access::strcat_overlap): Same.
	(builtin_access::overlap): Same.
	(maybe_diag_overlap): Same.
	(maybe_diag_access_bounds): Same.
	(wrestrict_dom_walker::check_call): Handle memset.
	(check_bounds_or_overlap): Same.

gcc/testsuite/ChangeLog:

	PR tree-optimization/89350
	* gcc.dg/Wstringop-overflow.c: Xfail overly ambitious tests.
	* gcc.dg/Wstringop-overflow-11.c: New test.
	* gcc.dg/Wstringop-overflow-12.c: New test.
	* gcc.dg/pr89350.c: New test.
	* gcc.dg/pr40340-1.c: Adjust expected warning.
	* gcc.dg/pr40340-2.c: Same.
	* gcc.dg/pr40340-4.c: Same.
	* gcc.dg/pr40340-5.c: Same.

From-SVN: r269867
2019-03-21 20:58:27 -06:00
GCC Administrator
11bf9a075a Daily bump.
From-SVN: r269866
2019-03-22 00:16:26 +00:00
Thomas Rodgers
061f457868 Integrate C++17 parallel algorithms
This is the Intel implementation of the C++17 parallel
algorithms, which has been donated to both GCC and LLVM. The upstream
project is at -

	https://reviews.llvm.org/source/pstl/

The new files in the include/pstl sub-directory are covered by the
LICENSE.txt in that sub-directory, as are the tests in
testsuite/**/pstl/*

	* include/Makefile.am (std_header): Add ${std_srcdir}/execution.
	(pstl_srcdir, pstl_builddir, pstl_headers): New variables.
	(allstamped): Add stamp-pstl.
	(install-headers): Add ptsl_builddir.
	* include/Makefile.in: Regenerate.
	* include/bits/c++config: Add pstl configuration.
	* include/pstl/LICENSE.txt: New file.
	* include/pstl/algorithm_fwd.h: New file.
	* include/pstl/algorithm_impl.h: New file.
	* include/pstl/execution_defs.h: New file.
	* include/pstl/execution_impl.h: New file.
	* include/pstl/glue_algorithm_defs.h: New file.
	* include/pstl/glue_algorithm_impl.h: New file.
	* include/pstl/glue_execution_defs.h: New file.
	* include/pstl/glue_memory_defs.h: New file.
	* include/pstl/glue_memory_impl.h: New file.
	* include/pstl/glue_numeric_defs.h: New file.
	* include/pstl/glue_numeric_impl.h: New file.
	* include/pstl/memory_impl.h: New file.
	* include/pstl/numeric_fwd.h: New file.
	* include/pstl/numeric_impl.h: New file.
	* include/pstl/parallel_backend.h: New file.
	* include/pstl/parallel_backend_tbb.h: New file.
	* include/pstl/parallel_backend_utils.h: New file.
	* include/pstl/parallel_impl.h: New file.
	* include/pstl/pstl_config.h: New file.
	* include/pstl/unseq_backend_simd.h: New file.
	* include/pstl/utils.h: New file.
	* include/std/algorithm: Include parallel algorithm implementations.
	* include/std/execution: New file.
	* include/std/memory: Include parallel algorithm implementations.
	* include/std/numeric: Include parallel algorithm implementations.
	* include/std/version: Add parallel algorithms feature test macro.
	* testsuite/util/pstl/pstl_test_config.h: New file.
	* testsuite/util/pstl/test_utils.h: New file.
	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file.
	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file.
	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file.
	* testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file.
	* testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file.
	* testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file.
	* testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file.
	* testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file.
	* testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file.
	* testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file.
	* testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file.
	* testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file.
	* testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file.
	* testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file.
	* testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file.
	* testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file.
	* testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file.
	* testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file.
	* testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file.
	* testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: New file.
	* testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: New file.
	* testsuite/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_merge/merge.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_sorting/includes.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_sorting/set.cc: New file.
	* testsuite/testsuite/25_algorithms/pstl/alg_sorting/sort.cc: New file.
	* testsuite/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: New file.
	* testsuite/testsuite/26_numerics/pstl/numeric_ops/reduce.cc: New file.
	* testsuite/testsuite/26_numerics/pstl/numeric_ops/scan.cc: New file.
	* testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: New file.
	* testsuite/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: New file.

From-SVN: r269863
2019-03-21 23:48:49 +00:00
Jan Hubicka
774856e3fb re PR lto/89692 (ICE in streamer_write_chain, at tree-streamer-out.c:506)
PR lto/89692
	* tree.c (fld_type_variant, fld_incomplete_type_of,
	fld_process_array_type): Call fld->pset.add and don't call
	add_tree_to_fld_list if it returns true.
	(free_lang_data_in_type): Similarly with self-recursive call.  Purge
	non-marked types from TYPE_NEXT_VARIANT list.
	(find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).

	* g++.dg/other/pr89692.C: New test.

From-SVN: r269862
2019-03-21 23:04:29 +01:00
Jakub Jelinek
8c8b42cf72 re PR c++/71446 (Incorrect overload resolution when using designated initializers)
PR c++/71446
	* call.c (filed_in_pset): Change pset from hash_set<tree> * to
	hash_set<tree, true> &, adjust uses accordingly.
	(build_aggr_conv): Change pset from hash_set<tree> *
	to hash_set<tree, true>.  Replace goto fail; with return NULL;,
	adjust pset uses.

From-SVN: r269861
2019-03-21 23:03:07 +01:00
Jakub Jelinek
152d47df7f re PR c++/89767 (ICE with tuple and optimization)
PR c++/89767
	* parser.c (cp_parser_lambda_introducer): Add ids and first_capture_id
	variables, check for duplicates in this function.
	* lambda.c (add_capture): Don't check for duplicates nor use
	IDENTIFIER_MARKED.
	(register_capture_members): Don't clear IDENTIFIER_MARKED here.

	* g++.dg/cpp1y/lambda-init18.C: New test.
	* g++.dg/cpp1y/lambda-init19.C: New test.
	* g++.dg/cpp1y/pr89767.C: New test.

From-SVN: r269860
2019-03-21 23:01:02 +01:00