Commit graph

168968 commits

Author SHA1 Message Date
Eric Botcazou
eabf2b4448 decl.c (intrin_arglists_compatible_p): Do not return false if the internal builtin uses a variable list.
* gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
	false if the internal builtin uses a variable list.

From-SVN: r271679
2019-05-28 07:21:07 +00:00
Xuepeng Guo
6a10fedad0 Add GCC support to ENQCMD.
gcc/ChangeLog

2019-01-23  Xuepeng Guo  <xuepeng.guo@intel.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_ENQCMD_SET,
	OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
	(ix86_handle_option): Handle -menqcmd.
	* config.gcc (enqcmdintrin.h): New header file.
	* config/i386/cpuid.h (bit_ENQCMD): New bit.
	* config/i386/driver-i386.c (host_detect_local_cpu): Handle
	-menqcmd.
	* config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
	function type.
	* config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
	__builtin_ia32_enqcmds): New builtins.
	* config/i386/i386-c.c (__ENQCMD__): New macro.
	* config/i386/i386-option.c (ix86_target_string): Add
	-menqcmd.
	(ix86_valid_target_attribute_inner_p): Likewise.
	* config/i386/i386-expand.c
	(ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
	IX86_BUILTIN_ENQCMDS.
	* config/i386/i386.h (TARGET_ENQCMD): New.
	* config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
	(@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
	(movdir64b_<mode>): Parameterize to enable share expansion code
	with ENQCMD in function ix86_expand_builtin.
	* config/i386/i386.opt: Add -menqcmd.
	* config/i386/immintrin.h: Include enqcmdintrin.h.
	* config/i386/enqcmdintrin.h: New intrinsic file.
	* doc/invoke.texi: Add -menqcmd.

gcc/testsuite/ChangeLog

2019-01-23  Xuepeng Guo  <xuepeng.guo@intel.com>

	* gcc.target/i386/enqcmd.c: New test.
	* gcc.target/i386/enqcmds.c: Likewise.
	* g++.dg/other/i386-2.C: Add -menqcmd.
	* g++.dg/other/i386-3.C: Likewise.
	* gcc.target/i386/sse-12.c: Likewise.
	* gcc.target/i386/sse-13.c: Likewise.
	* gcc.target/i386/sse-14.c: Likewise.
	* gcc.target/i386/sse-23.c: Likewise.

From-SVN: r271678
2019-05-28 02:45:34 +00:00
GCC Administrator
cd8eca2caf Daily bump.
From-SVN: r271677
2019-05-28 00:16:20 +00:00
Jakub Jelinek
8e7757ba17 gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional on sections construct.
* gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
	on sections construct.
	* omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
	construct.
	(lower_omp_sections): Handle lastprivate conditional.
	(lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
	lastprivate_conditional_map.
	* omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
libgomp/
	* testsuite/libgomp.c-c++-common/lastprivate_conditional_4.c: New test.

From-SVN: r271673
2019-05-27 23:33:37 +02:00
Jakub Jelinek
36c7a3fff9 omp-low.c (lower_omp_1): Look through ordered...
* omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
	critical, taskgroup and section regions when looking for a region
	with non-NULL lastprivate_conditional_map.

	* testsuite/libgomp.c-c++-common/lastprivate-conditional-3.c: New test.

From-SVN: r271672
2019-05-27 23:31:40 +02:00
Jakub Jelinek
fcfb80325f re PR libgomp/90641 (libgomp.c-c++-common/lastprivate-conditional-1.c etc FAIL)
PR libgomp/90641
	* work.c (gomp_init_work_share): Instead of aligning final ordered
	value to multiples of long long alignment, align to that the
	first part (ordered team ids) and if inline_ordered_team_ids
	is not on a long long alignment boundary within the structure,
	use __alignof__ (long long) - 1 pad size always.
	* loop.c (GOMP_loop_start): Fix *mem computation if
	inline_ordered_team_ids is not aligned on long long alignment boundary
	within the structure.
	* loop-ull.c (GOMP_loop_ull_start): Likewise.
	* sections.c (GOMP_sections2_start): Likewise.

From-SVN: r271671
2019-05-27 23:27:00 +02:00
Iain Sandoe
9467fbc0ff darwin, x86, testsuite - Match codegen
For this test, we can match the codegen expected in the scan-asms
by avoiding the extra indirection that's mandated by the ABI for
common access and by using -mdynamic-no-pic for the 32b case.

gcc/testsuite/

2019-05-27  Iain Sandoe  <iain@sandoe.co.uk>

	* gcc.target/i386/pr22076.c: Adjust options to
	match codegen expected by the scan-asms.

From-SVN: r271670
2019-05-27 20:06:22 +00:00
Ian Lance Taylor
5c7247b7b7 Makefile.am (check-go-tool): Only chmod check-go-dir if it exists.
* Makefile.am (check-go-tool): Only chmod check-go-dir if it
	exists.
	* Makefile.in: Regenerate.

From-SVN: r271669
2019-05-27 19:21:22 +00:00
Segher Boessenkool
7f63a85400 rs6000: Fix sanitizer build (PR90639)
The assembler code needs to say it uses AltiVec instructions.


libsanitizer/
	PR target/90639
	* tsan/tsan_rtl_ppc64.S: Add ".machine altivec".

From-SVN: r271668
2019-05-27 21:12:19 +02:00
Uros Bizjak
d9330fb5ca i386.c (ix86_gen_add3): Remove indirect function.
* config/i386/i386.c (ix86_gen_add3): Remove indirect function.
	(*ix86_gen_sub3): Ditto.
	(*ix86_gen_sub3_carry): Ditto.
	(*ix86_gen_one_cmpl2): Ditto.
	(*ix86_gen_andsp): Ditto.
	(ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
	(gen_and2_insn): New static function.
	(ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
	Use gen_add3_insn instead of ix86_gen_add3.
	(ix86_expand_split_stack_prologue): Use gen_add2_insn
	instead of ix86_gen_add3.
	(legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
	Use gen_sub3_insn instead of ix86_gen_sub3.
	* config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
	instead of ix86_gen_add3.
	(ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
	ix86_gen_add3.  Use gen_sub3_insn instead of ix86_gen_sub3.
	(construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
	* config/i386/i386-options.c (ix86_option_override_internal):
	Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
	ix86_gen_one_cmpl2 and ix86_gen_andsp.

From-SVN: r271667
2019-05-27 20:33:23 +02:00
Eric Botcazou
7e8ae6c818 dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index and DW_OP_GNU_const_index opcodes.
* dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
	and DW_OP_GNU_const_index opcodes.

From-SVN: r271664
2019-05-27 16:08:19 +00:00
Uros Bizjak
d16b9d1cb6 i386.h (STACK_SIZE_MODE): Define.
* config/i386/i386.h (STACK_SIZE_MODE): Define.

From-SVN: r271663
2019-05-27 16:37:02 +02:00
Christophe Lyon
63be21c859 [testsuite,aarch64,arm] PR88440: Fix testcases
2019-05-27  Christophe Lyon  <christophe.lyon@linaro.org>

	PR tree-optimization/88440
	gcc/testsuite/
	* gcc.target/aarch64/sve/index_offset_1.c: Add -fno-tree-loop-distribute-patterns.
	* gcc.target/aarch64/sve/single_1.c: Likewise.
	* gcc.target/aarch64/sve/single_2.c: Likewise.
	* gcc.target/aarch64/sve/single_3.c: Likewise.
	* gcc.target/aarch64/sve/single_4.c: Likewise.
	* gcc.target/aarch64/sve/vec_init_1.c: Likewise.
	* gcc.target/aarch64/vect-fmovd-zero.c: Likewise.
	* gcc.target/aarch64/vect-fmovf-zero.c: Likewise.
	* gcc.target/arm/ivopts.c: Likewise.

From-SVN: r271662
2019-05-27 15:37:57 +02:00
Richard Biener
d6b3654a9a re PR tree-optimization/90637 (ICE in vect_loop_versioning, at tree-vect-loop-manip.c:3055)
2019-05-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90637
	* tree-ssa-sink.c (statement_sink_location): Honor the
	computed sink location for single-uses.

	* gcc.dg/gomp/pr90637.c: New testcase.

From-SVN: r271661
2019-05-27 13:18:12 +00:00
Eric Botcazou
8da3776f93 trans.c (Call_to_gnu): Do not initialize the temporary created out of addressability concerns if...
* gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
	created out of addressability concerns if it's for the _Init parameter
	of an initialization procedure.

From-SVN: r271659
2019-05-27 11:43:17 +00:00
Eric Botcazou
b9778c45fc ada-builtin-types.def: New file.
* gcc-interface/ada-builtin-types.def: New file.
	* gcc-interface/ada-builtins.def: Likewise.
	* gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
	(BUILT_IN_UNLIKELY): Likewise.
	* gcc-interface/trans.c (independent_iterations_p): Initialize the
	auto-vector to 16 elements.
	(Call_to_gnu): Remove local variable and change the vector of actual
	parameters to an auto-vector.  Do not convert actual parameters to
	the argument type for front-end built-in functions.  Add support for
	front-end built-in functions.
	(build_noreturn_cond): Use internal instead of built-in function.
	* gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
	(install_builtin_function_types): Likewise.
	(install_builtin_functions): Include ada-builtins.def first.

From-SVN: r271658
2019-05-27 11:34:35 +00:00
Eric Botcazou
b4c056d2df utils.c (maybe_pad_type): Issue the warning for the specific case of component types preferably.
* gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
	specific case of component types preferably.

From-SVN: r271655
2019-05-27 11:12:28 +00:00
Eric Botcazou
eb0f4e48fa trans.c (Identifier_to_gnu): Minor tweaks.
* gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
	(gnat_to_gnu): Do not convert the result if it is a reference to an
	unconstrained array used as the prefix of an attribute reference that
	requires an lvalue.

From-SVN: r271653
2019-05-27 11:04:48 +00:00
Richard Biener
00e7f01dc4 re PR tree-optimization/90610 (526.blender_r miscompared on znver1 with -Ofast -march=native since r271463)
2019-05-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/90610
	* match.pd (vec_perm): Avoid clobbering op0 when not generating
	a bit-insert.

From-SVN: r271652
2019-05-27 10:52:14 +00:00
Eric Botcazou
3016ec8a61 trans.c (Gigi_Types_Compatible): New predicate.
* gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
	(Identifier_to_gnu): Use it to assert that the type of the identifier
	and that of its entity are compatible for gigi.  Rename a couple of
	local variables and separate the processing of the result type.

From-SVN: r271650
2019-05-27 10:44:55 +00:00
Eric Botcazou
7a0877c042 trans.c (Call_to_gnu): Use the unpadded type when putting back an intermediate conversion the type of...
* gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
	putting back an intermediate conversion the type of the actuals.

From-SVN: r271647
2019-05-27 10:16:04 +00:00
Eric Botcazou
73cd514ab5 trans.c (gnat_to_gnu): Convert the count to the unsigned version of its base type before proceeding.
* gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
	count to the unsigned version of its base type before proceeding.

From-SVN: r271646
2019-05-27 09:14:30 +00:00
Richard Biener
3aad84a49e re PR testsuite/90615 (several vector test cases fail starting with r271553)
2019-05-27  Richard Biener  <rguenther@suse.de>

	PR testsuite/90615
	* gcc.dg/vect/costmodel/ppc/costmodel-vect-31b.c: Add
	-fno-tree-loop-distribute-patterns.
	* gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c: Likewise.
	* gcc.dg/vect/costmodel/ppc/costmodel-vect-76a.c: Likewise.
	* gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: Likewise.
	* gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c: Likewise.
	* gcc.target/powerpc/vsx-vectorize-1.c: Likewise.

From-SVN: r271645
2019-05-27 07:39:14 +00:00
GCC Administrator
a79d02737c Daily bump.
From-SVN: r271644
2019-05-27 00:16:19 +00:00
Ian Lance Taylor
8b9cfd766d re PR go/90635 (typo in libgo/configure.ac)
PR go/90635
    libgo: correct typo in USE_LIBFFI AM_CONDITIONAL
    
    Only affects the case of passing --without-libffi to configure.
    
    Fixes https://gcc.gnu.org/PR90635
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/178998

From-SVN: r271640
2019-05-27 00:14:02 +00:00
Ian Lance Taylor
8b33101442 re PR go/90614 (gcc-9.1.0/libgo/go/syscall/wait.c:54:22: error: unused parameter ‘w’ [-Werror=unused-parameter] Continued (uint32_t *w))
PR go/90614
    syscall: avoid unused parameter error if WIFCONTINUED not defined
    
    Fixes https://gcc.gnu.org/PR90614
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/178997

From-SVN: r271638
2019-05-27 00:10:34 +00:00
Uros Bizjak
a963ca4012 i386.md (@leave_<mode>): New expander.
* config/i386/i386.md (@leave_<mode>): New expander.
	(*leave): Rename from leave.
	(*leave_rex64): Rename from leave_rex64.
	(@monitorx_<mode>): Rename from monitorx_<mode>.
	(@clzero_<mode>): Rename from clzero_<mode>.
	* config/i386/sse.md (@sse3_monitor_<mode>): Rename from
	sse3_monitor_<mode>.
	* config/i386/i386.c (*ix86_gen_leave): Remove indirect function.
	(*ix86_gen_monitor): Ditto.
	(*ix86_gen_monitorx): Ditto.
	(*ix86_gen_clzero): Ditto.
	(*ix86_gen_one_cmpl2): Ditto.
	(ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
	* config/i386/i386-expand.c (ix86_expand_builtin)
	<case IX86_BUILTIN_MONITOR>: Use gen_sse3_monitor
	instead of ix86_gen_monitor.
	<case IX86_BUILTIN_MONITORX>: Use gen_monitorx
	instead of ix86_gen_monitorx.
	<case IX86_BUILTIN_CLZERO>: Use gen_clzero
	instead of ix86_gen_clzero.
	* config/i386/i386-options.c (ix86_option_override_internal):
	Do not initialize ix86_gen_leave, ix86_gen_monitor,
	ix86_gen_monitorx, ix86_gen_clzero and ix86_gen_one_cmpl2.

	* config/i386/i386.md (@tls_global_dynamic_64_<mode>):
	Rename from tls_global_dynamic_64_<mode>.
	(@tls_local_dynamic_base_64_<mode>): Rename from
	tls_local_dynamic_base_64_<mode>.
	* config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
	Remove indirect function.
	(*ix86_gen_tls_local_dynamic_base_64): Ditto.
	(legitimize_tls_address): Use gen_tls_global_dynamic_64 function
	instead of ix86_gen_tls_global_dynamic_64.
	Use gen_tls_local_dynamic_base_64 instead of
	ix86_gen_tls_local_dynamic_base_64.
	* config/i386/i386-options.c (ix86_option_override_internal):
	Do not initialize ix86_gen_tls_global_dynamic_64 and
	ix86_gen_tls_local_dynamic_base_64.

	* config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
	Rename from pro_epilogue_adjust_stack_<mode>_add.
	(@pro_epilogue_adjust_stack_sub_<mode>)
	Rename from pro_epilogue_adjust_stack_<mode>_sub.
	(@allocate_stack_worker_probe_<mode>):
	Rename from allocate_stack_worker_probe_<mode>.
	(allocate_stack): Use gen_allocate_stack_worker_probe.
	(probe_stack): Use gen_probe_stack_1.
	(@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
	(@adjust_stack_and_probe_<mode>): Rename from
	adjust_stack_and_probe<mode>.
	(@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
	(stack_protect_set): Use gen_stack_protect_set_1.
	(@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
	(stack_protect_test): Use gen_stack_protect_test_1.
	(@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
	* config/i386/i386.c (*ix86_gen_allocate_stack_worker):
	Remove indirect function.
	(*ix86_gen_adjust_stack_and_probe): Ditto.
	(*ix86_gen_probe_stack_range): Ditto.
	(pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
	instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
	(ix86_adjust_stack_and_probe_stack_clash): Use
	gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
	(ix86_adjust_stack_and_probe): Ditto.
	(ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
	of ix86_gen_probe_stack_range.
	(ix86_expand_prologue):  Use gen_pro_epilogue_adjust_stack_sub
	instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
	* config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
	Include insn-opinit.h.  Use code_for_stack_protect_test_1 instead of
	CODE_FOR_stack_protect_test_{si,di}.
	* config/i386/i386-options.c (ix86_option_override_internal):
	Do not initialize ix86_gen_allocate_stack_worker,
	ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.

From-SVN: r271636
2019-05-27 00:48:24 +02:00
Gerald Pfeifer
558f3941e9 appendix_contributing.xml: Update pointer to C++ standard at ansi.org.
* doc/xml/manual/appendix_contributing.xml: Update pointer to
	C++ standard at ansi.org.

From-SVN: r271635
2019-05-26 19:46:09 +00:00
Iain Sandoe
2e776effa2 darwin, x86, testsuite - Amend three PIE tests,
Darwin requires PIC code in order to support PIE, amend the test scan-asms
to match this.

2019-05-26  Iain Sandoe  <iain@sandoe.co.uk>

	* gcc.target/i386/pr39013-1.c: Adjust scan-asms for PIE to
	account for PIC code on Darwin.
	* gcc.target/i386/pr39013-2.c: Likewise.
	* gcc.target/i386/pr64317.c: Likewise.

From-SVN: r271634
2019-05-26 19:35:14 +00:00
Gerald Pfeifer
e1fb36b8e4 invoke.texi (Link Options): Many editorial changes around -flinker-output.
* doc/invoke.texi (Link Options): Many editorial changes around
	-flinker-output.

From-SVN: r271633
2019-05-26 17:33:52 +00:00
John David Anglin
abbb83070a linux-unwind.h (pa32_fallback_frame_state): Add cast.
* config/pa/linux-unwind.h (pa32_fallback_frame_state): Add cast.

From-SVN: r271631
2019-05-26 15:16:50 +00:00
Thomas Koenig
c51ecf2813 re PR fortran/90539 (481.wrf slowdown by 25% on Intel Kaby with -Ofast -march=native starting with r271377)
2019-05-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/90539
	* trans-types.c (get_formal_from_actual_arglist): Set rank
	and lower bound for assumed size arguments.

From-SVN: r271630
2019-05-26 14:02:51 +00:00
Rainer Orth
6145df6232 Added ChangeLog entry for last commit.
From-SVN: r271629
2019-05-26 09:23:52 +00:00
Rainer Orth
11a0433415 Remove Solaris 10-only note about -mvect8-ret-in-mem
From-SVN: r271628
2019-05-26 09:21:40 +00:00
GCC Administrator
ddc9512a6f Daily bump.
From-SVN: r271627
2019-05-26 00:16:15 +00:00
Iain Sandoe
09253954d2 darwin, x86, testsuite - Amend popcnt match string for Darwin.
Darwin uses a different spelling for popcnt (popcnt instead of popcntw).
Check for this in the test.

2019-05-25  Iain Sandoe  <iain@sandoe.co.uk>

	* gcc.target/i386/pr59874-3.c: Use the spelling of popcnt
	expected for Darwin.

From-SVN: r271623
2019-05-25 19:46:53 +00:00
Iain Sandoe
262fb6f113 darwin, x86, testsuite - Check for an expected error on Darwin.
The test requests an alignment which exceeds the maximum object
file aligment for Darwin, rather than skipping it - test that we
see the expected error.

2019-05-25  Iain Sandoe  <iain@sandoe.co.uk>

	* gcc.target/i386/pr89261.c: Test that the alignment required
	by the test correctly produces the expected error on Darwin.

From-SVN: r271622
2019-05-25 19:42:05 +00:00
Iain Sandoe
8bc49dbc4f darwin, x86, testsuite - require alias on a test using it.
2019-05-25  Iain Sandoe  <iain@sandoe.co.uk>

	* gcc.target/i386/pr82659-3.c: Require alias support.

From-SVN: r271621
2019-05-25 19:36:27 +00:00
Marek Polacek
c3b2fdf9f8 PR c++/90572 - wrong disambiguation in friend declaration.
* parser.c (cp_parser_constructor_declarator_p): Don't allow missing
	typename for friend declarations.

	* g++.dg/cpp2a/typename16.C: New test.
	* g++.dg/parse/friend13.C: New test.

From-SVN: r271619
2019-05-25 14:39:12 +00:00
GCC Administrator
e266148f69 Daily bump.
From-SVN: r271618
2019-05-25 00:16:19 +00:00
John David Anglin
0241901b0c re PR target/90530 (Invalid SUBREG insn generated by reload)
PR target/90530
	* config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
	DImode to SImode in floating-point registers on 64-bit target.
	* config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
	register_operand in xmpyu patterns.

From-SVN: r271611
2019-05-24 23:12:16 +00:00
Jakub Jelinek
6c7ae8c56f tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
	* tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
	OMP_CLAUSE__REDUCTEMP_.
	* tree.c (omp_clause_num_ops, omp_clause_code_name): Add
	OMP_CLAUSE__CONDTEMP_.
	(walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
	* tree-pretty-print.c (dump_omp_clause): Likewise.
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Likewise.
	* gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
	instead of decimal.  Add GOVD_LASTPRIVATE_CONDITIONAL.
	(gimplify_scan_omp_clauses): Don't reject lastprivate conditional
	on OMP_FOR.
	(gimplify_omp_for): Warn and disable conditional modifier from
	lastprivate on loop iterators.
	* omp-general.h (struct omp_for_data): Add lastprivate_conditional
	member.
	* omp-general.c (omp_extract_for_data): Initialize it.
	* omp-low.c (struct omp_context): Add lastprivate_conditional_map
	member.
	(delete_omp_context): Delete it.
	(lower_lastprivate_conditional_clauses): New function.
	(lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
	handle lastprivate conditional clauses.
	(lower_reduction_clauses): Add CLIST argument, emit it into
	the critical section if any.
	(lower_omp_sections): Adjust lower_lastprivate_clauses and
	lower_reduction_clauses callers.
	(lower_omp_for_lastprivate): Add CLIST argument, pass it through
	to lower_lastprivate_clauses.
	(lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
	lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
	clist into a critical section if not emitted there already by
	lower_reduction_clauses.
	(lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
	callers.
	(lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
	conditional variables.
	* omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
	clause is present.
	(expand_omp_for_generic, expand_omp_for_static_nochunk,
	expand_omp_for_static_chunk): Handle lastprivate conditional.
	(expand_omp_for): Handle fd.lastprivate_conditional like
	fd.have_reductemp.
gcc/testsuite/
	* c-c++-common/gomp/lastprivate-conditional-2.c (foo): Don't expect
	sorry for omp for.
	* c-c++-common/gomp/lastprivate-conditional-3.c: New test.
libgomp/
	* testsuite/libgomp.c-c++-common/lastprivate-conditional-1.c: New test.
	* testsuite/libgomp.c-c++-common/lastprivate-conditional-2.c: New test.

From-SVN: r271610
2019-05-24 23:31:59 +02:00
Jonathan Wakely
09b4000c7c Fix std::midpoint(T*, T*) for reversed arguments
* include/std/numeric (midpoint(T*, T*)): Fix incorrect result.
	* testsuite/26_numerics/midpoint/pointer.cc: Change "compile" test
	to "run".

From-SVN: r271606
2019-05-24 16:39:35 +01:00
Andrew Stubbs
e8daba7e06 GCN: Wait for exit value to write before exiting.
2019-05-24  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/gcn/gcn-run.c (main): Set a non-zero return value if the
	kernel does not exit cleanly.
	* config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.

From-SVN: r271605
2019-05-24 15:25:41 +00:00
Jason Merrill
c2465daec4 Revert "* gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE."
This reverts commit ac0f04360cc04e5b80a7d74f7edc47e395d2e744.

From-SVN: r271604
2019-05-24 10:38:44 -04:00
Jonathan Wakely
2fb1b29d37 Fix broken shared_ptr test
* testsuite/20_util/shared_ptr/cons/alias-rval.cc: Fix test.
	* testsuite/20_util/shared_ptr/cons/alias.cc: Remove unused function.

From-SVN: r271603
2019-05-24 14:00:26 +01:00
Clement Chigot
245254b8bb Makefile.am (BUILDTESTS): Remove test_elf, add test_elf_32 and test_elf_64.
* Makefile.am (BUILDTESTS): Remove test_elf, add test_elf_32 and
	test_elf_64.
	* Makefile.in: Regenerate.

From-SVN: r271602
2019-05-24 11:55:21 +00:00
Richard Biener
dbd595151e re PR middle-end/90607 (gcc.dg/pr53265.c FAILs)
2019-05-24  Richard Biener  <rguenther@suse.de>

	PR testsuite/90607
	* tree-loop-distribution.c (struct partition): Add location
	member.
	(partition_alloc): Initialize all fields.
	(generate_memset_builtin): Use the location recorded in the
	partition for the generated call.
	(generate_memcpy_builtin): Likewise.
	(classify_partition): Record the location of a single store
	as location for the partition.

	* gcc.dg/pr53265.c: Amend for new expected diagnostic.

From-SVN: r271601
2019-05-24 11:31:11 +00:00
Andrew Stubbs
3258c2d6fb Fix 64-bit addition in prologue.
2019-05-24  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
	for lo-part.

From-SVN: r271600
2019-05-24 11:06:18 +00:00
Matthew Malcomson
1ec77eedd5 [aarch64] Change two function declaration types
Commit r271514 missed changing the type of two functions in
aarch64-protos.h.  The function definitions had been updated to use
uint64_t while the function declarations had been missed.
They were missed since I only tested the patch on aarch64 where
`unsigned long` is the same as `uint64_t`.

This patch updates these declarations in aarch64-protos.h.

Tested by building an aarch64 cross-compiler on arm-none-linux-gnu (so
that `unsigned long` and `uint64_t` are different and would give error
messages), and bootstrapping on aarch64-none-linux-gnu.
Also manually tested command line options to see that
-march=armv8-a+typo prints out the expected flags while using the new
feature flags does not complain about missing flags.

gcc/ChangeLog:

2019-05-24  Matthew Malcomson  <matthew.malcomson@arm.com>

	PR target/90588
	* common/config/aarch64/aarch64-common.c
	(aarch64_rewrite_selected_cpu): Change local temporary variable
	type from unsigned long to uint64_t.
	* config/aarch64/aarch64-protos.h (aarch64_parse_extension,
	aarch64_get_extension_string_for_isa_flags): Change declaration to
	match new definition by replacing unsigned long with uint64_t.

From-SVN: r271599
2019-05-24 10:39:38 +00:00