[Openmp-commits] [openmp] Add openmp support to System z (PR #66081)

Ulrich Weigand via Openmp-commits openmp-commits at lists.llvm.org
Wed Oct 25 05:57:55 PDT 2023


uweigand wrote:

> ```
> diff --git a/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp b/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
> index 7a3a2a7e9013..6abb203f0c36 100644
> --- a/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
> +++ b/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
> @@ -226,6 +226,8 @@ void SystemZPassConfig::addIRPasses() {
>      addPass(createLoopDataPrefetchPass());
>    }
>  
> +  addPass(createAtomicExpandPass());
> +
>    TargetPassConfig::addIRPasses();
>  }
>  ```

This should be done as a stand-alone PR, I think there'll need to be some additional discussion.  In particular, we should make sure that the atomic expand pass doesn't introduce any other changes we don't want to see - we'll have to review the default settings of the various `shouldExpandAtomic...` and `shouldCastAtomic...` flags.  For example, I don't think we need to cast atomic loads/stores of floating-point types to integer types - this can still happen directly via FPRs.

See also this (still pending) patch about handling 128-bit atomics: https://reviews.llvm.org/D146425


https://github.com/llvm/llvm-project/pull/66081


More information about the Openmp-commits mailing list