aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2019-01-20[D] Fix identity comparison for structs with complex float fields.Iain Buclaw6-25/+81
gcc/d/ChangeLog: 2019-01-20 Iain Buclaw <ibuclaw@gdcproject.org> * d-codegen.cc (identity_compare_p): Return false if seen built-in type with padding. (build_float_identity): Moved here from expr.cc. (lower_struct_comparison): Handle real and complex types. * d-tree.h (build_float_identity): New. * expr.cc (build_float_identity): Move to d-codegen.cc. gcc/testsuite/ChangeLog: 2019-01-20 Iain Buclaw <ibuclaw@gdcproject.org> * gdc.dg/runnable.d: Add more tests for comparing complex types. From-SVN: r268104
2019-01-20[D] Fix IdentityExp comparison for complex floats.Johannes Pfau4-5/+59
gcc/d/ChangeLog: 2019-01-20 Johannes Pfau <johannespfau@gmail.com> * expr.cc (build_float_identity): New function. (ExprVisitor::visit(IdentityExp)): Add support for complex types. gcc/testsuite/ChangeLog: 2019-01-20 Johannes Pfau <johannespfau@gmail.com> * gdc.dg/runnable.d: Add tests for comparing complex types. From-SVN: r268103
2019-01-20vector long long and vector double require vsx support.Kewen Lin3-82/+108
gcc/testsuite/ChangeLog * gcc.target/powerpc/altivec_vld_vst_addr.c: Remove, split into altivec_vld_vst_addr-1.c and altivec_vld_vst_addr-2.c. * gcc.target/powerpc/altivec_vld_vst_addr-1.c: New test. * gcc.target/powerpc/altivec_vld_vst_addr-2.c: Ditto. From-SVN: r268102
2019-01-20Daily bump.GCC Administrator1-1/+1
From-SVN: r268101
2019-01-19[multiple changes]Dominique d'Humieres6-2/+37
2019-01-19 Dominique d'Humieres <dominiq@gcc.gnu.org> PR fortran/37835 * resolve.c (resolve_types): Add !flag_automatic. * symbol.c (gfc_add_save): Silence warnings. 2019-01-18 Dominique d'Humieres <dominiq@gcc.gnu.org> PR fortran/37835 * gfortran.dg/no-automatic.f90: New test. From-SVN: r268098
2019-01-19re PR fortran/77960 (ICE in gfc_conv_ss_startstride, at ↵Steven G. Kargl4-0/+36
fortran/trans-array.c:3966) 2019-01-19 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/77960 * io.c (match_io_element): input-item cannot be an external function. 2019-01-19 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/77960 * gfortran.dg/pr77960.f90: New test. From-SVN: r268097
2019-01-19re PR fortran/56789 (Handling of contiguous dummy arguments)Thomas Koenig5-6/+90
2018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org> Paul Thomas <pault@gcc.gnu.org> PR fortran/56789 * trans-expr.c (gfc_conv_procedure_call): Call gfc_conv_subref_array_arg if the formal arg is contiguous and the actual arg may not be. 2018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org> Paul Thomas <pault@gcc.gnu.org> PR fortran/56789 * gfortran.dg/contiguous_3.f90: Make code compilant. Remove scan-tree tests that fail with patch. * gfortran.dg/contiguous_8.f90: New test. Co-Authored-By: Paul Thomas <pault@gcc.gnu.org> From-SVN: r268096
2019-01-19aarch64.c (aarch64_stack_protect_guard): Move outside of #if CHECKING_P code.Jakub Jelinek2-13/+18
* config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move outside of #if CHECKING_P code. From-SVN: r268095
2019-01-19Claw back some of the code size regression in 548.exchange2_rRichard Sandiford6-20/+158
This patch tries harder to detect cases in which the inner dimension of an array access is invariant, such as: x(i, :) = 100 It fixes some of the code size regression in 548.exchange2_r, with size improving by 5% compared to before the patch. Of the two other SPEC 2017 tests affected by loop versioning, 554.roms_r improved by a trivial amount (0.3%) and 549.fotonik3d_r didn't change. All three results are with -Ofast -flto. 2019-01-19 Richard Sandiford <richard.sandiford@arm.com> gcc/ * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood): New function, split out from... (loop_versioning::analyze_stride): ...here. (loop_versioning::find_per_loop_multiplication): Use gassign. (loop_versioning::analyze_term_using_scevs): Return a success code. (loop_versioning::analyze_arbitrary_term): New function. (loop_versioning::analyze_address_fragment): Use analyze_arbitrary_term if all else fails. gcc/testsuite/ * gfortran.dg/loop_versioning_1.f90: Bump the number of identified inner strides. * gfortran.dg/loop_versioning_9.f90: New test. * gfortran.dg/loop_versioning_10.f90: Likewise. From-SVN: r268093
2019-01-19re PR fortran/88871 (ICE segmentation fault in f951)Thomas Koenig2-5/+15
2019-01-17 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/88871 * resolve.c (resolve_ref): Fix logic for removal of reference. From-SVN: r268092
2019-01-19re PR fortran/88902 (ICE: Segmentation fault (in DFS::DFS_write_tree_body))Jakub Jelinek4-19/+40
PR fortran/88902 * trans-decl.c (gfc_get_symbol_decl): Don't add length to function or parent function if it has been added there already. * gfortran.dg/pr88902.f90: New test. From-SVN: r268091
2019-01-18attr-nonstring-3.c: Remove an xfail.Martin Sebor2-1/+5
gcc/testsuite/ChangeLog: * c-c++-common/attr-nonstring-3.c: Remove an xfail. From-SVN: r268090
2019-01-19Daily bump.GCC Administrator1-1/+1
From-SVN: r268089
2019-01-18PR c++/88875 - error with explicit list constructor.Jason Merrill3-3/+35
In my patch for CWG issue 2267, I changed reference_binding to clear CONSTRUCTOR_IS_DIRECT_INIT on the argument init-list. But that breaks if there's another candidate for which CONSTRUCTOR_IS_DIRECT_INIT is correct. So instead, let's encode in the conversion that we want to override the flag. * call.c (reference_binding): Don't modify EXPR. Set need_temporary_p on the ck_user conversion for a temporary. (convert_like_real): Check it. From-SVN: r268085
2019-01-18libgo: update to Go1.12beta2Ian Lance Taylor3-6/+13
Reviewed-on: https://go-review.googlesource.com/c/158019 gotools/: * Makefile.am (go_cmd_vet_files): Update for Go1.12beta2 release. (GOTOOLS_TEST_TIMEOUT): Increase to 600. (check-runtime): Export LD_LIBRARY_PATH before computing GOARCH and GOOS. (check-vet): Copy golang.org/x/tools into check-vet-dir. * Makefile.in: Regenerate. gcc/testsuite/: * go.go-torture/execute/names-1.go: Stop using debug/xcoff, which is no longer externally visible. From-SVN: r268084
2019-01-18rs6000: Fix *movsi_from_df (PR88892)Segher Boessenkool2-14/+15
The memory store instructions (stfs[u][x], stxssp[x]) can result in garbage if the value to be stored isn't already a valid single precision floating point number. So we cannot use this here. PR target/88892 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register operands. From-SVN: r268083
2019-01-18re PR c++/86926 (ICE for a recursive generic lambda)Marek Polacek2-0/+21
PR c++/86926 * g++.dg/cpp1z/constexpr-lambda23.C: New test. From-SVN: r268080
2019-01-18Update PR middle-end/88587 testsH.J. Lu3-4/+12
It is wrong to use -m32 in dg-options. { target ia32 } should be used instead. Also add -fno-pic to g++.target/i386/pr88587.C since it is invalid with PIC. PR middle-end/88587 * g++.target/i386/pr88587.C (dg-do): Add { target ia32 }. (dg-options): Replace -m32 with -fno-pic. * gcc.target/i386/mvc13.c (dg-do): Add { target ia32 }. (dg-options): Remove -m32. From-SVN: r268079
2019-01-18re PR tree-optimization/88903 (wrong-code with SLP vectorized shift)Richard Biener5-0/+77
2019-01-18 Richard Biener <rguenther@suse.de> PR tree-optimization/88903 * tree-vect-stmts.c (vectorizable_shift): Verify we see all scalar stmts a SLP shift amount is composed of when detecting shifts by scalars. * gcc.dg/vect/pr88903-1.c: New testcase. * gcc.dg/vect/pr88903-2.c: Likewise. From-SVN: r268076
2019-01-18c-family: Update unaligned adress of packed member checkH.J. Lu14-88/+250
Check unaligned pointer conversion and strip NOPS. gcc/c-family/ PR c/51628 PR c/88664 * c-common.h (warn_for_address_or_pointer_of_packed_member): Remove the boolean argument. * c-warn.c (check_address_of_packed_member): Renamed to ... (check_address_or_pointer_of_packed_member): This. Also warn pointer conversion. (check_and_warn_address_of_packed_member): Renamed to ... (check_and_warn_address_or_pointer_of_packed_member): This. Also warn pointer conversion. (warn_for_address_or_pointer_of_packed_member): Remove the boolean argument. Don't check pointer conversion here. gcc/c PR c/51628 PR c/88664 * c-typeck.c (convert_for_assignment): Upate the warn_for_address_or_pointer_of_packed_member call. gcc/cp PR c/51628 PR c/88664 * call.c (convert_for_arg_passing): Upate the warn_for_address_or_pointer_of_packed_member call. * typeck.c (convert_for_assignment): Likewise. gcc/testsuite/ PR c/51628 PR c/88664 * c-c++-common/pr51628-33.c: New test. * c-c++-common/pr51628-35.c: New test. * c-c++-common/pr88664-1.c: Likewise. * c-c++-common/pr88664-2.c: Likewise. * gcc.dg/pr51628-34.c: Likewise. From-SVN: r268075
2019-01-18PR target/88799 Add +mp and +sec extensions to ARMv7-aRichard Earnshaw7-10/+78
Most armv7-a implementations support a number of basic extensions to the architecture which are not particularly important to the compiler, but can matter if code contains inline assembly. This patch adds support for these extensions, based on the capabilities that GAS already provides for the appropriate CPUs. For the purposes of multilib selection we ignore these extensions entirely and map the extended architecture versions down to the base versions we have already support for. gcc: PR target/88799 * config/arm/arm-cpus.in (mp): New feature. (sec): New feature. (fgroup ARMv7ve): Add mp and sec features. (arch armv7-a): Add options to allow mp and sec extensions. (cpu generic-armv7-a): Add options to allow mp and sec extensions. (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec extenstions to the base architecture. (cpu cortex-a8): Add sec extension to the base architecture. (cpu marvell-pj4): Add mp and sec extensions to the base architecture. * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch variants down to the base v7-a varaint. * config/arm/t-multilib (v7_a_arch_variants): New variable. * doc/invoke.texi (ARM Options): Add +mp and +sec to the list of permitted extensions for -march=armv7-a and for -mcpu=generic-armv7-a. testsuite: * gcc.target/arm/multilib.exp (config "aprofile"): Add tests for mp and sec extensions to armv7-a. From-SVN: r268072
2019-01-18Bump version of __gcov_indirect_call_profiler function as there was ABI change.Martin Liska5-5/+17
2019-01-18 Martin Liska <mliska@suse.cz> * params.def: Fix comment. * tree-profile.c (gimple_init_gcov_profiler): Bump function name. (gimple_gen_ic_func_profiler): Likewise. 2019-01-18 Martin Liska <mliska@suse.cz> * gcc.dg/no_profile_instrument_function-attr-1.c: Update expected function name. 2019-01-18 Martin Liska <mliska@suse.cz> * libgcov-profiler.c (__gcov_indirect_call_profiler_v2): Rename to ... (__gcov_indirect_call_profiler_v3): ... this. * libgcov.h (__gcov_indirect_call_profiler_v2): Likewise. (__gcov_indirect_call_profiler_v3): Likewise. * Makefile.in: Bump function name. From-SVN: r268071
2019-01-18[AArch64] Add support for system register based stack protector canary accessRamana Radhakrishnan6-5/+201
2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle and put in error checks for stack protector guard options. (aarch64_stack_protect_guard): New. (TARGET_STACK_PROTECT_GUARD): Define. * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New. (reg_stack_protect_address<mode>): New. (stack_protect_set): Adjust for SSP_GLOBAL. (stack_protect_test): Likewise. * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New. (-mstack-protector-guard): Likewise. (-mstack-protector-guard-offset): Likewise. From-SVN: r268068
2019-01-18re PR tree-optimization/86214 (Strongly increased stack usage)Jakub Jelinek6-3/+129
PR tree-optimization/86214 * tree-inline.h (struct copy_body_data): Add add_clobbers_to_eh_landing_pads member. * tree-inline.c (add_clobbers_to_eh_landing_pad): New function. (copy_edges_for_bb): Call it if EH edge destination is < id->add_clobbers_to_eh_landing_pads. Fix a comment typo. (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads if flag_stack_reuse != SR_NONE and clear it afterwards. * g++.dg/opt/pr86214-1.C: New test. * g++.dg/opt/pr86214-2.C: New test. From-SVN: r268067
2019-01-18[ARM][testsuite] follow-up to PR target/52813 and target/11807 fix.Christophe Lyon2-1/+6
2019-01-18 Christophe Lyon <christophe.lyon@linaro.org> * gcc.target/arm/pr77904.c: Add dg-warning for sp clobber. From-SVN: r268066
2019-01-18PR target/85596 Add --with-multilib-list doc for aarch64Christophe Lyon2-2/+16
2019-01-18 Christophe Lyon <christophe.lyon@linaro.org> PR target/85596 * doc/install.texi (with-multilib-list): Document for aarch64. From-SVN: r268065
2019-01-18re PR target/88734 (AArch64's ACLE intrinsics give an ICE instead of compile ↵Jakub Jelinek2-2/+8
error when option mismatch.) PR target/88734 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace (("..."))) with ("..."). From-SVN: r268064
2019-01-18Reapply:Jakub Jelinek3-0/+49
2018-12-15 Jakub Jelinek <jakub@redhat.com> PR target/88489 * gcc.target/i386/avx512vl-vfixupimmsd-2.c: New test. * gcc.target/i386/avx512vl-vfixupimmss-2.c: New test. From-SVN: r268063
2019-01-18Document atomic fetch and nandSebastian Huber2-0/+7
Copy code example for fetch and nand from "Legacy __sync Built-in Functions for Atomic Memory Access" to "Built-in Functions for Memory Model Aware Atomic Operations". gcc/ * doc/extend.texi (Built-in Functions for Memory Model Aware Atomic Operations): Document atomic fetch and nand. From-SVN: r268062
2019-01-18RTEMS/Ada: Remove RTEMS quirkSebastian Huber2-8/+4
The new network stack (libbsd) supports IPv6. gcc/ada * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS. From-SVN: r268061
2019-01-18Reset proper type on vector types (PR middle-end/88587).Martin Liska8-24/+90
2019-01-18 Martin Liska <mliska@suse.cz> Richard Biener <rguenther@suse.de> PR middle-end/88587 * cgraph.h (create_version_clone_with_body): Add new argument with attributes. * cgraphclones.c (cgraph_node::create_version_clone): Add DECL_ATTRIBUTES to a newly created decl. And call valid_attribute_p so that proper cl_target_optimization_node is set for the newly created declaration. * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES for declaration. (expand_target_clones): Do not call valid_attribute_p, it must be already done. * tree-inline.c (copy_decl_for_dup_finish): Reset mode for vector types. 2019-01-18 Martin Liska <mliska@suse.cz> PR middle-end/88587 * g++.target/i386/pr88587.C: New test. * gcc.target/i386/mvc13.c: New test. Co-Authored-By: Richard Biener <rguenther@suse.de> From-SVN: r268060
2019-01-17PR c++/86205 - ICE with ?: of throw and template-id.Jason Merrill6-7/+49
My patch for 64372 removed a bogus lvalue-rvalue conversion for one arm of a ?: expression where the other arm is a throw. But we still need to require any overload to be resolved, even though we aren't getting that from decay_conversion anymore. * pt.c (resolve_nondeduced_context_or_error): Split out from... * typeck.c (decay_conversion): ...here. * call.c (build_conditional_expr_1): Use it. From-SVN: r268058
2019-01-18re PR go/88202 (FAIL: runtime/pprof)Ian Lance Taylor1-1/+1
PR go/88202 runtime: in sigprof, skip to sigtrampgo if we don't find sigtramp Fixes https://gcc.gnu.org/PR88202 Reviewed-on: https://go-review.googlesource.com/c/158218 From-SVN: r268057
2019-01-18re PR fortran/88898 ([Regression 9] gomp is broken by r268045)Steve Ellcey4-5/+13
2018-01-17 Steve Ellcey <sellcey@cavium.com> PR fortran/88898 * gfortran.dg/gomp/declare-simd-2.f90: Add aarch64 target specifier to warning checks. * gfortran.dg/gomp/pr79154-1.f90: Ditto. * gfortran.dg/gomp/pr83977.f90: Ditto. From-SVN: r268054
2019-01-18Daily bump.GCC Administrator1-1/+1
From-SVN: r268053
2019-01-18re PR target/88734 (AArch64's ACLE intrinsics give an ICE instead of compile ↵Jakub Jelinek2-5/+12
error when option mismatch.) PR target/88734 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics. From-SVN: r268049
2019-01-17PR middle-end/88273 - [8/9 Regression] warning: 'memcpy' offset [-527, -529]Martin Sebor4-5/+42
PR middle-end/88273 - [8/9 Regression] warning: 'memcpy' offset [-527, -529] is out of the bounds [0, 16] gcc/ChangeLog: PR middle-end/88273 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): Handle anti-ranges the same as no range at all. gcc/testsuite/ChangeLog: PR middle-end/88273 * gcc.dg/Warray-bounds-38.c: New test. From-SVN: r268048
2019-01-17Improve the C error for mismatched array string literal initialization.Tom Honermann7-80/+91
* c-typeck.c (digest_init): Revised the error message produced for ill-formed cases of array initialization with a string literal. (error_init): Make variadic. Co-Authored-By: Jason Merrill <jason@redhat.com> From-SVN: r268047
2019-01-17PR c++/86740, ICE with constexpr if and nested generic lambdas.Jason Merrill3-0/+40
When we partially instantiate the constexpr if, we walk through its body to see what it uses from the enclosing local_specializations. That walk was overlooking the use of 'count' in the captures of the innermost lambda, because we weren't walking into the capture list. * tree.c (cp_walk_subtrees): Handle LAMBDA_EXPR. From-SVN: r268046
2019-01-17pr60823-1.c: Add aarch64 specific warning checks and assembler scans.Steve Ellcey19-5/+66
2018-01-17 Steve Ellcey <sellcey@cavium.com> * c-c++-common/gomp/pr60823-1.c: Add aarch64 specific warning checks and assembler scans. * c-c++-common/gomp/pr60823-3.c: Ditto. * c-c++-common/gomp/pr63328.c: Ditto. * g++.dg/gomp/declare-simd-1.C: Ditto. * g++.dg/gomp/declare-simd-3.C: Ditto. * g++.dg/gomp/declare-simd-4.C: Ditto. * g++.dg/gomp/declare-simd-7.C: Ditto. * g++.dg/gomp/pr88182.C: Ditto. * g++.dg/vect/simd-clone-7.cc: Ditto. * gcc.dg/gomp/declare-simd-1.c: Ditto. * gcc.dg/gomp/declare-simd-3.c: Ditto. * gcc.dg/gomp/pr59669-2.c: Ditto. * gcc.dg/gomp/pr87895-1.c: Ditto. * gcc.dg/gomp/pr87895-2.c: Ditto. * gcc.dg/gomp/simd-clones-2.c: Ditto. * gfortran.dg/gomp/declare-simd-2.f90: Ditto. * gfortran.dg/gomp/pr79154-1.f90: Ditto. * gfortran.dg/gomp/pr83977.f90: Ditto. From-SVN: r268045
2019-01-17aarch64.c (cgraph.h): New include.Steve Ellcey4-0/+179
2018-01-17 Steve Ellcey <sellcey@cavium.com> * config/aarch64/aarch64.c (cgraph.h): New include. (intl.h): New include. (supported_simd_type): New function. (currently_supported_simd_type): Ditto. (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto. (aarch64_simd_clone_adjust): Ditto. (aarch64_simd_clone_usable): Ditto. (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro. (TARGET_SIMD_CLONE_ADJUST): Ditto. (TARGET_SIMD_CLONE_USABLE): Ditto. * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check. * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust call. From-SVN: r268044
2019-01-17decl.c (grokdeclarator): Use typespec_loc in error messages about 'auto' and ↵Paolo Carlini10-32/+51
trailing return type. /cp 2019-01-17 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (grokdeclarator): Use typespec_loc in error messages about 'auto' and trailing return type. /testsuite 2019-01-17 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/auto52.C: Test locations too. * g++.dg/cpp0x/trailing2.C: Likewise. * g++.dg/cpp1y/auto-fn18.C: Likewise. * g++.dg/cpp1y/auto-fn25.C: Likewise. * g++.dg/cpp1y/auto-fn52.C: Likewise. * g++.dg/cpp1y/auto-fn53.C: Likewise. * g++.dg/cpp1y/auto-fn54.C: Likewise. From-SVN: r268043
2019-01-17C++: Fix ICE when adding overloaded operator via using_decl (PR c++/88699)David Malcolm4-1/+25
PR c++/88699 reports an ICE within this assertion in add_method: gcc_assert (!current_fns || !DECL_DESTRUCTOR_P (method)); when adding an overloaded operator to a class via a using_decl, due to DECL_DESTRUCTOR_P requiring a FUNCTION_DECL, but "method" being a USING_DECL. This patch weakens the assertion to avoid testing DECL_DESTRUCTOR_P for the case where "via_using" is true, fixing the ICE. gcc/cp/ChangeLog: PR c++/88699 * class.c (add_method): Don't use DECL_DESTRUCTOR_P on USING_DECLs. gcc/testsuite/ChangeLog: PR c++/88699 * g++.dg/template/pr88699.C: New test. From-SVN: r268041
2019-01-17PR tree-optimization/88800 - Spurious -Werror=array-bounds for non-taken branchMartin Sebor10-44/+221
gcc/ChangeLog: PR tree-optimization/88800 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking NO_WARNING bit here. Avoid folding out-of-bounds calls. * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove redundant argument. Add new argument and issue diagnostics under its control. Detect out-of-bounds access even with warnings disabled. (check_bounds_or_overlap): Change return type. Add argument. (wrestrict_dom_walker::check_call): Adjust. * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument. * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in check_bounds_or_overlap's return value. (handle_builtin_stxncpy): Same. (handle_builtin_strcat): Same. gcc/testsuite/ChangeLog: PR tree-optimization/88800 * c-c++-common/Wrestrict.c: Adjust. * gcc.dg/Warray-bounds-37.c: New test. * gcc.dg/builtin-memcpy-2.c: New test. * gcc.dg/builtin-memcpy.c: New test. From-SVN: r268037
2019-01-17Fix Arm testcase by using NEON.Tamar Christina2-12/+13
gcc/testsuite/ChangeLog: PR target/88850 * gcc.target/arm/pr51968.c: Use neon intrinsics. From-SVN: r268033
2019-01-17Port testsuite to GCNAndrew Stubbs18-48/+199
This collection of miscellaneous patches configures the testsuite to run on AMD GCN in a standalone (i.e. not offloading) configuration. It assumes you have your Dejagnu set up to run binaries via the gcn-run tool. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> gcc/ * doc/sourcebuild.texi: Document dg-add-options sqrt_insn. gcc/testsuite/ * gcc.dg/20020312-2.c: Add amdgcn support. * gcc.dg/Wno-frame-address.c: Disable on amdgcn. * gcc.dg/builtin-apply2.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise. * gcc.dg/gimplefe-28.c: Add dg-add-options for sqrt_insn. * gcc.dg/intermod-1.c: Add -mlocal-symbol-id on amdgcn. * gcc.dg/memcmp-1.c: Increase timeout factor. * gcc.dg/pr59605-2.c: Addd -DMAX_COPY=1025 on amdgcn. * gcc.dg/sibcall-10.c: xfail on amdgcn. * gcc.dg/sibcall-9.c: Likewise. * gcc.dg/tree-ssa/gen-vect-11c.c: Likewise. * gcc.dg/tree-ssa/pr84512.c: Likewise. * gcc.dg/tree-ssa/loop-1.c: Adjust expectations for amdgcn. * gfortran.dg/bind_c_array_params_2.f90: Likewise. * lib/target-supports.exp (check_effective_target_trampolines): Configure amdgcn. (check_profiling_available): Likewise. (check_effective_target_global_constructor): Likewise. (check_effective_target_return_address): Likewise. (check_effective_target_fopenacc): Likewise. (check_effective_target_fopenmp): Likewise. (check_effective_target_vect_int): Likewise. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_simd_clones): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_double): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_natural_alignment): Likewise. (check_effective_target_vect_fully_masked): Likewise. (check_effective_target_vect_element_align): Likewise. (check_effective_target_vect_masked_store): Likewise. (check_effective_target_vect_scatter_store): Likewise. (check_effective_target_vect_condition): Likewise. (check_effective_target_vect_cond_mixed): Likewise. (check_effective_target_vect_char_mult): Likewise. (check_effective_target_vect_short_mult): Likewise. (check_effective_target_vect_int_mult): Likewise. (check_effective_target_sqrt_insn): Likewise. (check_effective_target_vect_call_sqrtf): Likewise. (check_effective_target_vect_call_btrunc): Likewise. (check_effective_target_vect_call_btruncf): Likewise. (check_effective_target_vect_call_ceil): Likewise. (check_effective_target_vect_call_floorf): Likewise. (check_effective_target_lto): Likewise. (check_vect_support_and_set_flags): Likewise. (check_effective_target_vect_stridedN): Enable when fully masked is available. (add_options_for_sqrt_insn): New procedure. Co-Authored-By: Julian Brown <julian@codesourcery.com> Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r268028
2019-01-17Ignore LLVM's blank lines.Andrew Stubbs6-1/+35
The GCN toolchain must use the LLVM assembler and linker because there's no binutils port. The LLVM tools do not have the same diagnostic style as binutils, so the "blank line(s) in output" tests are inappropriate (and very noisy). The LLVM tools also have different command line options, so it's not possible to autodetect object formats in the same way. This patch addresses both issues. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> gcc/ * doc/sourcebuild.texi: Document dg-require-effective-target llvm_binutils and offload_gcn. gcc/testsuite/ * lib/file-format.exp (gcc_target_object_format): Handle AMD GCN. * lib/gcc-dg.exp (gcc-dg-prune): Ignore blank lines from the LLVM linker. * lib/target-supports.exp (check_effective_target_llvm_binutils): New. From-SVN: r268027
2019-01-17Testsuite: GCN is always PIE.Andrew Stubbs9-8/+22
The GCN/HSA loader ignores the load address and uses a random location, so we build all GCN binaries as PIE, by default. This patch makes the necessary testsuite adjustments to make this work correctly. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> gcc/testsuite/ * gcc.dg/graphite/scop-19.c: Check pie_enabled. * gcc.dg/pic-1.c: Disable on amdgcn. * gcc.dg/pic-2.c: Disable on amdgcn. * gcc.dg/pic-3.c: Disable on amdgcn. * gcc.dg/pic-4.c: Disable on amdgcn. * gcc.dg/pie-3.c: Disable on amdgcn. * gcc.dg/pie-4.c: Disable on amdgcn. * gcc.dg/uninit-19.c: Check pie_enabled. * lib/target-supports.exp (check_effective_target_pie): Add amdgcn. From-SVN: r268026
2019-01-17Add dg-require-effective-target exceptionsAndrew Stubbs36-1/+92
There are a number of tests that fail because they assume that exceptions are available, but GCN does not support them, yet. This patch adds "dg-require-effective-target exceptions" in all the affected tests. There's probably an automatic way to test for exceptions, but the current implementation simply says that AMD GCN does not support them. This should ensure that no other targets are affected by the change. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> gcc/ * doc/sourcebuild.texi: Document dg-required-effective-target exceptions. gcc/testsuite/ * c-c++-common/ubsan/pr71512-1.c: Require exceptions. * c-c++-common/ubsan/pr71512-2.c: Require exceptions. * gcc.c-torture/compile/pr34648.c: Require exceptions. * gcc.c-torture/compile/pr41469.c: Require exceptions. * gcc.dg/20111216-1.c: Require exceptions. * gcc.dg/cleanup-10.c: Require exceptions. * gcc.dg/cleanup-11.c: Require exceptions. * gcc.dg/cleanup-12.c: Require exceptions. * gcc.dg/cleanup-13.c: Require exceptions. * gcc.dg/cleanup-5.c: Require exceptions. * gcc.dg/cleanup-8.c: Require exceptions. * gcc.dg/cleanup-9.c: Require exceptions. * gcc.dg/gomp/pr29955.c: Require exceptions. * gcc.dg/lto/pr52097_0.c: Require exceptions. * gcc.dg/nested-func-5.c: Require exceptions. * gcc.dg/pch/except-1.c: Require exceptions. * gcc.dg/pch/valid-2.c: Require exceptions. * gcc.dg/pr41470.c: Require exceptions. * gcc.dg/pr42427.c: Require exceptions. * gcc.dg/pr44545.c: Require exceptions. * gcc.dg/pr47086.c: Require exceptions. * gcc.dg/pr51481.c: Require exceptions. * gcc.dg/pr51644.c: Require exceptions. * gcc.dg/pr52046.c: Require exceptions. * gcc.dg/pr54669.c: Require exceptions. * gcc.dg/pr56424.c: Require exceptions. * gcc.dg/pr64465.c: Require exceptions. * gcc.dg/pr65802.c: Require exceptions. * gcc.dg/pr67563.c: Require exceptions. * gcc.dg/tree-ssa/pr41469-1.c: Require exceptions. * gcc.dg/tree-ssa/ssa-dse-28.c: Require exceptions. * gcc.dg/vect/pr46663.c: Require exceptions. * lib/target-supports.exp (check_effective_target_exceptions): New. Co-Authored-By: Julian Brown <julian@codesourcery.com> Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r268025
2019-01-17GCN back-end configAndrew Stubbs4-2/+126
This patch contains the configuration adjustments needed to enable the GCN back-end. The new configure check for dlopen is required to allow building the new gcn-run tool. This tool uses libdl to load the HSA runtime libraries, which are required to run programs on the GPU. The tool is disabled if libdl is not available. 2019-01-17 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> Jan Hubicka <hubicka@ucw.cz> Martin Jambor <mjambor@suse.cz> * configure.ac: Likewise. * configure: Regenerate. * contrib/config-list.mk: Add amdgcn-amdhsa. gcc/ * config.gcc: Add amdgcn*-*-amdhsa configuration. * configure.ac: Check for dlopen. * configure: Regenerate. Co-Authored-By: Jan Hubicka <hubicka@ucw.cz> Co-Authored-By: Julian Brown <julian@codesourcery.com> Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com> Co-Authored-By: Martin Jambor <mjambor@suse.cz> Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r268024