aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSandra Loosemore <sloosemore@baylibre.com>2025-05-15 20:26:30 +0000
committerSandra Loosemore <sloosemore@baylibre.com>2025-05-15 20:26:30 +0000
commitdcdeed6b536390f7de819ad8b25b8acf6700a2a5 (patch)
tree49639f46bff824996e9473383e0449e86dc5d930 /gcc
parent3fd9d22158f33146d4b0291cdc58c74e3c9c8011 (diff)
downloadgcc-dcdeed6b536390f7de819ad8b25b8acf6700a2a5.zip
gcc-dcdeed6b536390f7de819ad8b25b8acf6700a2a5.tar.gz
gcc-dcdeed6b536390f7de819ad8b25b8acf6700a2a5.tar.bz2
ChangeLog.omp bump
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog.omp845
-rw-r--r--gcc/DATESTAMP.omp1
-rw-r--r--gcc/c-family/ChangeLog.omp90
-rw-r--r--gcc/c/ChangeLog.omp237
-rw-r--r--gcc/cp/ChangeLog.omp332
-rw-r--r--gcc/fortran/ChangeLog.omp448
-rw-r--r--gcc/testsuite/ChangeLog.omp435
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