1. 05 Nov, 2019 40 commits
    • Implement C++20 operator<=>. · b7689b96
      There are three major pieces to this support: scalar operator<=>,
      synthesis of comparison operators, and rewritten/reversed overload
      resolution (e.g. a < b becomes 0 > b <=> a).
      
      Unlike other defaulted functions, where we use synthesized_method_walk to
      semi-simulate what the definition of the function will be like, this patch
      determines the characteristics of a comparison operator by trying to define
      it.
      
      My handling of non-dependent rewritten operators in templates can still use
      some work: build_min_non_dep_op_overload can't understand the rewrites and
      crashes, so I'm avoiding it for now by clearing *overload.  This means we'll
      do name lookup again at instantiation time, which can incorrectly mean a
      different result.  I'll poke at this more in stage 3.
      
      I'm leaving out a fourth section ("strong structural equality") even though
      I've implemented it, because it seems likely to change radically tomorrow.
      
      Thanks to Tim van Deurzen and Jakub for implementing lexing of the <=>
      operator, and Jonathan for the initial <compare> header.
      
      gcc/cp/
      	* cp-tree.h (struct lang_decl_fn): Add maybe_deleted bitfield.
      	(DECL_MAYBE_DELETED): New.
      	(enum special_function_kind): Add sfk_comparison.
      	(LOOKUP_REWRITTEN, LOOKUP_REVERSED): New.
      	* call.c (struct z_candidate): Add rewritten and reversed methods.
      	(add_builtin_candidate): Handle SPACESHIP_EXPR.
      	(add_builtin_candidates): Likewise.
      	(add_candidates): Don't add a reversed candidate if the parms are
      	the same.
      	(add_operator_candidates): Split out from build_new_op_1.  Handle
      	rewritten and reversed candidates.
      	(add_candidate): Swap conversions of reversed candidate.
      	(build_new_op_1): Swap them back.  Build a second operation for
      	rewritten candidates.
      	(extract_call_expr): Handle rewritten calls.
      	(same_fn_or_template): New.
      	(joust): Handle rewritten and reversed candidates.
      	* class.c (add_implicitly_declared_members): Add implicit op==.
      	(classtype_has_op, classtype_has_defaulted_op): New.
      	* constexpr.c (cxx_eval_binary_expression): Handle SPACESHIP_EXPR.
      	(cxx_eval_constant_expression, potential_constant_expression_1):
      	Likewise.
      	* cp-gimplify.c (genericize_spaceship): New.
      	(cp_genericize_r): Use it.
      	* cp-objcp-common.c (cp_common_init_ts): Handle SPACESHIP_EXPR.
      	* decl.c (finish_function): Handle deleted function.
      	* decl2.c (grokfield): SET_DECL_FRIEND_CONTEXT on defaulted friend.
      	(mark_used): Check DECL_MAYBE_DELETED.  Remove assumption that
      	defaulted functions are non-static members.
      	* error.c (dump_expr): Handle SPACESHIP_EXPR.
      	* method.c (type_has_trivial_fn): False for sfk_comparison.
      	(enum comp_cat_tag, struct comp_cat_info_t): New types.
      	(comp_cat_cache): New array variable.
      	(lookup_comparison_result, lookup_comparison_category)
      	(is_cat, cat_tag_for, spaceship_comp_cat)
      	(spaceship_type, genericize_spaceship)
      	(common_comparison_type, early_check_defaulted_comparison)
      	(comp_info, build_comparison_op): New.
      	(synthesize_method): Handle sfk_comparison.  Handle deleted.
      	(get_defaulted_eh_spec, maybe_explain_implicit_delete)
      	(explain_implicit_non_constexpr, implicitly_declare_fn)
      	(defaulted_late_check, defaultable_fn_check): Handle sfk_comparison.
      	* name-lookup.c (get_std_name_hint): Add comparison categories.
      	* tree.c (special_function_p): Add sfk_comparison.
      	* typeck.c (cp_build_binary_op): Handle SPACESHIP_EXPR.
      
      2019-11-05  Tim van Deurzen  <tim@kompiler.org>
      
      	Add new tree code for the spaceship operator.
      gcc/cp/
      	* cp-tree.def: Add new tree code.
      	* operators.def: New binary operator.
      	* parser.c: Add new token and tree code.
      libcpp/
      	* cpplib.h: Add spaceship operator for C++.
      	* lex.c: Implement conditional lexing of spaceship operator for C++20.
      
      2019-11-05  Jonathan Wakely  <jwakely@redhat.com>
      
      libstdc++-v3/
      	* libsupc++/compare: New header.
      	* libsupc++/Makefile.am (std_HEADERS): Add compare.
      	* include/std/version: Define __cpp_lib_three_way_comparison.
      	* include/std/functional: #include <compare>.
      
      From-SVN: r277865
      Jason Merrill committed
    • Fix conversions for built-in operator overloading candidates. · b63566a4
      While working on C++20 operator<=>, I noticed that build_new_op_1 was doing
      too much conversion when a built-in candidate was selected; the standard
      says it should only perform user-defined conversions, and then leave the
      normal operator semantics to handle any standard conversions.  This is
      important for operator<=> because a comparison of two different unscoped
      enums is ill-formed; if we promote the enums to int here, cp_build_binary_op
      never gets to see the original operand types, so we can't give the error.
      
      I'm also disabling -Wmaybe-uninitialized for expmed.c to avoid the bootstrap
      failure from the last time I applied this patch.
      
      	* call.c (build_new_op_1): Don't apply any standard conversions to
      	the operands of a built-in operator.  Don't suppress conversions in
      	cp_build_unary_op.
      	* typeck.c (cp_build_unary_op): Do integral promotions for enums.
      
      	PR tree-optimization/91825
      	* expmed.c: Reduce -Wmaybe-uninitialized to warning.
      
      From-SVN: r277864
      Jason Merrill committed
    • Use vec instead of raw array for built-in candidates. · 6fda5f49
      My operator<=> patch wants to split up build_new_op_1, which makes using a
      tree array as well as the vec inconvenient.  build_new_op_1 already has a
      vec, and build_conditional_expr_1 can release its vec right away, so this
      doesn't increase garbage at all.
      
      	* call.c (build_builtin_candidate): Take args in a vec.
      	(add_builtin_candidate, add_builtin_candidates): Likewise.
      	(build_conditional_expr_1, build_new_op_1): Adjust.
      
      From-SVN: r277863
      Jason Merrill committed
    • Various small C++ changes. · f22f817c
      Wrappers for lookup_qualified_name and build_x_binary_op to make calling
      them more convenient in places, and a function named contextual_conv_bool
      for places that want contextual conversion to bool.
      
      I noticed that we weren't showing the declaration location when we complain
      about a call to a non-constexpr function where a constant expression is
      required.
      
      If maybe_instantiate_noexcept doesn't actually instantiate, there's no
      reason for it to mess with clones.
      
      	* constexpr.c (explain_invalid_constexpr_fn): Show location of fn.
      
      	* pt.c (maybe_instantiate_noexcept): Only update clones if we
      	instantiated.
      
      	* typeck.c (contextual_conv_bool): New.
      
      	* name-lookup.c (lookup_qualified_name): Add wrapper overload taking
      	C string rather than identifier.
      	* parser.c (cp_parser_userdef_numeric_literal): Use it.
      	* rtti.c (emit_support_tinfos): Use it.
      	* cp-tree.h (ovl_op_identifier): Change to inline functions.
      	(build_x_binary_op): Add wrapper with fewer parms.
      
      From-SVN: r277862
      Jason Merrill committed
    • Allow libcalls for complex memcpy when optimizing for size. · a81ffd93
      The RISC-V backend wants to use a libcall when optimizing for size if
      more than 6 instructions are needed.  Emit_move_complex asks for no
      libcalls.  This case requires 8 insns for rv64 and 16 insns for rv32,
      so we get fallback code that emits a loop.  Commit_one_edge_insertion
      doesn't allow code inserted for a phi node on an edge to end with a
      branch, and so this triggers an assertion.  This problem goes away if
      we allow libcalls when optimizing for size, which gives the code the
      RISC-V backend wants, and avoids triggering the assert.
      
      	gcc/
      	PR middle-end/92263
      	* expr.c (emit_move_complex): Only use BLOCK_OP_NO_LIBCALL when
      	optimize_insn_for_speed_p is true.
      
      	gcc/testsuite/
      	PR middle-end/92263
      	* gcc.dg/pr92263.c: New.
      
      From-SVN: r277861
      Jim Wilson committed
    • Catch missed uses of function with unsatisfied constraints. · 8aa76bb7
      While looking at CA378 I noticed that we weren't properly diagnosing two of
      the three erroneous lines in the example.
      
      	* decl2.c (mark_used): Diagnose use of a function with unsatisfied
      	constraints here.
      	* typeck.c (cp_build_function_call_vec): Not here.
      
      From-SVN: r277860
      Jason Merrill committed
    • Make -fconcepts-ts imply -fconcepts. · 0df65305
      	* c-opts.c (c_common_post_options): -fconcepts-ts implies
      	-fconcepts.
      
      From-SVN: r277859
      Jason Merrill committed
    • PR middle-end/92333 - missing variable name referencing VLA in warnings · 8299dfae
      PR middle-end/92333 - missing variable name referencing VLA in warnings
      PR middle-end/82608 - missing -Warray-bounds on an out-of-bounds VLA index
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/92333
      	PR middle-end/82608
      	* gcc.dg/Warray-bounds-51.c: New test.
      
      gcc/ChangeLog:
      
      	PR middle-end/92333
      	PR middle-end/82608
      	* tree-vrp.c (vrp_prop::check_array_ref): Handle VLAs with constant
      	size.
      	* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use a meaninful
      	name and location for a temporary variable.
      
      From-SVN: r277854
      Martin Sebor committed
    • [PR c++/92370] ICE with VC marker · 3fd4f924
      https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00323.html
      	cp/
      	PR c++/92370
      	* parser.c (cp_parser_error_1): Check EOF and UNKNOWN_LOCATION
      	when skipping over version control marker.
      
      	testsuite/
      	PR c++/92370
      	* g++.dg/pr92370.C: New.
      
      From-SVN: r277853
      Nathan Sidwell committed
    • PR middle-end/92341 - missing -Warray-bounds indexing past the end of a compound literal · 361d4a9e
      PR middle-end/92341 - missing -Warray-bounds indexing past the end of a compound literal
      PR middle-end/82612 - missing -Warray-bounds on a non-zero offset from the address of a non-array object
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/92341
      	PR middle-end/82612
      	* g++.dg/warn/Warray-bounds-4.C: Adjust text of expected warning.
      	* gcc.dg/Warray-bounds-53.c: New test.
      	* gcc.dg/Warray-bounds-54.c: New test.
      
      gcc/ChangeLog:
      
      	PR middle-end/92341
      	PR middle-end/82612
      	* tree-sra.c (get_access_for_expr): Fail for out-of-bounds offsets.
      	* tree-vrp.c (vrp_prop::check_array_ref): Correct index and text
      	of message printed in a warning for empty arrays.
      	(vrp_prop::check_mem_ref): Also handle function parameters and
      	empty arrays.
      
      From-SVN: r277851
      Martin Sebor committed
    • re PR tree-optimization/92371 (ICE in info_for_reduction, at tree-vect-loop.c:4106) · 02bf7e6f
      2019-11-05  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92371
      	* tree-vect-loop.c (vectorizable_reduction): Set STMT_VINFO_REDUC_DEF
      	on the original stmt of live stmts in the chain.
      	(vectorizable_live_operation): Look at the original stmt when
      	checking STMT_VINFO_REDUC_DEF.
      
      	* gcc.dg/torture/pr92371.c: New testcase.
      
      From-SVN: r277850
      Richard Biener committed
    • Fix <version> header for freestanding · c6a7be9b
      	* include/std/version [!_GLIBCXX_HOSTED]: Do not define feature test
      	macros for features that are only present in hosted builds.
      
      From-SVN: r277849
      Jonathan Wakely committed
    • Remove incorrect comment · 6762b658
      The negative concept is required for subsumption to work, it's not a
      bug.
      
      	* include/bits/iterator_concepts.h (__iter_without_nested_types):
      	Remove incorrect comment.
      
      From-SVN: r277848
      Jonathan Wakely committed
    • The base class for ranges is currently value_range_base, which is rather long and cumbersome. · 028d81b1
      The base class for ranges is currently value_range_base, which is
      rather long and cumbersome.  It also occurs more often than the derived
      class of value_range.  To avoid confusion, and save typing, this
      patch does a global rename from value_range to value_range_equiv,
      and from value_range_base to value_range.
      
      This way, the base class is simply value_range, and the derived
      class is value_range_equiv which explicitly states what it does.
      
      From-SVN: r277847
      Aldy Hernandez committed
    • [mid-end] Fix declared type of personality functions · 3619076a
      
      `build_personality_function` generates a declaration for a personality
      function.  The type it declares for these functions doesn't match the
      type of the actual personality functions that are defined by the C++
      unwinding ABI.
      
      This doesn't cause any crashes since the compiler never generates a call
      to these decl's, and hence the type of the function is never used.
      Nonetheless, for the sake of consistency and readability we update the
      type of this declaration.
      
      gcc/ChangeLog:
      
      2019-11-05  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	* expr.c (build_personality_function): Fix generated type to
      	match actual personality functions.
      
      From-SVN: r277846
      Matthew Malcomson committed
    • [aarch64] Allocate space for err_str in aarch64_handle_attr_branch_protection · 81e40f3a
      
      -fsanitize=hwaddress found a one-byte overwrite when running the
      testsuite here.  aarch64_handle_attr_branch_protection allocates
      `strlen(str)` bytes for an error string, which is populated by
      `strcpy(..., str)` in the case where the branch protection string is
      completely invalid.
      
      Not tested -- I don't want to re-build and it seems obvious.
      
      gcc/ChangeLog:
      
      2019-11-05  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	* config/aarch64/aarch64.c (aarch64_handle_attr_cpu): Allocate
      	enough bytes for the NULL character.
      
      From-SVN: r277845
      Matthew Malcomson committed
    • Update LOCAL_PATCHES. · 4330d1c4
      From-SVN: r277839
      Martin Liska committed
    • Update scanned patterns in a test-case. · f2f48cae
      2019-11-05  Martin Liska  <mliska@suse.cz>
      
      	* c-c++-common/ubsan/ptr-overflow-2.c: Update based on changed
      	run-time reporting format.
      
      From-SVN: r277838
      Martin Liska committed
    • Set print_summary for UBSAN. · 1c48938e
      2019-11-05  Martin Liska  <mliska@suse.cz>
      
      	* ubsan/ubsan_flags.cpp (InitializeFlags): Trunk decided to print
      	summary for all sanitizers, but we want to have UBSAN without it.
      
      From-SVN: r277837
      Martin Liska committed
    • Reapply all revisions mentioned in LOCAL_PATCHES. · acd700fd
      2019-11-05  Martin Liska  <mliska@suse.cz>
      
      	* asan/asan_globals.cpp (CheckODRViolationViaIndicator): Reapply from
      	LOCAL_PATCHES.
      	(CheckODRViolationViaPoisoning): Likewise.
      	(RegisterGlobal): Likewise.
      	* asan/asan_interceptors.h (ASAN_INTERCEPT___CXA_RETHROW_PRIMARY_EXCEPTION): Likewise.
      	(defined): Likewise.
      	* asan/asan_mapping.h: Likewise.
      	* sanitizer_common/sanitizer_linux_libcdep.cpp (defined): Likewise.
      	* sanitizer_common/sanitizer_mac.cpp (defined): Likewise.
      	* sanitizer_common/sanitizer_platform_limits_linux.cpp (defined): Likewise.
      	* sanitizer_common/sanitizer_platform_limits_posix.h: Likewise.
      	* sanitizer_common/sanitizer_stacktrace.cpp (GetCanonicFrame): Likewise.
      	* tsan/tsan_rtl_ppc64.S: Likewise.
      	* ubsan/ubsan_handlers.cpp (__ubsan::__ubsan_handle_cfi_bad_icall): Likewise.
      	(__ubsan::__ubsan_handle_cfi_bad_icall_abort): Likewise.
      	* ubsan/ubsan_handlers.h (struct CFIBadIcallData): Likewise.
      	(struct CFICheckFailData): Likewise.
      	(RECOVERABLE): Likewise.
      	* ubsan/ubsan_platform.h: Likewise.
      
      From-SVN: r277836
      Martin Liska committed
    • Update Makefile.am. · 617be04a
      2019-11-05  Martin Liska  <mliska@suse.cz>
      
      	* tsan/Makefile.am: Rename tsan_interceptors.cpp to
      	tsan_interceptors_posix.
      	* tsan/Makefile.in: Regenerate.
      
      From-SVN: r277835
      Martin Liska committed
    • Libsanitizer: merge from trunk with merge.sh. · 3ca75cd5
      2019-11-05  Martin Liska  <mliska@suse.cz>
      
      	* all source files: Merge from upstream r375507.
      
      From-SVN: r277834
      Martin Liska committed
    • IBM Z: gen-vect-26/28: Vectorizing without peeling is ok for Z · 9bae8992
      These tests check if loop peeling has been applied to avoid
      having to vectorize unaligned loops.  On Z we do not have any
      alignment requirements for vectorization so we also don't need want
      the loop peeling here.
      
      2019-11-05  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.dg/tree-ssa/gen-vect-26.c: Disable loop peeling check for
      	IBM Z.
      	* gcc.dg/tree-ssa/gen-vect-28.c: Likewise.
      
      From-SVN: r277833
      Andreas Krebbel committed
    • re PR target/92280 (gcc.target/i386/pr83008.c FAILs) · c265dfbf
      2019-11-05  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92280
      	* match.pd (BIT_FIELD_REF of CTOR): Unless the original CTOR
      	had a single use do not create a new CTOR.
      	* tree-ssa-forwprop.c (simplify_bitfield_ref): Do not re-fold
      	BIT_FIELD_REF of a CTOR via GENERIC.
      
      From-SVN: r277832
      Richard Biener committed
    • IBM Z: gen-vect-11/32: Set min-vect-loop-bound param back to default · d9adca6e
      In the Z backend we still set min-vect-loop-bound to 2 to work around
      corner cases where awkward epilogue code gets generated in the
      vectorizer.  This has a particular bad impact when vectorizing loops
      with a low iteration count.  Due to this we do not vectorize the loop
      in gen-vect-11/32 - what actually is a pity.
      
      The patch sets min-vect-loop-bound back to the default value of 0 in
      order to enable vectorization.
      
      2019-11-05  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.dg/tree-ssa/gen-vect-11.c: Add --param min-vect-loop-bound=0
      	for IBM Z.
      	* gcc.dg/tree-ssa/gen-vect-23.c: Likewise.
      
      From-SVN: r277831
      Andreas Krebbel committed
    • IBM Z: Fix testsuite useable_hw check · d8e5ca29
      This fixes various issues with the useable_hw check in s390.exp.  The
      check is supposed to verify whether a testcase can be run on the
      current hardware.
      
      - the test never returned true for -m31 because vzero is not available
        in ESA mode and -m31 defaults to -mesa
      - the missing v0 clobber on the vzero instruction made the check fail
        if the stack pointer got saved in f0
      - the lcbb instruction used for checking whether we are on a z13
        also requires vx.  Replace it with an instruction from the generic
        instruction set extensions.
      - no support for z14 and z15 so far
      
      gcc/testsuite/ChangeLog:
      
      2019-11-05  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/s390.exp
      	(check_effective_target_s390_useable_hw): Add inline asm for z14
      	and z15. Replace instruction for z13 with lochiz. Add register
      	clobbers. Check also for __zarch__ when doing the __VX__ test.
      
      From-SVN: r277830
      Andreas Krebbel committed
    • IBM Z: Use tree_fits_uhwi_p in vector_alignment hook · 76d8b4d1
      This fixes an ICE in gcc.dg/attr-vector_size.c testcase.
      
      gcc/ChangeLog:
      
      2019-11-05  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390.c (s390_vector_alignment): Check if the value
      	fits into uhwi before using it.
      
      From-SVN: r277829
      Andreas Krebbel committed
    • [ARM,testsuite] Skip tests incompatible with -mpure-code. · 30f1f974
      All these tests fail when using -mpure-code:
      * some force A or R profile
      * some use Neon
      * some use -fpic/-fPIC
      all of which are not supported by this option.
      
      2019-11-05  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* gcc.target/arm/attr-crypto.c: Skip if -mpure-code is used.
      	* gcc.target/arm/attr-neon-fp16.c: Likewise.
      	* gcc.target/arm/combine-cmp-shift.c: Likewise.
      	* gcc.target/arm/data-rel-1.c: Likewise.
      	* gcc.target/arm/data-rel-2.c: Likewise.
      	* gcc.target/arm/data-rel-3.c: Likewise.
      	* gcc.target/arm/ftest-armv7a-arm.c: Likewise.
      	* gcc.target/arm/ftest-armv7a-thumb.c: Likewise.
      	* gcc.target/arm/ftest-armv7r-arm.c: Likewise.
      	* gcc.target/arm/ftest-armv7r-thumb.c: Likewise.
      	* gcc.target/arm/ftest-armv7ve-arm.c: Likewise.
      	* gcc.target/arm/ftest-armv7ve-thumb.c: Likewise.
      	* gcc.target/arm/ftest-armv8a-arm.c: Likewise.
      	* gcc.target/arm/ftest-armv8a-thumb.c: Likewise.
      	* gcc.target/arm/lceil-vcvt_1.c: Likewise.
      	* gcc.target/arm/lfloor-vcvt_1.c: Likewise.
      	* gcc.target/arm/lround-vcvt_1.c: Likewise.
      	* gcc.target/arm/memset-inline-10.c: Likewise.
      	* gcc.target/arm/mod_2.c: Likewise.
      	* gcc.target/arm/mod_256.c: Likewise.
      	* gcc.target/arm/pr40657-1.c: Likewise.
      	* gcc.target/arm/pr44788.c: Likewise.
      	* gcc.target/arm/pr50305.c: Likewise.
      	* gcc.target/arm/pr51835.c: Likewise.
      	* gcc.target/arm/pr51915.c: Likewise.
      	* gcc.target/arm/pr52006.c: Likewise.
      	* gcc.target/arm/pr53187.c: Likewise.
      	* gcc.target/arm/pr58784.c: Likewise.
      	* gcc.target/arm/pr59575.c: Likewise.
      	* gcc.target/arm/pr59923.c: Likewise.
      	* gcc.target/arm/pr60650-2.c: Likewise.
      	* gcc.target/arm/pr60657.c: Likewise.
      	* gcc.target/arm/pr60663.c: Likewise.
      	* gcc.target/arm/pr67439_1.c: Likewise.
      	* gcc.target/arm/pr68620.c: Likewise.
      	* gcc.target/arm/pr7676.c: Likewise.
      	* gcc.target/arm/pr79239.c: Likewise.
      	* gcc.target/arm/pr81863.c: Likewise.
      	* gcc.target/arm/pragma_attribute.c: Likewise.
      	* gcc.target/arm/pragma_cpp_fma.c: Likewise.
      	* gcc.target/arm/require-pic-register-loc.c: Likewise.
      	* gcc.target/arm/thumb-ltu.c: Likewise.
      	* gcc.target/arm/thumb1-pic-high-reg.c: Likewise.
      	* gcc.target/arm/thumb1-pic-single-base.c: Likewise.
      	* gcc.target/arm/tlscall.c: Likewise.
      	* gcc.target/arm/unsigned-float.c: Likewise.
      	* gcc.target/arm/vrinta-ce.c: Likewise.
      
      From-SVN: r277828
      Christophe Lyon committed
    • Use more ggc_delete. · 9aca5960
      2019-11-05  Martin Liska  <mliska@suse.cz>
      
      	* symbol-summary.h: Use ggc_delete.
      
      From-SVN: r277827
      Martin Liska committed
    • [Aarch64] Fix vec_perm cost for thunderx2t99 · 5aef51c2
      Here is the one-liner that fixes the incorrect
      vec_perm cost for thunderx2t99 chip.
      With the patch applied 526.blender of CPU2017
      gets ~5% improvement with no measurable changes
      for other benchmarks.
      
      2019-11-05  Anton Youdkevitch  <anton.youdkevitch@bell-sw.com>
      
      	* config/aarch64/aarch64.c (thunderx2t99_vector_cost):
      	Change vec_perm field to 10.
      
      From-SVN: r277826
      Anton Youdkevitch committed
    • * doc/install.texi: Further fix syntax for html generation · dd2f3208
      From-SVN: r277824
      Arnaud Charlet committed
    • Update coding style in symbol-summary.h. · dbe348c1
      2019-11-05  Martin Liska  <mliska@suse.cz>
      
      	* symbol-summary.h: Rename allocator to m_allocator and
      	add comment.
      
      From-SVN: r277823
      Martin Liska committed
    • re PR tree-optimization/92324 (ICE in expand_direct_optab_fn, at internal-fn.c:2890) · f340142b
      2019-11-05  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92324
      	* tree-vect-loop.c (check_reduction_path): For MIN/MAX require
      	all signed or unsigned operations.
      
      	* gcc.dg/vect/pr92324-3.c: New testcase.
      
      From-SVN: r277822
      Richard Biener committed
    • hsa-brig.c: Include alloc-pool.h · a895e6d7
      
      	* hsa-brig.c: Include alloc-pool.h
      	* hsa-dump.c: Likewise.
      	* hsa-gen.c: Likewise.
      	* hse-regalloc.c: Likewise.
      	* ipa-hsa.c: Likewise.
      	* ipa-predicate.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-sra.c: Likewise.
      	* omp-expand.c: Likewise.
      	* omp-general.c: Likewise.
      	* omp-low.c: Likewise.
      	* sumbol-summary.h (function_summary_base): Add allocator.
      	(function_summary<T *>::function_summary): Update construction.
      	(fast_function_summary<T *, V>::fast_function_summary): Likewise.
      	(call_summary_base): Add allcator.
      	(call_summary<T *>::call_summary): Update construction.
      	(fast_call_summary<T *, V>::fast_call_summary): Likewise.
      
      From-SVN: r277821
      Jan Hubicka committed
    • re PR tree-optimization/91945 (ICE: tree check: expected integer_cst, have… · f05b3724
      re PR tree-optimization/91945 (ICE: tree check: expected integer_cst, have var_decl in get_len, at tree.h:5837 since r274997)
      
      	PR tree-optimization/91945
      	* builtins.c (compute_objsize): For ARRAY_REF, only multiply off
      	by tpsize if it is both non-NULL and INTEGER_CST, otherwise punt.
      	Formatting fix.
      
      	* gfortran.dg/pr91945.f90: New test.
      
      From-SVN: r277820
      Jakub Jelinek committed
    • re PR c++/92343 ([[likely]]/[[unlikely]] prevent method from being a constant expression) · 81012684
      	PR c++/92343
      	* constexpr.c (potential_constant_expression_1): Return true rather
      	than false for PREDICT_EXPR.
      
      	* g++.dg/cpp2a/attr-likely6.C: New test.
      
      From-SVN: r277819
      Jakub Jelinek committed
    • Move vrp_set_zero_nonzero_bits from tree-vrp.c into vr-values.c, and make it use… · 8f119c55
      Move vrp_set_zero_nonzero_bits from tree-vrp.c into vr-values.c, and make it use wi_set_zero_nonzero_bits.
      
      Move vrp_set_zero_nonzero_bits from tree-vrp.c into vr-values.c, and
      make it use wi_set_zero_nonzero_bits.  Remove the now redundant
      wide_int_range_set_zero_nonzero_bits.
      
      From-SVN: r277818
      Aldy Hernandez committed
    • Really add gcc/config/gcn/t-omp-device · 16a3a930
              gcc/
              * config/gcn/t-omp-device: New.
              Should have been part of Rev. 277797.
      
      From-SVN: r277817
      Tobias Burnus committed
    • Remove FIELD_DECL leftover. · db81e91c
      2019-11-05  Martin Liska  <mliska@suse.cz>
      
      	PR c++/92339
      	* fold-const.c (operand_compare::hash_operand): Remove
      	FIELD_DECL handling.
      2019-11-05  Martin Liska  <mliska@suse.cz>
      
      	PR c++/92339
      	* g++.dg/pr92339.C: New test.
      
      From-SVN: r277816
      Martin Liska committed