aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-07-20Use default visibility to work around clang -fvisibility-inlines-hidden bugFangrui Song2-1/+6
Clang (including trunk and many older versions) incorrectly marks static local variables (__tag) hidden when -fvisibility-inlines-hidden is used. This can lead to multiple instances of __tag when shares objects are used. 2018-07-20 Fangrui Song <maskray@google.com> * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use _GLIBCXX_VISIBILITY(default). From-SVN: r262903
2018-07-20PR libstdc++/86603 Move __cpp_lib_list_remove_return_type macroJonathan Wakely2-1/+6
This should only be defined for C++2a not C++17. PR libstdc++/86603 * include/std/version: Move __cpp_lib_list_remove_return_type macro. From-SVN: r262902
2018-07-20re PR debug/86585 (ICE in gen_member_die, at dwarf2out.c:24935)Richard Biener7-5/+80
2018-07-20 Richard Biener <rguenther@suse.de> PR debug/86585 * dwarf2out.c (dwarf2out_die_ref_for_decl): Test in_lto_p to cover -flto-partition=none. lto/ * lto.c (unify_scc): Before we throw away an SCC see if we can amend prevailing single-entry SCC with debug refs. * g++.dg/lto/pr86585_0.C: New testcase. * g++.dg/lto/pr86585_1.C: Likewise. From-SVN: r262901
2018-07-20Remove unused code.Martin Liska2-10/+5
2018-07-20 Martin Liska <mliska@suse.cz> * tree.h (DECL_LOCATION_RANGE): Remove unused macro. (get_decl_source_range): Remove unused function. From-SVN: r262900
2018-07-20tree-ssa-sccvn.h (struct vn_nary_op_s): Add next member.Richard Biener3-90/+110
2018-07-20 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.h (struct vn_nary_op_s): Add next member. (struct vn_phi_s): Likewise. (struct vn_reference_s): Likewise. * tree-ssa-sccvn.c (vn_nary_op_hasher::equal): Add shortcut for searching the slot of an entry known to be in the hash itself. (vn_phi_hasher::equal): Likewise. (vn_reference_hasher::equal): Likewise. (last_inserted_ref, last_inserted_phi, last_inserted_nary): New globals. (optimistic_info, current_info): Remove, keeping only valid_info. (vn_reference_lookup_1): Remove fallback lookup. (vn_reference_lookup_2): Likewise. (vn_nary_op_lookup_1): Likewise. (vn_phi_lookup): Likewise. (vn_nary_build_or_lookup_1): Make sure to not chain the built hash element. (vn_reference_insert): Adjust, chain the inserted hash element at last_inserted_ref. (vn_reference_insert_pieces): Likewise. (visit_reference_op_call): Likewise. (vn_nary_op_insert_into): Chain the inserted hash element at last_inserted_nary. (vn_nary_op_insert_pieces): Adjust. (vn_nary_op_insert): Likewise. (vn_nary_op_insert_stmt): Likewise. (vn_phi_insert): Adjust, chain the inserted hash element at last_inserted_phi. (process_scc): Remove clearing and copying the optimistic table. Instead remove elements inserted during an optimistic iteration from the single table we maintain. (init_scc_vn): Adjust. (free_scc_vn): Likewise. (sccvn_dom_walker::record_cond): Likewise. (sccvn_dom_walker::after_dom_children): Likewise. From-SVN: r262899
2018-07-19MAINTAINERS (m32c, [...]): Remove myself as maintainer.DJ Delorie2-5/+5
* MAINTAINERS (m32c, msp43, rl78, libiberty, build): Remove myself as maintainer. From-SVN: r262898
2018-07-20Daily bump.GCC Administrator1-1/+1
From-SVN: r262897
2018-07-19PR tree-optimization/84047 - missing -Warray-bounds on an out-of-bounds ↵Martin Sebor7-3/+1065
index into an array PR tree-optimization/84047 - missing -Warray-bounds on an out-of-bounds index into an array PR tree-optimization/83776 - missing -Warray-bounds indexing past the end of a string literal gcc/ChangeLog: PR tree-optimization/84047 PR tree-optimization/83776 * tree-vrp.c (vrp_prop::check_mem_ref): New function. (check_array_bounds): Call it. gcc/testsuite/ChangeLog: PR tree-optimization/83776 PR tree-optimization/84047 * gcc.dg/Warray-bounds-29.c: New test. * gcc.dg/Warray-bounds-30.c: New test. * gcc.dg/Warray-bounds-31.c: New test. * gcc.dg/Warray-bounds-32.c: New test. From-SVN: r262893
2018-07-19align.h (align_flags): Use member initialization.Martin Sebor2-2/+8
gcc/ChangeLog: * align.h (align_flags): Use member initialization. From-SVN: r262892
2018-07-19Add "optinfo" frameworkDavid Malcolm8-66/+1274
This patch implements a way to consolidate dump_* calls into optinfo objects, as enabling work towards being able to write out optimization records to a file. The patch adds the support for building optinfo instances from dump_* calls, but leaves implementing any *users* of them to followup patches. gcc/ChangeLog: * Makefile.in (OBJS): Add optinfo.o. * coretypes.h (class symtab_node): New forward decl. (struct cgraph_node): New forward decl. (class varpool_node): New forward decl. * dump-context.h: New file. * dumpfile.c: Include "optinfo.h", "dump-context.h", "cgraph.h", "tree-pass.h". (refresh_dumps_are_enabled): Use optinfo_enabled_p. (set_dump_file): Call dumpfile_ensure_any_optinfo_are_flushed. (set_alt_dump_file): Likewise. (dump_context::~dump_context): New dtor. (dump_gimple_stmt): Move implementation to... (dump_context::dump_gimple_stmt): ...this new member function. Add the stmt to any pending optinfo, creating one if need be. (dump_gimple_stmt_loc): Move implementation to... (dump_context::dump_gimple_stmt_loc): ...this new member function. Start a new optinfo and add the stmt to it. (dump_gimple_expr): Move implementation to... (dump_context::dump_gimple_expr): ...this new member function. Add the stmt to any pending optinfo, creating one if need be. (dump_gimple_expr_loc): Move implementation to... (dump_context::dump_gimple_expr_loc): ...this new member function. Start a new optinfo and add the stmt to it. (dump_generic_expr): Move implementation to... (dump_context::dump_generic_expr): ...this new member function. Add the tree to any pending optinfo, creating one if need be. (dump_generic_expr_loc): Move implementation to... (dump_context::dump_generic_expr_loc): ...this new member function. Add the tree to any pending optinfo, creating one if need be. (dump_printf): Move implementation to... (dump_context::dump_printf_va): ...this new member function. Add the text to any pending optinfo, creating one if need be. (dump_printf_loc): Move implementation to... (dump_context::dump_printf_loc_va): ...this new member function. Start a new optinfo and add the stmt to it. (dump_dec): Move implementation to... (dump_context::dump_dec): ...this new member function. Add the value to any pending optinfo, creating one if need be. (dump_context::dump_symtab_node): New member function. (dump_context::get_scope_depth): New member function. (dump_context::begin_scope): New member function. (dump_context::end_scope): New member function. (dump_context::ensure_pending_optinfo): New member function. (dump_context::begin_next_optinfo): New member function. (dump_context::end_any_optinfo): New member function. (dump_context::s_current): New global. (dump_context::s_default): New global. (dump_scope_depth): Delete global. (dumpfile_ensure_any_optinfo_are_flushed): New function. (dump_symtab_node): New function. (get_dump_scope_depth): Reimplement in terms of dump_context. (dump_begin_scope): Likewise. (dump_end_scope): Likewise. (selftest::temp_dump_context::temp_dump_context): New ctor. (selftest::temp_dump_context::~temp_dump_context): New dtor. (selftest::verify_item): New function. (ASSERT_IS_TEXT): New macro. (ASSERT_IS_TREE): New macro. (ASSERT_IS_GIMPLE): New macro. (selftest::test_capture_of_dump_calls): New test. (selftest::dumpfile_c_tests): Call it. * dumpfile.h (dump_printf, dump_printf_loc, dump_basic_block) (dump_generic_expr_loc, dump_generic_expr, dump_gimple_stmt_loc) (dump_gimple_stmt, dump_dec): Gather these related decls and add a descriptive comment. (dump_function, print_combine_total_stats, enable_rtl_dump_file) (dump_node, dump_bb): Move these unrelated decls. (class dump_manager): Add leading comment. * optinfo.cc: New file. * optinfo.h: New file. From-SVN: r262891
2018-07-19aarch64.md (subv<GPI>4, [...]): New patterns.Michael Collison18-21/+922
2018-07-19 Michael Collison <michael.collison@arm.com> Richard Henderson <rth@redhat.com> * config/aarch64/aarch64.md (subv<GPI>4, usubv<GPI>4): New patterns. (subti): Handle op1 zero. (subvti4, usub4ti4): New. (*sub<GPI>3_compare1_imm): New. (sub<GPI>3_carryinCV): New. (*sub<GPI>3_carryinCV_z1_z2, *sub<GPI>3_carryinCV_z1): New. (*sub<GPI>3_carryinCV_z2, *sub<GPI>3_carryinCV): New. 2018-07-19 Michael Collison <michael.collison@arm.com> Richard Henderson <rth@redhat.com> * config/aarch64/aarch64.md: (addv<GPI>4, uaddv<GPI>4): New. (addti3): Create simpler code if low part is already known to be 0. (addvti4, uaddvti4): New. (*add<GPI>3_compareC_cconly_imm): New. (*add<GPI>3_compareC_cconly): New. (*add<GPI>3_compareC_imm): New. (*add<GPI>3_compareC): Rename from add<GPI>3_compare1; do not handle constants within this pattern.. (*add<GPI>3_compareV_cconly_imm): New. (*add<GPI>3_compareV_cconly): New. (*add<GPI>3_compareV_imm): New. (add<GPI>3_compareV): New. (add<GPI>3_carryinC, add<GPI>3_carryinV): New. (*add<GPI>3_carryinC_zero, *add<GPI>3_carryinV_zero): New. (*add<GPI>3_carryinC, *add<GPI>3_carryinV): New. ((*add<GPI>3_compareC_cconly_imm): Replace 'ne' operator with 'comparison' operator. (*add<GPI>3_compareV_cconly_imm): Ditto. (*add<GPI>3_compareV_cconly): Ditto. (*add<GPI>3_compareV_imm): Ditto. (add<GPI>3_compareV): Ditto. (add<mode>3_carryinC): Ditto. (*add<mode>3_carryinC_zero): Ditto. (*add<mode>3_carryinC): Ditto. (add<mode>3_carryinV): Ditto. (*add<mode>3_carryinV_zero): Ditto. (*add<mode>3_carryinV): Ditto. 2018-07-19 Michael Collison <michael.collison@arm.com> Richard Henderson <rth@redhat.com> * config/aarch64/aarch64-modes.def (CC_V): New. * config/aarch64/aarch64-protos.h (aarch64_addti_scratch_regs): Declare (aarch64_subvti_scratch_regs): Declare. (aarch64_expand_subvti): Declare. (aarch64_gen_unlikely_cbranch): Declare * config/aarch64/aarch64.c (aarch64_select_cc_mode): Test for signed overflow using CC_Vmode. (aarch64_get_condition_code_1): Handle CC_Vmode. (aarch64_gen_unlikely_cbranch): New function. (aarch64_addti_scratch_regs): New function. (aarch64_subvti_scratch_regs): New function. (aarch64_expand_subvti): New function. 2018-07-19 Michael Collison <michael.collison@arm.com> Richard Henderson <rth@redhat.com> * gcc.target/aarch64/builtin_sadd_128.c: New testcase. * gcc.target/aarch64/builtin_saddl.c: New testcase. * gcc.target/aarch64/builtin_saddll.c: New testcase. * gcc.target/aarch64/builtin_uadd_128.c: New testcase. * gcc.target/aarch64/builtin_uaddl.c: New testcase. * gcc.target/aarch64/builtin_uaddll.c: New testcase. * gcc.target/aarch64/builtin_ssub_128.c: New testcase. * gcc.target/aarch64/builtin_ssubl.c: New testcase. * gcc.target/aarch64/builtin_ssubll.c: New testcase. * gcc.target/aarch64/builtin_usub_128.c: New testcase. * gcc.target/aarch64/builtin_usubl.c: New testcase. * gcc.target/aarch64/builtin_usubll.c: New testcase. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r262890
2018-07-19Simplify the base characteristics for some type traitsJonathan Wakely3-58/+93
* include/std/type_traits (__is_member_object_pointer_helper): Use __not_<is_function<_Tp>>::type instead of integral_constant. (__is_member_function_pointer_helper): Likewise for is_function<_Tp>::type. (is_compund): Likewise for __not_<is_fundamental<_Tp>>::type. (__do_is_nt_destructible_impl): Use __bool_constant and reindent. (is_trivially_constructible): Remove redundant use of is_constructible. (__is_trivially_copy_assignable_impl): Remove redundant use of is_copy_assignable. (__is_trivially_move_assignable_impl): Remove redundant use of is_move_assignable. (is_trivially_destructible): Use __bool_constant. * testsuite/20_util/is_trivially_assignable/value.cc: Add some more tests for scalar types. From-SVN: r262889
2018-07-19Use __builtin_memmove for trivially copyable typesGlen Joseph Fernandes3-2/+47
2018-07-19 Glen Joseph Fernandes <glenjofe@gmail.com> * include/bits/stl_algobase.h (__copy_move_a): Used __is_trivially_copyable. (__copy_move_backward_a): Likewise. * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc: New test. From-SVN: r262884
2018-07-19revert: [multiple changes]Paolo Carlini11-111/+35
2018-07-19 Paolo Carlini <paolo.carlini@oracle.com> Revert fix for c++/59480 (and testsuite followup) /testsuite 2018-07-19 Paolo Carlini <paolo.carlini@oracle.com> * g++.old-deja/g++.mike/p784.C: Add -fpermissive. /cp 2019-07-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59480, DR 136 * decl.c (check_no_redeclaration_friend_default_args): New. (duplicate_decls): Use the latter; also check that a friend declaration specifying default arguments is a definition. /testsuite 2019-07-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59480, DR 136 * g++.dg/other/friend8.C: New. * g++.dg/other/friend9.C: Likewise. * g++.dg/other/friend10.C: Likewise. * g++.dg/other/friend11.C: Likewise. * g++.dg/other/friend12.C: Likewise. * g++.dg/parse/defarg4.C: Compile with -fpermissive -w. * g++.dg/parse/defarg8.C: Likewise. From-SVN: r262883
2018-07-19[PATCH, GCC, AARCH64] Add support for +profile extensionAndre Vieira6-0/+24
This patch adds support for the Statistical Profiling Extension (SPE) on AArch64. Even though the compiler will not generate code any differently given this extension, it will need to pass it on to the assembler in order to let it correctly assemble inline asm containing accesses to the extension's system registers. The same applies when using the preprocessor on an assembly file as this first must pass through cc1. I left the hwcaps string for SPE empty as the kernel does not define a feature string for this extension. The current effect of this is that driver will disable profile feature bit in GCC. This is OK though because we don't, nor do we ever, enable this feature bit, as codegen is not affect by the SPE support and more importantly the driver will still pass the extension down to the assembler regardless. gcc/ChangeLog 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/aarch64/aarch64-option-extensions.def: New entry for profile extension. * config/aarch64/aarch64.h (AARCH64_FL_PROFILE): New. * doc/invoke.texi (aarch64-feature-modifiers): New entry for profile extension. gcc/testsuite/ChangeLog 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> * gcc.target/aarch64/profile.c: New test. From-SVN: r262882
2018-07-19[AArch64][PATCH 2/2] PR target/83009: Relax strict address checking for storeAndre Vieira4-4/+37
pair lanes gcc/ChangeLog 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> PR target/83009 * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make address check not strict. gcc/testsuite/ChangeLog 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> PR target/83009 * gcc/target/aarch64/store_v2vec_lanes.c: Add extra tests. From-SVN: r262881
2018-07-19[AArch64][PATCH 1/2] Fix addressing printing of LDP/STPAndre Vieira6-32/+50
gcc/ChangeLog 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/aarch64/aarch64-simd.md (aarch64_simd_mov<VQ:mode>): Replace Umq with Umn. (store_pair_lanes<mode>): Likewise. * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): Add new enum value 'ADDR_QUERY_LDP_STP_N'. * config/aarch64/aarch64.c (aarch64_addr_query_type): Likewise. (aarch64_print_address_internal): Add declaration. (aarch64_print_ldpstp_address): Remove. (aarch64_classify_address): Adapt mode for 'ADDR_QUERY_LDP_STP_N'. (aarch64_print_operand): Change printing of 'y'. * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Use new enum value 'ADDR_QUERY_LDP_STP_N', don't hardcode mode and use 'true' rather than '1'. * gcc/config/aarch64/constraints.md (Uml): Likewise. (Uml): Rename to Umn. (Umq): Remove. From-SVN: r262880
2018-07-19tree-ssa-sccvn.h (struct vn_phi_s): Make phiargs member a trailing array.Richard Biener3-131/+130
2018-07-19 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.h (struct vn_phi_s): Make phiargs member a trailing array. * tree-ssa-sccvn.c: Remove alloc-pool.h use. (vn_phi_hasher): Derive from nofree_ptr_hash and remove remove method. (vn_reference_hasher): Likewise. (struct vn_tables_s): Remove obstack and alloc-pool members. (vn_tables_obstack, vn_tables_insert_obstack): New global obstacks. (vn_nary_build_or_lookup_1): Manually build in vn_tables_insert_obstack. (vn_reference_insert): Allocate from obstack instead of from alloc-pool. (vn_reference_insert_pieces): Likewise. (alloc_vn_nary_op_noinit): Adjust. (vn_nary_op_insert_stmt): Allocate phiargs in-place. (vn_phi_eq): Adjust. (shared_lookup_phiargs): Remove. (vn_phi_lookup): Allocate temporary vn_phi_s on the stack. (vn_phi_insert): Allocate from obstack instead of from alloc-pool. (visit_reference_op_call): Likewise. (copy_nary, copy_phi, copy_reference): Remove. (process_scc): Rewind the obstack when iterating. Do not copy the elements to valid_info but just move them from one hashtable to the other. (allocate_vn_table): Adjust. (free_vn_table): Likewise. (init_scc_vn): Likewise. (free_scc_vn): Likewise. From-SVN: r262879
2018-07-19i386: Test __has_attribute (__indirect_return__)H.J. Lu3-0/+48
The new indirect_return attribute is intended to mark swapcontext in <ucontext.h>. Test __has_attribute (__indirect_return__) so that it can be backported to GCC 8. PR target/86560 * gcc.target/i386/pr86560-4.c: New test. * gcc.target/i386/pr86560-5.c: Likewise. --- gcc/testsuite/gcc.target/i386/pr86560-4.c | 21 +++++++++++++++++++++ gcc/testsuite/gcc.target/i386/pr86560-5.c | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/pr86560-4.c create mode 100644 gcc/testsuite/gcc.target/i386/pr86560-5.c diff --git a/gcc/testsuite/gcc.target/i386/pr86560-4.c b/gcc/testsuite/gcc.target/i386/pr86560-4.c new file mode 100644 index 00000000000..a623e3dcbeb --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr86560-4.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fcf-protection" } */ +/* { dg-final { scan-assembler-times {\mendbr} 2 } } */ + +struct ucontext; + +extern int (*bar) (struct ucontext *) +#ifdef __has_attribute +# if __has_attribute (indirect_return) + __attribute__((__indirect_return__)) +# endif +#endif +; + +extern int res; + +void +foo (struct ucontext *oucp) +{ + res = bar (oucp); +} diff --git a/gcc/testsuite/gcc.target/i386/pr86560-5.c b/gcc/testsuite/gcc.target/i386/pr86560-5.c new file mode 100644 index 00000000000..33b0f6424c2 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr86560-5.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fcf-protection" } */ +/* { dg-final { scan-assembler-times {\mendbr} 2 } } */ + +struct ucontext; + +extern int (*bar) (struct ucontext *) +#ifdef __has_attribute +# if __has_attribute (__indirect_return__) + __attribute__((__indirect_return__)) +# endif +#endif +; + +extern int res; + +void +foo (struct ucontext *oucp) +{ + res = bar (oucp); +} -- 2.17.1 From-SVN: r262878
2018-07-19i386: Change indirect_return to function type attributeH.J. Lu7-10/+83
In struct ucontext; typedef struct ucontext ucontext_t; extern int (*bar) (ucontext_t *__restrict __oucp, const ucontext_t *__restrict __ucp) __attribute__((__indirect_return__)); extern int res; void foo (ucontext_t *oucp, ucontext_t *ucp) { res = bar (oucp, ucp); } bar() may return via indirect branch. This patch changes indirect_return to type attribute to allow indirect_return attribute on variable or type of function pointer so that ENDBR can be inserted after call to bar(). gcc/ PR target/86560 * config/i386/i386.c (rest_of_insert_endbranch): Lookup indirect_return as function type attribute. (ix86_attribute_table): Change indirect_return to function type attribute. * doc/extend.texi: Update indirect_return attribute. gcc/testsuite/ PR target/86560 * gcc.target/i386/pr86560-1.c: New test. * gcc.target/i386/pr86560-2.c: Likewise. * gcc.target/i386/pr86560-3.c: Likewise. From-SVN: r262877
2018-07-19[Fortran] Use MIN/MAX_EXPR or IFN_FMIN/MAX for min/max intrinsics when possibleKyrylo Tkachov6-34/+113
* trans-intrinsic.c: (gfc_conv_intrinsic_minmax): Emit MIN_MAX_EXPR or IFN_FMIN/FMAX sequence to calculate the min/max when possible. * gfortran.dg/max_fmax_aarch64.f90: New test. * gfortran.dg/min_fmin_aarch64.f90: Likewise. * gfortran.dg/minmax_integer.f90: Likewise. From-SVN: r262876
2018-07-19p784.C: Add -fpermissive.Paolo Carlini2-1/+5
2018-07-19 Paolo Carlini <paolo.carlini@oracle.com> * g++.old-deja/g++.mike/p784.C: Add -fpermissive. From-SVN: r262875
2018-07-19wide-int.h (widest2_int): New.Aldy Hernandez6-210/+236
* wide-int.h (widest2_int): New. * gimple-fold.c (arith_overflowed_p): Use it. * tree.h (widest2_int_cst): New. * tree-vrp.c (wide_int_binop_overflow): Rename from vrp_int_const_binop. Rewrite to work on trees. (extract_range_from_multiplicative_op_1): Abstract code to... (wide_int_range_min_max): ...here. (wide_int_range_cross_product): ...and here. (extract_range_from_binary_expr_1): Abstract overflow code to... (wide_int_range_cross_product_wrapping): ...here. * tree-vrp.h (wide_int_range_cross_product): New. (wide_int_range_cross_product_wrapping): New. From-SVN: r262874
2018-07-19simple-object-elf.c (ENOTSUP): If not defined by errno.h, redirect to ENOSYS.Eli Zaretskii2-0/+9
2018-07-19 Eli Zaretskii <eliz@gnu.org> * simple-object-elf.c (ENOTSUP): If not defined by errno.h, redirect to ENOSYS. From-SVN: r262872
2018-07-19x86-tune-costs.h (skylake_memcpy, [...]): Replace rep_prefix with unrolling ↵Andrew Senkevich2-2/+8
for size 512. * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset): Replace rep_prefix with unrolling for size 512. Co-Authored-By: Julia Koval <julia.koval@intel.com> From-SVN: r262871
2018-07-19Daily bump.GCC Administrator1-1/+1
From-SVN: r262870
2018-07-18re PR tree-optimization/86544 (Popcount detection generates different code ↵Kugan Vivekanandarajah4-11/+41
on C and C++) gcc/ChangeLog: 2018-07-18 Kugan Vivekanandarajah <kuganv@linaro.org> PR middle-end/86544 * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): Handle comparision with EQ_EXPR in last stmt. gcc/testsuite/ChangeLog: 2018-07-18 Kugan Vivekanandarajah <kuganv@linaro.org> PR middle-end/86544 * g++.dg/tree-ssa/pr86544.C: New test. From-SVN: r262864
2018-07-18extend.texi (PowerPC AltiVec Built-in Functions): Rename this subsection to ↵Kelvin Nilsen2-54/+88
"PowerPC AltiVec/VSX Built-in Functions". gcc/ChangeLog: 2018-07-18 Kelvin Nilsen <kelvin@gcc.gnu.org> * doc/extend.texi (PowerPC AltiVec Built-in Functions): Rename this subsection to "PowerPC AltiVec/VSX Built-in Functions". (PowerPC AltiVec/VSX Built-in Functions): New name for subsection previously known as "PowerPC AltiVec Built-in Functions". Move some material to new subsubsections "PowerPC AltiVec Built-in Functions on ISA 2.06" and "PowerPC AltiVec Built-in Functions on ISA 2.07". (PowerPC Altivec Built-in Functions on ISA 2.05): New subsubsection. (PowerPC Altivec Built-in Functions on ISA 2.06): Likewise. (PowerPC Altivec Built-in Functions on ISA 2.07): Likewise. (PowerPC Altivec Built-in Functions on ISA 3.0): Likewise. From-SVN: r262863
2018-07-18re PR c++/86550 (Lambda parsing allows arbitrary types in decl-specifier-seq)Jakub Jelinek4-0/+23
PR c++/86550 * parser.c (cp_parser_decl_specifier_seq): Diagnose invalid type specifier if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR. * g++.dg/cpp0x/lambda/lambda-86550.C: New test. From-SVN: r262862
2018-07-18re PR c/69558 (glib2 warning pragmas stopped working)Bernd Edlinger9-36/+64
libcpp: 2018-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de> PR 69558 * macro.c (enter_macro_context): Change the location info for builtin macros and _Pragma from location of the closing parenthesis to location of the macro expansion point. testsuite: 2018-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de> PR 69558 * c-c++-common/cpp/diagnostic-pragma-2.c: New test. * c-c++-common/pr69558.c: Remove xfail. * gcc.dg/cpp/builtin-macro-1.c: Adjust test expectations. * gcc.dg/pr61817-1.c: Likewise. * gcc.dg/pr61817-2.c: Likewise. * g++.dg/plugin/pragma_plugin.c: Warn at expansion_point_location. From-SVN: r262861
2018-07-18re PR fortran/85599 (warn about short-circuiting of logical expressions for ↵Janus Weil11-24/+192
non-pure functions) 2018-07-18 Janus Weil <janus@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85599 * dump-parse-tree.c (show_attr): Add handling of implicit_pure. * frontend-passes.c (do_warn_function_elimination): Do not warn for pure functions. * gfortran.h: Add prototypes for gfc_pure_function and gfc_implicit_pure_function. * gfortran.texi: Add chapter on evaluation of logical expressions. * invoke.texi: Mention that -Wfunction-elimination is implied by -Wextra. * lang.opt: Make -Wextra imply -Wfunction-elimination. * resolve.c (pure_function): Rename to gfc_pure_function. (gfc_implicit_pure_function): New function. (check_pure_function): Use it here. (impure_function_callback): New function. (resolve_operator): Call it via gfc_expr_walker. 2018-07-18 Janus Weil <janus@gcc.gnu.org> PR fortran/85599 * gfortran.dg/function_optimize_5.f90: Add option '-faggressive-function-elimination' and update dg-warning clauses. * gfortran.dg/short_circuiting.f90: New test. Co-Authored-By: Thomas Koenig <tkoenig@gcc.gnu.org> From-SVN: r262860
2018-07-18PR c++/86190 - bogus -Wsign-conversion warningMarek Polacek5-4/+45
PR c++/86190 - bogus -Wsign-conversion warning * typeck.c (cp_build_binary_op): Fix formatting. Add a warning sentinel. * g++.dg/warn/Wsign-conversion-3.C: New test. * g++.dg/warn/Wsign-conversion-4.C: New test. From-SVN: r262855
2018-07-18re PR target/86557 (missed vectorization with std::vector compared to icc 18)Richard Biener2-1/+9
2018-07-18 Richard Biener <rguenther@suse.de> PR tree-optimization/86557 * tree-vect-patterns.c (vect_recog_divmod_pattern): Also handle EXACT_DIV_EXPR. From-SVN: r262854
2018-07-182018-07-18 Paolo Carlini <paolo.carlini@oracle.com>Paolo Carlini2-2/+2
* Fix typos in ChangeLog entries. From-SVN: r262852
2018-07-18re PR c++/59480 (Missing error diagnostic: friend declaration specifying a ↵Paolo Carlini19-32/+174
default argument must be a definition) /cp 2018-07-18 Paolo Carlini <paolo.carlini@oracle.com> * class.c (note_name_declared_in_class): Prefer permerror + inform to a pair of permerrors; use DECL_SOURCE_LOCATION. /testsuite 2018-07-18 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/ext/uow-3.C: Adjust. * g++.dg/ext/uow-4.C: Likewise. * g++.dg/lookup/name-clash11.C: Likewise. * g++.dg/lookup/name-clash7.C: Likewise. * g++.dg/lookup/redecl1.C: Likewise. * g++.dg/warn/changes-meaning.C: Likewise. * g++.old-deja/g++.jason/scoping8.C: Likewise. * g++.old-deja/g++.law/nest1.C: Likewise. /cp 2019-07-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59480, DR 136 * decl.c (check_no_redeclaration_friend_default_args): New. (duplicate_decls): Use the latter; also check that a friend declaration specifying default arguments is a definition. /testsuite 2019-07-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59480, DR 136 * g++.dg/other/friend8.C: New. * g++.dg/other/friend9.C: Likewise. * g++.dg/other/friend10.C: Likewise. * g++.dg/other/friend11.C: Likewise. * g++.dg/other/friend12.C: Likewise. * g++.dg/parse/defarg4.C: Compile with -fpermissive -w. * g++.dg/parse/defarg8.C: Likewise. From-SVN: r262851
2018-07-18S/390: Add CFI for mcount call sequencesIlya Leoshkevich2-1/+22
2018-07-18 Ilya Leoshkevich <iii@linux.ibm.com> * config/s390/s390.c (s390_function_profiler): Generate CFI. From-SVN: r262850
2018-07-18re PR debug/86523 (ICE in gen_member_die, at dwarf2out.c:24933 starting from ↵Richard Biener4-3/+38
r262560) 2018-07-18 Richard Biener <rguenther@suse.de> PR debug/86523 cp/ * decl2.c (c_parse_final_cleanups): Call write_out_vars before start_static_storage_duration_function sets current_function_decl. * g++.dg/lto/pr86523-3_0.C: New testcase. From-SVN: r262849
2018-07-17arm.c (get_label_padding): Update for recent changes to label_to_alignment.Jeff Law2-1/+4
* config/arm/arm.c (get_label_padding): Update for recent changes to label_to_alignment. From-SVN: r262848
2018-07-18Daily bump.GCC Administrator1-1/+1
From-SVN: r262846
2018-07-17re PR tree-optimization/86010 (redundant memset with smaller size not ↵Jeff Law2-1/+4
eliminated) PR tree-optimization/86010 * tree-ssa-dse.c (compute_trims): Fix typo/thinko. From-SVN: r262841
2018-07-17mips.c (vr4130_align_insns): Update for recent changes to label_to_alignment.Jeff Law2-1/+4
* config/mips/mips.c (vr4130_align_insns): Update for recent changes to label_to_alignment. From-SVN: r262838
2018-07-17frv.c (frv_label_align): Update for recent changes to label_to_alignment.Jeff Law2-1/+4
* config/frv/frv.c (frv_label_align): Update for recent changes to label_to_alignment. From-SVN: r262837
2018-07-17nios2.c (nios2_label_align): Update for recent changes which dropped ↵Jeff Law2-2/+7
ALIGN_LABELS_LOG. * config/nios2/nios2.c (nios2_label_align): Update for recent changes which dropped ALIGN_LABELS_LOG. From-SVN: r262836
2018-07-17Fix invalid cc_status after [const_][us]mulsi3_highpartAndreas Schwab4-4/+33
* config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart) (smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT. testsuite/: * gcc.target/m68k/mulsi_highpart.c: New test. From-SVN: r262835
2018-07-17compiler: don't set btype_ too early for alias typeIan Lance Taylor2-3/+5
CL 123362 introduced a bug in creating alias type's backend representation. A type's btype_ should not be set before named types are converted if it is a placeholder. For alias type, it is set too early. This may result in unresolved placeholders. This CL fixes it. Reviewed-on: https://go-review.googlesource.com/123975 From-SVN: r262833
2018-07-17lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN...Jakub Jelinek7-16/+44
* lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN, CPP_DL_WARNING or CPP_DL_ERROR for note that diagnostics for C++ style comments is reported only once per file and guard those calls on the preceding cpp_error returning true. * gcc.dg/cpp/pr61854-c90.c (foo): Expect a note, rather than error. * gcc.dg/cpp/pr61854-c94.c (foo): Likewise. * gcc.dg/cpp/pr61854-4.c (foo): Likewise. * gcc.dg/cpp/pr61854-8.c: New test. From-SVN: r262832
2018-07-17* gcc.target/powerpc/pr85456.c: Require longdouble128.David Edelsohn2-0/+5
From-SVN: r262831
2018-07-17compiler: connect the concrete type and the placeholder for circular typesIan Lance Taylor3-24/+5
Previously, when creating the backend representation of a circular type, we resolve the placeholder to a circular_pointer_type. The backend doesn't know what the concrete type is. This CL changes it to resolve the placeholder to the concrete type instead, so the backend may have better knowledge of the concrete type. Reviewed-on: https://go-review.googlesource.com/123738 From-SVN: r262830
2018-07-17re PR fortran/83184 (Out of memory or ICE with option -fdec)Fritz Reese2-3/+8
2018-07-17 Fritz Reese <fritzoreese@gmail.com> gcc/testsuite/ChangeLog: PR fortran/83184 * gfortran.dg/dec_structure_23.f90: Oops, "un-fix" error messages. From-SVN: r262828
2018-07-17fold-vec-unpack-char.c: New.Will Schmidt6-0/+161
[testsuite] 2018-07-06 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-unpack-char.c: New. * gcc.target/powerpc/fold-vec-unpack-float.c: New. * gcc.target/powerpc/fold-vec-unpack-int.c: New. * gcc.target/powerpc/fold-vec-unpack-pixel.c: New. * gcc.target/powerpc/fold-vec-unpack-short.c: New. From-SVN: r262827