1. 25 Oct, 2018 3 commits
  2. 24 Oct, 2018 21 commits
    • combine: Don't do make_more_copies for dest PC (PR87720) · b8ac9576
      Jumps are written in RTL as moves to PC.  But the latter has no mode,
      so we shouldn't try to use it.  Since the optimization this routine
      does does not really help for jumps at all, let's just skip it.
      
      
      	PR rtl-optimization/87720
      	* combine.c (make_more_copies): Skip if the dest is pc_rtx.
      
      From-SVN: r265474
      Segher Boessenkool committed
    • gOlogy: do not change code in isolate-paths for warnings only · f8719680
      The isolate-paths pass is activated by various -f flags, but also by
      -Wnull-dereference.  Most of its codegen changes are conditioned on at
      least one of the -f flags, but those that detect, warn about and
      isolate paths that return the address of local variables are enabled
      even if the pass is activated only by -Wnull-dereference.
      
      -W flags should not cause codegen changes, so this patch makes the
      codegen changes conditional on the presence of any of the -f flags
      that activate the pass.  Should we have a separate option to activate
      only this kind of transformation?
      
      for  gcc/ChangeLog
      
      	* gimple-ssa-isolate-paths.c
      	(find_implicit_erroneous_behavior): Do not change code if the
      	pass is running for warnings only.
      	(find_explicit_erroneous_behavior): Likewise.
      
      From-SVN: r265473
      Alexandre Oliva committed
    • rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define as rs6000_mangle_decl_assembler_name. · f78f0462
      [gcc]
      2018-10-24  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME):
      	Define as rs6000_mangle_decl_assembler_name.
      	(rs6000_mangle_decl_assembler_name): If the user switched from IBM
      	long double to IEEE long double, switch the names of the long
      	double built-in functions to be <func>f128 instead of <func>l.
      
      [gcc/testsuite]
      2018-10-24  Michael Meissner  <meissner@linux.ibm.com>
      
      	* gcc.target/powerpc/float128-math.c: New test to make sure the
      	long double built-in function names use the f128 form if the user
      	switched from IBM long double to IEEE long double.
      	* gcc.target/powerpc/ppc-fortran/ieee128-math.f90: Likewise.
      
      From-SVN: r265471
      Michael Meissner committed
    • re PR c++/86288 (Recognize __gnu and/or __gnu__ as attribute-namespace) · df51934d
      	PR c++/86288
      	* parser.c (cp_parser_std_attribute): Canonicalize attr_ns, and when
      	:: is not present and attr_ns non-NULL, canonicalize also attr_id.
      	(cp_parser_attribute_spec): Fix comment typo.
      
      	* g++.dg/cpp0x/gen-attrs-66.C: New test.
      
      From-SVN: r265470
      Jakub Jelinek committed
    • extend.texi (nonnull): List no-argument form. · a703b16b
      
      gcc/ChangeLog:
      
      	* doc/extend.texi (nonnull): List no-argument form.  Reference
      	-fno-delete-null-pointer-checks and -fisolate-erroneous-paths-attribute.
      
      From-SVN: r265469
      Martin Sebor committed
    • PR c++/84851 - missing -Wclass-memaccess for a memcpy in a copy ctor with a non-trivial member · fd85b888
      gcc/cp/ChangeLog:
      
      	PR c++/84851
      	* call.c (maybe_warn_class_memaccess): Tighten up.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/84851
      	* g++.dg/Wclass-memaccess-4.C: Remove XFAIL.
      
      From-SVN: r265467
      Martin Sebor committed
    • tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state. · 313c3991
      2018-10-24  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state.
      
      From-SVN: r265465
      Richard Biener committed
    • emmintrin.h (_mm_cvtpd_epi32): Change deprecated __vector long to __vector long long. · 28d2dc75
      2018-10-24  Bill Schmidt  <wschmidt@linux.ibm.com>
      	    Jinsong Ji <jji@us.ibm.com>
      
      	* config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Change deprecated
      	__vector long to __vector long long.
      	(_mm_cvtpd_ps): Likewise.
      	(_mm_cvttpd_epi32): Likewise.
      	(_mm_cvtpi32_pd): Likewise.
      	(_mm_unpackhi_epi64): Likewise.
      	(_mm_unpacklo_epi64): Likewise.
      
      From-SVN: r265464
      William Schmidt committed
    • Switch conversion: support any ax + b transformation (PR tree-optimization/84436). · 767d4551
      2018-10-24  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/84436
      	* tree-switch-conversion.c (switch_conversion::contains_same_values_p):
      	Remove.
      	(switch_conversion::contains_linear_function_p): New.
      	(switch_conversion::build_one_array): Support linear
      	transformation on input.
      	* tree-switch-conversion.h (struct switch_conversion): Add
      	contains_linear_function_p declaration.
      2018-10-24  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/84436
      	* gcc.dg/tree-ssa/pr84436-1.c: New test.
      	* gcc.dg/tree-ssa/pr84436-2.c: New test.
      	* gcc.dg/tree-ssa/pr84436-3.c: New test.
      	* gcc.dg/tree-ssa/pr84436-4.c: New test.
      	* gcc.dg/tree-ssa/pr84436-5.c: New test.
      
      From-SVN: r265463
      Martin Liska committed
    • Return hash of ADDR_EXPR if its argument is CONSTANT_CLASS_P. · b5d0cdc9
      2018-10-24  Richard Biener  <rguenther@suse.de>
      
      	* varasm.c (const_hash_1): Return hash of ADDR_EXPR
      	if its argument is CONSTANT_CLASS_P.
      
      From-SVN: r265462
      Richard Biener committed
    • ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL; it is… · 9a97772f
      ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL; it is wrong for forward declarations.
      
      	* ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL;
      	it is wrong for forward declarations.
      
      From-SVN: r265460
      Jan Hubicka committed
    • Add myself to MAINTAINERS · 04193ea0
      ChangeLog:
      
      2018-10-24  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* MAINTAINERS (Write After Approval): Add myself.
      
      From-SVN: r265459
      Ilya Leoshkevich committed
    • S/390: Fix ICE in s390_check_qrst_address () · 6f7133ec
      In r265371 (S/390: Make "b" constraint match literal pool references)
      the CONSTANT_POOL_ADDRESS_P () check was moved from
      s390_loadrelative_operand_p () to s390_check_qrst_address ().  However,
      in the original code it was guarded by SYMBOL_REF_P (), which was not
      added to the new code.
      
      gcc/ChangeLog:
      
      2018-10-24  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* config/s390/s390.c (s390_check_qrst_address): Add the missing
      	SYMBOL_REF_P () check.
      
      gcc/testsuite/ChangeLog:
      
      2018-10-24  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* gcc.target/s390/20181024-1.c: New test.
      
      From-SVN: r265458
      Ilya Leoshkevich committed
    • re PR tree-optimization/87105 (Autovectorization [X86, SSE2, AVX2, DoublePrecision]) · be43a887
      2018-10-24  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/87105
      	* tree-vect-data-refs.c (vect_analyze_group_access_1): Adjust
      	dump classification.
      	(vect_analyze_data_ref_accesses): Handle duplicate loads and
      	stores by splitting the affected group after the fact.
      	* tree-vect-slp.c (vect_build_slp_tree_2): Dump when we
      	fail the SLP build because of size constraints.
      
      	* gcc.dg/vect/bb-slp-39.c: New testcase.
      	* gfortran.dg/vect/pr83232.f90: Un-XFAIL.
      
      From-SVN: r265457
      Richard Biener committed
    • Disable string merging with alignment > 1 before Solaris 11.4/SPARC · dc6b6330
      	* configure.ac (gcc_cv_ld_aligned_shf_merge): New test.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* varasm.c (mergeable_string_section): Use readonly_data_section
      	if linker doesn't support SHF_MERGE with alignment > 8.
      	(mergeable_constant_section): Likewise.
      
      From-SVN: r265456
      Rainer Orth committed
    • re PR tree-optimization/84013 (wrong __restrict clique with inline asm operand) · 53b8a710
      2018-10-24  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/84013
      	* tree-ssa-structalias.c (struct msdi_data): New struct for
      	marshalling data to walk_stmt_load_store_ops.
      	(maybe_set_dependence_info): Refactor as callback for
      	walk_stmt_load_store_ops.
      	(compute_dependence_clique): Set restrict info on all stmt kinds.
      
      	* gcc.dg/tree-ssa/restrict-9.c: New testcase.
      
      From-SVN: r265455
      Richard Biener committed
    • Remove reduntant dumps and make tp_first_run dump more compact. · 19b55958
      2018-10-24  Martin Liska  <mliska@suse.cz>
      
      	* cgraph.c (cgraph_node::dump):
      	Remove reduntant dumps and make tp_first_run dump more compact.
      2018-10-24  Martin Liska  <mliska@suse.cz>
      
      	* libgcov-profiler.c: Start from 1 in order to distinguish
      	functions which were seen and these that were not.
      
      From-SVN: r265454
      Martin Liska committed
    • re PR tree-optimization/87665 (gcc HEAD (svn: 265340) breaks elements on resize) · bf329927
      2018-10-24  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/87665
      	* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust
      	to reflect reality.
      
      	* gcc.dg/torture/pr87665.c: New testcase.
      
      From-SVN: r265452
      Richard Biener committed
    • 2018-10-24 François Dumont <fdumont@gcc.gnu.org> · 4b763dee
      	* include/debug/safe_unordered_container.h
      	(_Safe_unordered_container<>::_M_invalidate_locals): Take lambda
      	parameter type from local end variable.
      	(_Safe_unordered_container<>::_M_invalidate_all): Likewise.
      	* include/debug/unordered_map
      	(unordered_map<>::begin()): Use C++11 direct initialization.
      	(unordered_map<>::end()): Likewise.
      	(unordered_map<>::cbegin()): Likewise.
      	(unordered_map<>::cend()): Likewise.
      	(unordered_map<>::begin(size_type)): Likewise.
      	(unordered_map<>::end(size_type)): Likewise.
      	(unordered_map<>::cbegin(size_type)): Likewise.
      	(unordered_map<>::cend(size_type)): Likewise.
      	(unordered_map<>::emplace<>(_Args&&...)): Likewise.
      	(unordered_map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
      	(unordered_map<>::insert(const value_type&)): Likewise.
      	(unordered_map<>::insert(value_type&&)): Likewise.
      	(unordered_map<>::insert<>(_Pair&&)): Likewise.
      	(unordered_map<>::insert(const_iterator, const value_type&)): Likewise.
      	(unordered_map<>::insert(const_iterator, value_type&&)): Likewise.
      	(unordered_map<>::insert<>(const_iterator, _Pair&&)): Likewise.
      	(unordered_map<>::try_emplace<>(const key_type&, _Args&&...)): Likewise.
      	(unordered_map<>::try_emplace<>(key_type&&, _Args&&...)): Likewise.
      	(unordered_map<>::try_emplace<>(const_iterator, const key_type&,
      	_Args&&...)): Likewise.
      	(unordered_map<>::try_emplace<>(const_iterator, key_type&&,
      	_Args&&...)): Likewise.
      	(unordered_map<>::insert_or_assign<>(const key_type&, _Obj&&)): Likewise.
      	(unordered_map<>::insert_or_assign<>(key_type&&, _Obj&&)): Likewise.
      	(unordered_map<>::insert_or_assign<>(const_iterator, const key_type&,
      	_Obj&&)): Likewise.
      	(unordered_map<>::insert_or_assign<>(const_iterator, key_type&&,
      	_Obj&&)): Likewise.
      	(unordered_map<>::insert(note_type&&)): Likewise.
      	(unordered_map<>::find(const key_type&)): Likewise.
      	(unordered_map<>::equal_range(const key_type&)): Likewise.
      	(unordered_map<>::_M_extract): New.
      	(unordered_map<>::extract(const_iterator)): Use latter.
      	(unordered_map<>::extract(const key_type&)): Likewise.
      	(unordered_map<>::_M_erase): New.
      	(unordered_map<>::erase(const key_type&)): Use latter.
      	(unordered_map<>::erase(const_iterator)): Likewise.
      	(unordered_map<>::erase(iterator)): Likewise.
      	(unordered_map<>::_M_invalidate): New.
      	(unordered_map<>::erase(const_iterator, const_iterator)): Use latter.
      	(unordered_multimap<>::begin()): Use C++11 direct initialization.
      	(unordered_multimap<>::end()): Likewise.
      	(unordered_multimap<>::cbegin()): Likewise.
      	(unordered_multimap<>::cend()): Likewise.
      	(unordered_multimap<>::begin(size_type)): Likewise.
      	(unordered_multimap<>::end(size_type)): Likewise.
      	(unordered_multimap<>::cbegin(size_type)): Likewise.
      	(unordered_multimap<>::cend(size_type)): Likewise.
      	(unordered_multimap<>::emplace<>(_Args&&...)): Likewise.
      	(unordered_multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
      	(unordered_multimap<>::insert(const value_type&)): Likewise.
      	(unordered_multimap<>::insert(const_iterator, const value_type&)): Likewise.
      	(unordered_multimap<>::insert(const_iterator, value_type&&)): Likewise.
      	(unordered_multimap<>::insert<>(_Pair&&)): Likewise.
      	(unordered_multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
      	(unordered_multimap<>::insert(note_type&&)): Likewise.
      	(unordered_multimap<>::insert(const_iterator, note_type&&)): Likewise.
      	(unordered_multimap<>::find(const key_type&)): Likewise.
      	(unordered_multimap<>::equal_range(const key_type&)): Likewise.
      	(unordered_multimap<>::_M_extract): New.
      	(unordered_multimap<>::extract(const_iterator)): Use latter.
      	(unordered_multimap<>::extract(const key_type&)): Likewise.
      	(unordered_multimap<>::_M_erase): New.
      	(unordered_multimap<>::erase(const_iterator)): Likewise.
      	(unordered_multimap<>::erase(iterator)): Likewise.
      	(unordered_multimap<>::_M_invalidate): New.
      	(unordered_multimap<>::erase(const key_type&)): Use latter.
      	(unordered_multimap<>::erase(const_iterator, const_iterator)): Likewise.
      	* include/debug/unordered_set
      	(unordered_set<>::begin()): Use C++11 direct initialization.
      	(unordered_set<>::end()): Likewise.
      	(unordered_set<>::cbegin()): Likewise.
      	(unordered_set<>::cend()): Likewise.
      	(unordered_set<>::begin(size_type)): Likewise.
      	(unordered_set<>::end(size_type)): Likewise.
      	(unordered_set<>::cbegin(size_type)): Likewise.
      	(unordered_set<>::cend(size_type)): Likewise.
      	(unordered_set<>::emplace<>(_Args&&...)): Likewise.
      	(unordered_set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
      	(unordered_set<>::insert(const value_type&)): Likewise.
      	(unordered_set<>::insert(value_type&&)): Likewise.
      	(unordered_set<>::insert(const_iterator, const value_type&)): Likewise.
      	(unordered_set<>::insert(const_iterator, value_type&&)): Likewise.
      	(unordered_set<>::insert(note_type&&)): Likewise.
      	(unordered_set<>::insert(const_iterator, note_type&&)): Likewise.
      	(unordered_set<>::find(const key_type&)): Likewise.
      	(unordered_set<>::equal_range(const key_type&)): Likewise.
      	(unordered_set<>::_M_extract): New.
      	(unordered_set<>::extract(const_iterator)): Use latter.
      	(unordered_set<>::extract(const key_type&)): Likewise.
      	(unordered_set<>::_M_erase): New.
      	(unordered_set<>::erase(const key_type&)): Use latter.
      	(unordered_set<>::erase(const_iterator)): Likewise.
      	(unordered_set<>::erase(iterator)): Likewise.
      	(unordered_set<>::_M_invalidate): New.
      	(unordered_set<>::erase(const_iterator, const_iterator)): Use latter.
      	(unordered_multiset<>::begin()): Use C++11 direct initialization.
      	(unordered_multiset<>::end()): Likewise.
      	(unordered_multiset<>::cbegin()): Likewise.
      	(unordered_multiset<>::cend()): Likewise.
      	(unordered_multiset<>::begin(size_type)): Likewise.
      	(unordered_multiset<>::end(size_type)): Likewise.
      	(unordered_multiset<>::cbegin(size_type)): Likewise.
      	(unordered_multiset<>::cend(size_type)): Likewise.
      	(unordered_multiset<>::emplace<>(_Args&&...)): Likewise.
      	(unordered_multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
      	(unordered_multiset<>::insert(const value_type&)): Likewise.
      	(unordered_multiset<>::insert(const_iterator, const value_type&)): Likewise.
      	(unordered_multiset<>::insert(value_type&&)): Likewise.
      	(unordered_multiset<>::insert(const_iterator, value_type&&)): Likewise.
      	(unordered_multiset<>::insert(node_type&&)): Likewise.
      	(unordered_multiset<>::insert(const_iterator, node_type&&)): Likewise.
      	(unordered_multiset<>::find(const key_type&)): Likewise.
      	(unordered_multiset<>::equal_range(const key_type&)): Likewise.
      	(unordered_multiset<>::_M_extract): New.
      	(unordered_multiset<>::extract(const_iterator)): Use latter.
      	(unordered_multiset<>::extract(const key_type&)): Likewise.
      	(unordered_multiset<>::_M_erase): New.
      	(unordered_multiset<>::erase(const_iterator)): Likewise.
      	(unordered_multiset<>::erase(iterator)): Likewise.
      	(unordered_multiset<>::_M_invalidate): New.
      	(unordered_multiset<>::erase(const key_type&)): Use latter.
      	(unordered_multiset<>::erase(const_iterator, const_iterator)): Likewise.
      
      From-SVN: r265451
      François Dumont committed
    • cstddef: Add versioned namespace. · a01fc83f
      2018-10-24  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/c_global/cstddef: Add versioned namespace.
      
      From-SVN: r265450
      François Dumont committed
    • Daily bump. · d21dad98
      From-SVN: r265448
      GCC Administrator committed
  3. 23 Oct, 2018 16 commits