- 13 Nov, 2019 24 commits
-
-
2019-11-13 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> include/ * gomp-constants.h (GOMP_DEVICE_GCN): Define. (GOMP_VERSION_GCN): Define. libgomp/ * Makefile.am (libgomp_la_SOURCES): Add oacc-target.c. * Makefile.in: Regenerate. * config.h.in (PLUGIN_GCN): Add new undef. * config/accel/openacc.f90 (acc_device_gcn): New parameter. * config/gcn/affinity-fmt.c: New file. * config/gcn/bar.c: New file. * config/gcn/bar.h: New file. * config/gcn/doacross.h: New file. * config/gcn/icv-device.c: New file. * config/gcn/oacc-target.c: New file. * config/gcn/simple-bar.h: New file. * config/gcn/target.c: New file. * config/gcn/task.c: New file. * config/gcn/team.c: New file. * config/gcn/time.c: New file. * configure.ac: Add amdgcn*-*-*. * configure: Regenerate. * configure.tgt: Add amdgcn*-*-*. * libgomp-plugin.h (offload_target_type): Add OFFLOAD_TARGET_TYPE_GCN. * libgomp.h (gcn_thrs): Add amdgcn variant. (set_gcn_thrs): Likewise. (gomp_thread): Likewise. * oacc-int.h (goacc_thread): Likewise. * oacc-target.c: New file. * openacc.f90 (acc_device_gcn): New parameter. * openacc.h (acc_device_t): Add acc_device_gcn. * team.c (gomp_free_pool_helper): Add amdgcn support. 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: r278135
Andrew Stubbs committed -
2019-11-13 Andrew Stubbs <ams@codesourcery.com> Julian Brown <julian@codesourcery.com> libgomp/ * libgomp-plugin.h (GOMP_OFFLOAD_openacc_async_construct): Add int parameter. * oacc-async.c (lookup_goacc_asyncqueue): Pass device number to the queue constructor. * oacc-host.c (host_openacc_async_construct): Add device parameter. * plugin/plugin-nvptx.c (GOMP_OFFLOAD_openacc_async_construct): Add device parameter. Co-Authored-By: Julian Brown <julian@codesourcery.com> From-SVN: r278134
Andrew Stubbs committed -
2019-11-13 Andrew Stubbs <ams@codesourcery.com> Kwok Cheung Yeung <kcy@codesourcery.com> Julian Brown <julian@codesourcery.com> Tom de Vries <tom@codesourcery.com> gcc/ * config/gcn/mkoffload.c: New file. * config/gcn/offload.h: New file. From-SVN: r278133
Andrew Stubbs committed -
2019-11-13 Andrew Stubbs <ams@codesourcery.com> libgomp/ * configure.tgt (nvptx*-*-*): Add "accel" directory. * config/nvptx/libgomp-plugin.c: Move ... * config/accel/libgomp-plugin.c: ... to here. * config/nvptx/lock.c: Move ... * config/accel/lock.c: ... to here. * config/nvptx/mutex.c: Move ... * config/accel/mutex.c: ... to here. * config/nvptx/mutex.h: Move ... * config/accel/mutex.h: ... to here. * config/nvptx/oacc-async.c: Move ... * config/accel/oacc-async.c: ... to here. * config/nvptx/oacc-cuda.c: Move ... * config/accel/oacc-cuda.c: ... to here. * config/nvptx/oacc-host.c: Move ... * config/accel/oacc-host.c: ... to here. * config/nvptx/oacc-init.c: Move ... * config/accel/oacc-init.c: ... to here. * config/nvptx/oacc-mem.c: Move ... * config/accel/oacc-mem.c: ... to here. * config/nvptx/oacc-plugin.c: Move ... * config/accel/oacc-plugin.c: ... to here. * config/nvptx/omp-lock.h: Move ... * config/accel/omp-lock.h: ... to here. * config/nvptx/openacc.f90: Move ... * config/accel/openacc.f90: ... to here. * config/nvptx/pool.h: Move ... * config/accel/pool.h: ... to here. * config/nvptx/proc.c: Move ... * config/accel/proc.c: ... to here. * config/nvptx/ptrlock.c: Move ... * config/accel/ptrlock.c: ... to here. * config/nvptx/ptrlock.h: Move ... * config/accel/ptrlock.h: ... to here. * config/nvptx/sem.c: Move ... * config/accel/sem.c: ... to here. * config/nvptx/sem.h: Move ... * config/accel/sem.h: ... to here. * config/nvptx/thread-stacksize.h: Move ... * config/accel/thread-stacksize.h: ... to here. From-SVN: r278132
Andrew Stubbs committed -
2019-11-13 Andrew Stubbs <ams@codesourcery.com> gcc/ * config/gcn/gcn-run.c (heap_region): New global variable. (struct hsa_runtime_fn_info): Add hsa_memory_assign_agent_fn. (init_hsa_runtime_functions): Initialize hsa_memory_assign_agent. (get_kernarg_region): Move contents to .... (get_memory_region): .... here. (get_heap_region): New function. (init_device): Initialize the heap_region. (device_malloc): Add region parameter. (struct kernargs): Move heap .... (heap): ... to global scope. (main): Allocate heap separate to kernargs. From-SVN: r278131
Andrew Stubbs committed -
* c-ada-spec.c (get_underlying_decl): Do not look through typedefs. (dump_forward_type): Do not generate a declaration for function types. (dump_nested_type) <ARRAY_TYPE>: Do not generate a nested declaration of the component type if it is declared in another file. From-SVN: r278129
Eric Botcazou committed -
libgfortran/ PR fortran/92470 * runtime/ISO_Fortran_binding.c (CFI_establish): Set lower_bound to 0 also for CFI_attribute_other. gcc/testsuite/ PR fortran/92470 * gfortran.dg/ISO_Fortran_binding_1.c (establish_c): Add assert for lower_bound == 0. From-SVN: r278128
Tobias Burnus committed -
* ipa-prop.c (ipa_print_node_jump_functions, ipa_print_node_params): Print info about missing summaries. From-SVN: r278127
Jan Hubicka committed -
* configure.tgt (riscv64-*-linux*): Enable build. From-SVN: r278126
Andreas Schwab committed -
We didn't take the cost of generating loop masks into account, and so tended to underestimate the cost of loops that need multiple masks. 2019-11-13 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-loop.c (vect_estimate_min_profitable_iters): Include the cost of generating loop masks. gcc/testsuite/ * gcc.target/aarch64/sve/mask_struct_store_3.c: Add -fno-vect-cost-model. * gcc.target/aarch64/sve/mask_struct_store_3_run.c: Likewise. * gcc.target/aarch64/sve/peel_ind_2.c: Likewise. * gcc.target/aarch64/sve/peel_ind_2_run.c: Likewise. * gcc.target/aarch64/sve/peel_ind_3.c: Likewise. * gcc.target/aarch64/sve/peel_ind_3_run.c: Likewise. From-SVN: r278125
Richard Sandiford committed -
vect_analyze_loop_costing uses two profitability thresholds: a runtime one and a static compile-time one. The runtime one is simply the point at which the vector loop is cheaper than the scalar loop, while the static one also takes into account the cost of choosing between the scalar and vector loops at runtime. We compare this static cost against the expected execution frequency to decide whether it's worth generating any vector code at all. However, we never reclaimed the cost of applying the runtime threshold if it turned out that the vector code can always be used. And we only know whether that's true once we've calculated what the runtime threshold would be. 2019-11-13 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vectorizer.h (vect_apply_runtime_profitability_check_p): New function. * tree-vect-loop-manip.c (vect_loop_versioning): Use it. * tree-vect-loop.c (vect_analyze_loop_2): Likewise. (vect_transform_loop): Likewise. (vect_analyze_loop_costing): Don't take the cost of versioning into account for the static profitability threshold if it turns out that no versioning is needed. From-SVN: r278124
Richard Sandiford committed -
ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node and target_option_default_node to get... * ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node and target_option_default_node to get -fprofile-generate ctors working right with LTO. From-SVN: r278123
Jan Hubicka committed -
vectorizable_assignment handles true SSA-to-SSA copies (which hopefully we don't see in practice) and no-op conversions that are required to maintain correct gimple, such as changes between signed and unsigned types. These cases shouldn't generate any code and so shouldn't count against either the scalar or vector costs. Later patches test this, but it seemed worth splitting out. 2019-11-13 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vectorizer.h (vect_nop_conversion_p): Declare. * tree-vect-stmts.c (vect_nop_conversion_p): New function. (vectorizable_assignment): Don't add a cost for nop conversions. * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Likewise. * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise. From-SVN: r278122
Richard Sandiford committed -
This patch makes two tweaks to vectorizable_conversion. The first is to use "modifier" to distinguish between promotion, demotion, and neither promotion nor demotion, rather than using a code for some cases and "modifier" for others. The second is to take ncopies into account for the promotion and demotion costs; previously we gave multiple copies the same cost as a single copy. Later patches test this, but it seemed worth splitting out. 2019-11-13 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Take the number of ncopies as an additional argument. (vectorizable_conversion): Update call accordingly. Use "modifier" to check whether a conversion is between vectors with the same numbers of units. From-SVN: r278121
Richard Sandiford committed -
This is a like-for-like change at the moment, but is a prerequisite for removing mode_for_int_vector. 2019-11-13 Richard Sandiford <richard.sandiford@arm.com> gcc/ * config/aarch64/aarch64-sve-builtins-functions.h (unary_count::expand): Use aarch64_sve_int_mode instead of mode_for_int_vector. From-SVN: r278120
Richard Sandiford committed -
One of the changes in r277281 was to make the typedef variant handling in strip_typedefs pass the raw DECL_ORIGINAL_TYPE to the recursive call, instead of applying TYPE_MAIN_VARIANT first. This PR shows that that interacts badly with the implementation of DR1558, because we then refuse to strip aliases with dependent template parameters and trip: gcc_assert (!typedef_variant_p (result) || ((flags & STF_USER_VISIBLE) && !user_facing_original_type_p (result))); Keeping the current behaviour but suppressing the ICE leads to a duplicate error (the dg-bogus in the first test), so that didn't seem like a good fix. I assume keeping the alias should never actually be necessary for DECL_ORIGINAL_TYPEs, because it will already have been checked somewhere, even for implicit TYPE_DECLs. This patch therefore passes a flag to say that we can safely strip aliases with dependent template parameters. 2019-11-13 Richard Sandiford <richard.sandiford@arm.com> gcc/cp/ PR c++/92206 * cp-tree.h (STF_STRIP_DEPENDENT): New constant. * tree.c (strip_typedefs): Add STF_STRIP_DEPENDENT to the flags when calling strip_typedefs recursively on a DECL_ORIGINAL_TYPE. Don't apply the fix for DR1558 in that case; allow aliases with dependent template parameters to be stripped instead. gcc/testsuite/ PR c++/92206 * g++.dg/cpp0x/alias-decl-pr92206-1.C: New test. * g++.dg/cpp0x/alias-decl-pr92206-2.C: Likewise. * g++.dg/cpp0x/alias-decl-pr92206-3.C: Likewise. From-SVN: r278119
Richard Sandiford committed -
2019-11-13 Martin Liska <mliska@suse.cz> * opts.c: Update comment about OPT_LEVELS_2_PLUS_SPEED_ONLY. From-SVN: r278118
Martin Liska committed -
2019-11-13 Martin Liska <mliska@suse.cz> * gcc.dg/params/params.exp: Restore test by parsing output of --help=params -Q. From-SVN: r278117
Martin Liska committed -
2019-11-13 Martin Liska <mliska@suse.cz> * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Remove call to finalize_options_struct. From-SVN: r278116
Martin Liska committed -
PR target/92055 * config/avr/t-avr (avr-mcus): Do not depend on $(srcdir)/config/avr/t-multilib. From-SVN: r278115
Georg-Johann Lay committed -
gcc/fortran/ * trans-expr.c (gfc_conv_procedure_call): Fold hidden is-present argument to the right type. From-SVN: r278114
Tobias Burnus committed -
2019-11-13 Richard Biener <rguenther@suse.de> PR tree-optimization/92473 * tree-vect-loop.c (vect_create_epilog_for_reduction): Perform direct optab reduction in the correct type. From-SVN: r278113
Richard Biener committed -
This case is testing 'web' on ignore naked clobber. -funroll-loops no longer implies -fweb for powerpc. So, add -fweb to enable 'web' for this case. gcc.testsuite/ 2019-11-13 Jiufu Guo <guojiufu@linux.ibm.com> PR target/92465 * gcc.dg/pr47763.c: Add option -fweb. From-SVN: r278112
Jiufu Guo committed -
From-SVN: r278111
GCC Administrator committed
-
- 12 Nov, 2019 16 commits
-
-
C++98 does not have long long int, and does not use (unsigned) long long int for hexadecimal literals. So let's use an ULL suffix here, which is still not strict C++98, but which works with more compilers. * config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big hexadecimal literal. From-SVN: r278107
Segher Boessenkool committed -
https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00971.html gcc/cp/ * name-lookup.c (lookup_using_decl): New function, merged from ... (do_class_using_decl): ... here. Call it. And ... (finish_nonmember_using_decl): ... here. Call it. gcc/testsuite/ * g++.dg/cpp0x/using-enum-2.C: Adjust expected error text. * g++.dg/cpp0x/using-enum-3.C: Likewise. * g++.dg/lookup/using4.C: Likewise. * g++.dg/lookup/using7.C: Likewise. * g++.dg/template/using12.C: Likewise. * g++.dg/template/using18.C: Likewise. * g++.dg/template/using22.C: Likewise. From-SVN: r278106
Nathan Sidwell committed -
2019-11-12 Harald Anlauf <anlauf@gmx.de> PR fortran/81651 * module.c (gzopen_included_file, gzopen_included_file_1) (gzopen_intrinsic_module, bad_module, gfc_use_module): Use fully qualified module path for error reporting. From-SVN: r278105
Harald Anlauf committed -
PR target/92449 * gcc.c-torture/compile/pr92449.c: New test. * gcc.target/powerpc/pr92449-1.c: New test. From-SVN: r278104
Segher Boessenkool committed -
* config/rs6000/vsx.md (xscmpexpdp_<code> for CMP_TEST): Handle UNORDERED if !HONOR_NANS (DFmode). (xscmpexpqp_<code>_<mode> for CMP_TEST and IEEE128): Handle UNORDERED if !HONOR_NANS (<MODE>mode). From-SVN: r278103
Segher Boessenkool committed -
* ipa-cp.c (ignore_edge_p): Also look for optimize flag. (ipcp_verify_propagated_values): Likewise. (propagate_constants_across_call): Likewise. (propagate_constants_topo): Likewise. (ipcp_propagate_stage): Likewise. From-SVN: r278102
Jan Hubicka committed -
libgfortran/ PR fortran/92470 * runtime/ISO_Fortran_binding.c (CFI_address): Handle non-zero lower_bound; update error message. (CFI_allocate): Fix comment typo. (CFI_establish): Fix identation, fix typos, don't check values of 'dv' argument. gcc/testsuite/ PR fortran/92470 * gfortran.dg/ISO_Fortran_binding_17.c: New. * gfortran.dg/ISO_Fortran_binding_17.f90: New. * gfortran.dg/ISO_Fortran_binding_1.c (elemental_mult_c, allocate_c, section_c, select_part_c): Update for CFI_{address} changes; add asserts. From-SVN: r278101
Tobias Burnus committed -
PR ipa/92471 * ipa-profile.c (check_argument_count): Break out from ...; watch for missing summaries. (ipa_profile): Here. From-SVN: r278100
Jan Hubicka committed -
gcc/ChangeLog: PR tree-optimization/92412 * targhooks.c (default_ref_may_alias_errno): Errono can only alias extern variables. gcc/testsuite/ChangeLog: PR tree-optimization/92412 * gcc.dg/strlenopt-91.c: New test. From-SVN: r278099
Martin Sebor committed -
gcc/ChangeLog: PR middle-end/83688 * gimple-ssa-sprintf.c (format_result::alias_info): New struct. (directive::argno): New member. (format_result::aliases, format_result::alias_count): New data members. (format_result::append_alias): New member function. (fmtresult::dst_offset): New data member. (pass_sprintf_length::call_info::dst_origin): New data member. (pass_sprintf_length::call_info::dst_field, dst_offset): Same. (char_type_p, array_elt_at_offset, field_at_offset): New functions. (get_origin_and_offset): Same. (format_string): Call it. (format_directive): Call append_alias and set directive argument number. (maybe_warn_overlap): New function. (pass_sprintf_length::compute_format_length): Call it. (pass_sprintf_length::handle_gimple_call): Initialize new members. * gcc/tree-ssa-strlen.c (): Also enable when -Wrestrict is on. gcc/testsuite/ChangeLog: PR tree-optimization/35503 * gcc.dg/tree-ssa/builtin-sprintf-warn-23.c: New test. From-SVN: r278098
Martin Sebor committed -
https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00926.html * g++.dg/lookup/pr6936.C: Delete, identical to using38.C From-SVN: r278096
Nathan Sidwell committed -
try_forward_edges does not update dominance info, and merge_blocks relies on it being up-to-date. In PR92430 stale dominance info makes merge_blocks produce a loop in the dominator tree, which in turn makes delete_basic_block loop forever. Fix by freeing dominance info at the beginning of cleanup_cfg. gcc/ChangeLog: 2019-11-12 Ilya Leoshkevich <iii@linux.ibm.com> PR rtl-optimization/92430 * cfgcleanup.c (pass_jump_after_combine::execute): Free dominance info at the beginning. gcc/testsuite/ChangeLog: 2019-11-12 Ilya Leoshkevich <iii@linux.ibm.com> PR rtl-optimization/92430 * gcc.dg/pr92430.c: New test (from Arseny Solokha). From-SVN: r278095
Ilya Leoshkevich committed -
re PR tree-optimization/92460 (ICE: verify_ssa failed (error: definition in block 13 does not dominate use in block 22)) 2019-11-12 Richard Biener <rguenther@suse.de> PR tree-optimization/92460 * tree-vect-stmts.c (vectorizable_simd_clone_call): Unshare expression before gimplifying. From-SVN: r278094
Richard Biener committed -
2019-11-12 Richard Biener <rguenther@suse.de> PR tree-optimization/92461 * tree-vect-loop.c (vect_create_epilog_for_reduction): Update stmt after propagation. * gcc.dg/torture/pr92461.c: New testcase. From-SVN: r278093
Richard Biener committed -
2019-11-12 Martin Liska <mliska@suse.cz> * config/i386/i386-options.c (ix86_recompute_optlev_based_flags): Use SET_OPTION_IF_UNSET. (ix86_option_override_internal): Likewise. * opts.c (default_options_optimization): Likewise. (finish_options): Likewise. (enable_fdo_optimizations): Likewise. (common_handle_option): Likewise. 2019-11-12 Martin Liska <mliska@suse.cz> * c-opts.c (c_common_post_options): Use SET_OPTION_IF_UNSET. 2019-11-12 Martin Liska <mliska@suse.cz> * options.c (gfc_init_options): Use SET_OPTION_IF_UNSET. 2019-11-12 Martin Liska <mliska@suse.cz> * go-lang.c (go_langhook_post_options): Use SET_OPTION_IF_UNSET. From-SVN: r278091
Martin Liska committed -
2019-11-12 Martin Liska <mliska@suse.cz> * common/common-target.def: Remove option_validate_param and option_default_params. * common/common-targhooks.c (default_option_validate_param): Remove. * common/common-targhooks.h (default_option_validate_param): Remove. * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAMS): Remove usage of this. (TARGET_OPTION_VALIDATE_PARAM): Likewise. (aarch64_option_validate_param): Likewise. (aarch64_option_default_params): Likewise * common/config/bpf/bpf-common.c (bpf_option_default_params): Likewise. (TARGET_OPTION_DEFAULT_PARAMS): Likewise. * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise. (TARGET_OPTION_DEFAULT_PARAMS): Likewise. * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise. (TARGET_OPTION_DEFAULT_PARAMS): Likewise. * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise. (TARGET_OPTION_DEFAULT_PARAMS): Likewise. * common/config/sh/sh-common.c (sh_option_default_params): Likewise. (TARGET_OPTION_DEFAULT_PARAMS): Likewise. * config/aarch64/aarch64.c (aarch64_override_options_internal): Validate guard_size here. * doc/tm.texi: Remove option_default_params and option_validate_param. * doc/tm.texi.in: Likewise. From-SVN: r278090
Martin Liska committed
-