aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-05-17re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with ↵Jakub Jelinek2-0/+898
KIND=/BACK=) PR fortran/54613 * gfortran.map (GFORTRAN_9.2): Export _gfortran_{,m,s}findloc{0,1}_r10. * Makefile.am (i_findloc0_c): Add $(srcdir)/generated/findloc0_r10.c. (i_findloc1_c): Add $(srcdir)/generated/findloc1_r10.c. * Makefile.in: Regenerated. * generated/findloc0_r10.c: Generated. * generated/findloc1_r10.c: Generated. From-SVN: r271336
2019-05-17re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with ↵Jakub Jelinek4-2/+38
KIND=/BACK=) PR fortran/54613 * gfortran.map (GFORTRAN_9.2): Export _gfortran_{,m,s}findloc{0,1}_r10. * Makefile.am (i_findloc0_c): Add $(srcdir)/generated/findloc0_r10.c. (i_findloc1_c): Add $(srcdir)/generated/findloc1_r10.c. * Makefile.in: Regenerated. * generated/findloc0_r10.c: Generated. * generated/findloc1_r10.c: Generated. From-SVN: r271335
2019-05-17re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with ↵Jakub Jelinek2-0/+12
KIND=/BACK=) PR fortran/54613 * gfortran.map (GFORTRAN_9.2): New symbol version, export _gfortran_{,m,s}findloc0_i2 in it. From-SVN: r271334
2019-05-17mips.c (mips_dwarf_frame_reg_mode): Replace TARGET_FLOAT64 with ↵Dragan Mladjenovic9-1/+105
!TARGET_FLOAT32, thus handling both fp64 and fpxx modes. * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64 and fpxx modes. * g++.dg/eh/o32-fp.C: New. * gcc.target/mips/dwarfregtable-1.c: New. * gcc.target/mips/dwarfregtable-2.c: New. * gcc.target/mips/dwarfregtable-3.c: New. * gcc.target/mips/dwarfregtable-4.c: New. * gcc.target/mips/dwarfregtable.h: New. From-SVN: r271331
2019-05-172019-05-17 François Dumont <fdumont@gcc.gnu.org>François Dumont4-193/+320
* include/bits/stl_deque.h (_Deque_iterator<>::__ptr_to): Remove, use std::__ptr_rebind. (_Deque_base(_Deque_base&&, const allocator_type&)): New. (_Deque_base::_Deque_impl_data): New. (_Deque_base::_Deque_impl): Inherit latter. (_Deque_base::_Deque_impl::_M_swap_data): Move... (_Deque_base::_Deque_impl_data::_M_swap_data): ... here. (_Deque_base::_Deque_impl()): Add noexcept qualification. (_Deque_base::_Deque_impl(_Deque_impl&&, _Tp_alloc_type&&)): New. (_Deque_base::_Deque_impl::_M_get_Tp_allocator()): Remove static_cast. (deque<>::deque()): Default. (deque<>::deque(deque&&)): Default. (deque<>::deque(deque&&, const allocator_type&, false_type)): New. (deque<>::deque(deque&&, const allocator_type&, true_type)): New. (deque<>::deque(deque&&, const allocator_type&)): Delegate to latters. (deque<>::deque<_It>(_It, _It, const allocator_type&)): Use _M_range_initialize. (deque<>::assign<_It>(_It, _It)): Use _M_assign_aux. (deque<>::resize(size_type, const value_type&)): Share a single implementation. (deque<>::insert<_It>(const_iterator, _It, _It)): Use _M_range_insert_aux. [__cplusplus >= 201103L](_M_initialize_dispatch): Remove. [__cplusplus >= 201103L](_M_assign_dispatch): Remove. [__cplusplus >= 201103L](_M_insert_dispatch): Remove. * testsuite/23_containers/deque/allocator/default_init.cc: New. From-SVN: r271330
2019-05-17x86-64: Add vector vararg ABI testsH.J. Lu4-0/+324
We can scan stack for return address to get vector arguments passed on stack. Tested on Linux/x86-64 and Linux/x32. * gcc.target/x86_64/abi/test_varargs-m128.c: New file. * gcc.target/x86_64/abi/avx/test_varargs-m256.c: Likewise. * gcc.target/x86_64/abi/avx512f/test_varargs-m512.c: Likewise. From-SVN: r271329
2019-05-17i386: Enable MMX intrinsics without SSE/SSE2/SSSE3H.J. Lu6-4/+44
Since MMX intrinsics are marked with SSE/SSE2/SSSE3 for SSE emulation, enable them without SSE/SSE2/SSSE3 if MMX is enabled. Restore TARGET_3DNOW check, which was changed to TARGET_3DNOW_A by revision 271235. gcc/ PR target/90497 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX intrinsics without SSE/SSE2/SSSE3. * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW check. (*mmx_uavgv8qi3): Likewise. gcc/testsuite/ PR target/90497 * gcc.target/i386/pr90497-1.c: New test. * gcc.target/i386/pr90497-2.c: Likewise. From-SVN: r271328
2019-05-17soft-fp: Update soft-fp from glibcH.J. Lu90-98/+111
This patch is updating all soft-fp from glibc, most changes are copyright years update, and changes other than years update are * soft-fp/extenddftf2.c: Use "_FP_W_TYPE_SIZE < 64" to check if 4_FP_W_TYPEs are used for IEEE quad precision. * soft-fp/extendhftf2.c: Likewise. * soft-fp/extendsftf2.c: Likewise. * soft-fp/extendxftf2.c: Likewise. * soft-fp/trunctfdf2.c: Likewise. * soft-fp/trunctfhf2.c: Likewise. * soft-fp/trunctfsf2.c: Likewise. * soft-fp/trunctfxf2.c: Likewise. * config/rs6000/ibm-ldouble.c: Likewise. From-SVN: r271327
2019-05-17PR libstdc++/90246 Improve text of std::variant exceptions and assertionsJonathan Wakely2-16/+36
PR libstdc++/90246 * include/std/variant (holds_alternative, get, get_if): Improve static assertion messages. (bad_variant_access::bad_variant_access()): Change default message. (__throw_bad_variant_access(bool)): New overload. (get): Use new overload. (visit, visit<R>): Improve exception message. From-SVN: r271326
2019-05-17Fix std::variant test for ILP32 targetsJonathan Wakely3-1/+24
* testsuite/20_util/variant/compile.cc: Fix narrowing test for ILP32 targets. Add more cases from P0608R3. * testsuite/20_util/variant/run.cc: Add more cases from P0608R3. From-SVN: r271325
2019-05-17Fix uses of non-reserved names for template parametersJonathan Wakely7-14/+158
* include/bits/random.h (seed_seq::param): Fix non-reserved name. * include/experimental/type_traits (is_detected_exact) (is_detected_exact_v): Likewise. * include/pstl/execution_defs.h (is_execution_policy) (is_execution_policy_v, __enable_if_execution_policy): Likewise. * include/pstl/execution_impl.h (__policy_traits): Likewise. * testsuite/17_intro/names.cc: Check for more non-reserved names. * testsuite/experimental/names.cc: New test. From-SVN: r271324
2019-05-17PR libstdc++/85965 move is_invocable assertions againJonathan Wakely14-33/+101
This is another attempt to reduce how often the assertions are evaluated, so that code which doesn't try to use the function objects doesn't need them to be invocable. For _Rb_tree we access the _M_key_compare object directly, so can't put the assertions in an accessor function for it. However, every invocation of _M_key_compare is accompanied by a use of _S_key, so the assertions can be put in there. For _Hashtable there are member functions that are consistently used to obtain a hash code or test for equality, so the assertions can go in those members. PR libstdc++/85965 * include/bits/hashtable.h (_Hashtable::~_Hashtable()): Remove static assertions from the destructor. * include/bits/hashtable_policy.h (_Hash_code_base::_M_hash_code): Move static_assert for hash function to here. (_Hash_table_base::_M_equals): Move static_assert for equality predicate to here. * include/bits/stl_tree.h (_Rb_tree::_S_value(_Const_Link_type)): Remove. (_Rb_tree::_S_key(_Const_Link_type)): Move assertions here. Access the value directly instead of calling _S_value. (_Rb_tree::_S_value(_Const_Base_ptr)): Remove. (_Rb_tree::_S_key(_Const_Base_ptr)): Do downcast and forward to _S_key(_Const_Link_type). * testsuite/23_containers/set/85965.cc: Check construction, destruction, assignment and size() do not trigger the assertions. * testsuite/23_containers/unordered_set/85965.cc: Likewise. * testsuite/23_containers/map/48101_neg.cc: Call find and adjust expected errors. * testsuite/23_containers/multimap/48101_neg.cc: Likewise. * testsuite/23_containers/multiset/48101_neg.cc: Likewise. * testsuite/23_containers/set/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise. From-SVN: r271323
2019-05-17compiler: use SHA1-hash for symname for long gcbits symbolsIan Lance Taylor2-10/+32
The current scheme used by the compiler for "gcbits" symbols involves generating a symbol name based on a 32-char encoding of the bits data. This scheme works well in most cases but can generate very long symbol names in rare cases. To help avoid such long symbol names, switch to a different encoding scheme based on the SHA1 digest of the payload if the symbol size would be too large. Fixes golang/go#32083. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/177598 From-SVN: r271322
2019-05-17S/390: Fix larl/PIC test case.Robin Dapp3-1/+19
This patch adds -march=z900 to a test case that expects larl for loading a value via the GOT. On z10 and later, lgrl is used which is tested in a new, separate test case. gcc/testsuite/ChangeLog: 2019-05-17 Robin Dapp <rdapp@linux.ibm.com> * gcc.target/s390/global-array-element-pic.c: Add -march=z900. * gcc.target/s390/global-array-element-pic2.c: New test for z10+. From-SVN: r271321
2019-05-17gimple-parser.c (c_parser_gimple_statement): Handle __VEC_PERM.Richard Biener6-3/+99
2019-05-17 Richard Biener <rguenther@suse.de> c/ * gimple-parser.c (c_parser_gimple_statement): Handle __VEC_PERM. (c_parser_gimple_unary_expression): Likewise. (c_parser_gimple_parentized_ternary_expression): New function. * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping VEC_PERM_EXPR as __VEC_PERM with -gimple. * gcc.dg/gimplefe-41.c: New testcase. From-SVN: r271320
2019-05-17re PR tree-optimization/90106 (builtin sqrt() ignoring libm's sqrt call result)Jun Ma2-0/+16
PR tree-optimization/90106 * gcc.dg/cdce3.c: New test. From-SVN: r271319
2019-05-17S/390: Fix vec_sldw builtinAndreas Krebbel4-9/+75
The builtin was wired up to the wrong pattern. Fixed with this patch. gcc/ChangeLog: 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com> * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the vec_sldw insn pattern. gcc/testsuite/ChangeLog: 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com> * gcc.target/s390/zvector/vec-sldw.c: New test. From-SVN: r271318
2019-05-17Fix __invoke_r<void> to be valid in C++11Jonathan Wakely2-1/+5
* include/bits/invoke.h [__cplusplus < 201703L] (__invoke_r<void>): Use _GLIBCXX14_CONSTEXPR because void functions cannot be constexpr in C++11. From-SVN: r271317
2019-05-17Add missing piece of P0777R1 and update C++20 status docsJonathan Wakely7-27/+35
* doc/xml/manual/status_cxx2020.xml: Update P0608R3, P0777R1, and P1165R1 entries. * doc/html/*: Regenerate. * include/std/tuple (make_from_tuple): Use remove_reference_t instead of decay_t (P0777R1). From-SVN: r271316
2019-05-17ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.Richard Biener2-4/+7
2019-05-17 Richard Biener <rguenther@suse.de> * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree. From-SVN: r271315
2019-05-17Handle a location with NULL as a file (PR driver/90496)Martin Liska1-1/+1
2019-05-17 Martin Liska <mliska@suse.cz> PR driver/90496 * toplev.c (output_stack_usage): With LTO and sanitizer it happens that a global ctor (_GLOBAL__sub_I_00099_0_main) has no file location. From-SVN: r271313
2019-05-17Handle a location with NULL as a file (PR driver/90495)Martin Liska2-1/+8
2019-05-17 Martin Liska <mliska@suse.cz> PR driver/90495 * toplev.c (output_stack_usage): With LTO and sanitizer it happens that a global ctor (_GLOBAL__sub_I_00099_0_main) has no file location. From-SVN: r271312
2019-05-17Remove a test-case that leads to a huge stack (and file) allocation (PR ↵Martin Liska2-17/+5
middle-end/90478). 2019-05-17 Martin Liska <mliska@suse.cz> PR middle-end/90478 * gcc.dg/tree-ssa/pr90478-2.c: Remove. From-SVN: r271311
2019-05-17re PR go/90482 (Many 32-bit Solaris/SPARC tests FAIL with SIGBUS)Ian Lance Taylor5-19/+42
PR go/90482 compiler: make value method of direct interface type takes pointer Currently, a value method of a direct interface type takes the value of the receiver, which is pointer shaped, as the first parameter. When this method is called through interface, we actually pass the interface data as a pointer. On most platforms this is ok, as the underlying calling convention is the same, except that on SPARC32, the calling convention is actually different. This CL changes the method function actually takes a pointer. The function will convert the pointer to the pointer-shaped receiver type (a no-op conversion from machine code's aspect). For a direct call, in the caller we convert the receiver to a pointer (also no-op conversion) before invoking the method. For an interface call, we pass the pointer as before. This way, it is consistent that we always pass a pointer. Hopefully this fixes SPARC32 build and https://gcc.gnu.org/PR90482. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/177758 From-SVN: r271310
2019-05-17Move from state of allocators (LWG2593)François Dumont18-57/+65
2019-05-17 François Dumont <fdumont@gcc.gnu.org> Move from state of allocators (LWG2593) * include/bits/stl_deque.h (_Deque_base(_Deque_base&&, false_type)): Remove. (_Deque_base(_Deque_base&&, true_type)): Remove. (_Deque_base(_Deque_base&&)): Adapt. (_Deque_base::_M_move_impl()): Remove. * testsuite/util/testsuite_allocator.h (propagating_allocator(propagating_allocator&&)): Preserve move from state. * testsuite/23_containers/deque/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/forward_list/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/list/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/map/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/multimap/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/multiset/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/set/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_map/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_multimap/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_multiset/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_set/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/vector/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/vector/bool/allocator/move_assign.cc (test02): Adapt. * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test02): Adapt. * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc (test02): Adapt. From-SVN: r271309
2019-05-17compiler: intrinsify runtime/internal/atomic functionsCherry Zhang6-1/+390
Currently runtime/internal/atomic functions are implemented in C using C compiler intrinsics. This CL lets the Go frontend recognize these functions and turn them into intrinsics directly. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/176918 * go-gcc.cc (Gcc_backend::Gcc_backend): Define atomic builtins. From-SVN: r271308
2019-05-17Daily bump.GCC Administrator1-1/+1
From-SVN: r271307
2019-05-16compiler: add intrinsics for runtime/internal/sys functionsIan Lance Taylor7-109/+149
runtime/internal/sys.Ctz32/64 and Bswap32/64 are currently implemented with compiler builtin functions. But if they are called from another package, the compiler does not know and therefore cannot turn them into compiler intrinsics. This CL makes the compiler recognize these functions and turn them into intrinsics directly, as the gc compiler does. This CL sets up a way for adding intrinsics in the compiler. More intrinsics will be added in later CLs. Also move the handling of runtime.getcallerpc/sp to the new way of generating intrinsics. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/176917 From-SVN: r271303
2019-05-16Remove incorrect assertion from filesystem::absoluteJonathan Wakely2-3/+4
The assertion is wrong, it should be *s.end() == 0, but that's not allowed. Just remove it, but keep the comment. * src/c++17/fs_ops.cc (absolute(const path&, error_code&)) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove bogus assertion. From-SVN: r271300
2019-05-16re PR c++/90484 (ICE in equal_mem_array_ref_p at ↵Jakub Jelinek2-5/+6
gcc/tree-ssa-scopedtables.c:550 since r270433 on i586) PR c++/90484 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that sz0 is equal to sz1, instead return false in that case. From-SVN: r271299
2019-05-16omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF has non-constant ↵Jakub Jelinek11-5/+231
expression... * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF has non-constant expression, force sctx.lane and use two argument IFN_GOMP_SIMD_LANE instead of single argument. * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE two argument IFN_GOMP_SIMD_LANE without lhs. * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond member. (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND): Define. (LOOP_REQUIRES_VERSIONING): Or in LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND. * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize simd_if_cond. (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0. * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check from simd if clause if needed. * gcc.dg/vect/vect-simd-1.c: New test. * gcc.dg/vect/vect-simd-2.c: New test. * gcc.dg/vect/vect-simd-3.c: New test. * gcc.dg/vect/vect-simd-4.c: New test. From-SVN: r271298
2019-05-16Implement sane variant converting constructor (P0608R3)Jonathan Wakely4-30/+118
* include/std/variant (__overload_set): Remove. (_Arr): New helper. (_Build_FUN): New class template to define a single FUN overload, with specializations to prevent unwanted conversions, as per P0608R3. (_Build_FUNs): New class template to build an overload set of FUN. (_FUN_type): New alias template to perform overload resolution. (__accepted_type): Use integer_constant base for failure case. Use _FUN_type for successful case. (variant::__accepted_index): Use _Tp instead of _Tp&&. (variant::variant(_Tp&&)): Likewise. (variant::operator=(_Tp&&)): Likewise. From-SVN: r271296
2019-05-16Changes to std::variant to reduce code sizeJonathan Wakely2-17/+17
* include/std/variant (_Variant_storage<false, _Types...>::_M_reset): Replace raw visitation with a runtime check for the valueless state and a non-raw visitor. (_Variant_storage<false, _Types...>::_M_reset_impl): Remove. (variant::index()): Remove branch. (variant::swap(variant&)): Use valueless_by_exception() instead of comparing the index to variant_npos, and add likelihood attribute. From-SVN: r271295
2019-05-16tree-affine.c (expr_to_aff_combination): New function split out from...Richard Biener2-76/+148
2019-05-16 Richard Biener <rguenther@suse.de> * tree-affine.c (expr_to_aff_combination): New function split out from... (tree_to_aff_combination): ... here. (aff_combination_expand): Avoid building a GENERIC tree. From-SVN: r271294
2019-05-16gcc: move assemble_start_function / assemble_end_function to output_mi_thunkMax Filippov32-7/+137
Let backends call assemble_start_function after they have generated thunk function body so that a constant pool could be output if it is required. This may help backends to avoid implementing custom constant loading code specifically for the MI thunk and reuse existing functionality. gcc/ 2019-05-16 Max Filippov <jcmvbkbc@gmail.com> * cgraphunit.c (cgraph_node::expand_thunk): Remove assemble_start_function and assemble_end_function calls. * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call assemble_start_function and assemble_end_function. * config/arc/arc.c (arc_output_mi_thunk): Likewise. * config/arm/arm.c (arm_output_mi_thunk): Likewise. * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise. * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise. * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise. * config/csky/csky.c (csky_output_mi_thunk): Likewise. * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise. * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise. * config/i386/i386.c (x86_output_mi_thunk): Likewise. * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise. * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk): Likewise. * config/mips/mips.c (mips_output_mi_thunk): Likewise. * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise. * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise. * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise. * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise. * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise. * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise. * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise. * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. * config/s390/s390.c (s390_output_mi_thunk): Likewise. * config/sh/sh.c (sh_output_mi_thunk): Likewise. * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. * config/spu/spu.c (spu_output_mi_thunk): Likewise. * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk): Likewise. * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise. * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise. * config/vax/vax.c (vax_output_mi_thunk): Likewise. From-SVN: r271293
2019-05-16tree-ssa-alias.c (alias_stats): Add aliasing_component_refs_p_may_alias and ↵Jan Hubicka2-8/+52
aliasing_component_refs_p_no_alias. * tree-ssa-alias.c (alias_stats): Add aliasing_component_refs_p_may_alias and aliasing_component_refs_p_no_alias. (dump_alias_stats): Print aliasing_component_refs_p stats. (aliasing_component_refs_p): Update stats. From-SVN: r271292
2019-05-16Replace _Equal_helper with simpler class templateJonathan Wakely2-36/+23
By defining the new helper inside _Hashtable_base it doesn't need all the template parameters to be provided, and by making it only responsible for checking a possibly-cached hash code it only has to do one thing. The caller can use the equality predicate itself instead of duplicating that in the helper template. * include/bits/hashtable_policy.h (_Equal_helper): Remove. (_Hashtable_base::_Equal_hash_code): Define new class template. (_Hashtable_base::_M_equals): Use _Equal_hash_code instead of _Equal_helper. From-SVN: r271291
2019-05-16Change EBO accessors from static to non-static member functionsJonathan Wakely2-38/+35
* include/bits/hashtable_policy.h (_Hashtable_ebo_helper::_S_get): Replace with _M_get non-static member function. (_Hashtable_ebo_helper::_S_cget): Replace with _M_cget non-static member function. (_Hash_code_base, _Local_iterator_base, _Hashtable_base): (_Hashtable_alloc): Adjust to use non-static members of EBO helper. From-SVN: r271290
2019-05-16Do not allow target_clones with alias attr (PR lto/90500).Martin Liska5-1/+31
2019-05-16 Martin Liska <mliska@suse.cz> PR lto/90500 * multiple_target.c (expand_target_clones): Do not allow target_clones being used with a symbol that is an alias. 2019-05-16 Martin Liska <mliska@suse.cz> PR lto/90500 * gcc.target/i386/pr90500-1.c: New test. * gcc.target/i386/pr90500-2.c: New test. From-SVN: r271289
2019-05-16tree-ssa-uninit: avoid ICE with BIT_AND_EXPR (PR 90394)Vladislav Ivanishin5-1/+94
2019-05-16 Vladislav Ivanishin <vlad@ispras.ru> PR tree-optimization/90394 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false positives rather than ICE for cases where (code2 == NE_EXPR && code1 == BIT_AND_EXPR). testsuite/ * gcc.dg/uninit-pr90394-1-gimple.c: New test. * gcc.dg/uninit-pr90394.c: New test. From-SVN: r271287
2019-05-16Remove unnecessary non-const accessors in hash table basesJonathan Wakely2-36/+23
The const accessors are OK (and arguably more correct) for most callers to use. The _M_swap functions that use the non-const overloads can just directly use the _S_get members of the EBO helpers. * include/bits/hashtable_policy.h (_Hash_code_base::_M_swap): Use _S_get accessors for members in EBO helpers. (_Hash_code_base::_M_extract(), _Hash_code_base::_M_ranged_hash()) (_Hash_code_base::_M_h1(), _Hash_code_base::_M_h2()): Remove non-const overloads. (_Hashtable_base::_M_swap): Use _S_get accessors for members in EBO helpers. (_Hashtable_base::_M_eq()): Remove non-const overload. From-SVN: r271286
2019-05-16re PR fortran/90329 (Incompatibility between gfortran and C lapack calls)Jakub Jelinek8-4/+62
PR fortran/90329 * tree-core.h (struct tree_decl_common): Document decl_nonshareable_flag for PARM_DECLs. * tree.h (DECL_HIDDEN_STRING_LENGTH): Define. * calls.c (expand_call): Don't try tail call if caller has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be passed on the stack and callee needs to pass any arguments on the stack. * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use else if instead of series of mutually exclusive ifs. Handle DECL_HIDDEN_STRING_LENGTH for PARM_DECLs. * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. * trans-decl.c (create_function_arglist): Set DECL_HIDDEN_STRING_LENGTH on hidden string length PARM_DECLs if len is constant. From-SVN: r271285
2019-05-16* lto-streamer.h (LTO_major_version): Bump to 9.Jakub Jelinek2-1/+5
From-SVN: r271284
2019-05-16re PR testsuite/90502 (gcc.dg/tree-ssa/vector-6.c FAILs)Richard Biener2-2/+9
2019-05-16 Richard Biener <rguenther@suse.de> PR testsuite/90502 * gcc.dg/tree-ssa/vector-6.c: Adjust for half of the transforms happening earlier now. From-SVN: r271283
2019-05-16testsuite - improve check_effective_target_cet.Iain Sandoe2-1/+6
In some cases the test using setssbsy was not enough to detemine support for the CET insns. Adding -fcf-protection explicitly causes other insns to be emitted (e.g. endbr32/64) which are a more complete check. 2019-05-16 Iain Sandoe <iain@sandoe.co.uk> * lib/target-supports.exp (check_effective_target_cet): Add the -fcf-protection flag to the build conditions. From-SVN: r271282
2019-05-16re PR tree-optimization/90106 (builtin sqrt() ignoring libm's sqrt call result)Jun Ma5-42/+85
PR tree-optimization/90106 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add new parameter as new internal function call, also move it to new basic block. (use_internal_fn): Pass internal function call to shrink_wrap_one_built_in_call_with_conds. gcc/testsuite * gcc.dg/cdce1.c: Check tailcall code generation after cdce pass. * gcc.dg/cdce2.c: Likewise. From-SVN: r271281
2019-05-16[RTEMS] Change multilibs for ARMSebastian Huber2-5/+11
Account for Cortex-M3 Errata 602117. The -mfix-cortex-m3-ldrd option is enabled by default, if -mcpu=cortex-m3 is used. gcc/ * config/arm/t-rtems: Replace ARMv7-M multilibs with Cortex-M multilibs. From-SVN: r271280
2019-05-16re PR target/90424 (memcpy into vector builtin not optimized)Richard Biener6-13/+124
2019-05-16 Richard Biener <rguenther@suse.de> PR tree-optimization/90424 * tree-ssa.c (non_rewritable_lvalue_p): Handle inserts from aligned subvectors. (execute_update_addresses_taken): Likewise. * tree-cfg.c (verify_gimple_assign_ternary): Likewise. * g++.target/i386/pr90424-1.C: New testcase. * g++.target/i386/pr90424-2.C: Likewise. From-SVN: r271279
2019-05-16gimple-parser.c (c_parser_gimple_statement): Handle __BIT_INSERT.Richard Biener6-17/+79
2019-05-16 Richard Biener <rguenther@suse.de> c/ * gimple-parser.c (c_parser_gimple_statement): Handle __BIT_INSERT. (c_parser_gimple_unary_expression): Likewise. * gimple-pretty-print.c (dump_ternary_rhs): Dump BIT_INSERT_EXPR as __BIT_INSERT with -gimple. * gcc.dg/gimplefe-40.c: Amend again. From-SVN: r271278
2019-05-16Add myself to MAINTAINERS.Jun Ma2-0/+5
2019-05-16 Jun Ma <junma@linux.alibaba.com> * MAINTAINERS (Write After Approval): Add myself. From-SVN: r271277