1. 07 Jun, 2019 5 commits
    • Remove indirect call top N counter type. · e37333ba
      2019-06-07  Martin Liska  <mliska@suse.cz>
      
      	* doc/invoke.texi: Remove param.
      	* gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
      	Remove.
      	* gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
      	(GCOV_ICALL_TOPN_NCOUNTS): Likewise.
      	* params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
      	* profile.c (instrument_values): Remove
      	HIST_TYPE_INDIR_CALL_TOPN.
      	* tree-profile.c (init_ic_make_global_vars):
      	Always build __gcov_indirect_call only.
      	(gimple_init_gcov_profiler): Remove usage
      	of PARAM_INDIR_CALL_TOPN_PROFILE.
      	(gimple_gen_ic_profiler): Likewise.
      	* value-prof.c (dump_histogram_value): Likewise.
      	(stream_in_histogram_value): Likewise.
      	(gimple_indirect_call_to_profile): Likewise.
      	(gimple_find_values_to_profile): Likewise.
      	* value-prof.h (enum hist_type): Likewise.
      2019-06-07  Martin Liska  <mliska@suse.cz>
      
      	* Makefile.in: Remove usage of
      	_gcov_merge_icall_topn.
      	* libgcov-driver.c (gcov_sort_n_vals): Remove.
      	(gcov_sort_icall_topn_counter): Likewise.
      	(gcov_sort_topn_counter_arrays): Likewise.
      	(dump_one_gcov): Remove call to gcov_sort_topn_counter_arrays.
      	* libgcov-merge.c (__gcov_merge_icall_topn): Remove.
      	* libgcov-profiler.c (__gcov_topn_value_profiler_body):
      	Likewise.
      	(GCOV_ICALL_COUNTER_CLEAR_THRESHOLD): Remove.
      	(struct indirect_call_tuple): Remove.
      	(__gcov_indirect_call_topn_profiler): Remove.
      	* libgcov-util.c (__gcov_icall_topn_counter_op): Remove.
      	* libgcov.h (gcov_sort_n_vals): Remove.
      	(L_gcov_merge_icall_topn): Likewise.
      	(__gcov_merge_icall_topn): Likewise.
      	(__gcov_indirect_call_topn_profiler): Likewise.
      
      From-SVN: r272030
      Martin Liska committed
    • Fix a thinko in tree-ssa-loop.c. · cc261f66
      2019-06-07  Martin Liska  <mliska@suse.cz>
      
      	* tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
      	function.
      
      From-SVN: r272029
      Martin Liska committed
    • Add warn_unused_result for malloc-like functions (PR tree-optimization/78902). · b8e2acff
      2019-06-07  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/78902
      	* builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
      	(ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
      	(ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
      	(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
      	(ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
      	(ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
      	(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
      	(ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
      	(ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
      	(ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
      	(ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
      	(ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST):  Remove.
      	(ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
      	New.
      	(ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
      	(ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
      	(ATTR_MALLOC_NOTHROW_NONNULL): Remove.
      	(ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
      	(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
      	(ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
      	(ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
      	(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
      	* builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
      	warn_unused_result attribute.
      	(BUILT_IN_STRDUP): Likewise.
      	(BUILT_IN_STRNDUP): Likewise.
      	(BUILT_IN_ALLOCA): Likewise.
      	(BUILT_IN_CALLOC): Likewise.
      	(BUILT_IN_MALLOC): Likewise.
      	(BUILT_IN_REALLOC): Likewise.
      2019-06-07  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/78902
      	* c-c++-common/asan/alloca_loop_unpoisoning.c: Use result
      	of __builtin_alloca.
      	* c-c++-common/asan/pr88619.c: Likewise.
      	* g++.dg/overload/using2.C: Likewise for malloc.
      	* gcc.dg/attr-alloc_size-5.c: Add new dg-warning.
      	* gcc.dg/nonnull-3.c: Use result of __builtin_strdup.
      	* gcc.dg/pr43643.c: Likewise.
      	* gcc.dg/pr59717.c: Likewise for calloc.
      	* gcc.dg/torture/pr71816.c: Likewise.
      	* gcc.dg/tree-ssa/pr78886.c: Likewise.
      	* gcc.dg/tree-ssa/pr79697.c: Likewise.
      	* gcc.dg/pr78902.c: New test.
      
      From-SVN: r272028
      Martin Liska committed
    • Daily bump. · c437d2d4
      From-SVN: r272027
      GCC Administrator committed
    • go/internal/gccgoimporter: ignore unexported and imported names · ffaa3a1c
          
          Due to inlining, we can now see unexported functions and variables,
          and functions and variables imported from different packages.
          Ignore them rather than reporting them from this package.
          
          Handle $hash and $equal functions consistently, so that we discard the
          inline body if there is one.
          
          Ignore names created for result parameters for inlining purposes.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180758
      
      From-SVN: r272023
      Ian Lance Taylor committed
  2. 06 Jun, 2019 32 commits
    • compiler: permit inlining temporary statements and references · 93cbebde
          
          This increases the number of inlinable functions from 439 to 455.
          An example is math/bits.Mul32, which uses temporaries to handle the
          tuple assignment.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180837
      
      From-SVN: r272022
      Ian Lance Taylor committed
    • RISC-V: Move STARTFILE_PREFIX_SPEC into target OS files. · 5e664ed0
      	gcc/
      	PR target/89955
      	* config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
      	* config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
      	* config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
      
      From-SVN: r272021
      Jim Wilson committed
    • * sv.po: Update. · 5c4c2d05
      From-SVN: r272019
      Joseph Myers committed
    • Darwin, c++, testsuite - adjust alignas4.C for Darwin's asm syntax. · 89ce70d6
      Darwin produces aligned zerofill directives for the objects represented.
      We can scan for these using "lp64" and "ilp32" to catch operation on both
      X86 and PowerPC ports (the test is for the alignment which is the trailing
      value in the zerofill directive, as a power of two).
      
      gcc/testsuite/ChangeLog:
      
      2019-06-06  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* g++.dg/cpp0x/alignas4.C: Amend test to check for zerofill syntax
      	on Darwin.
      
      From-SVN: r272018
      Iain Sandoe committed
    • Darwin, PowerPC, libgcc - Ensure unwinder is built with altivec enabled. · 34a4a9c2
      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
      Iain Sandoe committed
    • tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article. · 21722777
      
      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
      Martin Sebor committed
    • Drop alignment check in build_reconstructed_reference · c56c8602
      2019-06-06  Martin Jambor  <mjambor@suse.cz>
      
      	* tree-sra.c (build_reconstructed_reference): Drop the alignment
      	check.
      
      From-SVN: r272013
      Martin Jambor committed
    • Make SRA re-construct orginal memory accesses when easy · 3b47da42
      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
      Martin Jambor committed
    • Avoid unnecessary inclusion of <stdexcept> header · beb0086f
      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
      Jonathan Wakely committed
    • Fix more failing tests for C++98 mode · ad60f428
      	* 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
      Jonathan Wakely committed
    • Fix more tests that fail in C++2a mode · d561a18e
      	* 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
      Jonathan Wakely committed
    • Add -march=gfx906 for AMD GCN. · 268d509d
      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
      Andrew Stubbs committed
    • [AArch64] PR tree-optimization/90332: Implement vec_init<M><N> where N is a vector mode · 41dab855
      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
      Kyrylo Tkachov committed
    • Fix tests that fail in C++2a mode · a2dbc0bf
      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
      Jonathan Wakely committed
    • Remove redundant static assertions in [meta.unary.prop] traits · 209ee624
      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
      Jonathan Wakely committed
    • Fix tests that fail with -std=gnu++98 or -std=gnu++11 · 061a7450
      	* 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
      Jonathan Wakely committed
    • Refactor SFINAE constraints on std::tuple constructors · d355635e
      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
      Jonathan Wakely committed
    • MSP430: Use minimal code size library shift functions when optimizing for size · ec573765
      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
      Jozef Lawrynowicz committed
    • re PR rtl-optimization/88751 (Performance regression reload vs lra) · 891f31f9
      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
      Andreas Krebbel committed
    • * configure: Regenerate. · a96ed9f7
      From-SVN: r271994
      Jakub Jelinek committed
    • MSP430: Emulate 16-bit shifts with rotate insn when src operand is in memory · e445e4b4
      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
      Jozef Lawrynowicz committed
    • MSP430: Put libgcc shift functions in their own section · d1b2f85f
      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
      Jozef Lawrynowicz committed
    • Simplify mult where both arguments are 0 or 1 (PR tree-optimization/87954). · ea8a6038
      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
      Martin Liska committed
    • vr-values.c (vr_values::extract_range_from_ssa_name): Do not put equivalences on UNDEFINED ranges. · 8ce6fb5f
      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
      Richard Biener committed
    • tree-ssa-structalias.c: Include tree-cfg.h. · ed315c04
      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
      Richard Biener committed
    • Fix HTML headers and titles for 'Installing GCC' pages (PR web/87933). · c45c8424
      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
      Martin Liska committed
    • IPA ICF: enhance dump output · ee137b40
      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
      Martin Liska committed
    • [ARC] Update tmac tests. · 248fabe6
      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
      Claudiu Zissulescu committed
    • PR c/90737 - [8/9/10 Regression] inconsistent address of a local converted to… · 65985d78
      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
      Martin Sebor committed
    • sse.md (define_mode_suffix vecmemsuffix): New. · 3146ec83
      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
      Hongtao Liu committed
    • compiler: make use of specialized fast map routines · 269f05ff
          
          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
      Ian Lance Taylor committed
    • Daily bump. · 91bd9240
      From-SVN: r271982
      GCC Administrator committed
  3. 05 Jun, 2019 3 commits