aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-11-06introduce -fcallgraph-info optionEric Botcazou18-52/+449
This was first submitted many years ago https://gcc.gnu.org/ml/gcc-patches/2010-10/msg02468.html The command line option -fcallgraph-info is added and makes the compiler generate another output file (xxx.ci) for each compilation unit (or LTO partitoin), which is a valid VCG file (you can launch your favorite VCG viewer on it unmodified) and contains the "final" callgraph of the unit. "final" is a bit of a misnomer as this is actually the callgraph at RTL expansion time, but since most high-level optimizations are done at the Tree level and RTL doesn't usually fiddle with calls, it's final in almost all cases. Moreover, the nodes can be decorated with additional info: -fcallgraph-info=su adds stack usage info and -fcallgraph-info=da dynamic allocation info. for gcc/ChangeLog From Eric Botcazou <ebotcazou@adacore.com>, Alexandre Oliva <oliva@adacore.com> * common.opt (-fcallgraph-info[=]): New option. * doc/invoke.texi (Developer options): Document it. * opts.c (common_handle_option): Handle it. * builtins.c (expand_builtin_alloca): Record allocation if -fcallgraph-info=da. * calls.c (expand_call): If -fcallgraph-info, record the call. (emit_library_call_value_1): Likewise. * flag-types.h (enum callgraph_info_type): New type. * explow.c: Include stringpool.h. (set_stack_check_libfunc): Set SET_SYMBOL_REF_DECL on the symbol. * function.c (allocate_stack_usage_info): New. (allocate_struct_function): Call it for -fcallgraph-info. (prepare_function_start): Call it otherwise. (record_final_call, record_dynamic_alloc): New. * function.h (struct callinfo_callee): New. (CALLEE_FROM_CGRAPH_P): New. (struct callinfo_dalloc): New. (struct stack_usage): Add callees and dallocs. (record_final_call, record_dynamic_alloc): Declare. * gimplify.c (gimplify_decl_expr): Record dynamically-allocated object if -fcallgraph-info=da. * optabs-libfuncs.c (build_libfunc_function): Keep SYMBOL_REF_DECL. * print-tree.h (print_decl_identifier): Declare. (PRINT_DECL_ORIGIN, PRINT_DECL_NAME, PRINT_DECL_UNIQUE_NAME): New. * print-tree.c: Include print-tree.h. (print_decl_identifier): New function. * toplev.c: Include print-tree.h. (callgraph_info_file): New global variable. (callgraph_info_external_printed): Likewise. (output_stack_usage): Rename to... (output_stack_usage_1): ... this. Make it static, add cf parameter. If -fcallgraph-info=su, print stack usage to cf. If -fstack-usage, use print_decl_identifier for pretty-printing. (INDIRECT_CALL_NAME): New. (dump_final_node_vcg_start): New. (dump_final_callee_vcg, dump_final_node_vcg): New. (output_stack_usage): New. (lang_dependent_init): Open and start file if -fcallgraph-info. Allocated callgraph_info_external_printed. (finalize): If callgraph_info_file is not null, finish it, close it, and release callgraph_info_external_printed. for gcc/ada/ChangeLog * gcc-interface/misc.c (callgraph_info_file): Delete. Co-Authored-By: Alexandre Oliva <oliva@adacore.com> From-SVN: r277876
2019-11-06Warn about inconsistent OpenACC nested reduction clausesFrederik Harwath12-4/+2290
OpenACC (cf. OpenACC 2.7, section 2.9.11. "reduction clause"; this was first clarified by OpenACC 2.6) requires that, if a variable is used in reduction clauses on two nested loops, then there must be reduction clauses for that variable on all loops that are nested in between the two loops and all these reduction clauses must use the same operator. This commit introduces a check for that property which reports warnings if it is violated. 2019-11-06 Gergö Barany <gergo@codesourcery.com> Frederik Harwath <frederik@codesourcery.com> Thomas Schwinge <thomas@codesourcery.com> gcc/ * omp-low.c (struct omp_context): New fields local_reduction_clauses, outer_reduction_clauses. (new_omp_context): Initialize these. (scan_sharing_clauses): Record reduction clauses on OpenACC constructs. (scan_omp_for): Check reduction clauses for incorrect nesting. gcc/testsuite/ * c-c++-common/goacc/nested-reductions-warn.c: New test. * c-c++-common/goacc/nested-reductions.c: New test. * gfortran.dg/goacc/nested-reductions-warn.f90: New test. * gfortran.dg/goacc/nested-reductions.f90: New test. libgomp/ * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-1.c: Add expected warnings about missing reduction clauses. * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c: Likewise. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r277875
2019-11-06re PR inline-asm/92352 (ICE in force_constant_size)Jakub Jelinek5-17/+59
PR inline-asm/92352 * gimplify.c (gimplify_asm_expr): Reject VLA in output or input operands with non-memory constraints. * c-c++-common/pr92352.c: New test. From-SVN: r277873
2019-11-06PR92090: Fix part of testcase failures by r276469Xiong Hu Luo4-3/+11
-finline-functions is enabled by default for O2 since r276469, update the test cases with -fno-inline-functions. c11-atomic-exec-5.c stills hit ICE of LRA on BE systems in PR92090. This commit is NOT a fix for the bug and so it must NOT be closed. gcc/testsuite/ChangeLog: 2019-11-06 Xiong Hu Luo <luoxhu@linux.ibm.com> PR92090 * gcc.target/powerpc/pr72804.c: Add -fno-inline-functions --param max-inline-insns-single-O2=200. * gcc.target/powerpc/pr79439-1.c: Add -fno-inline-functions. * gcc.target/powerpc/vsx-builtin-7.c: Likewise. From-SVN: r277872
2019-11-05PR tree-optimization/92373 - ICE in -Warray-bounds on access to member array ↵Martin Sebor5-22/+193
in an initialized char buffer gcc/testsuite/ChangeLog: PR tree-optimization/92373 * gcc.dg/Warray-bounds-55.c: New test. * gcc.dg/Wzero-length-array-bounds-2.c: New test. gcc/ChangeLog: PR tree-optimization/92373 * tree.c (component_ref_size): Only consider initializers of objects of matching struct types. Return null for instances of interior zero-length arrays. From-SVN: r277871
2019-11-06Daily bump.GCC Administrator1-1/+1
From-SVN: r277870
2019-11-06doc: Insn splitting by combineSegher Boessenkool2-2/+6
The combine pass is perfectly happy if a splitter splits to just one instruction (instead of two). * doc/md.texi (Insn Splitting): Fix combiner documentation. From-SVN: r277866
2019-11-05Implement C++20 operator<=>.Jason Merrill56-127/+2653
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
2019-11-05Fix conversions for built-in operator overloading candidates.Jason Merrill5-28/+41
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
2019-11-05Use vec instead of raw array for built-in candidates.Jason Merrill2-40/+33
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
2019-11-05Various small C++ changes.Jason Merrill10-22/+66
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
2019-11-05Allow libcalls for complex memcpy when optimizing for size.Jim Wilson4-2/+43
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
2019-11-05Catch missed uses of function with unsatisfied constraints.Jason Merrill39-119/+131
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
2019-11-05Make -fconcepts-ts imply -fconcepts.Jason Merrill3-2/+7
* c-opts.c (c_common_post_options): -fconcepts-ts implies -fconcepts. From-SVN: r277859
2019-11-05PR middle-end/92333 - missing variable name referencing VLA in warningsMartin Sebor5-9/+122
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
2019-11-05[PR c++/92370] ICE with VC markerNathan Sidwell4-2/+20
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
2019-11-05Fix indentation inconsistencies introduced by previous patch.Aldy Hernandez3-16/+17
From-SVN: r277852
2019-11-05PR middle-end/92341 - missing -Warray-bounds indexing past the end of a ↵Martin Sebor7-10/+159
compound literal 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
2019-11-05re PR tree-optimization/92371 (ICE in info_for_reduction, at ↵Richard Biener4-7/+33
tree-vect-loop.c:4106) 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
2019-11-05Fix <version> header for freestandingJonathan Wakely2-48/+67
* include/std/version [!_GLIBCXX_HOSTED]: Do not define feature test macros for features that are only present in hosted builds. From-SVN: r277849
2019-11-05Remove incorrect commentJonathan Wakely2-1/+5
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
2019-11-05The base class for ranges is currently value_range_base, which is rather ↵Aldy Hernandez24-1152/+1140
long and cumbersome. 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
2019-11-05[mid-end] Fix declared type of personality functionsMatthew Malcomson2-1/+7
`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
2019-11-05[aarch64] Allocate space for err_str in aarch64_handle_attr_branch_protectionMatthew Malcomson2-1/+6
-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
2019-11-05Update LOCAL_PATCHES.Martin Liska1-3/+2
From-SVN: r277839
2019-11-05Update scanned patterns in a test-case.Martin Liska2-5/+10
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
2019-11-05Set print_summary for UBSAN.Martin Liska2-0/+6
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
2019-11-05Reapply all revisions mentioned in LOCAL_PATCHES.Martin Liska13-30/+78
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
2019-11-05Update Makefile.am.Martin Liska3-4/+10
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
2019-11-05Libsanitizer: merge from trunk with merge.sh.Martin Liska126-2216/+2758
2019-11-05 Martin Liska <mliska@suse.cz> * all source files: Merge from upstream r375507. From-SVN: r277834
2019-11-05IBM Z: gen-vect-26/28: Vectorizing without peeling is ok for ZAndreas Krebbel3-4/+12
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
2019-11-05re PR target/92280 (gcc.target/i386/pr83008.c FAILs)Richard Biener3-23/+22
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
2019-11-05IBM Z: gen-vect-11/32: Set min-vect-loop-bound param back to defaultAndreas Krebbel3-1/+15
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
2019-11-05IBM Z: Fix testsuite useable_hw checkAndreas Krebbel2-9/+20
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
2019-11-05IBM Z: Use tree_fits_uhwi_p in vector_alignment hookAndreas Krebbel2-1/+12
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
2019-11-05[ARM,testsuite] Skip tests incompatible with -mpure-code.Christophe Lyon48-8/+105
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
2019-11-05Use more ggc_delete.Martin Liska2-8/+6
2019-11-05 Martin Liska <mliska@suse.cz> * symbol-summary.h: Use ggc_delete. From-SVN: r277827
2019-11-05[Aarch64] Fix vec_perm cost for thunderx2t99Anton Youdkevitch2-1/+6
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
2019-11-05* doc/install.texi: Further fix syntax for html generationArnaud Charlet2-1/+5
From-SVN: r277824
2019-11-05Update coding style in symbol-summary.h.Martin Liska2-8/+17
2019-11-05 Martin Liska <mliska@suse.cz> * symbol-summary.h: Rename allocator to m_allocator and add comment. From-SVN: r277823
2019-11-05re PR tree-optimization/92324 (ICE in expand_direct_optab_fn, at ↵Richard Biener4-1/+50
internal-fn.c:2890) 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
2019-11-05hsa-brig.c: Include alloc-pool.hJan Hubicka13-17/+53
* 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
2019-11-05re PR tree-optimization/91945 (ICE: tree check: expected integer_cst, have ↵Jakub Jelinek4-2/+18
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
2019-11-05re PR c++/92343 ([[likely]]/[[unlikely]] prevent method from being a ↵Jakub Jelinek4-1/+24
constant expression) 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
2019-11-05Move vrp_set_zero_nonzero_bits from tree-vrp.c into vr-values.c, and make it ↵Aldy Hernandez6-71/+44
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
2019-11-05Really add gcc/config/gcn/t-omp-deviceTobias Burnus1-0/+4
gcc/ * config/gcn/t-omp-device: New. Should have been part of Rev. 277797. From-SVN: r277817
2019-11-05Remove FIELD_DECL leftover.Martin Liska4-4/+21
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
2019-11-05crontab: Disable snapshots from gcc-7-branch.Richard Biener2-1/+4
2019-10-05 Richard Biener <rguenther@suse.de> * crontab: Disable snapshots from gcc-7-branch. From-SVN: r277815
2019-11-05decl.c (omp_declare_variant_finalize_one): Call declare_simd_adjust_this not ↵Jakub Jelinek6-5/+204
just on the context... * decl.c (omp_declare_variant_finalize_one): Call declare_simd_adjust_this not just on the context, but also on the variant-id expression for methods. Don't call cp_get_callee_fndecl_nofold, call cp_get_callee and only if it is safe cp_get_fndecl_from_callee. Don't try to print as %qD NULL in diagnostics. * pt.c (tsubst_attribute): Handle "omp declare variant base" attribute. (tsubst_function_decl): Call omp_declare_variant_finalize if there are any "omp declare variant base" attributes left. * g++.dg/gomp/declare-variant-7.C: New test. * g++.dg/gomp/declare-variant-8.C: New test. From-SVN: r277814
2019-11-05Move vrp_bitmap_equal_p above its only use and make it static.Aldy Hernandez3-14/+18
From-SVN: r277813