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 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
