[all-commits] [llvm/llvm-project] a26f60: [flang][OpenMP] Lower iterator modifiers in map an...

Chi-Chun, Chen via All-commits all-commits at lists.llvm.org
Wed Sep 16 11:01:59 PDT 2026


  Branch: refs/heads/users/cchen/flang_openmp_motion_map_iterator
  Home:   https://github.com/llvm/llvm-project
  Commit: a26f60f697df9dc7ef4a992f06e655104ad036b9
      https://github.com/llvm/llvm-project/commit/a26f60f697df9dc7ef4a992f06e655104ad036b9
  Author: Chi-Chun, Chen <chichun.chen at hpe.com>
  Date:   2026-09-16 (Wed, 16 Sep 2026)

  Changed paths:
    M flang/include/flang/Utils/OpenMP.h
    M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
    M flang/lib/Lower/OpenMP/ClauseProcessor.h
    M flang/lib/Lower/OpenMP/Clauses.cpp
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Lower/OpenMP/Utils.cpp
    M flang/lib/Lower/OpenMP/Utils.h
    M flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Utils/OpenMP.cpp
    A flang/test/Lower/OpenMP/Todo/declare-mapper-iterator-unsupported.f90
    R flang/test/Lower/OpenMP/Todo/declare-mapper-iterator.f90
    R flang/test/Lower/OpenMP/Todo/from-iterator-modifier.f90
    A flang/test/Lower/OpenMP/Todo/map-iterator-ref-attach.f90
    A flang/test/Lower/OpenMP/Todo/map-motion-iterator-unsupported-locators.f90
    A flang/test/Lower/OpenMP/Todo/target-map-iterator.f90
    R flang/test/Lower/OpenMP/Todo/to-iterator-modifier.f90
    A flang/test/Lower/OpenMP/declare-mapper-iterator.f90
    M flang/test/Lower/OpenMP/depend-iterator.f90
    A flang/test/Lower/OpenMP/iterator-ranges.f90
    A flang/test/Lower/OpenMP/motion-iterator.f90
    M flang/test/Lower/OpenMP/task-affinity.f90
    M flang/test/Semantics/OpenMP/target-enter-data-temp-descriptor-omp61.f90
    M flang/test/Semantics/OpenMP/target-enter-data-temp-descriptor.f90
    M flang/test/Transforms/omp-map-info-finalization.fir
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Dialect/OpenMP/invalid.mlir
    A mlir/test/Dialect/OpenMP/iterator-ranges.mlir
    M mlir/test/Target/LLVMIR/openmp-iterator.mlir
    M mlir/test/Target/LLVMIR/openmp-taskwait-depend.mlir

  Log Message:
  -----------
  [flang][OpenMP] Lower iterator modifiers in map and motion clauses

Add iterator lowering for `target data`, `target enter/exit data`,
`target update`, and map clauses inside `declare mapper`.

For example:

```fortran
!$omp target update to(iterator(i=1:n): a(i), b)
```

Conceptually, this becomes:

```text
entries = omp.iterator(i = 1 through n) {
  yield map_info(base = a, bounds = element i)
}
target_update(iterated_maps = entries, ordinary_maps = [b])
```

Keeping the array base and expressing selections through bounds lets the
same approach handle array elements, sections, and descriptor-backed arrays.

Each locator uses only the iterator dimensions it references:

```text
iterator(i=1:n, j=1:m): a(i), b(j), c(i,j)
                        |     |      |
                        i     j    i x j
```

Supports explicit and default mappers, including mapper declarations
imported from other modules.

This PR stacked on top of #197047 and #197752.

This patch is part of feature work for #188061.

Assisted with codex.



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