Commit Graph

169450 Commits

Author SHA1 Message Date
Jan Beulich 57e088f5ed ix86: pass correct options to compiler for gfni-4 testcase
SSE2 is the required prereq of the builtins; as x86-64 has SSE2 enabled
anyway, the test failure was noticable on 32-bit builds only.

From-SVN: r272743
2019-06-27 10:19:37 +00:00
Richard Biener b38f4c1b76 tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
2019-06-27  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.

	* gcc.dg/tree-ssa/ssa-fre-69.c: New testcase.

From-SVN: r272742
2019-06-27 10:11:57 +00:00
Jun Ma 5fd336bbd7 re PR tree-optimization/89772 (memchr for a character not in constant nul-padded string not folded)
PR tree-optimization/89772
	* gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
	out-of-bound accesses checking.

	gcc/testsuite
	* gcc.dg/builtin-memchr-4.c: New test.

From-SVN: r272740
2019-06-27 09:50:35 +00:00
Jonathan Wakely e11c487111 PR libstdc++/91012 fixfilesystem_error::what() string
When I refactored the filesystem_error code I changed it to only use the
constructor parameter in the what() string, instead of the string
returned by system_error::what(). That meant it no longer included the
description of the error_code that system_error adds. This restores the
previous behaivour, as encouraged by the standard ("Implementations
should include the system_error::what() string and the pathnames of
path1 and path2 in the native format in the returned string").

	PR libstdc++/91012
	* src/c++17/fs_path.cc (filesystem_error::_Impl): Use a string_view
	for the what_arg parameters.
	(filesystem_error::filesystem_error): Pass system_error::what() to
	the _Impl constructor.
	* testsuite/27_io/filesystem/filesystem_error/cons.cc: Ensure that
	filesystem_error::what() contains system_error::what().

From-SVN: r272739
2019-06-27 10:42:39 +01:00
Martin Liska 4c4be718fb Fix ICE when __builtin_calloc has no LHS (PR tree-optimization/91014).
2019-06-27  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/91014
	* tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
	when LHS is NULL_TREE.
2019-06-27  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/91014
	* gcc.target/s390/pr91014.c: New test.

From-SVN: r272738
2019-06-27 09:41:34 +00:00
Richard Biener fecd7a1ab4 re PR testsuite/91004 (Excess errors in g++.dg/torture/pr34850.C starting with r272688)
2019-06-27  Richard Biener  <rguenther@suse.de>

	PR testsuite/91004
	* g++.dg/torture/pr34850.C: Fix overly reduced testcase.

From-SVN: r272737
2019-06-27 09:08:02 +00:00
Martin Liska 721bd21026 Fix warnings seen by clang in gcc/symbol-summary.h.
2019-06-27  Martin Liska  <mliska@suse.cz>

	* symbol-summary.h (traverse): Pass
	argument a to the call of callback.
	(gt_ggc_mx): Mark arguments as unused.
	(gt_pch_nx): Likewise.

From-SVN: r272734
2019-06-27 08:21:47 +00:00
Martin Liska c2f7a665a1 Fix misc stuff seen by clang-static-analyzer.
2019-06-27  Martin Liska  <mliska@suse.cz>

	* lto-dump.c (struct symbol_entry): Add default dtor.
	(struct variable_entry): Likewise.
	(struct function_entry): Likewise.
	(dump_list_functions): Release memory.
	(dump_list_variables): Likewise.
2019-06-27  Martin Liska  <mliska@suse.cz>

	* libgcov-util.c (gcov_profile_merge): Release allocated
	memory.
	(calculate_overlap): Likewise.

From-SVN: r272733
2019-06-27 08:21:32 +00:00
Kewen Lin b5b31291bd One line change onto r272731
PR target/62147
    * gcc/loop-iv.c (find_simple_exit)

-  if (single_exit (loop) && finite_loop_p (loop))
+  if (desc->infinite && single_exit (loop) && finite_loop_p (loop))

From-SVN: r272732
2019-06-27 05:33:15 +00:00
Kewen Lin ce3ad45c3c Call finite_loop_p in RTL to get better finiteness information.
gcc/ChangeLog

2019-06-27  Kewen Lin  <linkw@gcc.gnu.org>

    PR target/62147
    * gcc/loop-iv.c (find_simple_exit): Call finite_loop_p to update finiteness.

gcc/testsuite/ChangeLog

2019-06-27  Kewen Lin  <linkw@gcc.gnu.org>

    PR target/62147
    * gcc.target/powerpc/pr62147.c: New test.

From-SVN: r272731
2019-06-27 05:24:00 +00:00
Jeff Law 08c1638dab re PR tree-optimization/90883 (Generated code is worse if returned struct is unnamed)
PR tree-optimization/90883
	* tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
	(delete_dead_or_redundant_assignment): Likewise.

From-SVN: r272726
2019-06-26 20:42:30 -06:00
Jeff Law a9f054a56f re PR tree-optimization/90883 (Generated code is worse if returned struct is unnamed)
PR tree-optimization/90883
	* tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
	(delete_dead_or_redundant_assignment): Likewise.

From-SVN: r272725
2019-06-26 20:41:27 -06:00
GCC Administrator 0e444c0441 Daily bump.
From-SVN: r272723
2019-06-27 00:16:22 +00:00
Jonathan Wakely 22ff8929d7 Define std::chars_format enumeration type
This type isn't used anywhere yet, but will be needed for the
floating-point overloads of to_chars and from_chars.

	* include/std/charconv (chars_format): Define bitmask type.
	* testsuite/20_util/to_chars/chars_format.cc: New test.

From-SVN: r272718
2019-06-26 23:54:38 +01:00
Jeff Law 3fe0ddc883 re PR tree-optimization/90883 (Generated code is worse if returned struct is unnamed)
PR tree-optimization/90883
	* tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
	* tree-ssa-dse.c: Update various comments to distinguish between
	dead and redundant stores.
	(initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
	(dse_optimize_redundant_stores): New function.
	(delete_dead_or_redundant_call): Renamed from delete_dead_call.
	Distinguish between dead and redundant calls in dump output.  All
	callers updated.
	(delete_dead_or_redundant_assignment): Similarly for assignments.
	(dse_optimize_stmt): Handle _CHK variants.  For statements which
	store 0 into multiple memory locations, try to prove a subsequent
	store is redundant.

        PR tree-optimization/90883
	* g++.dg/tree-ssa/pr90883.C: New test.
	* gcc.dg/tree-ssa/ssa-dse-36.c: New test.

From-SVN: r272717
2019-06-26 15:36:27 -06:00
Uros Bizjak 9f962469ca re PR target/89021 (Implement mmintrin.h in SSE)
PR target/89021
	* config/i386/i386.c (ix86_autovectorize_vector_sizes):
	Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.

testsuite/ChangeLog:

	PR target/89021
	* lib/target-supports.exp (available_vector_sizes)
	<[istarget i?86-*-*] || [istarget x86_64-*-*]>: Add
	64-bit vectors for !ia32.

From-SVN: r272711
2019-06-26 21:12:27 +02:00
Iain Sandoe 9ff33839fc [PATCH, PPC 2/2] Fix Darwin bootstrap after split of rs6000.c.
To fix this we need to make the branch islands (or code) visible between
both files.  This keeps the generation side in rs6000.c and moves the
output routine to rs6000-logue.c, placing a reference to the islands
vector in rs6000-internal.h.

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

	* config/rs6000/rs6000-internal.h (branch_island): New typedef.
	(branch_islands): New extern.
	* config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
	* config/rs6000/rs6000.c: .. here.

From-SVN: r272710
2019-06-26 19:04:50 +00:00
Iain Sandoe 6b011221fd [PATCH, PPC 1/2] Make sure the gt- files are built for all sub-targets.
The new gt-rs6000-logue.h is common to all sub-targets in the port, so
it needs to be added for them.

It seems better to place the common target_gtfiles in the powerpc*-*-*
section, rather than duplicating them in sub-targets.  This would make it
less likely that a sub-target would be overlooked in any future file
introductions.

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

	* config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
	(powerpc*-*-*) ... to here.

From-SVN: r272708
2019-06-26 19:00:16 +00:00
Jeff Law 4a61cf9c62 tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of memcpy, memmove and memset builtins.
* tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
	memcpy, memmove and memset builtins.
	(maybe_trim_memstar_call): Likewise.

	* gcc.c-torture/execute/builtins/builtins.exp: Add -fno-tree-dse
	as DSE compromises several of these tests.
	* gcc.dg/builtin-stringop-chk-1.c: Similarly.
	* gcc.dg/memcpy-2.c: Similarly.
	* gcc.dg/pr40340-1.c: Similarly.
	* gcc.dg/pr40340-2.c: Similarly.
	* gcc.dg/pr40340-5.c: Similarly.

From-SVN: r272704
2019-06-26 12:00:00 -06:00
Steven G. Kargl f363fc5b49 ChangeLog: Document revision 272698
2016-06-26  Steven G. Kargl  <kargl@gcc.gnu.org>

	* ChangeLog: Document revision 272698

2016-06-26  Steven G. Kargl  <kargl@gcc.gnu.org>
   
        * testsuite/ChangeLog: Document revision 272698

From-SVN: r272699
2019-06-26 16:16:58 +00:00
Jonathan Wakely 47f7905440 Add new helper traits for signed/unsigned integer types
Reuse the __is_one_of alias in additional places, and define traits to
check for signed/unsigned integer types so we don't have to duplicate
those checks elsewhere.

The additional overloads for std::byte in <bit> were reviewed by LEWG
and considered undesirable, so this patch removes them.

	* include/bits/fs_path.h (path::__is_encoded_char): Use __is_one_of.
	* include/std/bit (_If_is_unsigned_integer_type): Remove.
	(_If_is_unsigned_integer): Use __is_unsigned_integer.
	(rotl(byte, unsigned), rotr(byte, unsigned), countl_zero(byte))
	(countl_one(byte), countr_zero(byte), countr_one(byte))
	(popcount(byte), ispow2(byte), ceil2(byte), floor2(byte))
	(log2p1(byte)): Remove.
	* include/std/charconv (__detail::__is_one_of): Move to <type_traits>.
	(__detail::__is_int_to_chars_type): Remove.
	(__detail::__integer_to_chars_result_type): Use __is_signed_integer
	and __is_unsigned_integer.
	* include/std/type_traits (__is_one_of): Move here from <charconv>.
	(__is_signed_integer, __is_unsigned_integer): New helpers.
	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Remove test for
	std::byte overload.
	* testsuite/26_numerics/bit/bit.pow.two/floor2.cc: Likewise.
	* testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: Likewise.
	* testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.count/countl_one.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.rot/rotl.cc: Likewise.
	* testsuite/26_numerics/bit/bitops.rot/rotr.cc: Likewise.

From-SVN: r272695
2019-06-26 15:38:23 +01:00
David Edelsohn 7cbb1b721e * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
From-SVN: r272694
2019-06-26 09:46:01 -04:00
David Edelsohn 8f40e1b249 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
From-SVN: r272693
2019-06-26 09:36:23 -04:00
Nathan Sidwell 66d7749bce [PR preprocessor/90927] Fixe dependency output
https://gcc.gnu.org/ml/gcc-patches/2019-06/msg01664.html
	libcpp/
	PR preprocessor/90927
	* mkdeps.c (mkdeps::vec::operator[]): Add non-const variant.
	(deps_add_target): Deal with out of order unquoted targets.

	gcc/testsuite/
	* c-c++-common/pr90927.c: New.

From-SVN: r272692
2019-06-26 12:58:39 +00:00
Segher Boessenkool 93a090cf2a rs6000: Fix rs6000_keep_leaf_when_profiled
This function is called from elsewhere, so shouldn't be static.


	* config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
	declaration.
	* config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
	"static".
	* config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Delete
	declaration.

---
 gcc/config/rs6000/rs6000-internal.h | 1 +
 gcc/config/rs6000/rs6000-logue.c    | 4 ++--
 gcc/config/rs6000/rs6000.c          | 1 -
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/config/rs6000/rs6000-internal.h b/gcc/config/rs6000/rs6000-internal.h
index a1acb66..22ebd37 100644
--- a/gcc/config/rs6000/rs6000-internal.h
+++ b/gcc/config/rs6000/rs6000-internal.h
@@ -99,6 +99,7 @@ extern bool save_reg_p (int reg);
 extern const char * rs6000_machine_from_flags (void);
 extern void emit_asm_machine (void);
 extern bool rs6000_global_entry_point_prologue_needed_p (void);
+extern bool rs6000_keep_leaf_when_profiled (void);
 
 /* Return true if the OFFSET is valid for the quad address instructions that
    use d-form (register + offset) addressing.  */
diff --git a/gcc/config/rs6000/rs6000-logue.c b/gcc/config/rs6000/rs6000-logue.c
index 9df4b5a..adc137b 100644
--- a/gcc/config/rs6000/rs6000-logue.c
+++ b/gcc/config/rs6000/rs6000-logue.c
@@ -4025,8 +4025,8 @@ rs6000_output_function_prologue (FILE *file)
 
 /* -mprofile-kernel code calls mcount before the function prolog,
    so a profiled leaf function should stay a leaf function.  */
-static bool
-rs6000_keep_leaf_when_profiled ()
+bool
+rs6000_keep_leaf_when_profiled (void)
 {
   return TARGET_PROFILE_KERNEL;
 }
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 3fc4029..bcfc881 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -1338,7 +1338,6 @@ static bool rs6000_secondary_reload_move (enum rs6000_reg_type,
 					  secondary_reload_info *,
 					  bool);
 rtl_opt_pass *make_pass_analyze_swaps (gcc::context*);
-static bool rs6000_keep_leaf_when_profiled () __attribute__ ((unused));
 static tree rs6000_fold_builtin (tree, int, tree *, bool);
 
 /* Hash table stuff for keeping track of TOC entries.  */
-- 
1.8.3.1

From-SVN: r272691
2019-06-26 14:16:40 +02:00
Segher Boessenkool e2e8d27426 rs6000: Remove duplicated code
A large portion of the code moved from rs6000.c (to rs6000-logue.c)
was accidentally retained.  This fixes it.


	* rs6000.c: Fix previous commit, it missed some changes.

From-SVN: r272690
2019-06-26 14:14:37 +02:00
Richard Biener baf8d2ecd7 re PR middle-end/90982 (ICE in make_decl_rtl, at varasm.c:1344)
2019-06-26  Richard Biener  <rguenther@suse.de>

	PR ipa/90982
	* tree-inline.c (remap_ssa_name): Copy SSA range info.

	* g++.dg/torture/pr90982.C: New testcase.

From-SVN: r272688
2019-06-26 11:16:56 +00:00
Richard Biener 6ab601efaa lto-streamer.h (lto_bitmap_alloc): Remove.
2019-06-26  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (lto_bitmap_alloc): Remove.
	(lto_bitmap_free): Likewise.
	* lto-streamer.c (lto_bitmap_alloc): Remove.
	(lto_bitmap_free): Likewise.
	(lto_obstack): Likewise.
	(lto_obstack_initialized): Likewise.
	* lto-streamer-out.c (lto_output): Use own obstack for local
	bitmap, free it consistently.

From-SVN: r272687
2019-06-26 11:09:51 +00:00
Rainer Orth 7cfb726052 Fix sanitizer_common/sanitizer_posix_libcdep.cc compilation on Solaris 11.5
* sanitizer_common/sanitizer_posix_libcdep.cc: Cherry-pick
	compiler-rt revision 363778.

From-SVN: r272685
2019-06-26 10:43:08 +00:00
Paolo Carlini 2bca2d6a72 re PR c++/67184 (Missed optimization with C++11 final specifier)
2019-06-26  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67184
	PR c++/69445
	* g++.dg/other/final3.C: New.
	* g++.dg/other/final5.C: Likewise.

From-SVN: r272675
2019-06-26 08:51:50 +00:00
Jakub Jelinek d55c1ffd49 re PR target/90991 (_mm_loadu_ps instrinsic translates to vmovaps in combination with _mm512_insertf32x4)
PR target/90991
	* config/i386/sse.md
	(*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
	vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
	insns if operands[2] is misaligned_operand.

	* gcc.target/i386/avx512dq-pr90991-1.c: New test.

From-SVN: r272674
2019-06-26 10:26:18 +02:00
Li Jia He fdfbed383e [RS6000] Change maddld match_operand from DI to GPR
From PowerPC ISA3.0, the description of `maddld RT, RA.RB, RC` is as follows:
64-bit RA and RB are multiplied and then the RC is signed extend to 128 bits,
and add them together.

We only apply it to 64-bit mode (DI) when implementing maddld.  However, if we
can guarantee that the result of the maddld operation will be limited to 32-bit
mode (SI), we can still apply it to 32-bit mode (SI).

gcc/ChangeLog
2019-06-26  Li Jia He  <helijia@linux.ibm.com>

	* config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
	TARGET_POWERPC64.
	* config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
	to GPR.

gcc/testsuite/ChangeLog
2019-06-26  Li Jia He  <helijia@linux.ibm.com>

	* gcc.target/powerpc/maddld-1.c: New testcase.

From-SVN: r272673
2019-06-26 08:23:06 +00:00
Segher Boessenkool de80936dbf doc: Fix opindex for -W options
@opindex -Wxxx is wrong; it should be @opindex Wxxx.


	* doc/invoke.texi (Warning Options): Fix some @opindex syntax.

From-SVN: r272672
2019-06-26 09:43:52 +02:00
Martin Liska 44ead50eb6 Fix one another thinko in tree-vect-loop.c (PR tree-optimization/90973).
2019-06-26  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/90973
	* tree-vect-loop.c (vect_get_known_peeling_cost): Use
	epilogue_cost_vec instead of prologue_cost_vec for
	a epilogue cost.

From-SVN: r272671
2019-06-26 06:44:58 +00:00
Martin Liska 02e18a0e8a Fix missing else keyword seen with clang-static-analyzer:
2019-06-26  Martin Liska  <mliska@suse.cz>

	* bb-reorder.c (connect_better_edge_p): Add missing else
	statement in the middle of if-else statements.

/home/marxin/Programming/gcc/gcc/bb-reorder.c:1031:2: warning: Value stored to 'is_better_edge' is never read
        is_better_edge = true;
        ^                ~~~~
/home/marxin/Programming/gcc/gcc/bb-reorder.c:1034:2: warning: Value stored to 'is_better_edge' is never read
        is_better_edge = false;
        ^                ~~~~~

From-SVN: r272670
2019-06-26 06:44:28 +00:00
Jason Merrill 09039e9c72 PR c++/70462 - unnecessary base ctor variant with final.
As pointed out in the PR, we don't need base 'tor variants for a final
class, since it can never be a base.  I tried also dropping complete
variants for abstract classes, but that runs into ABI compatibility problems
with older releases that refer to those symbols.

	* optimize.c (populate_clone_array): Skip base variant if
	CLASSTYPE_FINAL.
	(maybe_clone_body): We don't need an alias if we are only defining
	one clone.

From-SVN: r272669
2019-06-26 00:56:07 -04:00
Hongtao Liu e21b52afe9 Enable GCC support for AVX512_VP2INTERSECT which will be in tigerlaker.
There are two instructions for AVX512_VP2INTERSECT:
VP2INTERSECTD and VP2INTERSECTQ.

gcc/
2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
	OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
	(OPTION_MASK_ISA2_AVX512F_UNSET): Add
	OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
	(ix86_handle_option): Handle -mavx512vp2intersect.
	* config/i386/avx512vp2intersectintrin.h: New.
	* config/i386/avx512vp2intersectvlintrin.h: New.
	* config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	AVX512VP2INTERSECT.
	* config/i386/i386-builtin-types.def: Add new types.
	* config/i386/i386-builtin.def: Add new builtins.
	* config/i386/i386-builtins.c: (enum processor_features): Add
	F_AVX512VP2INTERSECT.
	(static const _isa_names_table isa_names_table): Ditto.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__AVX512VP2INTERSECT__.
	* config/i386/i386-expand.c (ix86_expand_builtin): Expand
	IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
	IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
	IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
	* config/i386/i386-modes.def (P2QI, P2HI): New modes.
	* config/i386/i386-options.c (ix86_target_string): Add
	-mavx512vp2intersect.
	(ix86_option_override_internal): Handle AVX512VP2INTERSECT.
	* config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
	P2HImode and P2QImode.
	(ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
	number for P2QImode and P2HImode.
	(ix86_regmode_natural_size): New function.
	* config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
	TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
	REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
	* config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
	* config/i386/i386.opt: Add -mavx512vp2intersect.
	* config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
	avx512vp2intersectvlintrin.h.
	* config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
	(define_mode_iterator VI48_AVX512VP2VL): New.
	(avx512vp2intersect_2intersect<mode>,
	avx512vp2intersect_2intersectv16si): New define_insn patterns.
	* config.gcc: Add avx512vp2intersectvlintrin.h and
	avx512vp2intersectintrin.h to extra_headers.
	* doc/invoke.texi: Document -mavx512vp2intersect.

gcc/testsuite
2019-06-06  Hongtao Liu  <hongtao.liu@intel.com>
	    Olga Makhotina  <olga.makhotina@intel.com>

	* gcc.target/i386/avx512-check.h: Handle bit_AVX512VP2INTERSECT.
	* gcc.target/i386/avx512vp2intersect-2intersect-1a.c: New test.
	* gcc.target/i386/avx512vp2intersect-2intersect-1b.c: Likewise.
	* gcc.target/i386/avx512vp2intersect-2intersectvl-1a.c: Likewise.
	* gcc.target/i386/avx512vp2intersect-2intersectvl-1b.c: Likewise.
	* gcc.target/i386/sse-12.c: Add -mavx512vp2intersect.
	* gcc.target/i386/sse-13.c: Likewsie.
	* gcc.target/i386/sse-14.c: Likewise.
	* gcc.target/i386/sse-22.c: Likewise.
	* gcc.target/i386/sse-23.c: Likewise.
	* g++.dg/other/i386-2.C: Likewise.
	* g++.dg/other/i386-3.C: Likewise.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
Co-Authored-By: Olga Makhotina <olga.makhotina@intel.com>

From-SVN: r272668
2019-06-26 04:46:29 +00:00
Steven G. Kargl b48826985b re PR fortran/90988 (Wrong error message with variables named "PUBLIC*")
2019-06-24  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR Fortran/90988
	* decl.c (access_attr_decl): Use temporary variable to reduce
	unreadability of code.  Normalize jumping to return.
	(gfc_match_protected): Fix parsing error.  Add comments to 
	explain code.  Remove dead code.
	(gfc_match_private): Use temporary variable to reduce unreadability 
	of code. Fix parsing error.  Move code to test for blank PRIVATE.
	Remove dead code.
	(gfc_match_public): Move code to test for blank PUBLIC.  Fix
	parsing error.  Remove dead code.

2019-06-24  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR Fortran/90988
	* gfortran.dg/pr90988_1.f90: New test.
	* gfortran.dg/pr90988_2.f90: Ditto.
	* gfortran.dg/pr90988_3.f90: Ditto.

From-SVN: r272667
2019-06-26 04:31:14 +00:00
Ian Lance Taylor 07525dad06 libgo/testsuite: ignore symbols with a leading dot in symtogo
On AIX, a function has two symbols, a text symbol (with a leading dot)
    and a data one (without it).
    As the tests must be run only once, only the data symbol can be used to
    retrieve the final go symbol. Therefore, all symbols beginning with a dot
    are ignored by symtogo.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/177837

From-SVN: r272666
2019-06-26 00:17:32 +00:00
GCC Administrator d62cbf43e0 Daily bump.
From-SVN: r272665
2019-06-26 00:16:23 +00:00
Ian Lance Taylor c31a34018a cmd/go: silence ar with D flag failures
The first call of ar must not show its output in order to avoid useless
    error messages about D flag.
    The corresponding Go toolchain patch is CL 182077.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/183817

From-SVN: r272661
2019-06-26 00:04:36 +00:00
Iain Sandoe ebecdd0c36 Darwin, add a missed file change
From the last commit.

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

	* config.host: Add libef_ppc.a to the extra files for powerpc-darwin.

From-SVN: r272660
2019-06-25 20:12:49 +00:00
Iain Sandoe a8e55c61f8 [Darwin, PPC] Move the out of line register save/restore to an endfile.
We have been including this in libgcc, which means that we have to append
-lgcc even when using shared libgcc. In preparation for revision of libgcc
split this into an endfile.

gcc/
2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/darwin.h (ENDFILE_SPEC): New.

libgcc/
2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>

	* config.host: Add libef_ppc.a to the extra files for powerpc-darwin.
	* config/rs6000/t-darwin: (PPC_ENDFILE_SRC, PPC_ENDFILE_OBJS): New.
	Build objects for the out of line save/restore register functions
	so that they can be used for any supported Darwin version.
	* config/t-darwin: Default the build Darwin version to Darwin8
	(MacOS 10.4).

From-SVN: r272659
2019-06-25 20:11:11 +00:00
Bill Seurer 2c04f8476a [PATCH, rs6000] Split up rs6000.c.
The source file rs6000.c has grown to unreasonable size and is being
split up into several smaller source files.  This should improve
compilation speed for building gcc.

This is the first of several patches to do this and moves most of the
prologue/epilogue code to a new source file.

Bootstrapped and tested on powerpc64le-unknown-linux-gnu and
powerpc64-unknown-linux-gnu with no regressions.  Is this ok for trunk?


2019-06-24  Bill Seurer  <seurer@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
	savres_routine_syms, savres_routine_name, morestack_ref,
	rs6000_init_machine_status, save_reg_p, first_reg_to_save,
	first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
	compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
	rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
	rs6000_return_addr, rs6000_decl_ok_for_sibcall,
	rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
	rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
	create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
	rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
	get_stack_clash_protection_probe_interval,
	get_stack_clash_protection_guard_size,
	rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
	rs6000_emit_probe_stack_range, output_probe_stack_range_1,
	interesting_frame_related_regno, output_probe_stack_range_stack_clash,
	output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
	gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
	gen_frame_mem_offset, rs6000_savres_routine_name,
	rs6000_savres_routine_sym, rs6000_emit_stack_reset,
	ptr_regno_for_savres, rs6000_emit_savres_rtx,
	rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
	rs6000_global_entry_point_prologue_needed_p,
	rs6000_get_separate_components, rs6000_components_for_bb,
	rs6000_disqualify_components, rs6000_emit_prologue_components,
	rs6000_emit_epilogue_components, rs6000_set_handled_components,
	emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
	rs6000_output_savres_externs, rs6000_output_function_prologue,
	rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
	load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
	offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
	rs6000_output_function_epilogue, gen_add3_const,
	rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
	rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
	to rs6000-logue.c.
	(machine_function): Moved to rs6000.h.
	(rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
	rs6000-internal.h.
	* config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
	savres_routine_syms, savres_routine_name, morestack_ref,
	rs6000_init_machine_status, save_reg_p, first_reg_to_save,
	first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
	compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
	rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
	rs6000_return_addr, rs6000_decl_ok_for_sibcall,
	rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
	rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
	create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
	rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
	get_stack_clash_protection_probe_interval,
	get_stack_clash_protection_guard_size,
	rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
	rs6000_emit_probe_stack_range, output_probe_stack_range_1,
	interesting_frame_related_regno, output_probe_stack_range_stack_clash,
	output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
	gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
	gen_frame_mem_offset, rs6000_savres_routine_name,
	rs6000_savres_routine_sym, rs6000_emit_stack_reset,
	ptr_regno_for_savres, rs6000_emit_savres_rtx,
	rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
	rs6000_global_entry_point_prologue_needed_p,
	rs6000_get_separate_components, rs6000_components_for_bb,
	rs6000_disqualify_components, rs6000_emit_prologue_components,
	rs6000_emit_epilogue_components, rs6000_set_handled_components,
	emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
	rs6000_output_savres_externs, rs6000_output_function_prologue,
	rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
	load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
	offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
	rs6000_output_function_epilogue, gen_add3_const,
	rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
	rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
	to here from rs6000.c.
	* config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
	* config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
	quad_address_offset_p) Moved to here from rs6000.c.
	* config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
	* config/config.gcc: Add new source file rs6000-logue.c to garbage
	collector.

From-SVN: r272658
2019-06-25 20:06:07 +00:00
Jason Merrill a4cc282879 class.c (resolves_to_fixed_type_p): Check CLASSTYPE_FINAL.
* class.c (resolves_to_fixed_type_p): Check CLASSTYPE_FINAL.

If we have a pointer to final class, we know the dynamic type of the object
must be that class, because it can't have any derived classes.

From-SVN: r272656
2019-06-25 12:15:40 -04:00
Martin Liska 27bb6f7c47 Put hashtab_chk_error into hash-table.c.
2019-06-25  Martin Liska  <mliska@suse.cz>

	* hash-table.c (hashtab_chk_error): Move here from ...
	* hash-table.h (hashtab_chk_error): ... here.

From-SVN: r272655
2019-06-25 14:34:25 +00:00
Jakub Jelinek bc2687dd94 re PR c++/90969 (ICE: tree check: expected array_type, have vector_type in array_ref_low_bound, at tree.c:13570)
PR c++/90969
	* constexpr.c (cxx_eval_array_reference): Don't look through VCE from
	vector type if lval.

	* g++.dg/ext/vector38.C: New test.

From-SVN: r272654
2019-06-25 16:05:13 +02:00
Jonathan Wakely e88d863cbd Fix non-portable use of std::abs(double) in constexpr function
Although libstdc++ adds 'constexpr' to its std::abs(floating-point)
overloads (as a non-conforming extension), those overloads are not used
if the target libc provides them, which is the case on Solaris.

The fix is to avoid std::abs and simply apply the negation when needed.

	* include/std/numeric (midpoint(T, T)): Avoid std::abs in constexpr
	function.

From-SVN: r272653
2019-06-25 14:18:36 +01:00
Martin Liska 247b63e33d Transform filter-rtags-warnings to filter-clang-warnings.
2019-06-25  Martin Liska  <mliska@suse.cz>

	contrib/filter-clang-warnings.py: Transform from
	filter-rtags-warnings.py.

From-SVN: r272652
2019-06-25 12:30:19 +00:00
Martin Liska adef5d4f4e Remove dead code in df-scan.c (PR tree-optimization/90978).
2019-06-25  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/90978
	* df-scan.c (df_update_entry_block_defs): Remove dead else
	branch.
	(df_update_exit_block_uses): Likewise.

From-SVN: r272651
2019-06-25 11:50:12 +00:00