diff options
author | Sandra Loosemore <sloosemore@baylibre.com> | 2025-05-15 20:26:30 +0000 |
---|---|---|
committer | Sandra Loosemore <sloosemore@baylibre.com> | 2025-05-15 20:26:30 +0000 |
commit | dcdeed6b536390f7de819ad8b25b8acf6700a2a5 (patch) | |
tree | 49639f46bff824996e9473383e0449e86dc5d930 /gcc | |
parent | 3fd9d22158f33146d4b0291cdc58c74e3c9c8011 (diff) | |
download | gcc-dcdeed6b536390f7de819ad8b25b8acf6700a2a5.zip gcc-dcdeed6b536390f7de819ad8b25b8acf6700a2a5.tar.gz gcc-dcdeed6b536390f7de819ad8b25b8acf6700a2a5.tar.bz2 |
ChangeLog.omp bump
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog.omp | 845 | ||||
-rw-r--r-- | gcc/DATESTAMP.omp | 1 | ||||
-rw-r--r-- | gcc/c-family/ChangeLog.omp | 90 | ||||
-rw-r--r-- | gcc/c/ChangeLog.omp | 237 | ||||
-rw-r--r-- | gcc/cp/ChangeLog.omp | 332 | ||||
-rw-r--r-- | gcc/fortran/ChangeLog.omp | 448 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog.omp | 435 |
7 files changed, 2388 insertions, 0 deletions
diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp new file mode 100644 index 0000000..d522b49 --- /dev/null +++ b/gcc/ChangeLog.omp @@ -0,0 +1,845 @@ +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + Tobias Burnus <tburnus@baylibre.com> + + * gimplify.cc (modify_call_for_omp_dispatch): Rework logic for + need_device_ptr and need_device_addr adjustments. + +2025-05-15 waffl3x <waffl3x@baylibre.com> + + PR c++/119659 + PR c++/118859 + PR c++/119601 + PR c++/119602 + PR c++/119775 + * gimplify.cc (modify_call_for_omp_dispatch): Refactor and change + attribute unpacking. For adjust_args variadic functions, expand + numeric ranges with relative bounds. Refactor argument adjustment. + +2025-05-15 Andrew Pinski <quic_apinski@quicinc.com> + + Backported from master: + 2025-04-25 Andrew Pinski <quic_apinski@quicinc.com> + Thomas Schwinge <tschwinge@baylibre.com> + + PR target/119737 + * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Properly + switch sections. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * langhooks-def.h (lhd_omp_deep_mapping): Add new argument. + * langhooks.cc (lhd_omp_deep_mapping): Likewise. + * langhooks.h (omp_deep_mapping): Likewise. + * omp-low.cc (allocate_omp_iterator_elems): Work on the supplied + iterator set instead of the iterators in a supplied set of clauses. + (free_omp_iterator_elems): Likewise. + (lower_omp_target): Maintain vector of new iterators generated by + deep-mapping. Allocate and free iterator element arrays using + iterators found in clauses and in the new iterator vector. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * gimplify.cc (enter_omp_iterator_loop_context): New function variant. + (enter_omp_iterator_loop_context): Delegate to new variant. + (exit_omp_iterator_loop_context): New function variant. + (exit_omp_iterator_loop_context): Delegate to new variant. + (assign_to_iterator_elems_array): New. + (add_new_omp_iterators_entry): New. + (add_new_omp_iterators_clause): Delegate to + add_new_omp_iterators_entry. + * gimplify.h (enter_omp_iterator_loop_context): New prototype. + (enter_omp_iterator_loop_context): Remove default argument. + (exit_omp_iterator_loop_context): Remove argument. + (assign_to_iterator_elems_array): New prototype. + (add_new_omp_iterators_entry): New prototype. + (add_new_omp_iterators_clause): New prototype. + * langhooks-def.h (lhd_omp_deep_mapping_cnt): Remove const from + argument. + (lhd_omp_deep_mapping): Likewise. + * langhooks.cc (lhd_omp_deep_mapping_cnt): Likewise. + (lhd_omp_deep_mapping): Likewise. + * langhooks.h (omp_deep_mapping_cnt): Likewise. + (omp_deep_mapping): Likewise. + * omp-low.cc (lower_omp_map_iterator_expr): Delegate to + assign_to_iterator_elems_array. + (lower_omp_map_iterator_size): Likewise. + (lower_omp_target): Remove sorry for deep mapping. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * gimplify.cc (add_new_omp_iterators_clause): New. + (build_omp_struct_comp_nodes): Add extra argument for loops sequence. + Call add_new_omp_iterators_clause on newly generated clauses. + (omp_accumulate_sibling_list): Add extra argument for loops sequence. + Pass to calls to build_omp_struct_comp_nodes. Add iterators to newly + generator clauses for struct accesses. + (omp_build_struct_sibling_lists): Add extra argument for loops + sequence. Pass to call to omp_accumulate_sibling_list. + (gimplify_adjust_omp_clauses): Pass loops sequence to + omp_build_struct_sibling_lists. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * gimplify.cc (gimplify_omp_affinity): Use macros for accessing + iterator elements. + (compute_omp_iterator_count): Likewise. + (build_omp_iterator_loop): Likewise. + (remove_unused_omp_iterator_vars): Likewise. + (build_omp_iterators_loops): Likewise. + (enter_omp_iterator_loop_context_1): Likewise. + (extract_base_bit_offset): Likewise. + * omp-low.cc (lower_omp_map_iterator_expr): Likewise. + (lower_omp_map_iterator_size): Likewise. + (allocate_omp_iterator_elems): Likewise. + (free_omp_iterator_elems): Likewise. + * tree-inline.cc (copy_tree_body_r): Likewise. + * tree-pretty-print.cc (dump_omp_iterators): Likewise. + * tree.h (OMP_ITERATORS_VAR, OMP_ITERATORS_BEGIN, OMP_ITERATORS_END, + OMP_ITERATORS_STEP, OMP_ITERATORS_ORIG_STEP, OMP_ITERATORS_BLOCK, + OMP_ITERATORS_LABEL, OMP_ITERATORS_INDEX, OMP_ITERATORS_ELEMS, + OMP_ITERATORS_COUNT, OMP_ITERATORS_EXPANDED_P): New macros. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * gimplify.cc (omp_iterator_elems_length): New. + (build_omp_iterators_loops): Change type of elements + array to pointer of pointers if array length is non-constant, and + assign size with indirect reference. Reorder elements added to + iterator vector and add element containing the iteration count. Use + omp_iterator_elems_length to compute element array size required. + * gimplify.h (omp_iterator_elems_length): New prototype. + * omp-low.cc (lower_omp_map_iterator_expr): Reorder elements read + from iterator vector. If elements field is a pointer type, assign + using pointer arithmetic followed by indirect reference, and return + the field directly. + (lower_omp_map_iterator_size): Reorder elements read from iterator + vector. If elements field is a pointer type, assign using pointer + arithmetic followed by indirect reference. + (allocate_omp_iterator_elems): New. + (free_omp_iterator_elems): New. + (lower_omp_target): Call allocate_omp_iterator_elems before inserting + loops sequence, and call free_omp_iterator_elems afterwards. + * tree-pretty-print.cc (dump_omp_iterators): Print extra elements in + iterator vector. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * gimplify.cc (compute_omp_iterator_count): Account for difference + in loop boundaries in Fortran. + (build_omp_iterator_loop): Change upper boundary condition for + Fortran. Insert block statements into innermost loop. + (remove_unused_omp_iterator_vars): Copy block subblocks of old + iterator to new iterator and remove original. + (contains_vars_1): New. + (contains_vars): New. + (extract_base_bit_offset): Add iterator argument. Remove iterator + variables from base. Do not set variable_offset if the offset + does not contain any remaining variables. + (omp_accumulate_sibling_list): Add iterator argument to + extract_base_bit_offset. + * tree-pretty-print.cc (dump_block_node): Ignore BLOCK_SUBBLOCKS + containing iterator block statements. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * gimplify.cc (gimplify_scan_omp_clauses): Add argument for iterator + loop sequence. Gimplify the clause decl and size into the iterator + loop if iterators are used. + (gimplify_omp_workshare): Add argument for iterator loops sequence + in call to gimplify_scan_omp_clauses. + (gimplify_omp_target_update): Call remove_unused_omp_iterator_vars and + build_omp_iterators_loops. Add loop sequence as argument when calling + gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses and building + the Gimple statement. + * tree-pretty-print.cc (dump_omp_clause): Call dump_omp_iterators + for to/from clauses with iterators. + * tree.cc (omp_clause_num_ops): Add extra operand for OMP_CLAUSE_FROM + and OMP_CLAUSE_TO. + * tree.h (OMP_CLAUSE_HAS_ITERATORS): Add check for OMP_CLAUSE_TO and + OMP_CLAUSE_FROM. + (OMP_CLAUSE_ITERATORS): Likewise. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * gimple-pretty-print.cc (dump_gimple_omp_target): Print expanded + iterator loops. + * gimple.cc (gimple_build_omp_target): Add argument for iterator + loops sequence. Initialize iterator loops field. + * gimple.def (GIMPLE_OMP_TARGET): Set GSS symbol to GSS_OMP_TARGET. + * gimple.h (gomp_target): Set GSS symbol to GSS_OMP_TARGET. Add extra + field for iterator loops. + (gimple_build_omp_target): Add argument for iterator loops sequence. + (gimple_omp_target_iterator_loops): New. + (gimple_omp_target_iterator_loops_ptr): New. + (gimple_omp_target_set_iterator_loops): New. + * gimplify.cc (find_var_decl): New. + (copy_omp_iterator): New. + (remap_omp_iterator_var_1): New. + (remap_omp_iterator_var): New. + (remove_unused_omp_iterator_vars): New. + (struct iterator_loop_info_t): New type. + (iterator_loop_info_map_t): New type. + (build_omp_iterators_loops): New. + (enter_omp_iterator_loop_context_1): New. + (enter_omp_iterator_loop_context): New. + (enter_omp_iterator_loop_context): New. + (exit_omp_iterator_loop_context): New. + (gimplify_adjust_omp_clauses): Add argument for iterator loop + sequence. Gimplify the clause decl and size into the iterator + loop if iterators are used. + (gimplify_omp_workshare): Call remove_unused_omp_iterator_vars and + build_omp_iterators_loops for OpenMP target expressions. Add + loop sequence as argument when calling gimplify_adjust_omp_clauses + and building the Gimple statement. + * gimplify.h (enter_omp_iterator_loop_context): New prototype. + (exit_omp_iterator_loop_context): New prototype. + * gsstruct.def (GSS_OMP_TARGET): New. + * omp-low.cc (lower_omp_map_iterator_expr): New. + (lower_omp_map_iterator_size): New. + (finish_omp_map_iterators): New. + (lower_omp_target): Add sorry if iterators used with deep mapping. + Call lower_omp_map_iterator_expr before assigning to sender ref. + Call lower_omp_map_iterator_size before setting the size. Insert + iterator loop sequence before the statements for the target clause. + * tree-nested.cc (convert_nonlocal_reference_stmt): Walk the iterator + loop sequence of OpenMP target statements. + (convert_local_reference_stmt): Likewise. + (convert_tramp_reference_stmt): Likewise. + * tree-pretty-print.cc (dump_omp_iterators): Dump extra iterator + information if present. + (dump_omp_clause): Call dump_omp_iterators for iterators in map + clauses. + * tree.cc (omp_clause_num_ops): Add operand for OMP_CLAUSE_MAP. + (walk_tree_1): Do not walk last operand of OMP_CLAUSE_MAP. + * tree.h (OMP_CLAUSE_HAS_ITERATORS): New. + (OMP_CLAUSE_ITERATORS): New. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * gimplify.cc (gimplify_omp_affinity): Use OMP_ITERATOR_DECL_P. + (compute_omp_iterator_count): New. + (build_omp_iterator_loop): New. + (gimplify_omp_depend): Use OMP_ITERATOR_DECL_P, + compute_omp_iterator_count and build_omp_iterator_loop. + * tree-inline.cc (copy_tree_body_r): Use OMP_ITERATOR_DECL_P. + * tree-pretty-print.cc (dump_omp_clause): Likewise. + * tree.h (OMP_ITERATOR_DECL_P): New macro. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * doc/extend.texi: Adjust version references to 2.7 from 2.6. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + + * config/gcn/gcn-tree.cc (gcn_goacc_reduction_setup): Fix array case + copy source into reduction buffer. + * config/nvptx/nvptx.cc (nvptx_expand_shared_addr): Move default size + init setting place. + (enum nvptx_builtins): Add NVPTX_BUILTIN_BAR_WARPSYNC. + (nvptx_init_builtins): Add DEF() of nvptx_builtin_bar_warpsync. + (nvptx_expand_builtin): Expand NVPTX_BUILTIN_BAR_WARPSYNC. + (nvptx_goacc_reduction_setup): Fix array case copy source into reduction + buffer. + (nvptx_goacc_reduction_fini): Add bar.warpsync for at end of vector-mode + reductions for sm_70 and above. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + + * config/gcn/gcn-tree.cc (#include "omp-offload.h"): Add include. + (#include "memmodel.h"): Add include. + (gcn_array_reduction_buffers): New vec<tree> + for holding DECLs for reduction buffer pointer variables. + (gcn_lockfull_update): Add pointer type fold_converts. + (gcn_reduction_update): Additions for handling ARRAY_TYPE, pointer to + ARRAY_TYPE, and RECORD_TYPE reductions. + (gcn_goacc_get_worker_red_decl): Adjust parameters to handle + non-constant offset case. + (gcn_goacc_get_worker_array_reduction_buffer): New function. + (gcn_create_if_else_seq): New function. + (gcn_create_do_while_loop_seq): New function. + (gcn_goacc_reduction_setup): Adjustments to handle arrays and records. + (gcn_goacc_reduction_init): Likewise. + (gcn_goacc_reduction_fini): Likewise. + (gcn_goacc_reduction_teardown): Likewise. + * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Properly generate + V2SI shuffle using vec_extract op. + (nvptx_expand_shared_addr): Adjustments to handle non-constant size. + (nvptx_get_shared_red_addr): Adjust type/alignment calculations to + use TYPE_SIZE/ALIGN_UNIT instead of machine mode based. + (nvptx_get_shared_red_addr): New function with array_max_idx parameter. + (nvptx_reduction_update): Additions for handling ARRAY_TYPE, pointer to + ARRA_TYPE, and RECORD_TYPE reductions. + (nvptx_goacc_reduction_setup): Likewise. + (nvptx_goacc_reduction_init): Likewise. + (nvptx_goacc_reduction_fini): Likewise. + (nvptx_goacc_reduction_teardown): Likewise. + * gimplify.cc (gimplify_scan_omp_clauses): Gimplify inside COMPONENT_REF + and convert codes for OMP_CLAUSE_REDUCTION cases. Add DECL_P check for + do_add/do_add_decl goto case. + (gimplify_adjust_omp_clauses): Avoid GOMP_MAP_POINTER OMP_CLAUSE_SIZE + handling for OpenACC kernels. Call omp_add_variable for ARRAY_REF index. + Peel away array MEM_REF for decl lookup. + * omp-low.cc (struct omp_context): + Add 'hash_map<tree, tree> *block_vars_map' field. + (omp_copy_decl_2): Create/lookup using ctx->block_vars_map first. Add + new copy into ctx->block_vars_map. + (install_var_field): Add 'bool field_may_exist = false' parameter. + Adjust lookup assertions. + (delete_omp_context): Add delete of ctx->block_vars_map. + (scan_sharing_clauses): Adjust calls to install_var_field. Adjust + ARRAY_REF pointer type building to use decl type, rather than generic + ptr_type_node. For ARRAY_REFs on offloaded constructs, also add base + expression as field lookup key. + (omp_reduction_init_op): Add ARRAY_TYPE and RECORD_TYPE init op + construction. + (oacc_array_reduction_bias): New function. + (lower_oacc_reductions): Add array reduction handling code. Arrays use + a different mode of IFN parameters, using additional 'array_addr' and + 'array_max_idx' arguments. The LHS var is a simple integer for + dependency ordering. + (lower_omp_target): Adjust 'offload' condition for GOMP_MAP_POINTER + case. Generate BUILT_IN_ALLOCA_WITH_ALIGN to create private copy + for reductions of non-constant size types. + * omp-oacc-neuter-broadcast.cc (worker_single_copy): + Add 'hash_set<tree> *array_reduction_base_vars' parameter. Avoid + propagation for SSA_NAMEs used for array reduction accesses. + (neuter_worker_single): Add 'hash_set<tree> *array_reduction_base_vars' + parameter. Adjust recursive calls to self and worker_single_copy. + (oacc_do_neutering): Add 'hash_set<tree> *array_reduction_base_vars' + parameter. Adjust call to neuter_worker_single. + (execute_omp_oacc_neuter_broadcast): Add local + 'hash_set<tree> array_reduction_base_vars' declaration. Collect MEM_REF + base-pointer SSA_NAMEs of arrays into array_reduction_base_vars. Add + '&array_reduction_base_vars' argument to call of oacc_do_neutering. + * omp-offload.cc (#include "cfghooks.h"): Add include. + (oacc_build_array_copy): New function. + (oacc_build_array_copy_loop): New function. + (oacc_build_indexed_ssa_loop): New function. + (default_goacc_reduction): Adjustments to handle arrays. + * omp-offload.h (oacc_build_array_copy): New declaration. + (oacc_build_array_copy_loop): New declaration. + (oacc_build_indexed_ssa_loop): New declaration. + * tree-loop-distribution.cc (generate_memset_builtin): Under OpenACC, + when last stmt of pre-header block is a UNIQUE(OACC_FORK) internal-fn, + split a new basic block to serve as place of insertion, otherwise + may fail later checking because UNIQUE(OACC_FORK) counts as control + flow stmt. + (generate_memcpy_builtin): Likewise. + +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + + * omp-general.cc (omp_context_selector_matches): Add an optional + bool argument for the code elision case. + * omp-general.h (omp_context_selector_matches): Likewise. + +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + + * omp-general.cc (omp_mangle_variant_name): New. + (omp_check_for_duplicate_variant): New. + (omp_copy_trait_set): New. + (omp_trait_selectors_equivalent): New. + (omp_combine_trait_sets): New. + (omp_merge_context_selectors): New. + * omp-general.h (omp_mangle_variant_name): Declare. + (omp_check_for_duplicate_variant): Declare. + (omp_merge_context_selectors): Declare. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + + * gimple-expr.cc (copy_var_decl): Copy VAR_POINTS_TO_READONLY + for VAR_DECLs. + * omp-low.cc (lower_omp_target): Set VAR_POINTS_TO_READONLY for + variables of receiver refs. + * tree-pretty-print.cc (dump_omp_clause): + Print OMP_CLAUSE_MAP_POINTS_TO_READONLY. + (dump_generic_node): Print SSA_NAME_POINTS_TO_READONLY_MEMORY. + * tree-ssanames.cc (make_ssa_name_fn): Set + SSA_NAME_POINTS_TO_READONLY_MEMORY if DECL_POINTS_TO_READONLY is set. + * tree.h (OMP_CLAUSE_MAP_POINTS_TO_READONLY): New macro. + (VAR_POINTS_TO_READONLY): New macro. + +2025-05-15 waffl3x <waffl3x@baylibre.com> + Tobias Burnus <tobias@codesourcery.com> + + * cgraphunit.cc (varpool_node::finalize_decl): Add assert. + * gimplify.cc (gimplify_bind_expr): Handle C++ specific + implementation details. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * gimplify.cc (gimplify_adjust_omp_clauses): Don't gimplify + VIEW_CONVERT_EXPR away in GOMP_MAP_TO_GRID/GOMP_MAP_FROM_GRID clauses. + * omp-low.cc (omp_noncontig_descriptor_type): Add SPAN field. + (scan_sharing_clauses): Don't store descriptor size in its + OMP_CLAUSE_SIZE field. + (lower_omp_target): Add missing OMP_CLAUSE_MAP check. Add special-case + string handling. Handle span and bias. Use low bound instead of zero + as index for trailing full dimensions. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gimplify.cc (omp_group_last, omp_group_base): Add GOMP_MAP_TO_GRID, + GOMP_MAP_FROM_GRID support. + (gimplify_adjust_omp_clauses): Support new GOMP_MAP_GRID_DIM, + GOMP_MAP_GRID_STRIDE mapping nodes. Don't crash on e.g. misuse of + ADDR_EXPR in mapping clauses. + * omp-general.cc (omp_parse_noncontiguous_array): New function. + (omp_parse_access_method): Add noncontiguous array support. + (omp_parse_structure_base): Add array-shaping support. + (debug_omp_tokenized_addr): Add ACCESS_NONCONTIG_ARRAY, + ACCESS_NONCONTIG_REF_TO_ARRAY token support. + * omp-general.h (access_method_kinds): Add ACCESS_NONCONTIG_ARRAY and + ACCESS_NONCONTIG_REF_TO_ARRAY access kinds. + * omp-low.cc (omp_noncontig_descriptor_type): New function. + (scan_sharing_clauses): Support noncontiguous array updates. + (lower_omp_target): Likewise. + * tree-pretty-print.cc (dump_omp_clause): Add GOMP_MAP_TO_GRID, + GOMP_MAP_FROM_GRID, GOMP_MAP_GRID_DIM, GOMP_MAP_GRID_STRIDE map kinds. + (dump_generic_node): Add stride support for OMP_ARRAY_SECTION. + * tree.def (OMP_ARRAY_SECTION): Add stride argument. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gimplify.cc (dwarf2out.h): Include. + (omp_maybe_get_descriptor_from_ptr): New function. + (build_omp_struct_comp_nodes): Use above function to locate array + descriptor when necessary. + (omp_mapping_group_data, omp_mapping_group_ptr, + omp_mapping_group_pset): New functions. + (omp_instantiate_mapper): Handle inlining of "declare mapper" function + bodies containing setup code (e.g. for Fortran). Handle pointers to + derived types. Handle GOMP_MAP_MAPPING_GROUPs. + * tree-pretty-print.cc (dump_omp_clause): Handle + GOMP_MAP_MAPPING_GROUP. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gimplify.cc (gimplify_omp_ctx): Add IMPLICIT_MAPPERS field. + (new_omp_context): Initialise IMPLICIT_MAPPERS hash map. + (delete_omp_context): Delete IMPLICIT_MAPPERS hash map. + (instantiate_mapper_info): New structs. + (remap_mapper_decl_1, omp_mapper_copy_decl, omp_instantiate_mapper, + omp_instantiate_implicit_mappers): New functions. + (gimplify_scan_omp_clauses): Handle MAPPER_BINDING clauses. + (gimplify_adjust_omp_clauses): Instantiate implicit declared mappers. + (gimplify_omp_declare_mapper): New function. + (gimplify_expr): Call above function. + * langhooks-def.h (lhd_omp_finish_mapper_clauses, + lhd_omp_mapper_lookup, lhd_omp_extract_mapper_directive, + lhd_omp_map_array_section): Add prototypes. + (LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES, + LANG_HOOKS_OMP_MAPPER_LOOKUP, LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE, + LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define macros. + (LANG_HOOK_DECLS): Add above macros. + * langhooks.cc (lhd_omp_finish_mapper_clauses, + lhd_omp_mapper_lookup, lhd_omp_extract_mapper_directive, + lhd_omp_map_array_section): New dummy functions. + * langhooks.h (lang_hooks_for_decls): Add OMP_FINISH_MAPPER_CLAUSES, + OMP_MAPPER_LOOKUP, OMP_EXTRACT_MAPPER_DIRECTIVE, OMP_MAP_ARRAY_SECTION + hooks. + * omp-general.h (omp_name_type<T>): Add templatized struct, hash type + traits (for omp_name_type<tree> specialization). + (omp_mapper_list<T>): Add struct. + * tree-core.h (omp_clause_code): Add OMP_CLAUSE__MAPPER_BINDING_. + * tree-pretty-print.cc (dump_omp_clause): Support GOMP_MAP_UNSET, + GOMP_MAP_PUSH_MAPPER_NAME, GOMP_MAP_POP_MAPPER_NAME artificial mapping + clauses. Support OMP_CLAUSE__MAPPER_BINDING_ and OMP_DECLARE_MAPPER. + * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add + OMP_CLAUSE__MAPPER_BINDING_. + * tree.def (OMP_DECLARE_MAPPER): New tree code. + * tree.h (OMP_DECLARE_MAPPER_ID, OMP_DECLARE_MAPPER_DECL, + OMP_DECLARE_MAPPER_CLAUSES): New defines. + (OMP_CLAUSE__MAPPER_BINDING__ID, OMP_CLAUSE__MAPPER_BINDING__DECL, + OMP_CLAUSE__MAPPER_BINDING__MAPPER): New defines. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Thomas Schwinge <tschwinge@baylibre.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * gimplify.cc (gimplify_adjust_omp_clauses_1): Set + OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P for OpenACC also. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + Sandra Loosemore <sandra@baylibre.com> + + * gimplify.cc (gimplify_adjust_omp_clauses_1): Handle "oacc declare + create" attribute. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gimplify.cc (omp_tsort_mark, omp_mapping_group): Move before + gimplify_omp_ctx. Add constructor to omp_mapping_group. + (gimplify_omp_ctx): Add DECL_DATA_CLAUSE field. + (new_omp_context, delete_omp_context): Initialise and free above field. + (omp_gather_mapping_groups_1): Use constructor for omp_mapping_group. + (gimplify_scan_omp_clauses): Record mappings that might be lexically + inherited. Don't remove + GOMP_MAP_FIRSTPRIVATE_POINTER/GOMP_MAP_FIRSTPRIVATE_REFERENCE yet. + (gomp_oacc_needs_data_present): New function. + (gimplify_adjust_omp_clauses_1): Implement lexical inheritance + behaviour for OpenACC. + (gimplify_adjust_omp_clauses): Remove + GOMP_MAP_FIRSTPRIVATE_POINTER/GOMP_MAP_FIRSTPRIVATE_REFERENCE here + instead, after lexical inheritance is done. + +2025-05-15 Chung-Lin Tang <cltang@codesourcery.com> + + Backported from master: + 2023-05-19 Chung-Lin Tang <cltang@codesourcery.com> + + * builtins.cc (expand_builtin_omp_builtins): New function. + (expand_builtin): Add expand cases for BUILT_IN_GOMP_BARRIER, + BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_OMP_GET_NUM_THREADS, + BUILT_IN_OMP_GET_TEAM_NUM, and BUILT_IN_OMP_GET_NUM_TEAMS using + expand_builtin_omp_builtins, enabled under -fopenmp-target=acc. + * cgraphunit.cc (analyze_functions): Add call to + omp_ompacc_attribute_tagging, enabled under -fopenmp-target=acc. + * common.opt (fopenmp-target=): Add new option and enums. + * config/nvptx/mkoffload.cc (main): Handle -fopenmp-target=. + * config/nvptx/nvptx-protos.h (nvptx_expand_omp_get_num_threads): New + prototype. + (nvptx_mem_shared_p): Likewise. + * config/nvptx/nvptx.cc (omp_num_threads_sym): New global static RTX + symbol for number of threads in team. + (omp_num_threads_align): New var for alignment of omp_num_threads_sym. + (need_omp_num_threads): New bool for if any function references + omp_num_threads_sym. + (nvptx_option_override): Initialize omp_num_threads_sym/align. + (write_as_kernel): Disable normal OpenMP kernel entry under OMPACC mode. + (nvptx_declare_function_name): Disable shim function under OMPACC mode. + Disable soft-stack under OMPACC mode. Add generation of neutering init + code under OMPACC mode. + (nvptx_output_set_softstack): Return "" under OMPACC mode. + (nvptx_expand_call): Set parallelism to vector for function calls with + "ompacc for" attached. + (nvptx_expand_oacc_fork): Set mode to GOMP_DIM_VECTOR under OMPACC mode. + (nvptx_expand_oacc_join): Likewise. + (nvptx_expand_omp_get_num_threads): New function. + (nvptx_mem_shared_p): New function. + (nvptx_mach_max_workers): Return 1 under OMPACC mode. + (nvptx_mach_vector_length): Return 32 under OMPACC mode. + (nvptx_single): Add adjustments for OMPACC mode, which have + parallel-construct fork/joins, and regions of code where neutering is + dynamically determined. + (nvptx_reorg): Enable neutering under OMPACC mode when "ompacc for" + attribute is attached to function. Disable uniform-simt when under + OMPACC mode. + (nvptx_file_end): Write __nvptx_omp_num_threads out when needed. + (nvptx_goacc_fork_join): Return true under OMPACC mode. + * config/nvptx/nvptx.h (struct GTY(()) machine_function): Add + omp_parallel_predicate and omp_fn_entry_num_threads_reg fields. + * config/nvptx/nvptx.md (unspecv): Add UNSPECV_GET_TID, + UNSPECV_GET_NTID, UNSPECV_GET_CTAID, UNSPECV_GET_NCTAID, + UNSPECV_OMP_PARALLEL_FORK, UNSPECV_OMP_PARALLEL_JOIN entries. + (nvptx_shared_mem_operand): New predicate. + (gomp_barrier): New expand pattern. + (omp_get_num_threads): New expand pattern. + (omp_get_num_teams): New insn pattern. + (omp_get_thread_num): Likewise. + (omp_get_team_num): Likewise. + (get_ntid): Likewise. + (nvptx_omp_parallel_fork): Likewise. + (nvptx_omp_parallel_join): Likewise. + * expr.cc (expand_expr_real_1): Call expand_var_decl target hook. + * flag-types.h (omp_target_mode_kind): New flag value enum. + * gimplify.cc (struct gimplify_omp_ctx): Add 'bool ompacc' field. + (gimplify_scan_omp_clauses): Handle OMP_CLAUSE__OMPACC_. + (gimplify_adjust_omp_clauses): Likewise. + (gimplify_omp_ctx_ompacc_p): New function. + (gimplify_omp_for): Handle combined loops under OMPACC. + * lto-wrapper.cc (append_compiler_options): Add OPT_fopenmp_target_. + * omp-builtins.def (BUILT_IN_OMP_GET_THREAD_NUM): Remove CONST. + (BUILT_IN_OMP_GET_NUM_THREADS): Likewise. + * omp-expand.cc (remove_exit_barrier): Disable addressable-var + processing for parallel construct child functions under OMPACC mode. + (expand_oacc_for): Add OMPACC mode handling. + (get_target_arguments): Force thread_limit clause value to 1 under + OMPACC mode. + (expand_omp): Under OMPACC mode, avoid child function expanding of + GIMPLE_OMP_PARALLEL. + * omp-general.cc (omp_extract_for_data): Adjustments for OMPACC mode. + * omp-low.cc (struct omp_context): Add 'bool ompacc_p' field. + (scan_sharing_clauses): Handle OMP_CLAUSE__OMPACC_. + (ompacc_ctx_p): New function. + (scan_omp_parallel): Handle OMPACC mode, avoid creating child function. + (scan_omp_target): Tag "ompacc"/"ompacc for" attributes for target + construct child function, remove OMP_CLAUSE__OMPACC_ clauses. + (lower_oacc_head_mark): Handle OMPACC mode cases. + (lower_omp_for): Adjust OMP_FOR kind from OpenMP to OpenACC kinds, add + vector/gang clauses as needed. Add other OMPACC handling. + (lower_omp_taskreg): Add call to lower_oacc_head_tail for OMPACC case. + (lower_omp_target): Do OpenACC gang privatization under OMPACC case. + (lower_omp_teams): Forward OpenACC privatization variables to outer + target region under OMPACC mode. + (lower_omp_1): Do OpenACC gang privatization under OMPACC case for + GIMPLE_BIND. + * omp-offload.cc (ompacc_supported_clauses_p): New function. + (struct target_region_data): New struct type for tree walk. + (scan_fndecl_for_ompacc): New function. + (scan_omp_target_region_r): New function. + (scan_omp_target_construct_r): New function. + (omp_ompacc_attribute_tagging): New function. + (oacc_dim_call): Add OMPACC case handling. + (execute_oacc_device_lower): Make parts explicitly only OpenACC enabled. + (pass_oacc_device_lower::gate): Enable pass under OMPACC mode. + * omp-offload.h (omp_ompacc_attribute_tagging): New prototype. + * opts.cc (finish_options): Only allow -fopenmp-target= when -fopenmp + and no -fopenacc. + * target-insns.def (gomp_barrier): New defined insn pattern. + (omp_get_thread_num): Likewise. + (omp_get_num_threads): Likewise. + (omp_get_team_num): Likewise. + (omp_get_num_teams): Likewise. + * tree-core.h (enum omp_clause_code): Add new OMP_CLAUSE__OMPACC_ entry + for internal clause. + * tree-nested.cc (convert_nonlocal_omp_clauses): Handle + OMP_CLAUSE__OMPACC_. + * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE__OMPACC_. + * tree.cc (omp_clause_num_ops): Add OMP_CLAUSE__OMPACC_ entry. + (omp_clause_code_name): Likewise. + * tree.h (OMP_CLAUSE__OMPACC__FOR): New macro for OMP_CLAUSE__OMPACC_. + +2025-05-15 Andrew Stubbs <ams@codesourcery.com> + + * tree-vect-data-refs.cc (vect_analyze_data_refs): Workaround an + address-space bug. + +2025-05-15 Tobias Burnus <tobias@codesourcery.com> + + * builtin-types.def (BT_FN_VOID_PTRMODE): Add. + (BT_FN_PTRMODE_PTRMODE_INT_PTR): Add. + * gimplify.cc (gimplify_bind_expr): Diagnose missing + uses_allocators clause. + (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses, + gimplify_omp_workshare): Handle uses_allocators. + * omp-builtins.def (BUILT_IN_OMP_INIT_ALLOCATOR, + BUILT_IN_OMP_DESTROY_ALLOCATOR): Add. + * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_USES_ALLOCATORS + and OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR clauses. + * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_USES_ALLOCATORS. + * tree.cc (omp_clause_num_ops, omp_clause_code_name): Likewise. + * tree-pretty-print.cc (dump_omp_clause): Handle it. + * tree.h (OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR, + OMP_CLAUSE_USES_ALLOCATORS_MEMSPACE, + OMP_CLAUSE_USES_ALLOCATORS_TRAITS): New. + +2025-05-15 Tobias Burnus <tobias@codesourcery.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * omp-oacc-kernels-decompose.cc (top_level_omp_for_in_stmt, + decompose_kernels_region_body): Handle GIMPLE_DEBUG like + simple assignment. + +2025-05-15 Andrew Stubbs <ams@baylibre.com> + + * omp-builtins.def (BUILT_IN_GOMP_ENABLE_PINNED_MODE): New. + * omp-low.cc (omp_enable_pinned_mode): New function. + (execute_lower_omp): Call omp_enable_pinned_mode. + +2025-05-15 Andrew Stubbs <ams@baylibre.com> + + * common.opt: Add -foffload-memory and its enum values. + * coretypes.h (enum offload_memory): New. + * doc/invoke.texi: Document -foffload-memory. + +2025-05-15 Kwok Cheung Yeung <kcy@codesourcery.com> + + * omp-expand.cc (expand_oacc_for): Convert .tile variable to + diff_type before multiplying. + * omp-general.cc (omp_extract_for_data): Use accumulated precision + of all collapsed for-loops as precision of iteration variable, up + to the precision of a long long. + +2025-05-15 Chung-Lin Tang <cltang@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + * omp-low.cc (install_var_field): Add new 'tree key_expr = NULL_TREE' + default parameter. Set splay-tree lookup key to key_expr instead of + var if key_expr is non-NULL. Adjust call to install_parm_decl. + Update comments. + (scan_sharing_clauses): Use clause tree expression as splay-tree key + for map/to/from and OpenACC firstprivate cases when installing the + variable field into the send/receive record type. + (maybe_lookup_field_in_outer_ctx): Add code to search through + construct clauses instead of entirely based on splay-tree lookup. + (lower_oacc_reductions): Adjust to find map-clause of reduction + variable, then create receiver-ref. + (lower_omp_target): Adjust to lookup var field using clause expression. + +2025-05-15 Andrew Stubbs <ams@codesourcery.com> + + * dwarf2out.cc (add_location_or_const_value_attribute): Set + DW_AT_address_class, if appropriate. + +2025-05-15 Andrew Stubbs <ams@codesourcery.com> + + * dwarf2out.cc (notional_parents_list): New file variable. + (gen_subprogram_die): Record offload kernel functions in + notional_parents_list. + (fixup_notional_parents): New function. + (dwarf2out_finish): Call fixup_notional_parents. + (dwarf2out_c_finalize): Reset notional_parents_list. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * omp-offload.cc (oacc_thread_numbers): Add VF_BY_VECTORIZER parameter. + Add overloaded wrapper for previous arguments & behaviour. + (oacc_xform_loop): Lower vector loops to iterate a multiple of + omp_max_vf times over contiguous steps on non-SIMT targets. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Kwok Cheung Yeung <kcy@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + Thomas Schwinge <thomas@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + * gimplify.cc (omp_group_base): Handle GOMP_MAP_DECLARE_ALLOCATE + and GOMP_MAP_DECLARE_DEALLOCATE. + (gimplify_adjust_omp_clauses): Likewise. + * omp-low.cc (scan_sharing_clauses): Update handling of OpenACC declare + create, declare copyin and declare deviceptr to have local lifetimes. + (convert_to_firstprivate_int): Handle pointer types. + (convert_from_firstprivate_int): Likewise. Create local storage for + the values being pointed to. Add new orig_type argument. Use + VIEW_CONVERT also for vectors. + (lower_omp_target): Handle GOMP_MAP_DECLARE_{ALLOCATE,DEALLOCATE}. + Add orig_type argument to convert_from_firstprivate_int call. + Allow pointer types with GOMP_MAP_FIRSTPRIVATE_INT. Don't privatize + firstprivate VLAs. + * tree-pretty-print.cc (dump_omp_clause): Handle + GOMP_MAP_DECLARE_{ALLOCATE,DEALLOCATE}. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + Sandra Loosemore <sandra@baylibre.com> + + * gimplify.cc (localize_reductions): Rewrite references for + OMP_CLAUSE_PRIVATE also. Do not create local variable for + privatized arrays as the size is not directly known by the type. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * gimplify.cc (privatize_reduction): New struct. + (localize_reductions_r, localize_reductions): New functions. + (gimplify_omp_for): Call localize_reductions. + (gimplify_omp_workshare): Likewise. + * omp-low.cc (lower_oacc_reductions): Handle localized reductions. + Create fewer temp vars. + * tree-core.h (omp_clause_code): Add OMP_CLAUSE_REDUCTION_PRIVATE_DECL + documentation. + * tree.cc (omp_clause_num_ops): Bump number of ops for + OMP_CLAUSE_REDUCTION to 6. + (walk_tree_1): Adjust accordingly. + * tree.h (OMP_CLAUSE_REDUCTION_PRIVATE_DECL): Add macro. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + Chung-Lin Tang <cltang@codesourcery.com> + + * gimplify.cc (omp_add_variable): Enable firstprivate reduction + variables. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + + * omp-low.cc (lower_oacc_head_mark): Don't mark OpenACC auto + loops as independent inside acc parallel regions. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + Kwok Cheung Yeung <kcy@codesourcery.com> + + * omp-low.cc (maybe_lookup_field_in_outer_ctx): New function. + (convert_to_firstprivate_int): New function. + (convert_from_firstprivate_int): New function. + (lower_omp_target): Enable GOMP_MAP_FIRSTPRIVATE_INT in OpenACC. + Remove unused variable. + +2025-05-15 Nathan Sidwell <nathan@acm.org> + Tom de Vries <tdevries@suse.de> + Thomas Schwinge <thomas@codesourcery.com> + Julian Brown <julian@codesourcery.com> + + * doc/invoke.texi (fopenacc-dim): Document syntax for using + runtime value from environment variable. + * omp-offload.cc (oacc_parse_default_dims): Implement it. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + + * config/nvptx/nvptx.cc (nvptx_propagate_unified): New. + (nvptx_split_blocks): Call it for cond_uni insn. + (nvptx_expand_cond_uni): New. + (enum nvptx_builtins): Add NVPTX_BUILTIN_COND_UNI. + (nvptx_init_builtins): Initialize it. + (nvptx_expand_builtin): Handle NVPTX_BUILTIN_COND_UNI. + (nvptx_generate_vector_shuffle): Change integral SHIFT operand to + tree BITS operand. + (nvptx_vector_reduction): New. + (nvptx_adjust_reduction_type): New. + (nvptx_goacc_reduction_setup): Use it to adjust the type of ref_to_res. + (nvptx_goacc_reduction_init): Don't update LHS if it doesn't exist. + (nvptx_goacc_reduction_fini): Call nvptx_vector_reduction for vector. + Use it to adjust the type of ref_to_res. + (nvptx_goacc_reduction_teardown): Call nvptx_adjust_reduction_type. + * config/nvptx/nvptx.md (cond_uni): New pattern. + * gimplify.cc (gimplify_adjust_omp_clauses): Add DECL_P check + for OMP_CLAUSE_TASK_REDUCTION. + * omp-low.cc (lower_oacc_reductions): Handle + GOMP_MAP_FIRSTPRIVATE_POINTER. + * omp-offload.cc (default_goacc_reduction): Likewise. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + James Norris <jnorris@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + Thomas Schwinge <tschwinge@baylibre.com> + + * gimplify.cc (enum gimplify_omp_var_data): Add GOVD_DEVICETPR. + (oacc_default_clause): Privatize fortran common blocks. + (omp_notice_variable): Add GOVD_DEVICEPTR attribute when appropriate. + Defer the expansion of DECL_VALUE_EXPR for common block decls. + (gimplify_scan_omp_clauses): Add GOVD_DEVICEPTR attribute when + appropriate. + (gimplify_adjust_omp_clauses_1): Set GOMP_MAP_FORCE_DEVICEPTR for + implicit deviceptr mappings. + +2025-05-15 Chung-Lin Tang <cltang@codesourcery.com> + Kwok Cheung Yeung <kcy@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + PR other/76739 + * builtin-types.def (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_VAR): New type. + * gimplify.cc (omp_group_base): Handle GOMP_MAP_NONCONTIG_ARRAY_*. + (gimplify_scan_omp_clauses): Handle OMP_TARGET_UPDATE. + (gimplify_adjust_omp_clauses): Skip gimplification of + OMP_CLAUSE_SIZE of non-contiguous array maps (which is a TREE_LIST). + * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Adjust function type + to new BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_VAR. + * omp-expand.cc (expand_omp_target): Add non-contiguous array + descriptor pointers to variadic arguments. + * omp-low.cc (append_field_to_record_type): New function. + (create_noncontig_array_descr_type): Likewise. + (create_noncontig_array_descr_init_code): Likewise. + (scan_sharing_clauses): For non-contiguous array map kinds, check for + supported dimension structure, and install non-contiguous array + variable into current omp_context. + (reorder_noncontig_array_clauses): New function. + (scan_omp_target): Call reorder_noncontig_array_clauses to place + non-contiguous array map clauses at beginning of clause sequence. + (lower_omp_target): Add handling for non-contiguous array map kinds, + add all created non-contiguous array descriptors to + gimple_omp_target_data_arg. + * tree-pretty-print.cc (dump_omp_clause): Handle + GOMP_MAP_NONCONTIG_ARRAY_*. + +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + + * Makefile.in (REVISION_s): Change default message.
\ No newline at end of file diff --git a/gcc/DATESTAMP.omp b/gcc/DATESTAMP.omp new file mode 100644 index 0000000..63e8d5b --- /dev/null +++ b/gcc/DATESTAMP.omp @@ -0,0 +1 @@ +20250515 diff --git a/gcc/c-family/ChangeLog.omp b/gcc/c-family/ChangeLog.omp new file mode 100644 index 0000000..e7d477a --- /dev/null +++ b/gcc/c-family/ChangeLog.omp @@ -0,0 +1,90 @@ +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * c-omp.cc (omp_instantiate_mapper): Apply iterator to new clauses + generated from mapper. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * c-omp.cc (c_finish_omp_depobj): Use OMP_ITERATOR_DECL_P. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * c-cppbuiltin.cc (c_cpp_builtins): Updated _OPENACC to "201811" + for OpenACC 2.7. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + + * c-omp.cc (c_omp_address_inspector::expand_array_base): + Set OMP_CLAUSE_MAP_POINTS_TO_READONLY on pointer clause. + (c_omp_address_inspector::expand_component_selector): Likewise. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Andrew Stubbs <ams@baylibre.com> + Kwok Cheung Yeung <kcyeung@baylibre.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * c-common.h (c_omp_region_type): Add C_ORT_UPDATE and C_ORT_OMP_UPDATE + codes. + * c-omp.cc (omp_basic_map_kind_name): New function. + (omp_instantiate_mapper): Add LOC parameter. Add 'target update' + support. + (c_omp_instantiate_mappers): Add 'target update' support. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-omp.cc (c_omp_address_inspector::map_supported_p): Support + VIEW_CONVERT_EXPR and ADDR_EXPR codes. + (omp_expand_grid_dim): New function. + (omp_handle_noncontig_array): New function. + (c_omp_address_inspector:expand_array_base): Support noncontiguous + array updates. + (c_omp_address_inspector::expand_component_selector): Support + noncontiguous array updates. + * c-pretty-print.cc (c_pretty_printer::postfix_expression): Add + OMP_ARRAY_SECTION stride support. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-common.h (expand_array_base, expand_component_selector, + expand_map_clause): Adjust member declarations. + * c-omp.cc (omp_expand_access_chain): Pass and return pointer to + clause. + (c_omp_address_inspector::expand_array_base): Likewise. + (c_omp_address_inspector::expand_component_selector): Likewise. + (c_omp_address_inspector::expand_map_clause): Likewise. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-common.h (c_omp_region_type): Add C_ORT_EXIT_DATA, + C_ORT_OMP_EXIT_DATA. + (c_omp_instantiate_mappers): Add region type parameter. + * c-omp.cc (omp_split_map_kind, omp_join_map_kind, + omp_map_decayed_kind): New functions. + (omp_instantiate_mapper): Add ORT parameter. Implement map kind decay + for instantiated mapper clauses. + (c_omp_instantiate_mappers): Add ORT parameter, pass to + omp_instantiate_mapper. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-common.h (c_omp_region_type): Add C_ORT_DECLARE_MAPPER and + C_ORT_OMP_DECLARE_MAPPER codes. + (omp_mapper_list): Add forward declaration. + (c_omp_find_nested_mappers, c_omp_instantiate_mappers): Add prototypes. + * c-omp.cc (c_omp_find_nested_mappers): New function. + (remap_mapper_decl_info): New struct. + (remap_mapper_decl_1, omp_instantiate_mapper, + c_omp_instantiate_mappers): New functions. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-omp.cc (c_omp_address_inspector::expand_array_base): Don't omit + pointer nodes for OpenACC. + +2025-05-15 Tobias Burnus <tobias@codesourcery.com> + + * c-omp.cc (c_omp_split_clauses): Hande uses_allocators. + * c-pragma.h (enum pragma_omp_clause): Add + PRAGMA_OMP_CLAUSE_USES_ALLOCATORS.
\ No newline at end of file diff --git a/gcc/c/ChangeLog.omp b/gcc/c/ChangeLog.omp new file mode 100644 index 0000000..ff881b5 --- /dev/null +++ b/gcc/c/ChangeLog.omp @@ -0,0 +1,237 @@ +2025-05-15 waffl3x <waffl3x@baylibre.com> + + PR c++/119659 + PR c++/118859 + PR c++/119601 + PR c++/119602 + PR c++/119775 + * c-parser.cc (c_omp_numeric_ranges_always_overlap): New function. + (c_parser_omp_parm_list): New function. + (c_finish_omp_declare_variant): Use c_parser_omp_parm_list instead + of c_parser_omp_variable_list. Refactor, change format of + "omp declare variant variant args" attribute. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * c-parser.cc (c_parser_omp_clause_map): Apply iterator to push and + pop mapper clauses. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * c-parser.cc (c_parser_omp_iterators): Use macros for accessing + iterator elements. + (c_parser_omp_clause_affinity): Likewise. + (c_parser_omp_clause_depend): Likewise. + (c_parser_omp_clause_map): Likewise. + (c_parser_omp_clause_from_to): Likewise. + * c-typeck.cc (c_omp_finish_iterators): Likewise. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * c-typeck.cc (handle_omp_array_sections): Add extra argument. Set + argument to true if array section has a stride that is not one. + (c_finish_omp_clauses): Disable strided updates when iterators are + used in the clause. Emit sorry if strided. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * c-parser.cc (c_parser_omp_clause_from_to): Parse 'iterator' modifier. + * c-typeck.cc (c_finish_omp_clauses): Finish iterators for to/from + clauses. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * c-parser.cc (c_parser_omp_clause_map): Parse 'iterator' modifier. + * c-typeck.cc (c_finish_omp_clauses): Finish iterators. Apply + iterators to generated clauses. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * c-typeck.cc (handle_omp_array_sections): Use OMP_ITERATOR_DECL_P. + (c_finish_omp_clauses): Likewise. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + + * c-parser.cc (c_parser_omp_variable_list): Adjust parsing of opening + square bracket. + (c_parser_omp_clause_reduction): Adjustments for + OpenACC-specific cases. + * c-typeck.cc (c_oacc_reduction_defined_type_p): New function. + (c_oacc_reduction_code_name): Likewise. + (c_finish_omp_clauses): Handle OpenACC cases using new functions. + +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + Julian Brown <julian@codesourcery.com> + + * c-decl.cc (current_omp_declare_variant_attribute): Define. + * c-lang.h (struct c_omp_declare_variant_attr): Declare. + (current_omp_declare_variant_attribute): Declare. + * c-parser.cc (c_parser_skip_to_pragma_omp_end_declare_variant): New. + (c_parser_translation_unit): Check for "omp begin declare variant" + with no matching "end". + (c_parser_declaration_or_fndef): Handle functions in "omp begin + declare variant" block. + (c_finish_omp_declare_variant): Merge context selectors with + surrounding "omp begin declare variant". + (JOIN_STR): Define. + (omp_start_variant_function): New. + (omp_finish_variant_function): New. + (c_parser_omp_begin): Handle "omp begin declare variant". + (c_parser_omp_end): Likewise. + +2025-05-15 waffl3x <waffl3x@baylibre.com> + Tobias Burnus <tobias@codesourcery.com> + + * c-parser.cc (c_parser_omp_allocate): Fix typo in diagnostic. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Andrew Stubbs <ams@baylibre.com> + Kwok Cheung Yeung <kcyeung@baylibre.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * c-parser.cc (c_parser_omp_variable_list): Support array-shaping + operator in 'declare mapper' definitions. + (c_parser_omp_clause_map): Pass C_ORT_OMP_DECLARE_MAPPER to + c_parser_omp_variable_list in mapper definitions. + (c_parser_omp_clause_from_to): Add parsing for mapper modifier. + (c_parser_omp_target_update): Instantiate mappers. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-parser.cc (c_parser_braced_init): Disallow array-shaping operator + in braced init. + (c_parser_conditional_expression): Disallow array-shaping operator in + conditional expression. + (c_parser_cast_expression): Add array-shaping operator support. + (c_parser_postfix_expression): Disallow array-shaping operator in + statement expressions. + (c_parser_postfix_expression_after_primary): Add OpenMP array section + stride support. + (c_parser_expr_list): Disallow array-shaping operator in expression + lists. + (c_array_type_nelts_total): New function. + (c_parser_omp_variable_list): Support array-shaping operator. + (c_parser_omp_target_update): Recognize GOMP_MAP_TO_GRID and + GOMP_MAP_FROM_GRID map kinds as well as OMP_CLAUSE_TO/OMP_CLAUSE_FROM. + * c-tree.h (c_omp_array_shaping_op_p, c_omp_has_array_shape_p): New + extern declarations. + (create_omp_arrayshape_type): Add prototype. + * c-typeck.cc (c_omp_array_shaping_op_p, c_omp_has_array_shape_p): New + globals. + (build_omp_array_section): Permit integral types, not just integer + constants, when creating array types for array sections. + (create_omp_arrayshape_type): New function. + (handle_omp_array_sections_1): Add DISCONTIGUOUS parameter. Add + strided/rectangular array section support. + (omp_array_section_low_bound): New function. + (handle_omp_array_sections): Add DISCONTIGUOUS parameter. Add + strided/rectangular array section support. + (c_finish_omp_clauses): Update calls to handle_omp_array_sections. + Handle discontiguous updates. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-parser.cc (c_parser_postfix_expression_after_primary): Dummy stride + support (for now). + (struct omp_dim): Add stride support. + (c_parser_omp_variable_list): Likewise. + * c-tree.h (build_omp_array_section): Update prototype. + * c-typeck.cc (mark_exp_read): Add stride support for + OMP_ARRAY_SECTION. + (build_omp_array_section): Add stride support. + (handle_omp_array_sections_1): Add minimal stride support. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-typeck.cc (handle_omp_array_sections): Pass pointer to clause to + process instead of clause. + (c_finish_omp_clauses): Update calls to handle_omp_array_sections. + Handle cases where initial clause might be replaced. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-parser.cc (c_parser_omp_target_data): Instantiate mappers for + 'omp target data'. + (c_parser_omp_target_enter_data): Instantiate mappers for 'omp target + enter data'. + (c_parser_omp_target_exit_data): Instantiate mappers for 'omp target + exit data'. + (c_parser_omp_target): Add c_omp_region_type argument to + c_omp_instantiate_mappers call. + * c-tree.h (c_omp_instantiate_mappers): Remove spurious prototype. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-decl.cc (c_omp_mapper_id, c_omp_mapper_decl, c_omp_mapper_lookup, + c_omp_extract_mapper_directive, c_omp_map_array_section, + c_omp_scan_mapper_bindings_r, c_omp_scan_mapper_bindings): New + functions. + * c-objc-common.h (LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES, + LANG_HOOKS_OMP_MAPPER_LOOKUP, LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE, + LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define langhooks for C. + * c-parser.cc (c_parser_omp_clause_map): Add KIND parameter. Handle + mapper modifier. + (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_map with + new kind argument. + (c_parser_omp_target): Instantiate explicit mappers and record bindings + for implicit mappers. + (c_parser_omp_declare_mapper): Parse "declare mapper" directives. + (c_parser_omp_declare): Support "declare mapper". + * c-tree.h (c_omp_finish_mapper_clauses, c_omp_mapper_lookup, + c_omp_extract_mapper_directive, c_omp_map_array_section, + c_omp_mapper_id, c_omp_mapper_decl, c_omp_scan_mapper_bindings, + c_omp_instantiate_mappers): Add prototypes. + * c-typeck.cc (c_finish_omp_clauses): Handle GOMP_MAP_PUSH_MAPPER_NAME + and GOMP_MAP_POP_MAPPER_NAME. + (c_omp_finish_mapper_clauses): New function (langhook). + +2025-05-15 Tobias Burnus <tobias@codesourcery.com> + + * c-parser.cc (c_parser_omp_clause_uses_allocators): New. + (c_parser_omp_clause_name, c_parser_omp_all_clauses, + OMP_TARGET_CLAUSE_MASK): Handle uses_allocators. + * c-typeck.cc (c_finish_omp_clauses): Likewise. + +2025-05-15 Chung-Lin Tang <cltang@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + * c-typeck.cc (c_finish_omp_clauses): Adjust to allow duplicate + mapped variables for OpenMP. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + Nathan Sidwell <nathan@acm.org> + Kwok Cheung Yeung <kcy@codesourcery.com> + + * c-parser.cc (c_parser_omp_variable_list): New c_omp_region_type + argument. Use it to specialize handling of OMP_CLAUSE_REDUCTION for + OpenACC. + (c_parser_omp_var_list_parens): Add region-type argument to call. + (c_parser_oacc_data_clause): Likewise. + (c_parser_oacc_data_clause_deviceptr): Likewise. + (c_parser_omp_clause_reduction): Change is_omp boolean parameter to + c_omp_region_type. Update call to c_parser_omp_variable_list. + (c_parser_omp_clause_map): Update call to + c_parser_omp_variable_list. + (c_parser_omp_clause_from_to): Likewise. + (c_parser_omp_clause_init): Likewise. + (c_parser_oacc_all_clauses): Update calls to + c_parser_omp_clause_reduction. + (c_parser_omp_all_clauses): Likewise. + (c_parser_oacc_cache): Update call to c_parser_omp_variable_list. + * c-typeck.cc (c_finish_omp_clauses): Emit an error on orphan OpenACC + gang reductions. Suppress user-defined reduction error for OpenACC. + +2025-05-15 Chung-Lin Tang <cltang@codesourcery.com> + Kwok Cheung Yeung <kcy@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + PR other/76739 + * c-typeck.cc (handle_omp_array_sections_1): Add 'bool &non_contiguous' + parameter, adjust recursive call site, add cases for allowing + pointer based multi-dimensional arrays for OpenACC. Reject + non-DECL base-pointer cases as unsupported. + (handle_omp_array_sections): Adjust handle_omp_array_sections_1 call, + handle non-contiguous case to create dynamic array map.
\ No newline at end of file diff --git a/gcc/cp/ChangeLog.omp b/gcc/cp/ChangeLog.omp new file mode 100644 index 0000000..3f2574a --- /dev/null +++ b/gcc/cp/ChangeLog.omp @@ -0,0 +1,332 @@ +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + Tobias Burnus <tburnus@baylibre.com> + + * parser.cc (cp_finish_omp_declare_variant): Adjust error messages. + +2025-05-15 waffl3x <waffl3x@baylibre.com> + + PR c++/119659 + PR c++/118859 + PR c++/119601 + PR c++/119602 + PR c++/119775 + PR c++/119659 + PR c++/118859 + PR c++/119601 + PR c++/119602 + PR c++/119775 + * cp-tree.h (finish_omp_parm_list): New declaration. + (finish_omp_adjust_args): New declaration. + * decl.cc (omp_declare_variant_finalize_one): Refactor and change + attribute unpacking, use finish_omp_parm_list and + finish_omp_adjust_args, refactor append_args diagnostics, add + nbase_parms to append_args attribute, remove special handling for + member functions. + * parser.cc (cp_parser_direct_declarator): Don't pass parms. + (cp_parser_late_return_type_opt): Remove parms parameter. + (cp_parser_omp_parm_list): New function. + (cp_finish_omp_declare_variant): Remove parms parameter. + Add NULL_TREE instead of nbase_args to append_args_tree. Refactor, + use cp_parser_omp_parm_list not cp_parser_omp_var_list_no_open, + handle "need_device_addr" and remove handling and diagnostics of + parm list arguments that are done too early. Change format of + unnamed variant attribute. + (cp_parser_late_parsing_omp_declare_simd): Remove parms parameter. + * pt.cc (tsubst_attribute): Copy "omp declare variant base" nodes, + substitute parm list numeric range bounds. + * semantics.cc (finish_omp_parm_list): New function. + (finish_omp_adjust_args): New function. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * parser.cc (cp_parser_omp_clause_map): Apply iterator to push and + pop mapper clauses. + * semantics.cc (cxx_omp_map_array_section): Allow array types for + base type of array sections. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * parser.cc (cp_parser_omp_iterators): Use macros for accessing + iterator elements. + (cp_parser_omp_clause_affinity): Likewise. + (cp_parser_omp_clause_depend): Likewise. + (cp_parser_omp_clause_from_to): Likewise. + (cp_parser_omp_clause_map): Likewise. + * semantics.cc (cp_omp_finish_iterators): Likewise. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * semantics.cc (handle_omp_array_sections): Add extra argument. Set + argument to true if array section has a stride that is not one. + (finish_omp_clauses): Disable strided updates when iterators are + used in the clause. Emit sorry if strided. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * parser.cc (cp_parser_omp_clause_from_to): Parse 'iterator' modifier. + * semantics.cc (finish_omp_clauses): Finish iterators for to/from + clauses. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * parser.cc (cp_parser_omp_clause_map): Parse 'iterator' modifier. + * semantics.cc (finish_omp_clauses): Finish iterators. Apply + iterators to generated clauses. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * pt.cc (tsubst_omp_clause_decl): Use OMP_ITERATOR_DECL_P. + * semantics.cc (handle_omp_array_sections): Likewise. + (finish_omp_clauses): Likewise. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + + * parser.cc (cp_parser_omp_var_list_no_open): Adjust parsing of opening + square bracket. + (cp_parser_omp_clause_reduction): Adjustments for + OpenACC-specific cases. + * semantics.cc (cp_oacc_reduction_defined_type_p): New function. + (cp_oacc_reduction_code_name): Likewise. + (finish_omp_reduction_clause): Handle OpenACC cases using new + functions. + +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + Julian Brown <julian@codesourcery.com> + waffl3x <waffl3x@baylibre.com> + + * cp-tree.h (struct cp_omp_declare_variant_attr): New. + (struct saved_scope): Add omp_declare_variant_attribute field. + * decl.cc (omp_declare_variant_finalize_one): Add logic to inject + "this" parameter for method calls. + * parser.cc (cp_parser_skip_to_pragma_omp_end_declare_variant): New. + (omp_start_variant_function): New. + (omp_finish_variant_function): New. + (cp_parser_init_declarator): Handle variant functions. + (cp_parser_class_specifier): Handle deferred lookup of base functions + when the entire class has been seen. + (cp_parser_member_declaration): Handle variant functions. + (cp_finish_omp_declare_variant): Merge context selectors if in + a "begin declare variant" block. + (cp_parser_omp_begin): Match "omp begin declare variant". Adjust + error messages. + (cp_parser_omp_end): Match "omp end declare variant". + * parser.h (struct cp_parser): Add omp_unregistered_variants field. + * semantics.cc (finish_translation_unit): Detect unmatched + "omp begin declare variant". + +2025-05-15 waffl3x <waffl3x@baylibre.com> + Tobias Burnus <tobias@codesourcery.com> + + * constexpr.cc (potential_constant_expression_1): Handle + OMP_ALLOCATE. + * cp-tree.def (OMP_ALLOCATE): New tree code. + * cp-tree.h (OMP_ALLOCATE_LOCATION): Define. + (OMP_ALLOCATE_VARS): Define. + (OMP_ALLOCATE_ALLOCATOR): Define. + (OMP_ALLOCATE_ALIGN): Define. + (finish_omp_allocate): New function declaration. + * decl.cc (make_rtl_for_nonlocal_decl): Work around ICE with + implicit constexpr functions. + * parser.cc (cp_parser_omp_allocate): Use OMP_CLAUSE_ERROR, + add diagnostics for args, call finish_omp_allocate. + (cp_parser_omp_construct): Don't handle PRAGMA_OMP_ALLOCATE. + (cp_parser_pragma): Comment. + * pt.cc (tsubst_stmt): Handle OMP_ALLOCATE, call + finish_omp_allocate. + * semantics.cc (finish_omp_allocate): New function. + * typeck.cc (can_do_nrvo_p): Don't do NRVO for omp allocate vars. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Andrew Stubbs <ams@baylibre.com> + Kwok Cheung Yeung <kcyeung@baylibre.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * parser.cc (cp_parser_omp_var_list_no_open): Support array-shaping + operator in 'declare mapper' definitions. + (cp_parser_omp_clause_from_to): Add parsing for mapper modifier. + (cp_parser_omp_clause_map): Pass C_ORT_OMP_DECLARE_MAPPER to + cp_parser_omp_var_list_no_open in mapper definitions. + (cp_parser_omp_target_update): Instantiate mappers. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * cp-objcp-common.cc (cp_common_init_ts): Add array-shape cast + support. + * cp-tree.def (OMP_ARRAYSHAPE_CAST_EXPR): Add tree code. + * cp-tree.h (DECLTYPE_FOR_OMP_ARRAYSHAPE_CAST): Add flag. + (cp_omp_create_arrayshape_type, cp_build_omp_arrayshape_cast): Add + prototypes. + (grok_omp_array_section, build_omp_array_section): Add stride + parameters. + * decl.cc (create_anon_array_type): New function. + (cp_omp_create_arrayshape_type): New function. + * decl2.cc (grok_omp_array_section): Add stride parameter. + (min_vis_expr_r): Add OMP_ARRAYSHAPE_CAST_EXPR support. + * error.cc (dump_expr): Add stride support for OMP_ARRAY_SECTION. + * mangle.cc (write_expression): Add OMP_ARRAYSHAPE_CAST_EXPR support. + * operators.def (OMP_ARRAYSHAPE_CAST_EXPR): Add. + * parser.cc (cp_parser_new): Initialise omp_array_shaping_op_p and + omp_has_array_shape_p fields. + (cp_parser_statement_expr): Don't allow array shaping op in statement + exprs. + (cp_parser_postfix_open_square_expression): Add stride parsing for + array sections. Use array section code to represent array refs if we + have an array-shaping operator. + (cp_parser_parenthesized_expression_list): Don't allow array-shaping + op here. + (cp_parser_cast_expression): Add array-shaping operator parsing. + (cp_parser_lambda_expression): Don't allow array-shaping op in lambda + body. + (cp_parser_braced_list): Don't allow array-shaping op in braced list. + (struct omp_dim): Add stride field. + (cp_parser_var_list_no_open): Add stride/array shape support. + (cp_parser_omp_target_update): Handle noncontiguous updates. + * parser.h (cp_parser): Add omp_array_shaping_op_p and + omp_has_array_shape_p fields. + * pt.cc (tsubst): Add array-shape cast support. + (tsubst_copy, tsubst_copy_and_build): Likewise. Add stride support for + OMP_ARRAY_SECTION. + (tsubst_omp_clause_decl): Add stride support for OMP_ARRAY_SECTION. + * semantics.cc (handle_omp_array_sections_1): Add DISCONTIGUOUS + parameter and stride support. + (omp_array_section_low_bound): New function. + (handle_omp_array_sections): Add DISCONTIGUOUS parameter and stride + support. + (finish_omp_clauses): Update calls to handle_omp_array_sections, and + add noncontiguous array update support. + (cp_build_omp_arrayshape_cast): New function. + * typeck.cc (structural_comptypes): Add array-shape cast support. + (build_omp_array_section): Add stride parameter. + (check_for_casting_away_constness): Add OMP_ARRAYSHAPE_CAST_EXPR + support. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * semantics.cc (handle_omp_array_sections): Pass pointer to clause + instead of clause. Add PNEXT return parameter for next clause in list + to process. + (finish_omp_clauses): Update calls to handle_omp_array_sections. + Handle cases where initial clause might be replaced. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * parser.cc (cp_parser_omp_target_data): Instantiate mappers for 'omp + target data'. + (cp_parser_omp_target_enter_data): Instantiate mappers for 'omp target + enter data'. + (cp_parser_omp_target_exit_data): Instantiate mappers for 'omp target + exit data'. + (cp_parser_omp_target): Add c_omp_region_type argument to + c_omp_instantiate_mappers call. + * pt.cc (tsubst_omp_clauses): Instantiate mappers for OMP regions other + than just C_ORT_OMP_TARGET. + (tsubst_expr): Update call to tsubst_omp_clauses for OMP_TARGET_UPDATE, + OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA stanza. + * semantics.cc (cxx_omp_map_array_section): Avoid calling + build_array_ref for non-array/non-pointer bases (error reported + already). + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * constexpr.cc (reduced_constant_expression_p): Add OMP_DECLARE_MAPPER + case. + (cxx_eval_constant_expression, potential_constant_expression_1): + Likewise. + * cp-gimplify.cc (cxx_omp_finish_mapper_clauses): New function. + * cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES, + LANG_HOOKS_OMP_MAPPER_LOOKUP, LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE, + LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define langhooks. + * cp-tree.h (lang_decl_base): Add omp_declare_mapper_p field. Recount + spare bits comment. + (DECL_OMP_DECLARE_MAPPER_P): New macro. + (omp_mapper_id): Add prototype. + (cp_check_omp_declare_mapper): Add prototype. + (omp_instantiate_mappers): Add prototype. + (cxx_omp_finish_mapper_clauses): Add prototype. + (cxx_omp_mapper_lookup): Add prototype. + (cxx_omp_extract_mapper_directive): Add prototype. + (cxx_omp_map_array_section): Add prototype. + * decl.cc (check_initializer): Add OpenMP declare mapper support. + (cp_finish_decl): Set DECL_INITIAL for OpenMP declare mapper var decls + as appropriate. + * decl2.cc (mark_used): Instantiate OpenMP "declare mapper" magic var + decls. + * error.cc (dump_omp_declare_mapper): New function. + (dump_simple_decl): Use above. + * parser.cc (cp_parser_omp_clause_map): Add KIND parameter. Support + "mapper" modifier. + (cp_parser_omp_all_clauses): Add KIND argument to + cp_parser_omp_clause_map call. + (cp_parser_omp_target): Call omp_instantiate_mappers before + finish_omp_clauses. + (cp_parser_omp_declare_mapper): New function. + (cp_parser_omp_declare): Add "declare mapper" support. + * pt.cc (tsubst_decl): Adjust name of "declare mapper" magic var decls + once we know their type. + (tsubst_omp_clauses): Call omp_instantiate_mappers before + finish_omp_clauses, for target regions. + (tsubst_expr): Support OMP_DECLARE_MAPPER nodes. + (instantiate_decl): Instantiate initialiser (i.e definition) for OpenMP + declare mappers. + * semantics.cc (gimplify.h): Include. + (omp_mapper_id, omp_mapper_lookup, omp_extract_mapper_directive, + cxx_omp_map_array_section, cp_check_omp_declare_mapper): New functions. + (finish_omp_clauses): Delete GOMP_MAP_PUSH_MAPPER_NAME and + GOMP_MAP_POP_MAPPER_NAME artificial clauses. + (omp_target_walk_data): Add MAPPERS field. + (finish_omp_target_clauses_r): Scan for uses of struct/union/class type + variables. + (finish_omp_target_clauses): Create artificial mapper binding clauses + for used structs/unions/classes in offload region. + +2025-05-15 Tobias Burnus <tobias@codesourcery.com> + + * parser.cc (cp_parser_omp_clause_uses_allocators): New. + (cp_parser_omp_clause_name, cp_parser_omp_all_clauses, + OMP_TARGET_CLAUSE_MASK): Handle uses_allocators. + * semantics.cc (finish_omp_clauses): Likewise. + +2025-05-15 Chung-Lin Tang <cltang@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + * semantics.cc (finish_omp_clauses): Adjust to allow duplicate + mapped variables for OpenMP. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + Nathan Sidwell <nathan@acm.org> + Kwok Cheung Yeung <kcy@codesourcery.com> + + * parser.cc (cp_parser_omp_var_list_no_open): New c_omp_region_type + argument. Use it to specialize handling of OMP_CLAUSE_REDUCTION for + OpenACC. + (cp_parser_omp_var_list): Add c_omp_region_type argument. Update call + to cp_parser_omp_var_list_no_open. + (cp_parser_oacc_data_clause): Update call to + cp_parser_omp_var_list_no_open. + (cp_parser_omp_clause_reduction): Change is_omp boolean parameter to + c_omp_region_type. Update call to cp_parser_omp_var_list_no_open. + (cp_parser_omp_clause_from_to): Update call to + cp_parser_omp_clause_var_list_no_open. + (cp_parser_omp_clause_map): Likewise. + (cp_parser_omp_clause_init): Likewise. + (cp_parser_oacc_all_clauses): Update call to + cp_parser_omp_clause_reduction. + (cp_parser_omp_all_clauses): Likewise. + * semantics.cc (finish_omp_reduction_clause): Add c_omp_region_type + argument. Suppress user-defined reduction error for OpenACC. + (finish_omp_clauses): Update call to finish_omp_reduction_clause. + +2025-05-15 Chung-Lin Tang <cltang@codesourcery.com> + Kwok Cheung Yeung <kcy@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + PR other/76739 + * semantics.cc (handle_omp_array_sections_1): Add 'bool &non_contiguous' + parameter, adjust recursive call site, add cases for allowing + pointer based multi-dimensional arrays for OpenACC. Reject + non-DECL base-pointer cases as unsupported. + (handle_omp_array_sections): Adjust handle_omp_array_sections_1 call, + handle non-contiguous case to create dynamic array map.
\ No newline at end of file diff --git a/gcc/fortran/ChangeLog.omp b/gcc/fortran/ChangeLog.omp new file mode 100644 index 0000000..05c8e3f --- /dev/null +++ b/gcc/fortran/ChangeLog.omp @@ -0,0 +1,448 @@ +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + Tobias Burnus <tburnus@baylibre.com> + + * trans-openmp.cc (gfc_trans_omp_declare_variant): Disallow + polymorphic and optional arguments with need_device_addr for now, but + don't reject need_device_addr entirely. + +2025-05-15 waffl3x <waffl3x@baylibre.com> + + PR c++/119659 + PR c++/118859 + PR c++/119601 + PR c++/119602 + PR c++/119775 + * trans-openmp.cc (gfc_trans_omp_declare_variant): Change format of + "omp declare variant variant args" attribute. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * trans-openmp.cc (gfc_omp_deep_mapping_map): Add new argument for + vector of newly created iterators. Push new iterators onto the + vector. + (gfc_omp_deep_mapping_comps): Add new argument for vector of new + iterators. Pass argument in calls to gfc_omp_deep_mapping_item and + gfc_omp_deep_mapping_comps. + (gfc_omp_deep_mapping_item): Add new argument for vector of new + iterators. Pass argument in calls to gfc_omp_deep_mapping_map and + gfc_omp_deep_mapping_comps. + (gfc_omp_deep_mapping_do): Add new argument for vector of new + iterators. Pass argument in calls to gfc_omp_deep_mapping_item. + (gfc_omp_deep_mapping_cnt): Pass NULL to new argument for + gfc_omp_deep_mapping_do. + (gfc_omp_deep_mapping): Add new argument for vector of new + iterators. Pass argument in calls to gfc_omp_deep_mapping_do. + * trans.h (gfc_omp_deep_mapping): Add new argument. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * trans-openmp.cc (gfc_omp_deep_mapping_map): Remove const from ctx + argument. Add arguments for iterators and the statement sequence to + go into the iterator loop. Add statement sequence to iterator loop + body. Generate iterator loop entries for generated maps, insert + the map decls and sizes into the iterator element arrays, replace + original decls with the address of the element arrays, and + sizes/biases with SIZE_INT. + (gfc_omp_deep_mapping_comps): Remove const from ctx. Add argument for + iterators. Pass iterators to calls to gfc_omp_deep_mapping_item and + gfc_omp_deep_mapping_comps. + (gfc_omp_deep_mapping_item): Remove const from ctx. Add argument for + iterators. Collect generated side-effect statements and pass to + gfc_omp_deep_mapping_map along with the iterators. Pass iterators + to gfc_omp_deep_mapping_comps. + (gfc_omp_deep_mapping_do): Remove const from ctx. Pass iterators to + gfc_omp_deep_mapping_item. + (gfc_omp_deep_mapping_cnt): Remove const from ctx. + (gfc_omp_deep_mapping): Likewise. + * trans.h (gfc_omp_deep_mapping_cnt): Likewise. + (gfc_omp_deep_mapping): Likewise. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * openmp.cc (gfc_omp_instantiate_mapper): Add argument for namespace. + Apply namespace to new clauses. Propagate namespace to nested + mappers. + (gfc_omp_instantiate_mappers): Pass namespace of clause to clauses + generated by mappers. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * trans-openmp.cc (gfc_trans_omp_array_section): Use macros for + accessing iterator elements. + (handle_iterator): Likewise. + (gfc_trans_omp_clauses): Likewise. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * trans-openmp.cc (gfc_trans_omp_clauses): Disable strided updates + when iterators are used in the clause. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * dump-parse-tree.cc (show_omp_namelist): Add iterator support for + OMP_LIST_TO and OMP_LIST_FROM. + * match.cc (gfc_free_namelist): Free namespace for OMP_LIST_TO and + OMP_LIST_FROM. + * openmp.cc (gfc_free_omp_clauses): Free namespace for OMP_LIST_TO + and OMP_LIST_FROM. + (gfc_match_motion_var_list): Parse 'iterator' modifier. + (resolve_omp_clauses): Resolve iterators for OMP_LIST_TO and + OMP_LIST_FROM. + * trans-openmp.cc (gfc_trans_omp_clauses): Handle iterators in + OMP_LIST_TO and OMP_LIST_FROM clauses. Add expressions to + iter_block rather than block. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * dump-parse-tree.cc (show_omp_namelist): Add iterator support for + OMP_LIST_MAP. + * match.cc (gfc_free_namelist): Free namespace for OMP_LIST_MAP. + * openmp.cc (gfc_free_omp_clauses): Free namespace in namelist for + OMP_LIST_MAP. + (gfc_match_omp_clauses): Parse 'iterator' modifier for 'map' clause. + (resolve_omp_clauses): Resolve iterators for OMP_LIST_MAP. + * trans-openmp.cc: Include tree-ssa-loop-niter.h. + (gfc_trans_omp_array_section): Add iterator argument. Replace + instances of iterator variables with the initial value when + computing biases. + (gfc_trans_omp_clauses): Handle iterators in OMP_LIST_MAP clauses. + Add expressions to iter_block rather than block. Do not apply + iterators to firstprivate maps. Pass iterator to + gfc_trans_omp_array_section. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * trans-openmp.cc (gfc_trans_omp_array_section): Use temporaries only + when translating OpenACC. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * gfortran.h (struct gfc_omp_namelist): Move udm field into a new + union u3. + * match.cc (gfc_free_omp_namelist): Change references to u2.udm to + u3.udm. + * module.cc (load_omp_udms): Likewise. + (write_omp_udm): Likewise. + * openmp.cc (gfc_match_motion_var_list): Likewise. + (gfc_match_omp_clauses): Likewise. + (resolve_omp_clauses): Likewise. + (gfc_omp_instantiate_mapper): Likewise. + * trans-openmp.cc (gfc_trans_omp_clauses): Likewise. + (gfc_find_nested_mappers): Likewise. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * cpp.cc (cpp_define_builtins): Updated _OPENACC to "201811" + for OpenACC 2.7. + * intrinsic.texi (OpenACC Module OPENACC): Adjust version + references to 2.7 from 2.6. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + + * openmp.cc (oacc_reduction_defined_type_p): New function. + (resolve_omp_clauses): Adjust OpenACC array reduction error case. + Adjust OMP_LIST_REDUCTION case. Use oacc_reduction_defined_type_p for + OpenACC. + * trans-openmp.cc (gfc_trans_omp_array_reduction_or_udr): + Add 'stmtblock_t *block', and 'bool openacc' parameters. Add array and + array section handling for openacc case. Adjust part of function to be + !openacc only. + (gfc_trans_omp_reduction_list): + Add 'stmtblock_t *block', and 'bool openacc' parameters, pass to calls + to gfc_trans_omp_array_reduction_or_udr. + (gfc_trans_omp_array_section): Adjust setting of OMP_CLAUSE_SIZE to only + OMP_CLAUSE_MAP clauses. Adjust calculations of decls and bias to use + temporary variables instead of tree expression inside clauses. + (gfc_trans_omp_clauses): Add 'block' and 'openacc' arguments to calls to + gfc_trans_omp_reduction_list. + (gfc_trans_omp_do): Pass 'op == EXEC_OACC_LOOP' as 'bool openacc' + parameter in call to gfc_trans_omp_clauses. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + + * trans-openmp.cc (gfc_trans_omp_array_section): + Set OMP_CLAUSE_MAP_POINTS_TO_READONLY on pointer clause. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Andrew Stubbs <ams@baylibre.com> + Kwok Cheung Yeung <kcyeung@baylibre.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * openmp.cc (gfc_match_motion_var_list): Add parsing for mapper + modifier. + (gfc_match_omp_clauses): Adjust error handling for changes to + gfc_match_motion_var_list. + (gfc_omp_instantiate_mapper): Add code argument to get proper + location for diagnostic. + (gfc_omp_instantiate_mappers): Adjust for above change. + * trans-openmp.cc (gfc_trans_omp_clauses): Use correct ref for update + operations. + (gfc_trans_omp_target_update): Instantiate mappers. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * trans-openmp.cc (gfc_omp_deep_map_kind_p): Handle + GOMP_MAP_{TO,FROM}_GRID, GOMP_MAP_GRID_{DIM,STRIDE}. + (gfc_trans_omp_arrayshape_type, gfc_omp_calculate_gcd, + gfc_desc_to_omp_noncontig_array, gfc_omp_contiguous_update_p): New + functions. + (gfc_trans_omp_clauses): Handle noncontiguous to/from clauses for OMP + "target update" directives. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gfortran.h (gfc_omp_namelist_udm): Add MAPPER_ID field to store the + mapper name to use for lookup during resolution. + * match.cc (gfc_free_omp_namelist): Handle OMP_LIST_TO and + OMP_LIST_FROM when freeing mapper references. + * module.cc (load_omp_udms, write_omp_udm): Handle MAPPER_ID field. + * openmp.cc (gfc_match_omp_clauses): Handle explicitly-specified + 'default' name. Don't do mapper lookup here, but record mapper name if + the user specifies one. + (resolve_omp_clauses): Do mapper lookup here instead. Report error for + missing named mapper. + +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + + * gfortran.h (gfc_omp_instantiate_mappers): Adjust declaration + to return an error status instead of void. + * openmp.cc (gfc_gomp_instantiate_mappers): Likewise for the + the definition. + * trans-openmp.cc (gfc_trans_omp_target): Check return status of + call to gfc_omp_instantiate_mappers and insert an error_mark_node + on failure instead of continuing normal processing of the construct. + (gfc_trans_omp_target_data): Likewise. + (gfc_trans_omp_target_enter_data): Likewise. + (gfc_trans_omp_target_exit_data): Likewise. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gfortran.h (gfc_omp_clauses): Add NS field. + * openmp.cc (verify_omp_clauses_symbol_dups, + omp_verify_map_motion_clauses): New functions, broken out of... + (resolve_omp_clauses): Here. Record namespace containing clauses. + Call above functions. + (resolve_omp_mapper_clauses): New function, using helper functions + broken out above. + (gfc_resolve_omp_directive): Add NS parameter to resolve_omp_clauses + calls. + (gfc_omp_instantiate_mappers): Call resolve_omp_mapper_clauses if we + instantiate any mappers. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gfortran.h (toc_directive): Move here. + (gfc_omp_instantiate_mappers, gfc_get_location): Add prototypes. + * openmp.cc (omp_split_map_op, omp_join_map_op, omp_map_decayed_kind, + omp_basic_map_kind_name, gfc_subst_replace, gfc_subst_prepend_ref, + gfc_subst_in_expr_1, gfc_subst_in_expr, gfc_subst_mapper_var): Move + here. + (gfc_omp_instantiate_mapper, gfc_omp_instantiate_mappers): Move here + and rename. + * trans-openmp.cc (toc_directive, omp_split_map_op, omp_join_map_op, + omp_map_decayed_kind, gfc_subst_replace, gfc_subst_prepend_ref, + gfc_subst_in_expr_1, gfc_subst_in_expr, gfc_subst_mapper_var, + gfc_trans_omp_instantiate_mapper, gfc_trans_omp_instantiate_mappers): + Remove from here. + (gfc_trans_omp_target, gfc_trans_omp_target_data, + gfc_trans_omp_target_enter_data, gfc_trans_omp_target_exit_data): + Rename calls to gfc_omp_instantiate_mappers. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * trans-openmp.cc (omp_split_map_op, omp_join_map_op, + omp_map_decayed_kind): New functions. + (gfc_trans_omp_instantiate_mapper): Add CD parameter. Implement map + kind decay. + (gfc_trans_omp_instantiate_mappers): Add CD parameter. Pass to above + function. + (gfc_trans_omp_target_data): Instantiate mappers for 'omp target data'. + (gfc_trans_omp_target_enter_data): Instantiate mappers for 'omp target + enter data'. + (gfc_trans_omp_target_exit_data): Instantiate mappers for 'omp target + exit data'. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * dump-parse-tree.cc (show_attr): Show omp_udm_artificial_var flag. + (show_omp_namelist): Support OMP_MAP_POINTER_ONLY and OMP_MAP_UNSET. + * f95-lang.cc (LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES, + LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE, + LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define language hooks. + * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_MAPPER. + (symbol_attribute): Add omp_udm_artificial_var attribute. + (gfc_omp_map_op): Add OMP_MAP_POINTER_ONLY and OMP_MAP_UNSET. + (gfc_omp_namelist): Add udm pointer to u2 union. + (gfc_omp_udm): New struct. + (gfc_omp_namelist_udm): New struct. + (gfc_symtree): Add omp_udm pointer. + (gfc_namespace): Add omp_udm_root symtree. Add omp_udm_ns flag. + (gfc_free_omp_namelist): Update prototype. + (gfc_free_omp_udm, gfc_omp_udm_find, gfc_find_omp_udm, + gfc_resolve_omp_udms): Add prototypes. + * match.cc (gfc_free_omp_namelist): Change FREE_NS and FREE_ALIGN + parameters to LIST number, to handle freeing user-defined mapper + namelists safely. + * match.h (gfc_match_omp_declare_mapper): Add prototype. + * module.cc (ab_attribute): Add AB_OMP_DECLARE_MAPPER_VAR. + (attr_bits): Add OMP_DECLARE_MAPPER_VAR. + (mio_symbol_attribute): Read/write AB_OMP_DECLARE_MAPPER_VAR attribute. + Set referenced attr on read. + (omp_map_clause_ops, omp_map_cardinality): New arrays. + (load_omp_udms, check_omp_declare_mappers): New functions. + (read_module): Load and check OMP declare mappers. + (write_omp_udm, write_omp_udms): New functions. + (write_module): Write OMP declare mappers. + * openmp.cc (gfc_free_omp_clauses, gfc_match_omp_variable_list, + gfc_match_omp_to_link, gfc_match_omp_depend_sink, + gfc_match_omp_clause_reduction): Update calls to gfc_free_omp_namelist. + (gfc_free_omp_udm, gfc_find_omp_udm, gfc_omp_udm_find, + gfc_match_omp_declare_mapper): New functions. + (gfc_match_omp_clauses): Add DEFAULT_MAP_OP parameter. Update calls to + gfc_free_omp_namelist. Add declare mapper support. + (resolve_omp_clauses): Add declare mapper support. Update calls to + gfc_free_omp_namelist. + (gfc_resolve_omp_udm, gfc_resolve_omp_udms): New functions. + * parse.cc (decode_omp_directive): Add declare mapper support. + (case_omp_decl): Add ST_OMP_DECLARE_MAPPER case. + (gfc_ascii_statement): Add ST_OMP_DECLARE_MAPPER case. + * resolve.cc (resolve_types): Call gfc_resolve_omp_udms. + * st.cc (gfc_free_statement): Update call to gfc_free_omp_namelist. + * symbol.cc (free_omp_udm_tree): New function. + (gfc_free_namespace): Call above. + * trans-decl.cc (omp_declare_mapper_ns): New global. + (gfc_finish_var_decl, gfc_generate_function_code): Support declare + mappers. + (gfc_trans_deferred_vars): Ignore artificial declare-mapper vars. + * trans-openmp.cc (tree-iterator.h): Include. + (toc_directive): New enum. + (gfc_trans_omp_array_section): Change OP and OPENMP parameters to + toc_directive CD ('clause directive'). + (gfc_omp_finish_mapper_clauses, gfc_omp_extract_mapper_directive, + gfc_omp_map_array_section): New functions. + (omp_clause_directive): New enum. + (gfc_trans_omp_clauses): Remove DECLARE_SIMD and OPENACC parameters. + Replace with toc_directive CD, defaulting to TOC_OPENMP. Add declare + mapper support and OMP_MAP_POINTER_ONLY support. + (gfc_trans_omp_construct, gfc_trans_oacc_executable_directive, + gfc_trans_oacc_combined_directive): Update calls to + gfc_trans_omp_clauses. + (gfc_subst_replace, gfc_subst_prepend_ref): New variables. + (gfc_subst_in_expr_1, gfc_subst_in_expr, gfc_subst_mapper_var, + gfc_trans_omp_instantiate_mapper, gfc_trans_omp_instantiate_mappers, + gfc_record_mapper_bindings_code_fn, gfc_record_mapper_bindings_expr_fn, + gfc_find_nested_mappers, gfc_record_mapper_bindings): New functions. + (gfc_typespec * hash traits): New template. + (omp_declare_mapper_ns): Extern declaration. + (gfc_trans_omp_target): Call gfc_trans_omp_instantiate_mappers and + gfc_record_mapper_bindings. Update calls to gfc_trans_omp_clauses. + (gfc_trans_omp_declare_simd, gfc_trans_omp_declare_variant): Update + calls to gfc_trans_omp_clauses. + (gfc_trans_omp_mapper_name, gfc_trans_omp_declare_mapper, + gfc_trans_omp_declare_mappers): New functions. + * trans-stmt.h (gfc_trans_omp_declare_mappers): Add prototype. + * trans.h (gfc_omp_finish_mapper_clauses, + gfc_omp_extract_mapper_directive, gfc_omp_map_array_section): Add + prototypes. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * parse.cc (tree.h, fold-const.h, tree-hash-traits.h): Add includes + (for additions to omp-general.h). + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * trans-openmp.cc (gfc_omp_finish_clause): Treat implicitly-mapped + assumed-size arrays as zero-sized for OpenACC, rather than an error. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + Sandra Loosemore <sandra@baylibre.com> + + * trans-openmp.cc (gfc_omp_finish_clause): Handle "declare create" for + scalar allocatable variables. + (gfc_trans_omp_clauses): Don't include allocatable vars in synthetic + "acc data" region created for "declare create" variables. Mark such + variables with the "oacc declare create" attribute instead. Don't + create ALWAYS_POINTER mapping for target-to-host updates of declare + create variables. + (gfc_trans_oacc_declare): Handle empty clause list. + +2025-05-15 Tobias Burnus <tobias@codesourcery.com> + + * openmp.cc (resolve_omp_clauses): Apply to OpenMP target update. + +2025-05-15 Tobias Burnus <tobias@codesourcery.com> + + * trans-array.cc (gfc_conv_array_initializer): Set PURPOSE + when building constructor for get_initialized_tmp_var. + * trans-openmp.cc (gfc_trans_omp_clauses): Handle uses_allocators. + * types.def (BT_FN_VOID_PTRMODE, BT_FN_PTRMODE_PTRMODE_INT_PTR): Add. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Kwok Cheung Yeung <kcy@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + Thomas Schwinge <thomas@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + * gfortran.h (enum gfc_omp_map_op): Add OMP_MAP_DECLARE_ALLOCATE, + OMP_MAP_DECLARE_DEALLOCATE. + (gfc_omp_clauses): Add update_allocatable. + * trans-array.cc (gfc_array_allocate): Call + gfc_trans_oacc_declare_allocate for decls that have oacc_declare_create + attribute set. + * trans-decl.cc (find_module_oacc_declare_clauses): Relax + oacc_declare_create to OMP_MAP_ALLOC, and oacc_declare_copyin to + OMP_MAP_TO, in order to match OpenACC 2.5 semantics. + * trans-openmp.cc (gfc_omp_check_optional_argument): Handle non-decl + case. + (gfc_trans_omp_clauses): Use GOMP_MAP_ALWAYS_POINTER (for update + directive) or GOMP_MAP_FIRSTPRIVATE_POINTER (otherwise) for + allocatable scalar decls. Handle OMP_MAP_DECLARE_{ALLOCATE,DEALLOCATE} + clauses. + (gfc_trans_oacc_executable_directive): Use GOMP_MAP_ALWAYS_POINTER + for allocatable scalar data clauses inside acc update directives. + (gfc_trans_oacc_declare_allocate): New function. + * trans-stmt.cc (gfc_trans_allocate): Call + gfc_trans_oacc_declare_allocate for decls with oacc_declare_create + attribute set. + (gfc_trans_deallocate): Likewise. + * trans.h (gfc_trans_oacc_declare_allocate): Declare. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + Nathan Sidwell <nathan@acm.org> + Kwok Cheung Yeung <kcy@codesourcery.com> + + * trans-openmp.cc (gfc_omp_clause_copy_ctor): Permit reductions. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + James Norris <jnorris@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + Thomas Schwinge <tschwinge@baylibre.com> + + * openmp.cc (gfc_match_omp_map_clause): Re-write handling of the + deviceptr clause. Add new common_blocks argument. Propagate it to + gfc_match_omp_variable_list. + (gfc_match_omp_clauses): Update calls to gfc_match_omp_map_clauses. + (resolve_positive_int_expr): Promote the warning to an error. + (check_array_not_assumed): Remove pointer check. + (resolve_oacc_nested_loops): Error on do concurrent loops. + * trans-openmp.cc (gfc_omp_finish_clause): Don't create pointer data + mappings for deviceptr clauses. + (gfc_trans_omp_clauses): Likewise. + +2025-05-15 Chung-Lin Tang <cltang@codesourcery.com> + Kwok Cheung Yeung <kcy@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + PR other/76739 + * f95-lang.cc (DEF_FUNCTION_TYPE_VAR_5): New symbol. + * types.def (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_VAR): New type.
\ No newline at end of file diff --git a/gcc/testsuite/ChangeLog.omp b/gcc/testsuite/ChangeLog.omp new file mode 100644 index 0000000..a2bb7f0 --- /dev/null +++ b/gcc/testsuite/ChangeLog.omp @@ -0,0 +1,435 @@ +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + Tobias Burnus <tburnus@baylibre.com> + + * c-c++-common/gomp/adjust-args-10.c: Ignore the new sorry since the + lack of proper diagnostic is already xfail'ed. + * g++.dg/gomp/adjust-args-1.C: Adjust output patterns. + * g++.dg/gomp/adjust-args-17.C: New. + * gcc.dg/gomp/adjust-args-3.c: New. + * gfortran.dg/gomp/adjust-args-14.f90: Don't expect this to fail now. + +2025-05-15 waffl3x <waffl3x@baylibre.com> + + PR c++/119659 + PR c++/118859 + PR c++/119601 + PR c++/119602 + PR c++/119775 + * c-c++-common/gomp/pr118579.c: Change error text. + * g++.dg/gomp/adjust-args-1.C: Fix error text, add dg-* directives. + * g++.dg/gomp/adjust-args-2.C: Add dg-* directives. + * g++.dg/gomp/append-args-1.C: Add dg-* directives. + * gcc.dg/gomp/adjust-args-1.c: Fix error text, add dg-* directives. + * gcc.dg/gomp/append-args-1.c: Fix error text, add dg-* directives. + * c-c++-common/gomp/adjust-args-7.c: New test. + * c-c++-common/gomp/adjust-args-8.c: New test. + * c-c++-common/gomp/adjust-args-9.c: New test. + * c-c++-common/gomp/adjust-args-10.c: New test. + * c-c++-common/gomp/adjust-args-11.c: New test. + * c-c++-common/gomp/adjust-args-12.c: New test. + * c-c++-common/gomp/adjust-args-13.c: New test. + * c-c++-common/gomp/adjust-args-14.c: New test. + * c-c++-common/gomp/adjust-args-15.c: New test. + * g++.dg/gomp/adjust-args-5.C: New test. + * g++.dg/gomp/adjust-args-6.C: New test. + * g++.dg/gomp/adjust-args-7.C: New test. + * g++.dg/gomp/adjust-args-8.C: New test. + * g++.dg/gomp/adjust-args-9.C: New test. + * g++.dg/gomp/adjust-args-10.C: New test. + * g++.dg/gomp/adjust-args-11.C: New test. + * g++.dg/gomp/adjust-args-12.C: New test. + * g++.dg/gomp/adjust-args-13.C: New test. + * g++.dg/gomp/adjust-args-14.C: New test. + * g++.dg/gomp/adjust-args-15.C: New test. + * g++.dg/gomp/adjust-args-16.C: New test. + * g++.dg/gomp/append-args-9.C: New test. + * g++.dg/gomp/append-args-10.C: New test. + * g++.dg/gomp/append-args-11.C: New test. + * g++.dg/gomp/append-args-omp-interop-t.h: New header. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * c-c++-common/gomp/target-map-iterators-3.c: Update expected Gimple + output. + * c-c++-common/gomp/target-map-iterators-5.c: New. + * c-c++-common/gomp/target-update-iterators-3.c: Update expected + Gimple output. + * gfortran.dg/gomp/target-map-iterators-3.f90: Likewise. + * gfortran.dg/gomp/target-map-iterators-5.f90: New. + * gfortran.dg/gomp/target-update-iterators-3.f90: Update expected + Gimple output. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * gfortran.dg/gomp/target-update-iterators-1.f90: New. + * gfortran.dg/gomp/target-update-iterators-2.f90: New. + * gfortran.dg/gomp/target-update-iterators-3.f90: New. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * gfortran.dg/gomp/target-map-iterators-1.f90: New. + * gfortran.dg/gomp/target-map-iterators-2.f90: New. + * gfortran.dg/gomp/target-map-iterators-3.f90: New. + * gfortran.dg/gomp/target-map-iterators-4.f90: New. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * gfortran.dg/gomp/target-enter-exit-data.f90: Revert expected tree + dumps. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * c-c++-common/gomp/target-update-iterators-1.c: New. + * c-c++-common/gomp/target-update-iterators-2.c: New. + * c-c++-common/gomp/target-update-iterators-3.c: New. + +2025-05-15 Kwok Cheung Yeung <kcyeung@baylibre.com> + Andrew Stubbs <ams@baylibre.com> + + * c-c++-common/gomp/map-6.c (foo): Amend expected error message. + * c-c++-common/gomp/target-map-iterators-1.c: New. + * c-c++-common/gomp/target-map-iterators-2.c: New. + * c-c++-common/gomp/target-map-iterators-3.c: New. + * c-c++-common/gomp/target-map-iterators-4.c: New. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * c-c++-common/cpp/openacc-define-3.c: Adjust test. + * gfortran.dg/openacc-define-3.f90: Adjust test. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + + * c-c++-common/goacc/readonly-2.c: Adjust test. + * c-c++-common/goacc/reduction-9.c: Adjust test. + * c-c++-common/goacc/reduction-11.c: New test. + * c-c++-common/goacc/reduction-12.c: New test. + * c-c++-common/goacc/reduction-13.c: New test. + * c-c++-common/goacc/reduction-14.c: New test. + * c-c++-common/goacc/reduction-15.c: New test. + * c-c++-common/goacc/reduction-16.c: New test. + * g++.dg/goacc/reductions-1.C: Adjust test. + * gfortran.dg/goacc/array-reduction.f90: Adjust test. + * gfortran.dg/goacc/enter-exit-data-2.f90: Adjust test. + * gfortran.dg/goacc/finalize-1.f: Adjust test. + * gfortran.dg/goacc/kernels-decompose-1.f95: Adjust test. + * gfortran.dg/goacc/pr70828.f90: Adjust test. + * gfortran.dg/goacc/reduction.f95: Adjust test. + * gfortran.dg/gomp/target-enter-exit-data.f90: Adjust test. + +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + + * c-c++-common/gomp/delim-declare-variant-1.c: New. + * c-c++-common/gomp/delim-declare-variant-2.c: New. + * c-c++-common/gomp/delim-declare-variant-3.c: New. + * c-c++-common/gomp/delim-declare-variant-4.c: New. + * c-c++-common/gomp/delim-declare-variant-5.c: New. + * c-c++-common/gomp/delim-declare-variant-6.c: New. + * c-c++-common/gomp/delim-declare-variant-7.c: New. + +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + Julian Brown <julian@codesourcery.com> + waffl3x <waffl3x@baylibre.com> + + * g++.dg/gomp/delim-declare-variant-1.C: New. + * g++.dg/gomp/delim-declare-variant-2.C: New. + * g++.dg/gomp/delim-declare-variant-3.C: New. + * g++.dg/gomp/delim-declare-variant-4.C: New. + * g++.dg/gomp/delim-declare-variant-5.C: New. + * g++.dg/gomp/delim-declare-variant-6.C: New. + * g++.dg/gomp/delim-declare-variant-7.C: New. + * g++.dg/gomp/delim-declare-variant-40.C: New. + * g++.dg/gomp/delim-declare-variant-41.C: New. + * g++.dg/gomp/delim-declare-variant-50.C: New. + * g++.dg/gomp/delim-declare-variant-51.C: New. + * g++.dg/gomp/delim-declare-variant-52.C: New. + * g++.dg/gomp/delim-declare-variant-70.C: New. + * g++.dg/gomp/delim-declare-variant-71.C: New. + +2025-05-15 Chung-Lin Tang <cltang@baylibre.com> + + * c-c++-common/goacc/readonly-1.c: Adjust testcase. + * c-c++-common/goacc/readonly-2.c: New testcase. + * gfortran.dg/goacc/readonly-1.f90: Adjust testcase. + * gfortran.dg/pr67170.f90: Likewise. + +2025-05-15 Sandra Loosemore <sloosemore@baylibre.com> + + * c-c++-common/gomp/uses_allocators-1.c: Adjust for this testcase + no longer failing with "sorry" in C++. + * g++.dg/gomp/allocate-15.C: Disable scan-assembler tests since + compilation fails with "sorry" before getting that far. + * g++.dg/gomp/allocate-16.C: Likewise. + +2025-05-15 waffl3x <waffl3x@baylibre.com> + Tobias Burnus <tobias@codesourcery.com> + + * c-c++-common/gomp/allocate-allocator-handle.h: New header. + * c-c++-common/gomp/allocate-5.c: Remove dg-messages for 'sorry', + add dg-error for c++. + * c-c++-common/gomp/allocate-9.c: Include header, remove dg-messages + for 'sorry', add dg-notes for c++, minor refactoring. + * c-c++-common/gomp/allocate-10.c: Enable for c++. + * c-c++-common/gomp/allocate-11.c: Enable for c++, disable warning. + * c-c++-common/gomp/allocate-12.c: Enable for c++, add cases. + * c-c++-common/gomp/allocate-14.c: Enable for c++. + * c-c++-common/gomp/allocate-15.c: Enable for c++. + * c-c++-common/gomp/allocate-16.c: Enable for c++. + * c-c++-common/gomp/allocate-17.c: Remove dg-message for 'sorry'. + * c-c++-common/gomp/allocate-18.c: Include header, remove dg-message + for 'sorry'. + * c-c++-common/gomp/allocate-19.c: Remove xfails for c++, remove + dg-messages for 'sorry'. + * c-c++-common/gomp/allocate-20.c: New test. + * c-c++-common/gomp/directive-1.c: Remove dg-message for 'sorry'. + * g++.dg/gomp/allocate-allocator-handle.h: New header. + * g++.dg/gomp/allocate-5.C: New test. + * g++.dg/gomp/allocate-6.C: New test. + * g++.dg/gomp/allocate-7.C: New test. + * g++.dg/gomp/allocate-8.C: New test. + * g++.dg/gomp/allocate-9.C: New test. + * g++.dg/gomp/allocate-10.C: New test. + * g++.dg/gomp/allocate-11.C: New test. + * g++.dg/gomp/allocate-12.C: New test. + * g++.dg/gomp/allocate-13.C: New test. + * g++.dg/gomp/allocate-14.C: New test. + * g++.dg/gomp/allocate-15.C: New test. + * g++.dg/gomp/allocate-16.C: New test. + * g++.dg/gomp/allocate-17.C: New test. + * g++.dg/gomp/allocate-18.C: New test. + * g++.dg/gomp/allocate-19.C: New test. + * g++.dg/gomp/allocate-20.C: New test. + * g++.dg/gomp/allocate-21.C: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Andrew Stubbs <ams@baylibre.com> + Kwok Cheung Yeung <kcyeung@baylibre.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * c-c++-common/gomp/declare-mapper-17.c: New test. + * c-c++-common/gomp/declare-mapper-19.c: New test. + * gfortran.dg/gomp/declare-mapper-24.f90: New test. + * gfortran.dg/gomp/declare-mapper-26.f90: Uncomment 'target update' + part of test. + * gfortran.dg/gomp/declare-mapper-27.f90: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * gfortran.dg/gomp/noncontig-updates-1.f90: New test. + * gfortran.dg/gomp/noncontig-updates-2.f90: New test. + * gfortran.dg/gomp/noncontig-updates-3.f90: New test. + * gfortran.dg/gomp/noncontig-updates-4.f90: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gcc.dg/gomp/bad-array-shaping-c-1.c: New test. + * gcc.dg/gomp/bad-array-shaping-c-2.c: New test. + * gcc.dg/gomp/bad-array-shaping-c-3.c: New test. + * gcc.dg/gomp/bad-array-shaping-c-4.c: New test. + * gcc.dg/gomp/bad-array-shaping-c-5.c: New test. + * gcc.dg/gomp/bad-array-shaping-c-6.c: New test. + * gcc.dg/gomp/bad-array-shaping-c-7.c: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * g++.dg/gomp/array-shaping-1.C: New test. + * g++.dg/gomp/array-shaping-2.C: New test. + * g++.dg/gomp/bad-array-shaping-1.C: New test. + * g++.dg/gomp/bad-array-shaping-2.C: New test. + * g++.dg/gomp/bad-array-shaping-3.C: New test. + * g++.dg/gomp/bad-array-shaping-4.C: New test. + * g++.dg/gomp/bad-array-shaping-5.C: New test. + * g++.dg/gomp/bad-array-shaping-6.C: New test. + * g++.dg/gomp/bad-array-shaping-7.C: New test. + * g++.dg/gomp/bad-array-shaping-8.C: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gfortran.dg/gomp/declare-mapper-31.f90: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gfortran.dg/gomp/declare-mapper-26.f90: New test. + * gfortran.dg/gomp/declare-mapper-29.f90: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-c++-common/gomp/declare-mapper-15.c: New test. + * c-c++-common/gomp/declare-mapper-16.c: New test. + * g++.dg/gomp/declare-mapper-1.C: Adjust expected scan output. + * gfortran.dg/gomp/declare-mapper-22.f90: New test. + * gfortran.dg/gomp/declare-mapper-23.f90: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gfortran.dg/gomp/declare-mapper-1.f90: New test. + * gfortran.dg/gomp/declare-mapper-5.f90: New test. + * gfortran.dg/gomp/declare-mapper-14.f90: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-c++-common/gomp/declare-mapper-3.c: Enable for C. + * c-c++-common/gomp/declare-mapper-4.c: Likewise. + * c-c++-common/gomp/declare-mapper-5.c: Likewise. + * c-c++-common/gomp/declare-mapper-6.c: Likewise. + * c-c++-common/gomp/declare-mapper-7.c: Likewise. + * c-c++-common/gomp/declare-mapper-8.c: Likewise. + * c-c++-common/gomp/declare-mapper-9.c: Likewise. + * c-c++-common/gomp/declare-mapper-12.c: Enable for C. + * gcc.dg/gomp/declare-mapper-10.c: New test. + * gcc.dg/gomp/declare-mapper-11.c: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-c++-common/gomp/map-6.c: Update error scan output. + * c-c++-common/gomp/declare-mapper-3.c: New test (only enabled for C++ + for now). + * c-c++-common/gomp/declare-mapper-4.c: Likewise. + * c-c++-common/gomp/declare-mapper-5.c: Likewise. + * c-c++-common/gomp/declare-mapper-6.c: Likewise. + * c-c++-common/gomp/declare-mapper-7.c: Likewise. + * c-c++-common/gomp/declare-mapper-8.c: Likewise. + * c-c++-common/gomp/declare-mapper-9.c: Likewise. + * c-c++-common/gomp/declare-mapper-12.c: Likewise. + * g++.dg/gomp/declare-mapper-1.C: New test. + * g++.dg/gomp/declare-mapper-2.C: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Thomas Schwinge <tschwinge@baylibre.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * c-c++-common/goacc/combined-reduction.c: Adjust scan output. + * c-c++-common/goacc/implied-copy-1.c: Likewise. + * c-c++-common/goacc/reduction-1.c: Adjust patterns. + * c-c++-common/goacc/reduction-2.c: Likewise. + * c-c++-common/goacc/reduction-3.c: Likewise. + * c-c++-common/goacc/reduction-4.c: Likewise. + * c-c++-common/goacc/reduction-10.c: Likewise. + * gfortran.dg/goacc/common-block-3.f90: Likewise. + * gfortran.dg/goacc/implied-copy-1.f90: Likewise. + * gfortran.dg/goacc/loop-tree-1.f90: Likewise. + * gfortran.dg/goacc/private-explicit-kernels-1.f95: Likewise. + * gfortran.dg/goacc/private-predetermined-kernels-1.f95: Likewise. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * gfortran.dg/goacc/assumed-size.f90: Don't expect error. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + Sandra Loosemore <sandra@baylibre.com> + + * c-c++-common/goacc/readonly-1.c: Adjust patterns. + +2025-05-15 Julian Brown <julian@codesourcery.com> + + * c-c++-common/goacc/acc-data-chain.c: New test. + * gfortran.dg/goacc/pr70828.f90: Likewise. + * gfortran.dg/goacc/assumed-size.f90: Likewise. + +2025-05-15 Tobias Burnus <tobias@codesourcery.com> + + * gfortran.dg/gomp/allocate-1.f90: Add uses_allocators. + * gfortran.dg/gomp/scope-6.f90: Update dg-scan-tree-dump. + * c-c++-common/gomp/uses_allocators-1.c: New test. + * c-c++-common/gomp/uses_allocators-2.c: New test. + * gfortran.dg/gomp/uses_allocators-1.f90: New test. + +2025-05-15 Tobias Burnus <tobias@codesourcery.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * c-c++-common/goacc/kernels-decompose-pr103836-1-2.c: Adjust xfails. + * c-c++-common/goacc/kernels-decompose-pr103836-1-3.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr103836-1-4.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr104061-1-2.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr104061-1-3.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr104061-1-4.c: Likewise. + +2025-05-15 Chung-Lin Tang <cltang@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + * c-c++-common/gomp/clauses-2.c: Adjust testcase. + * c-c++-common/gomp/map-6.c: Adjust testcase. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Kwok Cheung Yeung <kcy@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + Thomas Schwinge <thomas@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + * gfortran.dg/goacc/declare-allocatable-1.f90: New test. + * gfortran.dg/goacc/declare-3.f95: Adjust expected dump output. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + Sandra Loosemore <sandra@baylibre.com> + + * gfortran.dg/goacc/privatization-1-compute-loop.f90: Add xfails. + * gfortran.dg/goacc/privatization-1-compute.f90: Likewise. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Sandra Loosemore <sloosemore@baylibre.com> + + * gfortran.dg/goacc/modules.f95: Remove xfail on bogus warnings. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + Chung-Lin Tang <cltang@codesourcery.com> + + * c-c++-common/goacc/reduction-10.c: New test. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + + * c-c++-common/goacc/loop-auto-1.c: Adjust test case to conform to + the new behavior of the auto clause in OpenACC 2.5. + * c-c++-common/goacc/loop-auto-2.c: Likewise. + * gcc.dg/goacc/loop-processing-1.c: Likewise. + * c-c++-common/goacc/loop-auto-3.c: New test. + * gfortran.dg/goacc/loop-auto-1.f90: New test. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + James Norris <jnorris@codesourcery.com> + Tom de Vries <tom@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Tobias Burnus <tburnus@baylibre.com> + + * g++.dg/goacc/loop-1.c: New test. + * g++.dg/goacc/loop-2.c: New test. + * g++.dg/goacc/loop-3.c: New test. + +2025-05-15 Julian Brown <julian@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + Nathan Sidwell <nathan@acm.org> + + * c-c++-common/goacc/reduction-9.c: New. + * g++.dg/goacc/reductions-1.C: New. + * gcc.dg/goacc/loop-processing-1.c: Update. + +2025-05-15 Cesar Philippidis <cesar@codesourcery.com> + James Norris <jnorris@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Tobias Burnus <tobias@codesourcery.com> + Thomas Schwinge <tschwinge@baylibre.com> + + * c-c++-common/goacc/deviceptr-4.c: Update. + * gfortran.dg/goacc/loop-2-kernels-tile.f95: Update. + * gfortran.dg/goacc/loop-2-parallel-tile.f95: Update. + * gfortran.dg/goacc/loop-2-serial-tile.f95: Update. + * gfortran.dg/goacc/sie.f95: Update. + * gfortran.dg/goacc/tile-1.f90: Update. + * gfortran.dg/gomp/num-teams-2.f90: Update. + * gfortran.dg/gomp/pr67500.f90: Update. + * gfortran.dg/gomp/pr77516.f90: Update. + +2025-05-15 Chung-Lin Tang <cltang@codesourcery.com> + Kwok Cheung Yeung <kcy@codesourcery.com> + Paul-Antoine Arras <parras@baylibre.com> + + PR other/76739 + * c-c++-common/goacc/data-clause-1.c (foo): Remove expected message. + * c-c++-common/goacc/noncontig_array-1.c: New test. + * g++.dg/goacc/data-clause-1.C (foo): Remove expected message.
\ No newline at end of file |