[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