[all-commits] [llvm/llvm-project] bfa228: [Flang][OpenMP][MLIR] Initial declare target to fo...
agozillon via All-commits
all-commits at lists.llvm.org
Fri Aug 22 08:34:27 PDT 2025
Branch: refs/heads/users/agozillo/declare-target-to-3
Home: https://github.com/llvm/llvm-project
Commit: bfa228dce62ff75323aef4d6e4579d0b4d662241
https://github.com/llvm/llvm-project/commit/bfa228dce62ff75323aef4d6e4579d0b4d662241
Author: agozillon <Andrew.Gozillon at amd.com>
Date: 2025-08-22 (Fri, 22 Aug 2025)
Changed paths:
M flang/include/flang/Optimizer/Builder/FIRBuilder.h
M flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp
M flang/test/Lower/OpenMP/DelayedPrivatization/target-private-allocatable.f90
M flang/test/Lower/OpenMP/DelayedPrivatization/target-teams-private-implicit-scalar-map.f90
M flang/test/Lower/OpenMP/allocatable-array-bounds.f90
M flang/test/Lower/OpenMP/allocatable-map.f90
M flang/test/Lower/OpenMP/array-bounds.f90
M flang/test/Lower/OpenMP/declare-mapper.f90
M flang/test/Lower/OpenMP/declare-target-link-tarop-cap.f90
M flang/test/Lower/OpenMP/defaultmap.f90
M flang/test/Lower/OpenMP/derived-type-allocatable-map.f90
M flang/test/Lower/OpenMP/optional-argument-map-3.f90
M flang/test/Lower/OpenMP/target-enter-data-default-openmp52.f90
M flang/test/Lower/OpenMP/target.f90
M flang/test/Lower/volatile-openmp.f90
M flang/test/Transforms/omp-map-info-finalization.fir
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M mlir/include/mlir/Dialect/OpenMP/OpenMPEnums.td
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A mlir/test/Target/LLVMIR/omptarget-declare-target-to-device.mlir
A offload/test/offloading/fortran/declare-target-to-allocatable-vars-in-target-with-update.f90
A offload/test/offloading/fortran/declare-target-to-vars-target-region-and-update.f90
A offload/test/offloading/fortran/declare-target-to-zero-index-allocatable-target-map.f90
Log Message:
-----------
[Flang][OpenMP][MLIR] Initial declare target to for variables implementation
While the infrastructure for declare target to/enter and link for variables exists in the MLIR dialect and at the Flang level, the current lowering from MLIR -> LLVM IR isn't in place, it's only in place for variables that have the link clause applied.
This PR aims to extend that lowering to an initial implementation that incorporates declare target to as well, which primarily requires changes in the OpenMPToLLVMIRTranslation phase. However, a minor addition to the OpenMP dialect was required to extend the declare target enumerator to include a default None field as well.
This also requires a minor change to the Flang lowering's MapInfoFinlization.cpp pass to alter the map type for descriptors to deal with cases where a variable is marked declare to. Currently, when a descriptor variable is mapped declare target to the descriptor component can become attatched, and cannot be updated, this results in issues when an unusual allocation range is specified (effectively an off-by X error). The current solution is to map the descriptor always, as we always require an up-to-date version of this data. However, this also requires an interlinked PR that adds a more intricate type of mapping of structures/record types that clang currently implements, to circumvent the overwriting of the pointer in the descriptor.
3/3 required PRs to enable declare target to mapping, this PR should pass all tests and provide an all green CI.
Co-authored-by: Raghu Maddhipatla raghu.maddhipatla at amd.com
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list