Commit Graph

168806 Commits

Author SHA1 Message Date
Yoshinori Sato 76aaa9cdb1 config.gcc (rx-*-linux*): New target.
* config.gcc (rx-*-linux*): New target.
	* config/rx/elf.opt: New file.
	* config/rx/linux.h: Likewise.
	* config/rx/t-linux: Likewise.
	* config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
	make it zero.
	* config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
	(ASM_APP_OFF): Likewise.
	* config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
	moved elsewhere.

	* config.host (rx-*-linux*): Add new case.
	* config/rx/t-rx (HOST_LIBGCC2_CFLAGS): Force DFmode to SFmode.

From-SVN: r271748
2019-05-29 12:36:06 -06:00
Jan Hubicka 01a58e3698 tree-ssa-alias.c (same_type_for_tbaa): Return ture if main variants are pointer equivalent.
* tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
	variants are pointer equivalent.

From-SVN: r271747
2019-05-29 18:13:51 +00:00
Paolo Carlini 824e57cbf4 re PR c++/89875 (invalid typeof reference to a member of an incomplete struct accepted at function scope)
/cp
2019-05-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/89875
	* parser.c (cp_parser_sizeof_operand): When the type-id production
	did not work out commit to the tentative parse.

/testsuite
2019-05-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/89875
	* g++.dg/cpp0x/decltype-pr66548.C: Remove xfail.
	* g++.dg/template/sizeof-template-argument.C: Adjust expected error.

From-SVN: r271746
2019-05-29 17:30:36 +00:00
Jonathan Wakely 65539b1ef3 Avoid -Wunused-parameter warnings from testsuite utility
* testsuite/util/testsuite_api.h: Remove names of unused parameters.

From-SVN: r271741
2019-05-29 15:45:50 +01:00
Jonathan Wakely b0c0d878a8 PR libstdc++/85494 use rdseed and rand_s in std::random_device
Add support for additional sources of randomness to std::random_device,
to allow using RDSEED for Intel CPUs and rand_s for Windows. When
supported these can be selected using the tokens "rdseed" and "rand_s".
For *-w64-mingw32 targets the "default" token will now use rand_s, and
for other i?86-*-* and x86_64-*-* targets it will try to use "rdseed"
first, then "rdrand", and finally "/dev/urandom".

To simplify the declaration of std::random_device in <bits/random.h> the
constructors now unconditionally call _M_init instead of _M_init_pretr1,
and the function call operator now unconditionally calls _M_getval. The
library code now decides whether _M_init and _M_getval should use a real
source of randomness or the mt19937 engine.

Existing code compiled against old libstdc++ headers will still call
_M_init_pretr1 and _M_getval_pretr1, but those functions now forward to
_M_init and _M_getval if a real source of randomness is available. This
means existing code compiled for mingw-w64 will start to use rand_s just
by linking to a new libstdc++.dll.

	* acinclude.m4 (GLIBCXX_CHECK_X86_RDSEED): Define macro to check if
	the assembler supports rdseed.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Use GLIBCXX_CHECK_X86_RDSEED.
	* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_CRT_RAND_S): Define.
	* doc/html/*: Regenerate.
	* doc/xml/manual/status_cxx2011.xml: Document new tokens.
	* include/bits/random.h (random_device::random_device()): Always call
	_M_init rather than _M_init_pretr1.
	(random_device::random_device(const string&)): Likewise.
	(random_device::operator()()): Always call _M_getval().
	(random_device::_M_file): Replace first member of union with an
	anonymous struct, with _M_file as its first member.
	* src/c++11/random.cc [_GLIBCXX_X86_RDRAND] (USE_RDRAND): Define.
	[_GLIBCXX_X86_RDSEED] (USE_RDSEED): Define.
	(USE_MT19937): Define if none of the above are defined.
	(USE_POSIX_FILE_IO): Define.
	(_M_strtoul): Remove.
	[USE_RDSEED] (__x86_rdseed): Define new function.
	[_GLIBCXX_USE_CRT_RAND_S] (__winxp_rand_s): Define new function.
	(random_device::_M_init(const string&)): Initialize new union members.
	Add support for "rdseed" and "rand_s" tokens. Decide what the
	"default" token does according to which USE_* macros are defined.
	[USE_POSIX_FILE_IO]: Store a file descriptor.
	[USE_MT19937]: Forward to _M_init_pretr1 instead.
	(random_device::_M_init_pretr1(const string&)) [USE_MT19937]: Inline
	code from _M_strtoul.
	[!USE_MT19937]: Call _M_init, transforming the old default token or
	numeric tokens to "default".
	(random_device::_M_fini()) [USE_POSIX_FILE_IO]: Use close not fclose.
	(random_device::_M_getval()): Use new union members to obtain a
	random number from the stored function pointer or file descriptor.
	[USE_MT19937]: Obtain a value from the mt19937 engine.
	(random_device::_M_getval_pretr1()): Call _M_getval().
	(random_device::_M_getentropy()) [USE_POSIX_FILE_IO]: Use _M_fd
	instead of fileno.
	[!USE_MT19937] (mersenne_twister): Do not instantiate when not needed.
	* testsuite/26_numerics/random/random_device/85494.cc: New test.

From-SVN: r271740
2019-05-29 15:45:35 +01:00
Alejandro Martinez 0617e23c95 This patch implements the [u]avgM3_floor and [u]avgM3_ceil optabs for SVE2.
From-SVN: r271739
2019-05-29 14:12:02 +00:00
Jakub Jelinek ffeebc4ff1 re PR fortran/90329 (Incompatibility between gfortran and C lapack calls)
PR fortran/90329
	* lang.opt (fbroken-callers): Remove.
	(ftail-call-workaround, ftail-call-workaround=): New options.
	* gfortran.h (struct gfc_namespace): Add implicit_interface_calls.
	* interface.c (gfc_procedure_use): Set implicit_interface_calls
	for calls to implicit interface procedures.
	* trans-decl.c (create_function_arglist): Use flag_tail_call_workaround
	instead of flag_broken_callers.  If it is not 2, also require
	sym->ns->implicit_interface_calls.
	* invoke.texi (fbroken-callers): Remove documentation.
	(ftail-call-workaround, ftail-call-workaround=): Document.

From-SVN: r271738
2019-05-29 16:08:57 +02:00
Jakub Jelinek b54ecc769f re PR bootstrap/90543 (Build failure on MINGW for gcc-9.1.0)
PR bootstrap/90543
	* optc-save-gen.awk: In cl_optimization_print, use correct condition
	for var_opt_string printing.  In cl_optimization_print_diff, print
	(null) instead of invoking undefined behavior if one of the
	var_opt_string pointers is NULL and use && instead of first || in the
	guarding condition.  For var_target_other options, handle const char *
	target variables similarly to const char * optimize node variables.

From-SVN: r271736
2019-05-29 11:33:02 +02:00
Sam Tebbs 8fc16d7252 [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key
gcc/
2019-05-29  Sam Tebbs  <sam.tebbs@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
	AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
	* config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
	Add autib1716 and pacib1716 initialisation.
	* config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
	for autib1716 and pacib1716.
	* config/aarch64/aarch64-protos.h (aarch64_key_type,
	aarch64_post_cfi_startproc): Define.
	* config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
	* config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
	aarch64_handle_pac_ret_protection): Set default sign key to A.
	* config/aarch64/aarch64.c (aarch64_expand_epilogue,
	aarch64_expand_prologue): Add check for b-key.
	* config/aarch64/aarch64.c (aarch64_ra_sign_key,
	aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
	* config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
	* config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
	* config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
	UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
	UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
	* config/aarch64/aarch64.md (do_return): Add check for b-key.
	* config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
	pauth_hint_num_a with pauth_hint_num.
	* config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
	pauth_hint_num_a with pauth_hint_num.
	* config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
	* config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
	UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
	* config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
	UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
	* config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
	UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
	UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
	* config/aarch64/iterators.md (pauth_hint_num_a): Replace
	UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
	UNSPEC_AUTIA1716 respectively.
	* config/aarch64/iterators.md (pauth_hint_num_a): Rename to pauth_hint_num
	and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
	* doc/invoke.texi (-mbranch-protection): Add b-key type.
	* config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
	UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.

gcc/testsuite
2019-05-29  Sam Tebbs  <sam.tebbs@arm.com>

	* gcc.target/aarch64/return_address_sign_b_1.c: New file.
	* gcc.target/aarch64/return_address_sign_b_2.c: New file.
	* gcc.target/aarch64/return_address_sign_b_3.c: New file.
	* gcc.target/aarch64/return_address_sign_b_exception.c: New file.
	* gcc.target/aarch64/return_address_sign_ab_exception.c: New file.
	* gcc.target/aarch64/return_address_sign_builtin.c: New file

libgcc/
2019-05-29  Sam Tebbs  <sam.tebbs@arm.com>

	* config/aarch64/aarch64-unwind.h (aarch64_cie_signed_with_b_key): New
	function.
	* config/aarch64/aarch64-unwind.h (aarch64_post_extract_frame_addr,
	aarch64_post_frob_eh_handler_addr): Add	check for b-key.
	* config/aarch64/aarch64-unwind-h (aarch64_post_extract_frame_addr,
	aarch64_post_frob_eh_handler_addr, aarch64_post_frob_update_context):
	Rename RA_A_SIGNED_BIT to RA_SIGNED_BIT.
	* unwind-dw2-fde.c (get_cie_encoding): Add check for 'B' in augmentation
	string.
	* unwind-dw2.c (extract_cie_info): Add check for 'B' in augmentation
	string.
	(RA_A_SIGNED_BIT): Rename to RA_SIGNED_BIT.

From-SVN: r271735
2019-05-29 09:22:17 +00:00
Jakub Jelinek 7e47198b80 gimplify.c (struct gimplify_omp_ctx): Add clauses member.
* gimplify.c (struct gimplify_omp_ctx): Add clauses member.
	(gimplify_scan_omp_clauses): Initialize ctx->clauses.
	(gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
	explicit clause on combined parallel into implicit shared clause.
	(gimplify_adjust_omp_clauses): Move lastprivate conditional clause
	and firstprivate if the decl has one too from combined parallel to
	the worksharing construct.
gcc/testsuite/
	* c-c++-common/gomp/lastprivate-conditional-2.c (foo): Don't expect
	sorry on lastprivate conditional on parallel for.
	* c-c++-common/gomp/lastprivate-conditional-3.c (foo): Add tests for
	lastprivate conditional warnings on parallel for constructs.
	* c-c++-common/gomp/lastprivate-conditional-4.c: New test.
libgomp/
	* testsuite/libgomp.c-c++-common/lastprivate_conditional_4.c: Rename
	to ...
	* testsuite/libgomp.c-c++-common/lastprivate-conditional-4.c: ... this.
	* testsuite/libgomp.c-c++-common/lastprivate-conditional-5.c: New test.
	* testsuite/libgomp.c-c++-common/lastprivate-conditional-6.c: New test.

From-SVN: r271733
2019-05-29 09:51:43 +02:00
Jakub Jelinek 357a352fe3 re PR c/90628 (__builtin_mul_overflow writes to const qualified integer)
PR c/90628
	* c-common.c (check_builtin_function_arguments)
	<case BUILTIN_*_OVERFLOW>: Diagnose pointer to const qualified integer
	as last argument.

	* c-c++-common/builtin-arith-overflow-3.c: New test.

From-SVN: r271732
2019-05-29 09:48:37 +02:00
Jakub Jelinek b0df5ff8be P1091R3 - Extending structured bindings to be more like var decls P1381R1 - Reference capture of structured bindings
P1091R3 - Extending structured bindings to be more like var decls
	P1381R1 - Reference capture of structured bindings
	* decl.c (cp_maybe_mangle_decomp): Handle TREE_STATIC decls even at
	function scope.
	(cp_finish_decomp): Copy over various decl properties from decl to
	v[i] in the tuple case.
	(grokdeclarator): Allow static, thread_local and __thread for C++2a
	and use pedwarn instead of error for older standard revisions.
	Make other structured binding diagnostic messages more i18n friendly.

	* g++.dg/cpp1z/decomp3.C (test): For static, expect only warning
	instead of error and only for c++17_down.  Add a thread_local test.
	(z2): Add a __thread test.
	* g++.dg/cpp2a/decomp1.C: New test.
	* g++.dg/cpp2a/decomp1-aux.cc: New file.
	* g++.dg/cpp2a/decomp2.C: New test.
	* g++.dg/cpp2a/decomp3.C: New test.

From-SVN: r271731
2019-05-29 09:45:49 +02:00
Jakub Jelinek b7f0df71a9 P1091R3 - Extending structured bindings to be more like var decls P1381R1 - Reference capture of structured bindings
P1091R3 - Extending structured bindings to be more like var decls
	P1381R1 - Reference capture of structured bindings
	* decl.c (cp_maybe_mangle_decomp): Handle TREE_STATIC decls even at
	function scope.
	(cp_finish_decomp): Copy over various decl properties from decl to
	v[i] in the tuple case.
	(grokdeclarator): Allow static, thread_local and __thread for C++2a
	and use pedwarn instead of error for older standard revisions.
	Make other structured binding diagnostic messages more i18n friendly.

	* g++.dg/cpp1z/decomp3.C (test): For static, expect only warning
	instead of error and only for c++17_down.  Add a thread_local test.
	(z2): Add a __thread test.
	* g++.dg/cpp2a/decomp1.C: New test.
	* g++.dg/cpp2a/decomp1-aux.cc: New file.
	* g++.dg/cpp2a/decomp2.C: New test.
	* g++.dg/cpp2a/decomp3.C: New test.

From-SVN: r271730
2019-05-29 09:44:50 +02:00
Martin Liska 2186b5d022 Remove duplicite dg-compile (PR testsuite/90657).
2019-05-29  Martin Liska  <mliska@suse.cz>

	PR testsuite/90657
	* gcc.dg/ipa/pr90555.c: Remove duplicite dg-compile.

From-SVN: r271729
2019-05-29 06:09:02 +00:00
Bill Schmidt 510d3a7313 rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
[gcc]

2019-05-28  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.

[gcc/testsuite]

2019-05-28  Bill Schmidt  <wschmidt@linux.ibm.com>

	* gcc.target/powerpc/localentry-detect-1.c: New file.


Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>

From-SVN: r271728
2019-05-29 03:37:29 +00:00
Michael Meissner 02441f3eec rtl.h (LABEL_REF_P): New #define.
2019-05-28  Michael Meissner  <meissner@linux.ibm.com>

	* rtl.h (LABEL_REF_P): New #define.

From-SVN: r271727
2019-05-29 02:10:59 +00:00
GCC Administrator 2872594a95 Daily bump.
From-SVN: r271726
2019-05-29 00:16:17 +00:00
John David Anglin 6dbbb526a8 pa.c (hppa_profile_hook): Remove offset adjustment.
* config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.

From-SVN: r271720
2019-05-28 23:24:23 +00:00
Jonathan Wakely 441ed45ca2 PR libstdc++/90634 reduce allocations in filesystem::path construction
PR libstdc++/90634
	* include/experimental/bits/fs_path.h (path::path(path&&)): Only call
	_M_split_cmpts() for a path with multiple components.
	(path::_S_is_dir_sep()): Add missing 'static' keyword to function.
	* src/filesystem/path.cc (path::_M_split_cmpts()): Count number of
	components and reserve space in vector. Return early when there is
	only one component.
	* testsuite/27_io/filesystem/path/construct/90634.cc: New test.
	* testsuite/experimental/filesystem/path/construct/90634.cc: New test.

From-SVN: r271717
2019-05-28 20:39:48 +01:00
Jonathan Wakely d9b401df8f Fix C++14-only code in testsuite utility
* testsuite/util/testsuite_fs.h (compare_paths): Use three-argument
	form of std::equals for C++11 compatibility.

From-SVN: r271716
2019-05-28 20:39:41 +01:00
Rainer Orth e54b1a92ac Remove pre-Solaris 11/SPARC unwinding support
* config/sparc/sol2-unwind.h [__arch64__] (sparc64_is_sighandler):
	Remove Solaris 9 and 10 support.
	(sparc_is_sighandler): Likewise.

From-SVN: r271715
2019-05-28 17:27:51 +00:00
Nathan Sidwell a01d3b0481 [C++ PATCH] template specializations
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01844.html
	* decl.c (duplicate_decls): Assert a template newdecl has no
	specializations.

From-SVN: r271713
2019-05-28 17:04:12 +00:00
Marek Polacek de1644122d PR c++/90548 - ICE with generic lambda and empty pack.
* pt.c (tsubst_copy_and_build): Handle pack expansion properly.

	* g++.dg/cpp1y/lambda-generic-90548.C: New test.

From-SVN: r271705
2019-05-28 14:00:29 +00:00
Alejandro Martinez 997636716c Current vectoriser doesn't support masked loads for SLP.
Current vectoriser doesn't support masked loads for SLP. We should add that, to
allow things like:

void
f (int *restrict x, int *restrict y, int *restrict z, int n)
{
  for (int i = 0; i < n; i += 2)
    {
      x[i] = y[i] ? z[i] : 1;
      x[i + 1] = y[i + 1] ? z[i + 1] : 2;
    }
}

to be vectorized using contiguous loads rather than LD2 and ST2.

This patch was motivated by SVE, but it is completely generic and should apply
to any architecture with masked loads.

From-SVN: r271704
2019-05-28 13:48:44 +00:00
Rainer Orth 8b4e714355 Remove obsolete comment about use_thunk
* config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
	Remove obsolete use_thunk reference.
	* config/i386/i386.c (x86_output_mi_thunk): Likewise.
	* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
	* config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
	* config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
	* config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
	* config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.

From-SVN: r271703
2019-05-28 13:37:15 +00:00
Nathan Sidwell 7daef9aceb [PATCH] Commonize anon-name generation
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01699.html
	* tree.h (IDENTIFIER_ANON_P): New.
	(anon_aggrname_format, anon_aggname_p): Don't declare.
	(make_anon_name): Declare.
	* lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
	(hash_tree): Likewise.
	* tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
	* tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
	(anon_cnt, make_anon_name): New.

 	gcc/cp/
	* cp-tree.h (make_anon_name): Drop declaration.
	(TYPE_UNNAMED_P): Use IDENTIFIER_ANON_P.
	* cp-lang.c (cxx_dwarf_name): Likewise.
	* class.c (find_flexarrays): Likewise.
	* decl.c (name_unnamed_type, xref_tag_1): Likewise.
	* error.c (dump_aggr_type): Likewise.
	* pt.c (push_template_decl_real): Likewise.
	* name-lookup.c (consider_binding_level): Likewise.
	(anon_cnt, make_anon_name): Delete.

	gcc/d/
	* types.cc (fixup_anonymous_offset): Use IDENTIFIER_ANON_P.
	(layout_aggregate_members): Use make_anon_name.

From-SVN: r271702
2019-05-28 13:31:16 +00:00
Jeff Law 3253d4f026 pr50749-qihisi-predec-3.c: Disable loop distribution.
* testsuite/gcc.target/sh/pr50749-qihisi-predec-3.c: Disable
	loop distribution.

From-SVN: r271701
2019-05-28 07:16:17 -06:00
Martin Liska bc405869c2 Support again multiple --help options (PR other/90315).
2019-05-28  Martin Liska  <mliska@suse.cz>

	PR other/90315
	* opts-global.c (decode_options): Print help for all
	help_option_arguments.
	* opts.c (print_help): Add new argument.
	(common_handle_option): Remember all values into
	help_option_arguments.
	* opts.h (print_help): Add new argument.

From-SVN: r271700
2019-05-28 12:05:50 +00:00
Segher Boessenkool 392d2ff3bd rs6000: Improve p9-dimode* testcases
This removes the unnecessary restriction to 32-bit (all three ways).
It also scans for mtvsr*, not just mtvsrd.  Finally, it uses the "wa"
constraints instead of "wi" in the inline asm statements.


gcc/testsuite/
	* gcc.target/powerpc/p9-dimode1.c: Don't restrict to -m64.  Check for
	all mtvsr*, not just mtvsrd.  Use "wa" instead of "wi" constraints.
	* gcc.target/powerpc/p9-dimode2.c: Ditto.

From-SVN: r271696
2019-05-28 13:45:48 +02:00
Martin Liska 8d2a310798 Handle loop fields in IPA ICF (PR ipa/90555).
2019-05-28  Martin Liska  <mliska@suse.cz>

	PR ipa/90555
	* ipa-icf-gimple.c (func_checker::compare_loops): New function.
	* ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
	(func_checker::compare_bb): Call compare_loops.
2019-05-28  Martin Liska  <mliska@suse.cz>

	PR ipa/90555
	* gcc.dg/ipa/pr90555.c: New test.

From-SVN: r271695
2019-05-28 11:42:46 +00:00
Eric Botcazou abdb813b23 * gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
From-SVN: r271694
2019-05-28 08:51:35 +00:00
Eric Botcazou 5ca5ef6870 implementation_defined_pragmas.rst (Machine_Attribute): Document additional optional parameters.
* doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
	Document additional optional parameters.
	* sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
	more than one optional parameter.
	* gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
	the list of supported pragmas.  Simplify the handling of parameters
	and add support for more than one optional parameter.
	* gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
	(gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
	used, cold, hot, target and target_clones.
	(begin_subprog_body): Do not create the RTL for the subprogram here.
	(handle_noicf_attribute): New static function.
	(handle_noipa_attribute): Likewise.
	(handle_flatten_attribute): Likewise.
	(handle_used_attribute): Likewise.
	(handle_cold_attribute): Likewise.
	(handle_hot_attribute): Likewise.
	(handle_target_attribute): Likewise.
	(handle_target_clones_attribute): Likewise.

From-SVN: r271693
2019-05-28 08:47:33 +00:00
Eric Botcazou 79069232df trans.c (lvalue_required_for_attribute_p): Return 0 for 'Size too.
* gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
	for 'Size too.
	(Identifier_to_gnu): Use the actual subtype for a reference to a
	packed array in a return statement.
	(Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
	the prefix in every case.

From-SVN: r271691
2019-05-28 08:25:32 +00:00
Eric Botcazou f552aa626f trans.c (gnat_to_gnu): Remove superfluous tests on Backend_Overflow_Checks_On_Target and rework comments.
* gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
	Backend_Overflow_Checks_On_Target and rework comments.

From-SVN: r271689
2019-05-28 08:13:37 +00:00
Eric Botcazou 81edaf2fc6 trans.c (walk_nesting_tree): New static function.
* gcc-interface/trans.c (walk_nesting_tree): New static function.
	(finalize_nrv): Use it to walk the entire nesting tree.

From-SVN: r271685
2019-05-28 08:00:21 +00:00
Eric Botcazou 3e86c778cb decl.c (gnat_to_gnu_entity): Remove obsolete test on Is_For_Access_Subtype.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
	obsolete test on Is_For_Access_Subtype.

From-SVN: r271683
2019-05-28 07:42:53 +00:00
Eric Botcazou f65f371bcf decl.c (components_to_record): Set a name on the type created for the REP part, if any.
* gcc-interface/decl.c (components_to_record): Set a name on the type
	created for the REP part, if any.
	* gcc-interface/utils.c (finish_record_type): Only take the maximum
	when merging sizes for a variant part at offset 0.
	(merge_sizes): Rename has_rep parameter into max.

From-SVN: r271681
2019-05-28 07:36:02 +00:00
Eric Botcazou e6ca6782ac utils.c (gnat_internal_attribute_table): Add support for stack_protect attribute.
* gcc-interface/utils.c (gnat_internal_attribute_table): Add support
	for stack_protect attribute.
	(handle_stack_protect_attribute): New static function.

From-SVN: r271680
2019-05-28 07:23:54 +00:00
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