[all-commits] [llvm/llvm-project] 252502: [flang][OpenMP] Process `omp.atomic.update` while ...

Kareem Ergawy via All-commits all-commits at lists.llvm.org
Thu Mar 20 06:51:38 PDT 2025


  Branch: refs/heads/users/ergawy/translate_atomic_update
  Home:   https://github.com/llvm/llvm-project
  Commit: 252502666e8b94c25d75d64fd3743129fd6c9246
      https://github.com/llvm/llvm-project/commit/252502666e8b94c25d75d64fd3743129fd6c9246
  Author: ergawy <kareem.ergawy at amd.com>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/openmp-target-nesting-in-host-ops.mlir

  Log Message:
  -----------
  [flang][OpenMP] Process `omp.atomic.update` while translating scopes for target device

Fixes a bug introduced by https://github.com/llvm/llvm-project/pull/130078.

For non-BlockArgOpenMPOpInterface ops, we also want to map their entry block arguments to their operands, if any. For the current support in the OpenMP dialect, the table below lists all ops that have arguments (SSA operands and/or attributes) and not target-related. Of all these ops, we need to only process `omp.atomic.update` since it is the only op that has SSA operands & an attached region. Therefore, the region's entry block arguments must be mapped to the op's operands in case they are referenced inside the region.

=============================================================================
| op                | operands? | region(s)? | parent is func? | processed? |
=============================================================================
| atomic.read       | yes       | no         | yes             | no         |
| atomic.write      | yes       | no         | yes             | no         |
| atomic.update     | yes       | yes        | yes             | yes        |
| critical          | no        | no         | yes             | no         |
| declare_mapper    | no        | yes        | no              | no         |
| declare_reduction | no        | yes        | no              | no         |
| flush             | yes       | no         | yes             | no         |
| private           | no        | yes        | yes             | no         |
| threadprivate     | yes       | no         | yes             | no         |
| yield             | yes       | no         | yes             | no         |
=============================================================================


  Commit: 533a643b245f465299c56d4817d8a88ec0d08d5c
      https://github.com/llvm/llvm-project/commit/533a643b245f465299c56d4817d8a88ec0d08d5c
  Author: ergawy <kareem.ergawy at amd.com>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  summarize comment


Compare: https://github.com/llvm/llvm-project/compare/db9c57c743e3...533a643b245f

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