[all-commits] [llvm/llvm-project] aec87a: [llvm][mlir][flang][OpenMP] Emit __atomic_load and...

NimishMishra via All-commits all-commits at lists.llvm.org
Wed Oct 2 23:32:57 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: aec87a2143c01039578ceaed752ca2cb1dc83ff7
      https://github.com/llvm/llvm-project/commit/aec87a2143c01039578ceaed752ca2cb1dc83ff7
  Author: NimishMishra <42909663+NimishMishra at users.noreply.github.com>
  Date:   2024-10-02 (Wed, 02 Oct 2024)

  Changed paths:
    M flang/lib/Lower/DirectivesCommon.h
    A flang/test/Integration/OpenMP/atomic-capture-complex.f90
    A flang/test/Integration/OpenMP/atomic-update-complex.f90
    R flang/test/Lower/OpenMP/Todo/atomic-complex.f90
    A llvm/include/llvm/Frontend/Atomic/Atomic.h
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    A llvm/lib/Frontend/Atomic/Atomic.cpp
    A llvm/lib/Frontend/Atomic/CMakeLists.txt
    M llvm/lib/Frontend/CMakeLists.txt
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/openmp-llvm.mlir

  Log Message:
  -----------
  [llvm][mlir][flang][OpenMP] Emit __atomic_load and __atomic_compare_exchange libcalls for complex types in atomic update (#92364)

This patch adds functionality to emit relevant libcalls in case
atomicrmw instruction can not be emitted (for instance, in case of
complex types). The IRBuilder is modified to directly emit __atomic_load
and __atomic_compare_exchange libcalls. The added functions follow a
similar codegen path as Clang, so that LLVM Flang generates almost
similar IR as Clang.

Fixes https://github.com/llvm/llvm-project/issues/83760 and
https://github.com/llvm/llvm-project/issues/75138

Co-authored-by: Michael Kruse <llvm-project at meinersbur.de>



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