Commit Graph

168994 Commits

Author SHA1 Message Date
Iain Sandoe 34a4a9c2b5 Darwin, PowerPC, libgcc - Ensure unwinder is built with altivec enabled.
When libgcc is built on Darwin, it is usually built for the earliest potential
target (Darwin8, 10.4).  Build for that revision default to assuming that the
processor might be G3 (without vector ops) and there is an outlined function
used for save/restore that checks whether the processor is G3 or G4+ at run-
time.  However, the unwinder itself needs to be built with the assumption of
vector usage so that the relevant outlined functions are called.

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

	* config/rs6000/t-darwin: Ensure that the unwinder is built with
	altivec enabled.

From-SVN: r272017
2019-06-06 19:02:54 +00:00
Martin Sebor 2172277702 tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
gcc/ChangeLog:

	* tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
	(handle_builtin_malloc): Remove trailing spaces.
	(handle_builtin_memset): Same.
	(handle_builtin_memcmp): Same.
	(compute_string_length): Same.
	(determine_min_objsize): Same.
	(handle_builtin_string_cmp): Same.
	(handle_char_store): Same.  Break up excessively long line.

From-SVN: r272016
2019-06-06 12:46:20 -06:00
Martin Jambor c56c86024f Drop alignment check in build_reconstructed_reference
2019-06-06  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (build_reconstructed_reference): Drop the alignment
	check.

From-SVN: r272013
2019-06-06 18:33:04 +02:00
Martin Jambor 3b47da42de Make SRA re-construct orginal memory accesses when easy
2019-06-06  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (struct access): New field grp_same_access_path.
	(dump_access): Dump it.
	(build_reconstructed_reference): New function.
	(build_ref_for_model): Use it if possible.
	(path_comparable_for_same_access): New function.
	(same_access_path_p): Likewise.
	(sort_and_splice_var_accesses): Set the new flag.
	(analyze_access_subtree): Likewise.
	(propagate_subaccesses_across_link): Propagate zero value of the new
	flag down the access tree.

	testsuite/
	* gcc.dg/tree-ssa/alias-access-path-1.c: Remove -fno-tree-sra option.
	* gcc.dg/tree-ssa/ssa-dse-26.c: Disable FRE.
	* testsuite/gnat.dg/opt39.adb: Adjust scan dump.

From-SVN: r272012
2019-06-06 18:31:20 +02:00
Jonathan Wakely beb0086f59 Avoid unnecessary inclusion of <stdexcept> header
This can greatly reduce the amount of preprocessed code that is included
by other headers, because <stdexcept> depends on <string> which is huge.

	* include/std/array: Do not include <stdexcept>.
	* include/std/optional: Include <exception> and
	<bits/exception_defines.h> instead of <stdexcept>.
	* testsuite/20_util/function_objects/searchers.cc: Include <cctype>
	for std::isalnum.
	* testsuite/20_util/tuple/cons/deduction.cc: Include <memory> for
	std::allocator.
	* testsuite/23_containers/map/erasure.cc: Include <string>.
	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.

From-SVN: r272011
2019-06-06 16:34:56 +01:00
Jonathan Wakely ad60f42883 Fix more failing tests for C++98 mode
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Add
	dg-prune-output for different C++98 diagnostic.
	* testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc:
	Likewise.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/libstdc++-prettyprinters/compat.cc: Do not run for C++98.

From-SVN: r272010
2019-06-06 16:34:51 +01:00
Jonathan Wakely d561a18ee6 Fix more tests that fail in C++2a mode
* testsuite/23_containers/unordered_map/requirements/debug_container.cc:
	Do not test allocator rebinding extension for C++2a.
	* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Change
	dg-do directive for C++17 and C++2a.

From-SVN: r272009
2019-06-06 16:34:45 +01:00
Andrew Stubbs 268d509d67 Add -march=gfx906 for AMD GCN.
2019-06-06  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
	* config/gcn/gcn.opt (gpu_type): Add gfx906.
	* config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
	(MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
	Add gfx906.

From-SVN: r272007
2019-06-06 15:11:59 +00:00
Kyrylo Tkachov 41dab855dc [AArch64] PR tree-optimization/90332: Implement vec_init<M><N> where N is a vector mode
This patch fixes the failing gcc.dg/vect/slp-reduc-sad-2.c testcase on aarch64
by implementing a vec_init optab that can handle two half-width vectors producing a full-width one
by concatenating them.

In the gcc.dg/vect/slp-reduc-sad-2.c case it's a V8QI reg concatenated with a V8QI const_vector of zeroes.
This can be implemented efficiently using the aarch64_combinez pattern that just loads a D-register to make
use of the implicit zero-extending semantics of that load.
Otherwise it concatenates the two vector using aarch64_simd_combine.

With this patch I'm seeing the effect from richi's original patch that added gcc.dg/vect/slp-reduc-sad-2.c on aarch64
and 525.x264_r improves by about 1.5%.

	PR tree-optimization/90332
	* config/aarch64/aarch64.c (aarch64_expand_vector_init):
	Handle VALS containing two vectors.
	* config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
	to...
	(@aarch64_combinez<mode>): ... This.
	(*aarch64_combinez_be<mode>): Rename to...
	(@aarch64_combinez_be<mode>): ... This.
	(vec_init<mode><Vhalf>): New define_expand.
	* config/aarch64/iterators.md (Vhalf): Handle V8HF.

From-SVN: r272002
2019-06-06 13:59:07 +00:00
Jonathan Wakely a2dbc0bf2a Fix tests that fail in C++2a mode
The GNU extension that allows using the wrong allocator type with a
container is disabled for C++2a mode, because the standard now requires
a diagnostic. Fix the tests that fail when -std=gnu++2a is used.

Also remove some reundant tests that are duplicates of another test
except for a target specifier of c++11. Those tests previously set
-std=gnu++11 explicitly but that was replaced globally with a target
specifier. These tests existed to verify that explicit instantiation
worked for both C++98 and C++11 modes, but now do nothing because both
copies of the test use -std=gnu++14 by default. Instead of duplicating
the test we should be regularly running the whole testsuite with
different -std options.

	* testsuite/23_containers/deque/requirements/explicit_instantiation/
	1_c++0x.cc: Remove redundant test.
	* testsuite/23_containers/deque/requirements/explicit_instantiation/
	2.cc: Use target selector instead of preprocessor condition.
	* testsuite/23_containers/deque/requirements/explicit_instantiation/
	3.cc: Do not run test for C++2a.
	* testsuite/23_containers/forward_list/requirements/
	explicit_instantiation/3.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/
	explicit_instantiation/5.cc: Do not test allocator rebinding extension
	for C++2a.
	* testsuite/23_containers/list/requirements/explicit_instantiation/
	1_c++0x.cc: Remove redundant test.
	* testsuite/23_containers/list/requirements/explicit_instantiation/
	2.cc: Use target selector instead of preprocessor condition.
	* testsuite/23_containers/list/requirements/explicit_instantiation/
	3.cc: Do not run test for C++2a.
	* testsuite/23_containers/list/requirements/explicit_instantiation/
	5.cc: Do not test allocator rebinding extension for C++2a.
	* testsuite/23_containers/map/requirements/explicit_instantiation/
	1_c++0x.cc: Remove redundant test.
	* testsuite/23_containers/map/requirements/explicit_instantiation/
	2.cc: Adjust comment.
	* testsuite/23_containers/map/requirements/explicit_instantiation/
	3.cc: Do not run test for C++2a.
	* testsuite/23_containers/map/requirements/explicit_instantiation/
	5.cc: Do not test allocator rebinding extension for C++2a.
	* testsuite/23_containers/multimap/requirements/explicit_instantiation/
	1_c++0x.cc: Remove redundant test.
	* testsuite/23_containers/multimap/requirements/explicit_instantiation/
	3.cc: Do not run test for C++2a.
	* testsuite/23_containers/multimap/requirements/explicit_instantiation/
	5.cc: Do not test allocator rebinding extension for C++2a.
	* testsuite/23_containers/multiset/requirements/explicit_instantiation/
	3.cc: Do not run test for C++2a.
	* testsuite/23_containers/multiset/requirements/explicit_instantiation/
	5.cc: Do not test allocator rebinding extension for C++2a.
	* testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
	Do not run test for C++2a.
	* testsuite/23_containers/set/requirements/explicit_instantiation/
	1_c++0x.cc: Remove redundant test.
	* testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
	Do not test allocator rebinding extension for C++2a.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation/3.cc: Likewise.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation/5.cc: Do not test allocator rebinding extension
	for C++2a.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation/3.cc: Do not run test for C++2a.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation/5.cc: Do not test allocator rebinding extension
	for C++2a.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation/3.cc: Do not run test for C++2a.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation/5.cc: Do not test allocator rebinding extension
	for C++2a.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation/3.cc: Do not run test for C++2a.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation/5.cc: Do not test allocator rebinding extension
	for C++2a.
	* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
	2.cc: Remove redundant test.
	* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
	3.cc: Do not run test for C++2a.
	* testsuite/23_containers/vector/requirements/explicit_instantiation/
	3.cc: Likewise.

From-SVN: r272001
2019-06-06 14:36:27 +01:00
Jonathan Wakely 209ee62421 Remove redundant static assertions in [meta.unary.prop] traits
The type property predicates that are implemented by a compiler builtin
already do the right checks in the compiler. The checks for complete
type or unbounded arrays were wrong for these types anyway.

	* include/std/type_traits (is_empty, is_polymorphic, is_final)
	(is_abstract, is_aggregate): Remove static_assert.
	* testsuite/20_util/is_abstract/incomplete_neg.cc: Check for error
	from builtin only.
	* testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise. Add
	missing -std=gnu++17 option.
	* testsuite/20_util/is_empty/incomplete_neg.cc: New test.
	* testsuite/20_util/is_final/incomplete_neg.cc: New test.
	* testsuite/20_util/is_polymorphic/incomplete_neg.cc: Check for error
	from builtin only.

From-SVN: r272000
2019-06-06 13:13:47 +01:00
Jonathan Wakely 061a745005 Fix tests that fail with -std=gnu++98 or -std=gnu++11
* testsuite/18_support/set_terminate.cc: Do not run for C++98 mode.
	* testsuite/18_support/set_unexpected.cc: Likewise.
	* testsuite/20_util/is_nothrow_invocable/value.cc: Test converting to
	void.
	* testsuite/20_util/is_nothrow_invocable/value_ext.cc: Fix constexpr
	function to be valid in C++11.
	* testsuite/26_numerics/complex/proj.cc: Do not run for C++98 mode.
	* testsuite/experimental/names.cc: Do not run for C++98 mode. Do not
	include Library Fundamentals or Networking headers in C++11 mode.
	* testsuite/ext/char8_t/atomic-1.cc: Do not run for C++98 mode.

From-SVN: r271999
2019-06-06 13:13:42 +01:00
Jonathan Wakely d355635e6b Refactor SFINAE constraints on std::tuple constructors
Replace the _TC class template with the better-named _TupleConstraints
one, which provides a different set of member functions. The new members
do not distinguish construction from lvalues and rvalues, but expects
the caller to do that by providing different template arguments. Within
the std::tuple primary template and std::tuple<T1, T2> partial
specialization the _TupleConstraints members are used via new alias
templates like _ImplicitCtor and _ExplicitCtor which makes the
constructor constraints less verbose and repetitive. For example, where
we previously had:

     template<typename... _UElements, typename
             enable_if<
                _TMC<_UElements...>::template
                   _MoveConstructibleTuple<_UElements...>()
                 && _TMC<_UElements...>::template
                   _ImplicitlyMoveConvertibleTuple<_UElements...>()
                 && (sizeof...(_Elements) >= 1),
       bool>::type=true>
       constexpr tuple(_UElements&&... __elements)

We now have:

     template<typename... _UElements,
             bool _Valid = __valid_args<_UElements...>(),
             _ImplicitCtor<_Valid, _UElements...> = true>
      constexpr
      tuple(_UElements&&... __elements)

There are two semantic changes as a result of the refactoring:

- The allocator-extended default constructor is now constrained.
- The rewritten constraints fix PR 90700.

	* include/std/tuple (_TC): Replace with _TupleConstraints.
	(_TupleConstraints): New helper for SFINAE constraints, with more
	expressive member functions to reduce duplication when used.
	(tuple::_TC2, tuple::_TMC, tuple::_TNTC): Remove.
	(tuple::_TCC): Replace dummy type parameter with bool non-type
	parameter that can be used to check the pack size.
	(tuple::_ImplicitDefaultCtor, tuple::_ExplicitDefaultCtor)
	(tuple::_ImplicitCtor, tuple::_ExplicitCtor): New alias templates for
	checking constraints in constructors.
	(tuple::__valid_args, tuple::_UseOtherCtor, tuple::__use_other_ctor):
	New SFINAE helpers.
	(tuple::tuple): Use new helpers to reduce repitition in constraints.
	(tuple::tuple(allocator_arg_t, const Alloc&)): Constrain.
	(tuple<T1, T2>::_TCC, tuple<T1, T2>::_ImplicitDefaultCtor)
	(tuple<T1, T2>::_ExplicitDefaultCtor, tuple<T1, T2>::_ImplicitCtor)
	(tuple<T1, T2>::_ExplicitCtor): New alias templates for checking
	constraints in constructors.
	(tuple::__is_alloc_arg()): New SFINAE helpers.
	(tuple<T1, T2>::tuple): Use new helpers to reduce repitition in
	constraints.
	(tuple<T1, T2>::tuple(allocator_arg_t, const Alloc&)): Constrain.
	* testsuite/20_util/tuple/cons/90700.cc: New test.
	* testsuite/20_util/tuple/cons/allocators.cc: Add default constructor
	to meet new constraint on allocator-extended default constructor.

From-SVN: r271998
2019-06-06 13:13:36 +01:00
Jozef Lawrynowicz ec573765e5 MSP430: Use minimal code size library shift functions when optimizing for size
gcc/ChangeLog

2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
	library functions only when not optimizing for size.
	(ashlsi3): Likewise.
	(ashrhi3): Likewise.
	(ashrsi3): Likewise.
	(lshrhi3): Likewise.
	(lshrsi3): Likewise.

gcc/testsuite/ChangeLog

2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* gcc.target/msp430/size-optimized-shifts.c: New test.

From-SVN: r271997
2019-06-06 12:10:19 +00:00
Andreas Krebbel 891f31f9a4 re PR rtl-optimization/88751 (Performance regression reload vs lra)
Fix PR88751

This patch implements a small improvement for the heuristic in lra
which decides when it has to activate the simpler register allocation
algorithm.

gcc/ChangeLog:

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

	PR rtl-optimization/88751
	* ira.c (ira): Use the number of the actually referenced registers
	when calculating the threshold.

From-SVN: r271996
2019-06-06 11:35:04 +00:00
Jakub Jelinek a96ed9f7d9 * configure: Regenerate.
From-SVN: r271994
2019-06-06 11:32:07 +02:00
Jozef Lawrynowicz e445e4b4fe MSP430: Emulate 16-bit shifts with rotate insn when src operand is in memory
gcc/ChangeLog

2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config/msp430/msp430.md (ashlhi3): Force shift src operand into a
	register if it is in memory, so the shift can be emulated with a rotate
	instruction.
	(ashrhi3): Likewise.
	(lshrhi3): Likewise.

gcc/testsuite/ChangeLog

2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* gcc.target/msp430/emulate-slli.c: New test.
	* gcc.target/msp430/emulate-srai.c: New test.
	* gcc.target/msp430/emulate-srli.c: New test.

From-SVN: r271993
2019-06-06 09:23:10 +00:00
Jozef Lawrynowicz d1b2f85f78 MSP430: Put libgcc shift functions in their own section
2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config/msp430/slli.S (__mspabi_slli_n): Put function in its own
	section.
	(__mspabi_slli): Likewise.
	(__mspabi_slll_n): Likewise.
	(__mspabi_slll): Likewise.
	* config/msp430/srai.S (__mspabi_srai_n): Likewise.
	(__mspabi_srai): Likewise.
	(__mspabi_sral_n): Likewise.
	(__mspabi_sral): Likewise.
	* config/msp430/srli.S (__mspabi_srli_n): Likewise.
	(__mspabi_srli): Likewise.
	(__mspabi_srll_n): Likewise.
	(__mspabi_srll): Likewise.

From-SVN: r271992
2019-06-06 09:07:36 +00:00
Martin Liska ea8a6038b0 Simplify mult where both arguments are 0 or 1 (PR tree-optimization/87954).
2019-06-06  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/87954
	* match.pd: Simplify mult where both arguments are 0 or 1.
2019-06-06  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/87954
	* gcc.dg/pr87954.c: New test.

From-SVN: r271991
2019-06-06 07:55:51 +00:00
Richard Biener 8ce6fb5fec vr-values.c (vr_values::extract_range_from_ssa_name): Do not put equivalences on UNDEFINED ranges.
2019-06-06  Richard Biener  <rguenther@suse.de>

	* vr-values.c (vr_values::extract_range_from_ssa_name): Do not
	put equivalences on UNDEFINED ranges.
	* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
	Make sure to drop defs of stmts added during simplification
	to VARYING.

From-SVN: r271990
2019-06-06 07:32:44 +00:00
Richard Biener ed315c041f tree-ssa-structalias.c: Include tree-cfg.h.
2019-06-06  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c: Include tree-cfg.h.
	(make_heapvar): Do not make heap vars artificial.
	(find_func_aliases_for_builtin_call): Handle stack allocation
	functions.
	(find_func_aliases): Delay processing of simple enough returns
	in non-IPA mode.
	(set_uids_in_ptset): Adjust.
	(find_what_var_points_to): Likewise.
	(solve_constraints): Do not dump points-to sets here.
	(compute_points_to_sets): Post-process return statements,
	amending the escaped solution.  Dump points-to sets afterwards.
	(ipa_pta_execute): Dump points-to sets.

	* gcc.dg/tree-ssa/alias-37.c: New testcase.
	* gcc.dg/torture/20190604-1.c: Likewise.
	* gcc.dg/tree-ssa/pta-callused.c: Adjust.

From-SVN: r271989
2019-06-06 07:25:19 +00:00
Martin Liska c45c8424de Fix HTML headers and titles for 'Installing GCC' pages (PR web/87933).
2019-06-06  Martin Liska  <mliska@suse.cz>

	PR web/87933
	* doc/install.texi: Fix HTML headers and
	titles for 'Installing GCC' pages.

From-SVN: r271988
2019-06-06 07:20:16 +00:00
Martin Liska ee137b400c IPA ICF: enhance dump output
2019-06-06  Martin Liska  <mliska@suse.cz>

	* ipa-icf-gimple.h (dump_message_1): Remove.
	(dump_message): Likewise.
	(return_false_with_message_1): Print also file.
	(return_false_with_msg): Likewise.
	(return_with_result): Likewise.
	(return_with_debug): Likewise.
	* ipa-icf.c (sem_function::equals_private): Remove call
	to dump_message.

From-SVN: r271987
2019-06-06 07:19:58 +00:00
Claudiu Zissulescu 248fabe6a7 [ARC] Update tmac tests.
Fix order of dg-directives such that tests are executed only when
there is no command line cpu option given.

gcc/testsuite/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/tmac-1.c: Reoreder dg-directives.
	* gcc.target/arc/tmac-2.c: Likewise.

From-SVN: r271986
2019-06-06 09:19:36 +02:00
Martin Sebor 65985d7875 PR c/90737 - [8/9/10 Regression] inconsistent address of a local converted to intptr_t between callee and caller
gcc/c/ChangeLog:

	PR c/90737
	* c-typeck.c (c_finish_return): Only consider functions returning
	pointers as candidates for -Wreturn-local-addr.

gcc/cp/ChangeLog:

	PR c/90737
	* typeck.c (maybe_warn_about_returning_address_of_local): Only
	consider functions returning pointers as candidates for
	-Wreturn-local-addr.

gcc/testsuite/ChangeLog:

	PR c/90737
	* c-c++-common/Wreturn-local-addr.c: New test.
	* g++.dg/warn/Wreturn-local-addr-6.C: New test.

From-SVN: r271985
2019-06-05 20:53:01 -06:00
Hongtao Liu 3146ec83db sse.md (define_mode_suffix vecmemsuffix): New.
gcc/
2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>

	* config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
	(define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
	memory operand for it.
	(define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.

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

	* gcc.target/i386/avx512dq-vfpclasspd-1.c: Adjust scan assember
	for {x,y,z} suffix.
	* gcc.target/i386/avx512dq-vfpclassps-1.c: Ditto.

From-SVN: r271984
2019-06-06 01:14:04 +00:00
Ian Lance Taylor 269f05ff58 compiler: make use of specialized fast map routines
In the runtime there are specialized fast map routines for
    certain kep types. This CL lets the compiler make use of these
    functions, instead of always using the generic ones.
    
    As we now generate multiple versions of map delete calls, to make
    things easier we delay the expansion of the built-in delete
    function to flatten phase.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180858

From-SVN: r271983
2019-06-06 00:44:01 +00:00
GCC Administrator 91bd9240f9 Daily bump.
From-SVN: r271982
2019-06-06 00:16:21 +00:00
Yoshinori Sato e69a13d15d config.host (rx-*-linux*): Add t-fdpbit to tmake_file Add appropriate tm_file clause as well.
* config.host (rx-*-linux*): Add t-fdpbit to tmake_file
        Add appropriate tm_file clause as well.
        * config/rx/t-rx (HOST_LIBGCC2_CFLAGS): Remove.

From-SVN: r271978
2019-06-05 17:20:27 -06:00
James Clarke b009eac157 crtbegin.S (__dso_handle): Put in .sdata/.sbss rather than .data/.bss so it can be accessed via...
* config/ia64/crtbegin.S (__dso_handle): Put in .sdata/.sbss
	rather than .data/.bss so it can be accessed via gp-relative
	addressing.

From-SVN: r271977
2019-06-05 16:27:37 -06:00
Ian Lance Taylor 5a9422664e compiler: inline call expressions and function references
Scan inlinable methods for references to global variables and
    functions (forgot to do that earlier).
    
    Track all packages mentioned by exports (that should have been done
    earlier too).
    
    Record assembler name in export data, so that we can inline calls to
    non-Go functions.  Modify gccgoimporter code to skip assembler name.
    
    This increases the number of inlinable functions in the standard
    library from 215 to 439.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180677

From-SVN: r271976
2019-06-05 21:05:38 +00:00
Martin Sebor 388aa75412 gcc_diag-11.c: Skip until -Wformat-diag has been committed.
gcc/testsuite/ChangeLog:

	* gcc.dg/format/gcc_diag-11.c: Skip until -Wformat-diag has
	been committed.

From-SVN: r271975
2019-06-05 14:32:24 -06:00
Paolo Carlini 2212ae955a decl.c (smallest_type_location): New.
/cp
2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (smallest_type_location): New.
	(check_special_function_return_type): Use it.
	(grokdeclarator): Lkewise.

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

	* g++.dg/diagnostic/return-type-invalid-1.C: New.
	* g++.old-deja/g++.brendan/crash16.C: Adjust.
	* g++.old-deja/g++.law/ctors5.C: Likewise.

/cp
2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (grokdeclarator): Use locations[ds_friend]
	in one place.

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

	* g++.dg/other/friend4.C: Test locations too.
	* g++.dg/other/friend5.C: Likewise.
	* g++.dg/other/friend7.C: Likewise.

From-SVN: r271974
2019-06-05 20:07:01 +00:00
Martin Sebor 0ecf545c6e c-decl.c (start_decl): Adjust quoting and hyphenation in diagnostics.
gcc/c/ChangeLog:

	* c-decl.c (start_decl): Adjust quoting and hyphenation
	in diagnostics.
	(finish_decl): Same.
	(finish_enum): Same.
	(start_function): Same.
	(declspecs_add_type): Same.
	* c-parser.c (warn_for_abs): Same.
	* c-typeck.c (build_binary_op): Same.

gcc/c-family/ChangeLog:

	* c-attribs.c (handle_mode_attribute): Adjust quoting and hyphenation.
	(handle_alias_ifunc_attribute): Same.
	(handle_copy_attribute): Same.
	(handle_weakref_attribute): Same.
	(handle_nonnull_attribute): Same.
	* c-warn.c (warn_for_sign_compare): Same.
	(warn_for_restrict): Same.
	* c.opt: Same.

gcc/cp/ChangeLog:

	* call.c (build_conditional_expr_1): Adjust quoting and hyphenation.
	(convert_like_real): Same.
	(convert_arg_to_ellipsis): Same.
	* constexpr.c (diag_array_subscript): Same.
	* constraint.cc (diagnose_trait_expression): Same.
	* cvt.c (ocp_convert): Same.
	* decl.c (start_decl): Same.
	(check_for_uninitialized_const_var): Same.
	(grokfndecl): Same.
	(check_special_function_return_type): Same.
	(finish_enum_value_list): Same.
	(start_preparsed_function): Same.
	* parser.c (cp_parser_decl_specifier_seq): Same.
	* typeck.c (cp_build_binary_op): Same.
	(build_static_cast_1): Same.

gcc/lto/ChangeLog:

	* lto-common.c (lto_file_finalize): Adjust quoting and hyphenation.

gcc/objc/ChangeLog:

	* objc-act.c (objc_build_setter_call): Adjust quoting and hyphenation.
	* objc-encoding.c (encode_gnu_bitfield): Same.

gcc/ChangeLog:

	* config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
	Adjust quoting and hyphenation.
	* convert.c (convert_to_real_1): Same.
	* gcc.c (driver_wrong_lang_callback): Same.
	(driver::handle_unrecognized_options): Same.
	* gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
	* opts-common.c (cmdline_handle_error): Same.
	(read_cmdline_option): Same.
	* opts-global.c (complain_wrong_lang): Same.
	(print_ignored_options): Same.
	(handle_common_deferred_options): Same.
	* pretty-print.h: Same.
	* print-rtl.c (debug_bb_n_slim): Same.
	* sched-rgn.c (make_pass_sched_fusion): Same.
	* tree-cfg.c (verify_gimple_assign_unary): Same.
	(verify_gimple_label): Same.
	* tree-ssa-operands.c (verify_ssa_operands): Same.
	* varasm.c (do_assemble_alias): Same.
	(assemble_alias): Same.

From-SVN: r271971
2019-06-05 12:30:48 -06:00
Richard Henderson 0191520b2d alpha.c (direct_return): Move down after struct machine_function definition...
* config/alpha/alpha.c (direct_return): Move down after
	struct machine_function definition; use saved frame_size;
	return bool.
	(struct machine_function): Add sa_mask, sa_size, frame_size.
	(alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
	(alpha_compute_frame_layout): ... new function.
	(TARGET_COMPUTE_FRAME_LAYOUT): New.
	(alpha_initial_elimination_offset): Use saved sa_size.
	(alpha_vms_initial_elimination_offset): Likewise.
	(alpha_vms_can_eliminate): Remove alpha_sa_size call.
	(alpha_expand_prologue): Use saved frame data.  Merge integer
	and fp register save loops.
	(alpha_expand_epilogue): Likewise.
	(alpha_start_function): Use saved frame data.
	* config/alpha/alpha-protos.h (direct_return): Update.
	(alpha_sa_size): Remove.

From-SVN: r271970
2019-06-05 20:16:18 +02:00
Nina Dinka Ranns 6f0926e644 ChangeLog for PR c++/63149
From-SVN: r271969
2019-06-05 14:12:53 -04:00
Nina Dinka Ranns 9b79d5d3ba PR c++/63149 - wrong auto deduction from braced-init-list
2019-06-04  Nina Dinka Ranns  <dinka.ranns@gmail.com>

    gcc/cp/
    * pt.c (listify_autos): Use non cv qualified auto_node in
    std::initializer_list<auto>.

    testsuite/
    * g++.dg/cpp0x/initlist-deduce2.C: New test.

From-SVN: r271968
2019-06-05 14:11:20 -04:00
David Edelsohn 781d39f26e aix-unwind.h (LR_REGNO): Rename to R_LR.
* config/rs6000/aix-unwind.h (LR_REGNO): Rename to R_LR.
(CR2_REGNO): Rename to R_CR2.
(XER_REGNO): Rename to R_XER.
(FIRST_ALTIVEC_REGNO): Rename to R_FIRST_ALTIVEC.
(VRSAVE_REGNO): Rename to R_VRSAVE.
(VSCR_REGNO): R_VSCR.

From-SVN: r271967
2019-06-05 12:45:57 -04:00
Segher Boessenkool a637fd40b3 rs6000: Fix new testcase
At least with -m32 you need -maltivec if you #include <altivec.h>.


gcc/testsuite/
	* g++.target/powerpc/undef-bool-3.C: Add -maltivec to dg-options.

From-SVN: r271966
2019-06-05 18:21:07 +02:00
Martin Sebor 36b341276f c-pragma.c (handle_pragma_weak): Adjust quoting in a diagnostic.
gcc/c-family/ChangeLog:

	* c-pragma.c (handle_pragma_weak): Adjust quoting in a diagnostic.
	* c.opt (-Wformat-diag): Remove a spurious period.

gcc/testsuite/ChangeLog:

	* gcc.dg/weak/weak-19.c: New test.

From-SVN: r271965
2019-06-05 08:24:03 -06:00
Eric Botcazou c613138b6c fold-const.c (extract_muldiv_1): Do not distribute a multiplication by a power-of-two value.
* fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
	multiplication by a power-of-two value.
	(fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
	and turn the modulo operation into a masking operation.

From-SVN: r271963
2019-06-05 14:14:40 +00:00
Sam Tebbs 2098f8ec2f [PATCH][GCC][AARCH64] Add tests for pointer authentication B-key
gcc/testsuite/ChangeLog
	* 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_builtin.c: New file.
	* g++.target/aarch64/return_address_sign_ab_exception.C: New file.
	* g++.target/aarch64/return_address_sign_b_exception.C: New file.

From-SVN: r271954
2019-06-05 11:06:56 +00:00
Jakub Jelinek d301c1a41d re PR debug/90733 (ICE in simplify_subreg, at simplify-rtx.c:6440)
PR debug/90733
	* var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
	with VOIDmode inner operands.

	* gcc.dg/pr90733.c: New test.

From-SVN: r271952
2019-06-05 11:41:13 +02:00
Richard Biener e0aecd6e9a re PR middle-end/90726 (exponential behavior on SCEV results everywhere)
2019-06-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/90726
	* tree-ssa-loop-niter.c (expand_simple_operations): Do not
	turn an expression graph into a tree.

	* gcc.dg/pr90726.c: Enable IVOPTs.

From-SVN: r271950
2019-06-05 08:26:36 +00:00
Jakub Jelinek 0b887b756a omp-expand.c (struct omp_region): Add has_lastprivate_conditional member.
* omp-expand.c (struct omp_region): Add has_lastprivate_conditional
	member.
	(expand_parallel_call): If region->inner->has_lastprivate_conditional,
	treat it like explicit monotonic schedule modifier.
	(expand_omp_for): Initialize has_lastprivate_conditional.
	If fd.lastprivate_conditional != 0, treat it like explicit monotonic
	schedule modifier.

From-SVN: r271949
2019-06-05 09:52:23 +02:00
Jakub Jelinek 28b3a77ca0 omp-low.c (lower_rec_input_clauses): For lastprivate conditional references...
* omp-low.c (lower_rec_input_clauses): For lastprivate conditional
	references, lookup in in hash map MEM_REF operand instead of the
	MEM_REF itself.
	(lower_omp_1): When looking for lastprivate conditional assignments,
	handle MEM_REFs with REFERENCE_TYPE operands.

	* testsuite/libgomp.c++/lastprivate-conditional-1.C: New test.
	* testsuite/libgomp.c++/lastprivate-conditional-2.C: New test.

From-SVN: r271948
2019-06-05 09:37:40 +02:00
Jakub Jelinek 9ea2bfca6a omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and on privatization clauses OMP_CLAUSE_DECL is...
* omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
	on privatization clauses OMP_CLAUSE_DECL is privatized by reference
	and references a VLA.  Handle references to non-VLAs if is_simd
	all privatization clauses like reductions.
	(lower_rec_input_clauses) <case do_private, case do_firstprivate>:
	If omp_is_reference, use always omp simd arrays and set
	DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
	fails, emit reference initialization.

	* g++.dg/vect/simd-1.cc: New test.

From-SVN: r271947
2019-06-05 09:36:30 +02:00
Hongtao Liu 5259a047c3 re PR target/89803 (Missing AVX512 intrinsics)
gcc/
2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>

	PR target/89803
	* config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
	_mm_mask_fpclass_sd_mask): New intrinsics.
	(_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
	* config/i386/i386-builtin.def
	(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
	New builtins.
	(__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
	* config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
	DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
	* config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
	case QI_FTYPE_V2SF_INT): Ditto.
	* config/i386/sse.md
	(define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
	Extended to insnstructions with mask operands.

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

	PR target/89803
	* gcc.target/i386/avx-1.c (__builtin_ia32_fpclasssss,
	__builtin_ia32_fpclasssd): Removed.
	(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): Define.
	* gcc.target/i386/sse-13.c (__builtin_ia32_fpclasssss,
	__builtin_ia32_fpclasssd): Removed.
	(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): Define.
	* gcc.target/i386/sse-23.c (__builtin_ia32_fpclasssss,
	__builtin_ia32_fpclasssd): Removed.
	(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): Define.
	* gcc.target/i386/avx512dq-vfpclassss-2.c: New.
	* gcc.target/i386/avx512dq-vfpclasssd-2.c: New.
	* gcc.target/i386/avx512dq-vfpclassss-1.c (avx512f_test):
	Add test for _mm_mask_fpclass_ss_mask.
	* gcc.target/i386/avx512dq-vfpclasssd-1.c (avx512f_test):
	Add test for _mm_mask_fpclass_sd_mask.

From-SVN: r271946
2019-06-05 06:04:22 +00:00
Ian Lance Taylor 34f66a53b4 compiler: statically allocate constant interface data
When converting a constant to interface, such as interface{}(42)
    or interface{}("hello"), if the interface escapes, we currently
    generate a heap allocation to hold the constant value.
    
    This CL changes it to generate a static allocation instead, as
    the gc compiler does. This reduces allocations in such cases.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180277

From-SVN: r271945
2019-06-05 00:18:17 +00:00
GCC Administrator abccc5d219 Daily bump.
From-SVN: r271944
2019-06-05 00:16:20 +00:00