[llvm] [LLVM] Add a C API for creating instructions with custom syncscopes. (PR #104775)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 20 01:17:21 PDT 2024


================
@@ -754,7 +755,13 @@ struct FunCloner {
         LLVMSetAlignment(Dst, LLVMGetAlignment(Src));
         LLVMSetOrdering(Dst, LLVMGetOrdering(Src));
         LLVMSetVolatile(Dst, LLVMGetVolatile(Src));
-        LLVMSetAtomicSingleThread(Dst, LLVMIsAtomicSingleThread(Src));
+        if (LLVMIsAtomic(Src)) {
+          LLVMBool IsAtomicSingleThread = LLVMIsAtomicSingleThread(Src);
+          if (IsAtomicSingleThread)
+            LLVMSetAtomicSingleThread(Dst, IsAtomicSingleThread);
+          else
+            LLVMSetAtomicSyncScopeID(Dst, LLVMGetAtomicSyncScopeID(Src));
----------------
nikic wrote:

Just this line should be sufficient? The single thread case is a subset.

If the intention here is to retain some test coverage for LLVMIsAtomicSingleThread, I don't think echo.cpp is the place for that. You could do that in a unit test.

(Also applies to the changes below.)

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


More information about the llvm-commits mailing list