[clang] [CodeGen] Fix volatile inst (PR #171862)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 11 08:59:20 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-codegen
Author: None (GkvJwa)
<details>
<summary>Changes</summary>
Fix #<!-- -->126516
Instead, use AtomicOrdering::Monotonic's atomic loading to let the backend automatically select the appropriate instruction.
---
Full diff: https://github.com/llvm/llvm-project/pull/171862.diff
1 Files Affected:
- (modified) clang/lib/CodeGen/CGBuiltin.cpp (+2)
``````````diff
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index 01be374422d93..fa13240e74e87 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -566,6 +566,7 @@ static Value *EmitISOVolatileLoad(CodeGenFunction &CGF, const CallExpr *E) {
llvm::Type *ITy =
llvm::IntegerType::get(CGF.getLLVMContext(), LoadSize.getQuantity() * 8);
llvm::LoadInst *Load = CGF.Builder.CreateAlignedLoad(ITy, Ptr, LoadSize);
+ Load->setAtomic(llvm::AtomicOrdering::Monotonic);
Load->setVolatile(true);
return Load;
}
@@ -578,6 +579,7 @@ static Value *EmitISOVolatileStore(CodeGenFunction &CGF, const CallExpr *E) {
CharUnits StoreSize = CGF.getContext().getTypeSizeInChars(ElTy);
llvm::StoreInst *Store =
CGF.Builder.CreateAlignedStore(Value, Ptr, StoreSize);
+ Store->setAtomic(llvm::AtomicOrdering::Monotonic);
Store->setVolatile(true);
return Store;
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/171862
More information about the cfe-commits
mailing list