[clang] 6cacbdb - [CIR][NFC] Rename AtomicFence to AtomicFenceOp (#171248)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Dec 10 09:30:59 PST 2025
Author: Haocong Lu
Date: 2025-12-10T09:30:55-08:00
New Revision: 6cacbdbc38e793720c8c6569097c682afd545ada
URL: https://github.com/llvm/llvm-project/commit/6cacbdbc38e793720c8c6569097c682afd545ada
DIFF: https://github.com/llvm/llvm-project/commit/6cacbdbc38e793720c8c6569097c682afd545ada.diff
LOG: [CIR][NFC] Rename AtomicFence to AtomicFenceOp (#171248)
This fixes missed suffix `Op` of `CIR_AtomicFence` defination and also
improves API `makeAtomicFenceValue`.
Added:
Modified:
clang/include/clang/CIR/Dialect/IR/CIROps.td
clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
Removed:
################################################################################
diff --git a/clang/include/clang/CIR/Dialect/IR/CIROps.td b/clang/include/clang/CIR/Dialect/IR/CIROps.td
index 461bce6c6fdb5..c4ad6a0c0732c 100644
--- a/clang/include/clang/CIR/Dialect/IR/CIROps.td
+++ b/clang/include/clang/CIR/Dialect/IR/CIROps.td
@@ -5568,7 +5568,7 @@ def CIR_AtomicClearOp : CIR_Op<"atomic.clear"> {
}];
}
-def CIR_AtomicFence : CIR_Op<"atomic.fence"> {
+def CIR_AtomicFenceOp : CIR_Op<"atomic.fence"> {
let summary = "Atomic thread fence";
let description = [{
C/C++ Atomic thread fence synchronization primitive. Implements the builtin
diff --git a/clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp b/clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
index 16c006df6853e..1953f7f1d372f 100644
--- a/clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+++ b/clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
@@ -60,9 +60,8 @@ static RValue emitBuiltinBitOp(CIRGenFunction &cgf, const CallExpr *e,
return RValue::get(result);
}
-static mlir::Value makeAtomicFenceValue(CIRGenFunction &cgf,
- const CallExpr *expr,
- cir::SyncScopeKind syncScope) {
+static void emitAtomicFenceOp(CIRGenFunction &cgf, const CallExpr *expr,
+ cir::SyncScopeKind syncScope) {
CIRGenBuilderTy &builder = cgf.getBuilder();
mlir::Value orderingVal = cgf.emitScalarExpr(expr->getArg(0));
@@ -72,7 +71,7 @@ static mlir::Value makeAtomicFenceValue(CIRGenFunction &cgf,
// TODO(cir): Emit code to switch on `orderingVal`,
// and creating the fence op for valid values.
cgf.cgm.errorNYI("Variable atomic fence ordering");
- return {};
+ return;
}
auto constOrderingAttr = constOrdering.getValueAttr<cir::IntAttr>();
@@ -80,11 +79,9 @@ static mlir::Value makeAtomicFenceValue(CIRGenFunction &cgf,
auto ordering = static_cast<cir::MemOrder>(constOrderingAttr.getUInt());
- cir::AtomicFence::create(
+ cir::AtomicFenceOp::create(
builder, cgf.getLoc(expr->getSourceRange()), ordering,
cir::SyncScopeKindAttr::get(&cgf.getMLIRContext(), syncScope));
-
- return {};
}
namespace {
@@ -1010,12 +1007,14 @@ RValue CIRGenFunction::emitBuiltinExpr(const GlobalDecl &gd, unsigned builtinID,
case Builtin::BI__atomic_test_and_set:
case Builtin::BI__atomic_clear:
return errorBuiltinNYI(*this, e, builtinID);
- case Builtin::BI__atomic_thread_fence:
- return RValue::get(
- makeAtomicFenceValue(*this, e, cir::SyncScopeKind::System));
- case Builtin::BI__atomic_signal_fence:
- return RValue::get(
- makeAtomicFenceValue(*this, e, cir::SyncScopeKind::SingleThread));
+ case Builtin::BI__atomic_thread_fence: {
+ emitAtomicFenceOp(*this, e, cir::SyncScopeKind::System);
+ return RValue::get(nullptr);
+ }
+ case Builtin::BI__atomic_signal_fence: {
+ emitAtomicFenceOp(*this, e, cir::SyncScopeKind::SingleThread);
+ return RValue::get(nullptr);
+ }
case Builtin::BI__c11_atomic_thread_fence:
case Builtin::BI__c11_atomic_signal_fence:
case Builtin::BI__scoped_atomic_thread_fence:
diff --git a/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp b/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
index 8a3b0a1448d2e..eeb886445ede4 100644
--- a/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+++ b/clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
@@ -868,8 +868,8 @@ mlir::LogicalResult CIRToLLVMAtomicClearOpLowering::matchAndRewrite(
return mlir::success();
}
-mlir::LogicalResult CIRToLLVMAtomicFenceLowering::matchAndRewrite(
- cir::AtomicFence op, OpAdaptor adaptor,
+mlir::LogicalResult CIRToLLVMAtomicFenceOpLowering::matchAndRewrite(
+ cir::AtomicFenceOp op, OpAdaptor adaptor,
mlir::ConversionPatternRewriter &rewriter) const {
mlir::LLVM::AtomicOrdering llvmOrder = getLLVMMemOrder(adaptor.getOrdering());
More information about the cfe-commits
mailing list