- Oct 24, 2018
-
-
Michael Meissner authored
[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
-
Jakub Jelinek authored
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
-
Martin Sebor authored
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 authored
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
-
Richard Biener authored
2018-10-24 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state. From-SVN: r265465
-
William Schmidt authored
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
-
Martin Liska authored
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
-
Richard Biener authored
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
-
Jan Hubicka authored
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
-
Ilya Leoshkevich authored
ChangeLog: 2018-10-24 Ilya Leoshkevich <iii@linux.ibm.com> * MAINTAINERS (Write After Approval): Add myself. From-SVN: r265459
-
Ilya Leoshkevich authored
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
-
Richard Biener authored
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
-
Rainer Orth authored
* 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
-
Richard Biener authored
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
-
Martin Liska authored
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
-
Richard Biener authored
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
-
François Dumont authored
* 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 authored
2018-10-24 François Dumont <fdumont@gcc.gnu.org> * include/c_global/cstddef: Add versioned namespace. From-SVN: r265450
-
GCC Administrator authored
From-SVN: r265448
-
- Oct 23, 2018
-
-
Jeff Law authored
* config/h8300/h8300.c (h8300_expand_prologue): Fix stm generation for H8/S. From-SVN: r265444
-
Iain Buclaw authored
2018-10-23 Iain Buclaw <ibuclaw@gdcproject.org> * MAINTAINERS (Write After Approval): Remove myself. From-SVN: r265442
-
Iain Buclaw authored
2018-10-23 Iain Buclaw <ibuclaw@gdcproject.org> * MAINTAINERS: Add myself as D front-end and libphobos maintainer. From-SVN: r265441
-
Ian Lance Taylor authored
PR go/87661 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 From-SVN: r265439
-
Jakub Jelinek authored
* g++.dg/cpp2a/lambda-this3.C: Limit dg-bogus directives to c++17_down only. Add expected warnings and messages for c++2a. From-SVN: r265430
-
Jonathan Wakely authored
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. From-SVN: r265423
-
Richard Biener authored
2018-10-23 Richard Biener <rguenther@suse.de> * 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. From-SVN: r265422
-
Richard Biener authored
2018-10-23 Richard Biener <rguenther@suse.de> 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. From-SVN: r265421
-
Richard Earnshaw authored
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. From-SVN: r265420
-
Richard Biener authored
2018-10-23 Richard Biener <rguenther@suse.de> PR tree-optimization/87700 * tree-ssa-copy.c (set_copy_of_val): Fix change detection logic. * gcc.dg/torture/pr87700.c: New testcase. From-SVN: r265418
-
Jakub Jelinek authored
PR target/87674 * 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. From-SVN: r265416
-
Richard Biener authored
2018-10-23 Richard Biener <rguenther@suse.de> * tree-vect-stmts.c (vect_analyze_stmt): Fix typo in comment. From-SVN: r265415
-
Richard Biener authored
2018-10-23 Richard Biener <rguenther@suse.de> PR tree-optimization/86144 * tree-vect-stmts.c (vect_analyze_stmt): Prefer -mveclibabi over simd attribute. From-SVN: r265414
-
Richard Biener authored
2018-10-23 Richard Biener <rguenther@suse.de> 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. From-SVN: r265413
-
Paul Thomas authored
2018-10-23 Paul Thomas <pault@gcc.gnu.org> 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. From-SVN: r265412
-
Ian Lance Taylor authored
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 From-SVN: r265409
-
GCC Administrator authored
From-SVN: r265408
-
- Oct 22, 2018
-
-
Paul Koning authored
* symtab.c (symtab_node::increase_alignment): Correct max alignment check. From-SVN: r265404
-
Yury Gribov authored
2018-10-22 Yury Gribov <tetra2005@gmail.com> 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. From-SVN: r265399
-
Segher Boessenkool authored
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. From-SVN: r265398
-
Marek Polacek authored
PR testsuite/87694 * g++.dg/concepts/memfun-err.C: Make it a compile test. From-SVN: r265397
-