aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-10-24[gcc]Michael Meissner
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265471 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-24 PR c++/86288Jakub Jelinek
* 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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265470 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-24gcc/ChangeLog:Martin Sebor
* doc/extend.texi (nonnull): List no-argument form. Reference -fno-delete-null-pointer-checks and -fisolate-erroneous-paths-attribute. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265469 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-24PR c++/84851 - missing -Wclass-memaccess for a memcpy in a copy ctor with a ↵Martin Sebor
non-trivial member 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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265467 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-242018-10-24 Richard Biener <rguenther@suse.de>Richard Biener
* tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265465 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-242018-10-24 Bill Schmidt <wschmidt@linux.ibm.com>Bill Schmidt
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265464 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-24Switch conversion: support any ax + b transformation (PR ↵Martin Liska
tree-optimization/84436). 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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265463 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-24Return hash of ADDR_EXPR if its argument is CONSTANT_CLASS_P.Richard Biener
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265462 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-24 * ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL;Jan Hubicka
it is wrong for forward declarations. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265460 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-24Add myself to MAINTAINERSIlya Leoshkevich
ChangeLog: 2018-10-24 Ilya Leoshkevich <iii@linux.ibm.com> * MAINTAINERS (Write After Approval): Add myself. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265459 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-24S/390: Fix ICE in s390_check_qrst_address ()Ilya Leoshkevich
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265458 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-242018-10-24 Richard Biener <rguenther@suse.de>Richard Biener
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265457 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-24Disable string merging with alignment > 1 before Solaris 11.4/SPARCRainer Orth
* 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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265456 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-242018-10-24 Richard Biener <rguenther@suse.de>Richard Biener
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265455 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-24Remove reduntant dumps and make tp_first_run dump more compact.Martin Liska
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265454 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-242018-10-24 Richard Biener <rguenther@suse.de>Richard Biener
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265452 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-242018-10-24 François Dumont <fdumont@gcc.gnu.org>François Dumont
* 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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265451 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-242018-10-24 François Dumont <fdumont@gcc.gnu.org>François Dumont
* include/c_global/cstddef: Add versioned namespace. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265450 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-24Daily bump.GCC Administrator
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265448 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-23 * config/h8300/h8300.c (h8300_expand_prologue): Fix stm generationJeff Law
for H8/S. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265444 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-232018-10-23 Iain Buclaw <ibuclaw@gdcproject.org>Iain Buclaw
* MAINTAINERS (Write After Approval): Remove myself. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265442 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-232018-10-23 Iain Buclaw <ibuclaw@gdcproject.org>Iain Buclaw
* MAINTAINERS: Add myself as D front-end and libphobos maintainer. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265441 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-23 PR go/87661Ian Lance Taylor
runtime: remove unused armArch, hwcap and hardDiv After CL 140057 these are only written but never read in gccgo. Reviewed-on: https://go-review.googlesource.com/c/141077 git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265439 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-23 * g++.dg/cpp2a/lambda-this3.C: Limit dg-bogus directives to c++17_downJakub Jelinek
only. Add expected warnings and messages for c++2a. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265430 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-23PR libstdc++/87704 fix unique_ptr(nullptr_t) constructorsJonathan Wakely
Using a delegating constructor to implement these constructors means that they instantiate the destructor, which requires the element_type to be complete. In C++11 and C++14 they were specified to be delegating, but that was changed as part of LWG 2801 so in C++17 they don't require a complete type (as was intended all along). PR libstdc++/87704 * include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do not delegate to default constructor. (unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise. * testsuite/20_util/unique_ptr/cons/incomplete.cc: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265423 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-232018-10-23 Richard Biener <rguenther@suse.de>Richard Biener
* tree-vrp.c (add_assert_info): Guard dump_printf with dump_enabled_p. * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::record_ranges_from_incoming_edge): Use value_range::ignore_equivs_equal_p. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265422 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-232018-10-23 Richard Biener <rguenther@suse.de>Richard Biener
PR tree-optimization/87105 PR tree-optimization/87608 * passes.def (pass_all_early_optimizations): Add early phi-opt after dce. * tree-ssa-phiopt.c (value_replacement): Ignore NOPs and predicts in addition to debug stmts. (tree_ssa_phiopt_worker): Add early_p argument, do only min/max and abs replacement early. * tree-cfg.c (gimple_empty_block_p): Likewise. * g++.dg/tree-ssa/phiopt-1.C: New testcase. g++.dg/vect/slp-pr87105.cc: Likewise. * g++.dg/tree-ssa/pr21463.C: Scan phiopt2 because this testcase relies on phiprop run before. * g++.dg/tree-ssa/pr30738.C: Likewise. * g++.dg/tree-ssa/pr57380.C: Likewise. * gcc.dg/tree-ssa/pr84859.c: Likewise. * gcc.dg/tree-ssa/pr45397.c: Scan phiopt2 because phiopt1 is confused by copies in the IL left by EVRP. * gcc.dg/tree-ssa/phi-opt-5.c: Likewise, this time confused by predictors. * gcc.dg/tree-ssa/phi-opt-12.c: Scan phiopt2. * gcc.dg/pr24574.c: Likewise. * g++.dg/tree-ssa/pr86544.C: Scan phiopt4. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265421 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-23[arm] Update default CPUs during configureRichard Earnshaw
There are a couple of places in config.gcc where the default CPU is still arm6, but that was removed as a supported CPU earlier this year. This patch fixes those entries. The default CPU for configurations that do not explicitly set a default is now arm7tdmi (so assumes thumb is available). Given that StrongArm is on the deprecated list, this is a better default than we had previously. For NetBSD the default is StrongArm; this is the only remaining port that uses the old ABI and really still carries support for non-thumb based targets. PR target/86383 * config.gcc (arm*-*-netbsdelf*): Default to StrongARM if no CPU specified to configure. (arm*-*-*): Use ARM7TDMI as the target CPU if no default provided. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265420 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-232018-10-23 Richard Biener <rguenther@suse.de>Richard Biener
PR tree-optimization/87700 * tree-ssa-copy.c (set_copy_of_val): Fix change detection logic. * gcc.dg/torture/pr87700.c: New testcase. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265418 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-23 PR target/87674Jakub Jelinek
* config/i386/avx512vlintrin.h (_mm_mask_mullo_epi32): Change type of second argument from __mmask16 to __mmask8. * config/i386/avx512vlbwintrin.h (_mm_mask_packus_epi32, _mm_mask_packs_epi32): Likewise. * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i64scatter_ps): Likewise. (_mm512_mask_prefetch_i64scatter_pd): Likewise. Formatting fix. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265416 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-232018-10-23 Richard Biener <rguenther@suse.de>Richard Biener
* tree-vect-stmts.c (vect_analyze_stmt): Fix typo in comment. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265415 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-232018-10-23 Richard Biener <rguenther@suse.de>Richard Biener
PR tree-optimization/86144 * tree-vect-stmts.c (vect_analyze_stmt): Prefer -mveclibabi over simd attribute. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265414 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-232018-10-23 Richard Biener <rguenther@suse.de>Richard Biener
PR tree-optimization/87693 * tree-ssa-threadedge.c (thread_around_empty_blocks): Handle the case we do not find the taken edge. * gcc.dg/torture/pr87693.c: New testcase. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265413 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-232018-10-23 Paul Thomas <pault@gcc.gnu.org>Paul Thomas
PR fortran/85603 * frontend-passes.c (get_len_call): New function to generate a call to intrinsic LEN. (create_var): Use this to make length expressions for variable rhs string lengths. Clean up some white space issues. 2018-10-23 Paul Thomas <pault@gcc.gnu.org> PR fortran/85603 * gfortran.dg/deferred_character_23.f90 : Check reallocation is occurring as it should and a regression caused by version 1 of this patch. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265412 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-23 compiler: export indexed type data, read unexported types lazilyIan Lance Taylor
Introduce a new "types" command to the export data to record the number of types and the size of their export data. It is immediately followed by new "type" commands that can be indexed. Parse all the exported types immediately so that we register them, but parse other type data only as needed. Reviewed-on: https://go-review.googlesource.com/c/143022 git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265409 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-23Daily bump.GCC Administrator
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265408 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-22 * symtab.c (symtab_node::increase_alignment): Correct maxPaul Koning
alignment check. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265404 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-222018-10-22 Yury Gribov <tetra2005@gmail.com>Yury Gribov
gcc/ PR tree-optimization/87633 * match.pd: Do not generate unordered integer comparisons. gcc/testsuite/ PR tree-optimization/87633 * g++.dg/pr87633.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265399 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-22combine: Do not combine moves from hard registersSegher Boessenkool
On most targets every function starts with moves from the parameter passing (hard) registers into pseudos. Similarly, after every call there is a move from the return register into a pseudo. These moves usually combine with later instructions (leaving pretty much the same instruction, just with a hard reg instead of a pseudo). This isn't a good idea. Register allocation can get rid of unnecessary moves just fine, and moving the parameter passing registers into many later instructions tends to prevent good register allocation. This patch disallows combining moves from a hard (non-fixed) register. This also avoid the problem mentioned in PR87600 #c3 (combining hard registers into inline assembler is problematic). Because the register move can often be combined with other instructions *itself*, for example for setting some condition code, this patch adds extra copies via new pseudos after every copy-from-hard-reg. On some targets this reduces average code size. On others it increases it a bit, 0.1% or 0.2% or so. (I tested this on all *-linux targets). PR rtl-optimization/87600 * combine.c: Add include of expr.h. (cant_combine_insn_p): Do not combine moves from any hard non-fixed register to a pseudo. (make_more_copies): New function, add a copy to a new pseudo after the moves from hard registers into pseudos. (rest_of_handle_combine): Declare rebuild_jump_labels_after_combine later. Call make_more_copies. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265398 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-22 PR testsuite/87694Marek Polacek
* g++.dg/concepts/memfun-err.C: Make it a compile test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265397 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-22Don't double-count early-clobber matches.Andrew Stubbs
Given a pattern with a number of operands: (match_operand 0 "" "=&v") (match_operand 1 "" " v0") (match_operand 2 "" " v0") (match_operand 3 "" " v0") GCC will currently increment "reject" once, for operand 0, and then decrement it once for each of the other operands, ending with reject == -2 and an assertion failure. If there's a conflict then it might try to decrement reject yet again. Incidentally, what these patterns are trying to achieve is an allocation in which operand 0 may match one of the other operands, but may not partially overlap any of them. Ideally there'd be a better way to do this. In any case, it will affect any pattern in which multiple operands may (or must) match an early-clobber operand. The patch only allows a reject-- when one has not already occurred, for that operand. 2018-10-22 Andrew Stubbs <ams@codesourcery.com> gcc/ * lra-constraints.c (process_alt_operands): New local array, matching_early_clobber. Check matching_early_clobber before decrementing reject, and set matching_early_clobber after. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265393 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-22rs6000: Handle print_operand_address for unexpected RTL (PR87598)Segher Boessenkool
As the PR shows, the user can force this to be called on at least some RTL that is not a valid address. Most targets treat this as if the user knows best; let's do the same. PR target/87598 * config/rs6000/rs6000.c (print_operand_address): For unexpected RTL call output_addr_const and hope for the best. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265392 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-222018-10-22 Richard Biener <rguenther@suse.de>Richard Biener
* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::record_ranges_from_incoming_edge): Be smarter about what ranges to use. * tree-vrp.c (add_assert_info): Dump here. (register_edge_assert_for_2): Instead of here at multiple but not all places. * gcc.dg/tree-ssa/evrp12.c: New testcase. * gcc.dg/predict-6.c: Adjust. * gcc.dg/tree-ssa/vrp33.c: Disable EVRP. * gcc.dg/tree-ssa/vrp02.c: Likewise. * gcc.dg/tree-ssa/cunroll-9.c: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265391 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-222018-10-22 Steven Bosscher <steven@gcc.gnu.org>Steven Bosscher
Richard Biener <rguenther@suse.de> * bitmap.h: Update data structure documentation, including a description of bitmap views as either linked-lists or splay trees. (struct bitmap_element_def): Update comments for splay tree bitmaps. (struct bitmap_head_def): Likewise. (bitmap_list_view, bitmap_tree_view): New prototypes. (bitmap_initialize_stat): Initialize a bitmap_head's indx and tree_form fields. (bmp_iter_set_init): Assert the iterated bitmaps are in list form. (bmp_iter_and_init, bmp_iter_and_compl_init): Likewise. * bitmap.c (bitmap_elem_to_freelist): Unregister overhead of a released bitmap element here. (bitmap_element_free): Remove. (bitmap_elt_clear_from): Work on splay tree bitmaps. (bitmap_list_link_element): Renamed from bitmap_element_link. Move this function similar ones such that linked-list bitmap implementation functions are grouped. (bitmap_list_unlink_element): Renamed from bitmap_element_unlink, and moved for grouping. (bitmap_list_insert_element_after): Renamed from bitmap_elt_insert_after, and moved for grouping. (bitmap_list_find_element): New function spliced from bitmap_find_bit. (bitmap_tree_link_left, bitmap_tree_link_right, bitmap_tree_rotate_left, bitmap_tree_rotate_right, bitmap_tree_splay, bitmap_tree_link_element, bitmap_tree_unlink_element, bitmap_tree_find_element): New functions for splay-tree bitmap implementation. (bitmap_element_link, bitmap_element_unlink, bitmap_elt_insert_after): Renamed and moved, see above entries. (bitmap_tree_listify_from): New function to convert part of a splay tree bitmap to a linked-list bitmap. (bitmap_list_view): Convert a splay tree bitmap to linked-list form. (bitmap_tree_view): Convert a linked-list bitmap to splay tree form. (bitmap_find_bit): Remove. (bitmap_clear, bitmap_clear_bit, bitmap_set_bit, bitmap_single_bit_set_p, bitmap_first_set_bit, bitmap_last_set_bit): Handle splay tree bitmaps. (bitmap_copy, bitmap_count_bits, bitmap_and, bitmap_and_into, bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into, bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior, bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p, bitmap_intersect_p, bitmap_intersect_compl_p, bitmap_ior_and_compl, bitmap_ior_and_compl_into, bitmap_set_range, bitmap_clear_range, bitmap_hash): Reject trying to act on splay tree bitmaps. Make corresponding changes to use linked-list specific bitmap_element manipulation functions as applicable for efficiency. (bitmap_tree_to_vec): New function. (debug_bitmap_elt_file): New function split out from ... (debug_bitmap_file): ... here. Handle splay tree bitmaps. (bitmap_print): Likewise. PR tree-optimization/63155 * tree-ssa-propagate.c (ssa_prop_init): Use tree-view for the SSA edge worklists. * tree-ssa-coalesce.c (coalesce_ssa_name): Populate used_in_copies in tree-view. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265390 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-22Index: gcc/config/rs6000/emmintrin.hBill Schmidt
=================================================================== --- gcc/config/rs6000/emmintrin.h (revision 265318) +++ gcc/config/rs6000/emmintrin.h (working copy) @@ -85,7 +85,7 @@ typedef double __m128d __attribute__ ((__vector_si typedef long long __m128i_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1))); typedef double __m128d_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1))); -/* Define two value permute mask */ +/* Define two value permute mask. */ #define _MM_SHUFFLE2(x,y) (((x) << 1) | (y)) /* Create a vector with element 0 as F and the rest zero. */ @@ -201,7 +201,7 @@ _mm_store_pd (double *__P, __m128d __A) extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_storeu_pd (double *__P, __m128d __A) { - *(__m128d *)__P = __A; + *(__m128d_u *)__P = __A; } /* Stores the lower DPFP value. */ @@ -2175,7 +2175,7 @@ _mm_maskmoveu_si128 (__m128i __A, __m128i __B, cha { __v2du hibit = { 0x7f7f7f7f7f7f7f7fUL, 0x7f7f7f7f7f7f7f7fUL}; __v16qu mask, tmp; - __m128i *p = (__m128i*)__C; + __m128i_u *p = (__m128i_u*)__C; tmp = (__v16qu)_mm_loadu_si128(p); mask = (__v16qu)vec_cmpgt ((__v16qu)__B, (__v16qu)hibit); Index: gcc/config/rs6000/xmmintrin.h =================================================================== --- gcc/config/rs6000/xmmintrin.h (revision 265318) +++ gcc/config/rs6000/xmmintrin.h (working copy) @@ -85,6 +85,10 @@ vector types, and their scalar components. */ typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); +/* Unaligned version of the same type. */ +typedef float __m128_u __attribute__ ((__vector_size__ (16), __may_alias__, + __aligned__ (1))); + /* Internal data types for implementing the intrinsics. */ typedef float __v4sf __attribute__ ((__vector_size__ (16))); @@ -172,7 +176,7 @@ _mm_store_ps (float *__P, __m128 __A) extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_storeu_ps (float *__P, __m128 __A) { - *(__m128 *)__P = __A; + *(__m128_u *)__P = __A; } /* Store four SPFP values in reverse order. The address must be aligned. */ git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265389 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-22Revert r263947.Martin Liska
2018-10-22 Martin Liska <mliska@suse.cz> PR tree-optimization/87686 Revert 2018-08-29 Martin Liska <mliska@suse.cz> * tree-switch-conversion.c (switch_conversion::expand): Strenghten assumption about gswitch statements. 2018-10-22 Martin Liska <mliska@suse.cz> PR tree-optimization/87686 * g++.dg/tree-ssa/pr87686.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265388 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-22Iterate -std=c++-* in i386.exp.Jakub Jelinek
2018-10-22 Jakub Jelinek <jakub@redhat.com> * g++.target/i386/i386.exp: Use g++-dg-runtest to iterate properly -std= options. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265387 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-22Simplify comparison of attrs in IPA ICF.Martin Liska
2018-10-22 Martin Liska <mliska@suse.cz> * ipa-icf.c (sem_item::compare_attributes): Remove. (sem_item::compare_referenced_symbol_properties): Use attribute_list_equal instead. (sem_function::equals_wpa): Likewise. * ipa-icf.h: Remove compare_attributes. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265386 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-222018-10-22 Richard Biener <rguenther@suse.de>Richard Biener
* gcc.dg/graphite/scop-4.c: Avoid out-of-bound access. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265385 138bc75d-0d04-0410-961f-82ee72b054a4
2018-10-22 * gcc-interface/utils.c (unchecked_convert): Use local variables forEric Botcazou
the biased and reverse SSO attributes of both types. Further extend the processing of integral types in the presence of reverse SSO to all scalar types. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@265381 138bc75d-0d04-0410-961f-82ee72b054a4