168928 Commits

Author SHA1 Message Date
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
Jakub Jelinek
64124cef62 re PR tree-optimization/90106 (builtin sqrt() ignoring libm's sqrt call result)
PR tree-optimization/90106
	PR testsuite/90517
	* gcc.dg/cdce1.c: Don't scan-assembler, instead -fdump-tree-optimized
	and scan-tree-dump for tail call.
	* gcc.dg/cdce2.c: Likewise.

From-SVN: r271598
2019-05-24 12:15:16 +02:00
Jakub Jelinek
b5c26449f3 re PR libgomp/90585 (libgomp hsa plugin ftbfs in the x32 multilib variant)
PR libgomp/90585
	* plugin/plugin-hsa.c: Include gstdint.h.  Include inttypes.h only if
	HAVE_INTTYPES_H is defined.
	(print_uint64_t): New typedef.
	(PRIu64): Define if HAVE_INTTYPES_H is not defined.
	(print_kernel_dispatch, run_kernel): Use PRIu64 macro instead of
	"lu", cast uint64_t HSA_DEBUG and fprintf arguments to print_uint64_t.
	(release_kernel_dispatch): Likewise.  Cast shadow->debug to uintptr_t
	before casting to void *.
	* plugin/plugin-nvptx.c: Include gstdint.h instead of stdint.h.
	* oacc-mem.c: Don't include config.h nor stdint.h.
	* target.c: Don't include config.h.
	* oacc-cuda.c: Likewise.
	* oacc-host.c: Don't include stdint.h.

From-SVN: r271597
2019-05-24 10:59:37 +02:00
Jakub Jelinek
d2e8b6ae37 re PR target/90568 (stack protector should use cmp or sub, not xor, to allow macro-fusion on x86)
PR target/90568
	* config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
	gen_attr_type just once instead of 4-7 times.  Formatting fixes.
	Handle stack_protect_test_<mode> codegen similarly to corresponding
	sub instruction.

From-SVN: r271596
2019-05-24 10:58:50 +02:00
Richard Biener
1d672917b4 re PR tree-optimization/88440 (size optimization of memcpy-like code)
2019-05-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88440
	* opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
	at -O[2s]+.
	* tree-loop-distribution.c (generate_memset_builtin): Fold the
	generated call.
	(generate_memcpy_builtin): Likewise.
	(distribute_loop): Pass in whether to only distribute patterns.
	(prepare_perfect_loop_nest): Also allow size optimization.
	(pass_loop_distribution::execute): When optimizing a loop
	nest for size allow pattern replacement.

	* gcc.dg/tree-ssa/ldist-37.c: New testcase.
	* gcc.dg/tree-ssa/ldist-38.c: Likewise.
	* gcc.dg/vect/vect.exp: Add -fno-tree-loop-distribute-patterns.
	* gcc.dg/tree-ssa/ldist-37.c: Adjust.
	* gcc.dg/tree-ssa/ldist-38.c: Likewise.
	* g++.dg/tree-ssa/pr78847.C: Likewise.
	* gcc.dg/autopar/pr39500-1.c: Likewise.
	* gcc.dg/autopar/reduc-1char.c: Likewise.
	* gcc.dg/autopar/reduc-7.c: Likewise.
	* gcc.dg/tree-ssa/ivopts-lt-2.c: Likewise.
	* gcc.dg/tree-ssa/ivopts-lt.c: Likewise.
	* gcc.dg/tree-ssa/predcom-dse-1.c: Likewise.
	* gcc.dg/tree-ssa/predcom-dse-2.c: Likewise.
	* gcc.dg/tree-ssa/predcom-dse-3.c: Likewise.
	* gcc.dg/tree-ssa/predcom-dse-4.c: Likewise.
	* gcc.dg/tree-ssa/prefetch-7.c: Likewise.
	* gcc.dg/tree-ssa/prefetch-8.c: Likewise.
	* gcc.dg/tree-ssa/prefetch-9.c: Likewise.
	* gcc.dg/tree-ssa/scev-11.c: Likewise.
	* gcc.dg/vect/costmodel/i386/costmodel-vect-31.c: Likewise.
	* gcc.dg/vect/costmodel/i386/costmodel-vect-33.c: Likewise.
	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c: Likewise.
	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c: Likewise.
	* gcc.target/i386/pr30970.c: Likewise.
	* gcc.target/i386/vect-double-1.c: Likewise.
	* gcc.target/i386/vect-double-2.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-2.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-26.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-28.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-32.c: Likewise.
	* gfortran.dg/vect/vect-5.f90: Likewise.
	* gfortran.dg/vect/vect-8.f90: Likewise.

From-SVN: r271595
2019-05-24 08:48:14 +00:00
Iain Sandoe
9453b779c4 add missed Changelog.
From-SVN: r271592
2019-05-24 07:25:16 +00:00
Iain Sandoe
66885312cb Darwin, x86, testsuite - Make match strings more specific.
Some of the i386.exp tests fail on Darwin (and at least one passes
incorrectly on Linux) because their scan-asm match strings are too
general.  In some cases the strings also match instances in the .file
and size directives or in comment output.  This patch makes the match
strings more specific.

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

	* gcc.target/i386/pconfig-1.c: Scan for the string in the generated
	code, not in comments or miscellaneous directives. Adjust expected
	count.
	* gcc.target/i386/pr18041-1.c: Likewise.
	* gcc.target/i386/pr18041-2.c: Likewise.
	* gcc.target/i386/wbinvd-1.c: Likewise.
	* gcc.target/i386/wbnoinvd-1.c: Likewise.
	* gcc.target/i386/pr66819-3.c: Specifically, check that there is no
	call to "bar".
	* gcc.target/i386/pr66819-4.c: Likewise.
	* gcc.target/i386/pr82662.c
	* gcc.target/i386/ptwrite2.c: Make the checks look for the specific
	destination register, don't try the m32 test on m64 targets.

From-SVN: r271591
2019-05-24 07:24:26 +00:00
Iain Sandoe
4ef1d2e235 Darwin, x86, testsuite - Adjust test labels.
A couple of the i386.exp tests fail because the label spelling used
is different between ELF and Mach-O targets. Adjusted here.

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

	* gcc.target/i386/pr67985-2.c: Adjust label checks for
	Darwin.
	* gcc.target/i386/pr77881.c: Likewise.

From-SVN: r271590
2019-05-24 07:11:46 +00:00
Iain Sandoe
3d61c31f1b Darwin, x86, testsuite - Disable tests that cannot pass.
A few of the i386.exp target tests cannot pass on Darwin
because either the port doesn't support a feature, or the
ABI demands sufficiently different codegen that matching
the output with scan-asms would require a different test.

Disabling those tests here.

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

	* gcc.target/i386/falign-functions-2.c: Skip for Darwin.
	* gcc.target/i386/pr70738-7.c: Likewise.
	* gcc.target/i386/pr24414.c: Likewise.

From-SVN: r271589
2019-05-24 07:05:25 +00:00
GCC Administrator
a2c8ea56a7 Daily bump.
From-SVN: r271588
2019-05-24 00:16:25 +00:00
Jonathan Wakely
5f303216e5 Fix testsuite bugs
One of the static assertions in 20_util/function_objects/invoke/1.cc was
wrong, but didn't fail because by default it was compiled with
-std=gnu++14 which didn't use that static assertion. Split out the C++17
parts to a new file that always runs with -std=gnu++17, so those checks
are always done.

The 23_containers/unordered_set/allocator/ext_ptr.cc test is supposed to
be a run-time test but was unintentionally compile-only.

	* testsuite/20_util/function_objects/invoke/1.cc: Move C++17-specific
	tests to ...
	* testsuite/20_util/function_objects/invoke/3.cc: New test.
	* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Change
	"compile" test to "run".

From-SVN: r271584
2019-05-23 22:41:08 +01:00
Jonathan Wakely
fb3fc4bded LWG 2996 add rvalue overloads for shared_ptr aliasing and casting
* doc/xml/manual/intro.xml: Document LWG DR 2996 change.
	* doc/html/*: Regenerate.
	* include/bits/shared_ptr.h (shared_ptr(shared_ptr&&, T*)): Add
	rvalue aliasing constructor.
	(static_pointer_cast, const_pointer, dynamic_pointer_cast)
	(reinterpret_pointer_cast): Add overloads taking rvalues.
	* include/bits/shared_ptr_base.h (__shared_ptr(__shared_ptr&&, T*)):
	Add rvalue aliasing constructor.
	* testsuite/20_util/shared_ptr/casts/1.cc: Change "compile" test to
	"run" and check return values as well as types.
	* testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/rval.cc: New test.
	* testsuite/20_util/shared_ptr/cons/alias-rval.cc: New test.
	* testsuite/20_util/shared_ptr/cons/alias.cc: Remove unused return
	values.

From-SVN: r271583
2019-05-23 22:41:02 +01:00
Jonathan Wakely
9a0af7e3fb LWG 2921 remove packaged_task constructors taking allocators
* doc/xml/manual/evolution.xml: Document LWG DR 2921 change.
	* doc/xml/manual/intro.xml: Likewise.
	* include/std/future (__create_task_state): Add default arguments
	to make providing an allocator optional.
	(packaged_task::packaged_task(F&&)): Call __create_task_state directly
	instead of delegating to another constructor.
	(packaged_task::packaged_task(allocator_arg_t, const A&, ...)): Do not
	define allocator-extended constructors for C++17 and later.
	* testsuite/30_threads/packaged_task/cons/alloc.cc: Only run test for
	C++11 and C++14.
	* testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
	* testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.

From-SVN: r271582
2019-05-23 22:40:56 +01:00
Iain Sandoe
aa992ce717 darwin, x86 - disable '-mfentry' for the port.
This can't work without special support because placing
the call directly after the function label breaks the
ABI requirement that call sites are 16byte aligned.

gcc/

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

       * config/i386/darwin.h: Reject -mfentry*.
       * doc/sourcebuild.texi: Document mfentry target support.

gcc/testsuite/

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

       * lib/target-supports.exp (check_effective_target_mfentry): New.
       * gcc.target/i386/fentry-override.c: Require effective target mfentry.
       * gcc/testsuite/gcc.target/i386/fentry.c: Likewise
       * gcc.target/i386/fentryname1.c: Likewise
       * gcc.target/i386/fentryname2.c: Likewise
       * gcc.target/i386/fentryname3.c: Likewise
       * gcc.target/i386/nop-mcount.c: Likewise
       * gcc.target/i386/pr82699-2.c: Likewise
       * gcc.target/i386/pr82699-4.c: Likewise
       * gcc.target/i386/pr82699-5.c: Likewise
       * gcc.target/i386/pr82699-6.c: Likewise
       * gcc.target/i386/returninst1.c: Likewise
       * gcc.target/i386/returninst2.c: Likewise
       * gcc.target/i386/returninst3.c : Likewise

From-SVN: r271580
2019-05-23 20:51:04 +00:00
Bill Schmidt
99f8432359 rs6000.c (rs6000_global_entry_point_needed_p): Rename to rs6000_global_entry_point_prologue_needed_p.
[gcc]

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

	* config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
	Rename to rs6000_global_entry_point_prologue_needed_p.  Return
	false for PC-relative functions.
	(rs6000_output_function_prologue): Change called function name to
	rs6000_global_entry_point_prologue_needed_p.  Emit ".localentry
	name,1" for PC-relative functions.
	(rs6000_elf_declare_function_name): Change called function name to
	rs6000_global_entry_point_prologue_needed_p.

[gcc/testsuite]

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

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

From-SVN: r271577
2019-05-23 20:33:02 +00:00
Uros Bizjak
103d91c7cb re PR target/90552 (attribute((optimize(3))) not overriding -Os)
PR target/90552
	* config/i386/i386.c (gen_rtx_cost):
	Use ix86_tune_cost instead of ix86_cost.

testsuite/ChangeLog:

	PR target/90552
	* gcc.target/i386/pr90552.c: New test.

From-SVN: r271576
2019-05-23 21:46:56 +02:00
Bill Schmidt
9111760356 rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PCREL.
2019-05-22  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Michael Meissner  <meissner@linux.ibm.com>
	    Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
	OPTION_MASK_PCREL.
	(POWERPC_MASKS): Add OPTION_MASK_PCREL.
	* config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
	(rs6000_fndecl_pcrel_p): Likewise.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Report
	error if -mpcrel is requested without -mcpu=future.
	(rs6000_opt_masks): Add entry for pcrel.
	(rs6000_fndecl_pcrel_p): New function.
	(rs6000_pcrel_p): Likewise.
	* config/rs6000/rs6000.opt (mpcrel): New option.
	* doc/invoke.texi: Document -mpcrel and -mno-pcrel.


Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>
Co-Authored-By: Segher Boessenkool <segher@kernel.crashing.org>

From-SVN: r271575
2019-05-23 18:24:22 +00:00
Hans-Peter Nilsson
0ce91914ad From what I understand of the libstdc++/83237 thread at
<https://gcc.gnu.org/ml/gcc-patches/2017-12/msg00573.html>, the
high numbers are not arbitrary, so it seems wrong to try
lowering them, or we'd just waste cycles testing nothing, or
worse, ending up with a bogus error indication.  Better to just
plain disable this part of the test for simulator targets; I
assume the results should be the same on any IEEE-float target,
i.e. no target-specific things going on here that'd raise a need
to cover it everywhere.

With this part of the test disabled, I saw the test finishing in
(time) "124.74s user" where it was before "1120.26s user"
running the cris-elf-run simulator on a "i7-4770K CPU @ 3.50GHz"
host.  Most certainly that indidates that the remainder of the
test is still too much for *some* host+simulator combos, but I'm
happy with the runtime lowered to 1/5 of the timeout (10
minutes) on this particular combination, and I'd think this
fixes timeouts for many other simulator combos too.

This construct (disabling or lowering limits for simulators) is
used elsewhere in the libstdc++ test-suite and in particular the
SIMULATOR_TEST macro is used in the testsuite machinery (though
AFAICT not in testDiscreteDist).

        * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
        Don't run the libstdc++/83237 part on simulator targets.

From-SVN: r271574
2019-05-23 18:02:05 +00:00
Mark Eggleston
f58be48c09 fmt_f_default_field_width_1.f90: Hide REAL(16) behind __GFC_REAL_16__.
2019-05-23  Mark Eggleston  <mark.eggleston@codethink.com>

	* gfortran.dg/fmt_f_default_field_width_1.f90: Hide REAL(16) behind
	__GFC_REAL_16__.  Add -cpp to dg-options.
	* gfortran.dg/fmt_f_default_field_width_2.f90: Ditto.
	* gfortran.dg/fmt_f_default_field_width_3.f90: Ditto.
	* gfortran.dg/fmt_g_default_field_width_1.f90: Ditto.
	* gfortran.dg/fmt_g_default_field_width_2.f90: Ditto.
	* gfortran.dg/fmt_g_default_field_width_3.f90: Ditto.

From-SVN: r271573
2019-05-23 17:20:58 +00:00
Jan Hubicka
a44ae25817 re PR tree-optimization/90576 (SPEC CPU2006 450.soplex miscompiled with -Os -flto after r271413)
PR tree-optimization/90576
	* tree-ssa-alias.c (compare_sizes): Remove dead calls to
	poly_int_tree_p.
	(aliasing_component_refs_p): Fix three way size compare conditional;
	give up earlier in case we can not decide on equivalence.

Co-Authored-By: Martin Liska <mliska@suse.cz>

From-SVN: r271572
2019-05-23 16:07:07 +00:00
Jonathan Wakely
1a4f7c1b05 Add missing feature test macro to C++17 status table
* doc/xml/manual/status_cxx2017.xml: Add feature test macro for
	P0040R3.
	* doc/html/*: Regenerate.

From-SVN: r271571
2019-05-23 17:01:18 +01:00
Bill Schmidt
5fa3b3cb46 Add infrastructure to support -mcpu=future to represent a future
architecture level, as yet unnamed.

[gcc]

2019-05-22  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Michael Meissner  <meissner@linux.ibm.com>
	    Segher Boessenkool  <segher@kernel.crashing.org>

	* config.gcc: Add future cpu.
	* config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
	* config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
	#define.
	(POWERPC_MASKS): Add OPTION_MASK_FUTURE.
	(RS6000_CPU): New instantiation for future cpu.
	* config/rs6000/rs6000-opts.h (enum processor_type): Add
	PROCESSOR_FUTURE.
	* config/rs6000/rs6000-string.c (expand_compare_loop): Treat
	PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
	* config/rs6000/rs6000-tables.opt: Regenerate.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
	PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
	(rs6000_machine_from_flags): Handle future cpu.
	(rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
	PROCESSOR_POWER9 for now.
	(rs6000_adjust_cost): Likewise.
	(rs6000_issue_rate): Likewise.
	(rs6000_register_move_cost): Likewise.
	(rs6000_opt_mask): Add entry for future.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
	(MASK_FUTURE): New #define.
	* config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
	* config/rs6000/rs6000.opt (mfuture): New target option.
	* doc/invoke.texi (mcpu): Add future cpu.

[gcc/testsuite]

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

	* gcc.target/powerpc/cpu-future.c: New test.


Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>
Co-Authored-By: Segher Boessenkool <segher@kernel.crashing.org>

From-SVN: r271567
2019-05-23 15:20:33 +00:00
Jonathan Wakely
aa573a6a3e Make any_cast compare typeinfo as well as function pointers
It's possible for the function pointer comparison to fail even though
the type is correct, because the function could be defined multiple
times with different addresses when shared libraries are in use.

Retain the function pointer check for the common case where the check
succeeds, but compare typeinfo (if RTTI is enabled) if the first check
fails.

	* include/experimental/any (__any_caster): Use RTTI if comparing
	addresses fails, to support non-unique addresses in shared libraries.
	* include/std/any (__any_caster): Likewise.

From-SVN: r271557
2019-05-23 15:13:18 +01:00
Jonathan Wakely
7dbab5dc84 PR libstdc++/90220 fix experimental::any_cast for non-object types
This corresponds to the fixes done for std::any_cast, but has to be done
without if-constexpr. The dummy specialization of _Manager_internal<_Op>
is used to avoid instantiating the real _Manager_internal<T>::_S_manage
function just to compare its address.

	PR libstdc++/90220
	* include/experimental/any (__any_caster): Constrain to only be
	callable for object types. Use remove_cv_t instead of decay_t.
	If the type decays or isn't copy constructible, compare the manager
	function to a dummy specialization.
	(__any_caster): Add overload constrained for non-object types.
	(any::_Manager_internal<_Op>): Add dummy specialization.
	* testsuite/experimental/any/misc/any_cast.cc: Test function types
	and array types.

From-SVN: r271556
2019-05-23 14:39:06 +01:00
Martin Liska
56a4e074ee Do not use tree_to_wide_ref that point to a temporary (PR c++/90587).
2019-05-23  Martin Liska  <mliska@suse.cz>

	PR c++/90587
	* tree-ssa-uninit.c (value_sat_pred_p): The result of &
	operation points to a temporary (pointed via tree_to_wide_ref)
	that is out of scope after the &.

From-SVN: r271555
2019-05-23 12:07:09 +00:00
Jonathan Wakely
16f8992e7f PR c++/90592 add missing word "scope" to __func__ docs
PR c++/90592
	* doc/extend.texi (Function Names): Add missing word.

From-SVN: r271554
2019-05-23 12:47:30 +01:00
Richard Biener
5879ab5faf re PR tree-optimization/88440 (size optimization of memcpy-like code)
2019-05-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88440
	* opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
	at -O[2s]+.
	* tree-loop-distribution.c (generate_memset_builtin): Fold the
	generated call.
	(generate_memcpy_builtin): Likewise.
	(distribute_loop): Pass in whether to only distribute patterns.
	(prepare_perfect_loop_nest): Also allow size optimization.
	(pass_loop_distribution::execute): When optimizing a loop
	nest for size allow pattern replacement.

	* gcc.dg/tree-ssa/ldist-37.c: New testcase.
	* gcc.dg/tree-ssa/ldist-38.c: Likewise.
	* gcc.dg/vect/vect.exp: Add -fno-tree-loop-distribute-patterns.
	* gcc.dg/tree-ssa/ldist-37.c: Adjust.
	* gcc.dg/tree-ssa/ldist-38.c: Likewise.
	* g++.dg/tree-ssa/pr78847.C: Likewise.
	* gcc.dg/autopar/pr39500-1.c: Likewise.
	* gcc.dg/autopar/reduc-1char.c: Likewise.
	* gcc.dg/autopar/reduc-7.c: Likewise.
	* gcc.dg/tree-ssa/ivopts-lt-2.c: Likewise.
	* gcc.dg/tree-ssa/ivopts-lt.c: Likewise.
	* gcc.dg/tree-ssa/predcom-dse-1.c: Likewise.
	* gcc.dg/tree-ssa/predcom-dse-2.c: Likewise.
	* gcc.dg/tree-ssa/predcom-dse-3.c: Likewise.
	* gcc.dg/tree-ssa/predcom-dse-4.c: Likewise.
	* gcc.dg/tree-ssa/prefetch-7.c: Likewise.
	* gcc.dg/tree-ssa/prefetch-8.c: Likewise.
	* gcc.dg/tree-ssa/prefetch-9.c: Likewise.
	* gcc.dg/tree-ssa/scev-11.c: Likewise.
	* gcc.dg/vect/costmodel/i386/costmodel-vect-31.c: Likewise.
	* gcc.dg/vect/costmodel/i386/costmodel-vect-33.c: Likewise.
	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c: Likewise.
	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c: Likewise.
	* gcc.target/i386/pr30970.c: Likewise.
	* gcc.target/i386/vect-double-1.c: Likewise.
	* gcc.target/i386/vect-double-2.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-2.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-26.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-28.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-32.c: Likewise.
	* gfortran.dg/vect/vect-5.f90: Likewise.
	* gfortran.dg/vect/vect-8.f90: Likewise.

From-SVN: r271553
2019-05-23 11:35:16 +00:00
Jakub Jelinek
32d941139e re PR target/90568 (stack protector should use cmp or sub, not xor, to allow macro-fusion on x86)
PR target/90568
	* config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
	of xor.

From-SVN: r271552
2019-05-23 13:18:41 +02:00
Eric Botcazou
2b8235ea99 * c-ada-spec.c (compare_node): Compare the DECL_UIDs as a last resort.
From-SVN: r271549
2019-05-23 10:34:54 +00:00
Martin Liska
832ece86e5 Do not instrument static target_expr for use-after-scope (PR sanitizer/90570).
2019-05-23  Martin Liska  <mliska@suse.cz>

	PR sanitizer/90570
	* gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
	expression similarly to gimplify_decl_expr.
2019-05-23  Martin Liska  <mliska@suse.cz>

	PR sanitizer/90570
	* g++.dg/asan/pr90570.C: New test.

From-SVN: r271548
2019-05-23 10:12:01 +00:00
Eric Botcazou
02b7331304 * gnat.dg/opt78.ad[sb]: New test.
From-SVN: r271545
2019-05-23 09:48:24 +00:00
Iain Sandoe
8f5b46e99c x86, testsuite - update fuse-caller-save tests.
These tests had started to XPASS on pic targets where
the codegen is now as expected.

gcc/testsuite/

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

	PR rtl-optimisation/64895
	* gcc.target/i386/fuse-caller-save-rec.c: Remove XFAILs.
	* gcc.target/i386/fuse-caller-save.c: Likewise.
	* gcc.target/i386/fuse-caller-save-xmm.c: Adjust tests for
	PIC cases, remove XFAILs.

From-SVN: r271544
2019-05-23 09:23:47 +00:00
Jonathan Wakely
1a9c52d284 Add whitespace between operator and operand
* cp-tree.h (CP_AGGREGATE_TYPE_P): Fix whitespace.

From-SVN: r271543
2019-05-23 10:15:42 +01:00
Jonathan Wakely
b636effb6c Remove conflict marker from ChangeLog
From-SVN: r271542
2019-05-23 09:46:45 +01:00
Jonathan Wakely
cf9847d25f Remove resolved TODO comment
* init.c (std_placement_new_fn_p): Remove outdated TODO comment that
	was resolved by r254694.

From-SVN: r271541
2019-05-23 09:46:40 +01:00
Thomas Schwinge
1ccd0ccbe8 [PR90510] Adjust 'brig.dg/test/gimple/packed.hsail'
... for r271463 "Fix PR90510, VEC_PERM -> BIT_INSERT folding".

	gcc/testsuite/
	PR middle-end/90510
	* brig.dg/test/gimple/packed.hsail: Adjust.

From-SVN: r271540
2019-05-23 10:22:56 +02:00
Prathamesh Kulkarni
a29dd8dd9e cse.c (cse_dump_path): s/dump_file/f.
2019-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* cse.c (cse_dump_path): s/dump_file/f.

From-SVN: r271539
2019-05-23 07:49:27 +00:00
Jakub Jelinek
07bcb2b427 * g++.dg/cpp2a/is-constant-evaluated8.C: New test.
From-SVN: r271538
2019-05-23 09:21:34 +02:00
Hans-Peter Nilsson
6dac25d1ee There was a regression for gfortran.dg/fmt_en.f90 for cris-elf that on...
There was a regression for gfortran.dg/fmt_en.f90 for cris-elf
that on inspection was due to it having acquired a truncation
call through the runtime.  I updated that and the new tests that
had "Fortran runtime error: required ftruncate or chsize support
not present" messages in gfortran.log, ran past cris-elf and
committed as obvious.  See also
<https://gcc.gnu.org/ml/gcc-patches/2008-05/msg00975.html> from
which I copy-pasted most of this message.  (Yep, 11 years ago.)

gcc/testsuite:
	* gfortran.dg/dec_io_1.f90, gfortran.dg/dtio_1.f90,
	gfortran.dg/dtio_12.f90, gfortran.dg/fmt_en.f90,
	gfortran.dg/namelist_89.f90: Gate test on effective_target
	fd_truncate.

From-SVN: r271536
2019-05-23 02:18:49 +00:00
David Malcolm
30d3ba5142 Bulletproof -fdiagnostics-format=json against bad locations (PR c++/90462)
PR c++/90462 reports an ICE with -fdiagnostics-format=json when
attempting to serialize a malformed location to JSON.

The compound location_t in question has meaningful "caret" and "start"
locations, but has UNKNOWN_LOCATION for its "finish" location,
leading to a NULL pointer dereference when attempting to build a JSON
string for the filename.

This patch bulletproofs the JSON output so that attempts to write
a JSON object for a location with a NULL file will lead to an object
with no "file" key, and attempts to write a compound location with
UNKNOWN_LOCATION for its start or finish will lead to the corresponding
JSON child object being omitted.

This patch also adds a json::object::get member function, for self-testing
the above.

gcc/ChangeLog:
	PR c++/90462
	* diagnostic-format-json.cc: Include "selftest.h".
	(json_from_expanded_location): Only add "file" key for non-NULL
	file strings.
	(json_from_location_range): Don't add "start" and "finish"
	children if they are UNKNOWN_LOCATION.
	(selftest::test_unknown_location): New selftest.
	(selftest::test_bad_endpoints): New selftest.
	(selftest::diagnostic_format_json_cc_tests): New function.
	* json.cc (json::object::get): New function.
	(selftest::test_object_get): New selftest.
	(selftest::json_cc_tests): Call it.
	* json.h (json::object::get): New decl.
	* selftest-run-tests.c (selftest::run_tests): Call
	selftest::diagnostic_format_json_cc_tests.
	* selftest.h (selftest::diagnostic_format_json_cc_tests): New
	decl.

gcc/testsuite/ChangeLog:
	PR c++/90462
	* g++.dg/pr90462.C: New test.

From-SVN: r271535
2019-05-23 00:42:03 +00:00
GCC Administrator
cf9219c742 Daily bump.
From-SVN: r271534
2019-05-23 00:16:17 +00:00