[all-commits] [llvm/llvm-project] 33e252: [MLIR][OpenMP][OMPIRBuilder] Improve shared memory...

Sergio Afonso via All-commits all-commits at lists.llvm.org
Fri Oct 3 08:30:49 PDT 2025


  Branch: refs/heads/users/skatrak/flang-generic-11-shared-mem-checks
  Home:   https://github.com/llvm/llvm-project
  Commit: 33e2524e060ecbdece8f91a3186d46088aa24140
      https://github.com/llvm/llvm-project/commit/33e2524e060ecbdece8f91a3186d46088aa24140
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2025-10-03 (Fri, 03 Oct 2025)

  Changed paths:
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/omptarget-parallel-llvm.mlir
    M mlir/test/Target/LLVMIR/omptarget-parallel-wsloop.mlir
    A offload/test/offloading/fortran/target-generic-outlined-loops.f90

  Log Message:
  -----------
  [MLIR][OpenMP][OMPIRBuilder] Improve shared memory checks

This patch refines checks to decide whether to use device shared memory or
regular stack allocations. In particular, it adds support for parallel regions
residing on standalone target device functions.

The changes are:
- Shared memory is introduced for `omp.target` implicit allocations, such as
those related to privatization and mapping, as long as they are shared across
threads in a nested parallel region.
- Standalone target device functions are interpreted as being part of a Generic
kernel, since the fact that they are present in the module after filtering
means they must be reachable from a target region.
- Prevent allocations whose only shared uses inside of an `omp.parallel` region
are as part of a `private` clause from being moved to device shared memory.



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