Skip to content

Commit 9dfe49d

Browse files
authored
[CIR][Dialect][NFC] Add some helpers to LoadOp
These are just missing getters/setters that should be there already. They are in use in a patch coming up. I'm splitting them out here for reviewability. Reviewers: bcardosolopes Pull Request: #1021
1 parent 9e2ff80 commit 9dfe49d

File tree

3 files changed

+97
-51
lines changed

3 files changed

+97
-51
lines changed

clang/include/clang/CIR/Dialect/IR/CIROps.td

+18
Original file line numberDiff line numberDiff line change
@@ -599,6 +599,13 @@ def LoadOp : CIR_Op<"load", [
599599
$addr `:` qualified(type($addr)) `,` type($result) attr-dict
600600
}];
601601

602+
let extraClassDeclaration = [{
603+
// TODO(CIR): The final interface here should include an argument for the
604+
// SyncScope::ID.
605+
// This should be used over the ODS generated setMemOrder.
606+
void setAtomic(mlir::cir::MemOrder order);
607+
}];
608+
602609
// FIXME: add verifier.
603610
}
604611

@@ -656,6 +663,13 @@ def StoreOp : CIR_Op<"store", [
656663
$value `,` $addr attr-dict `:` type($value) `,` qualified(type($addr))
657664
}];
658665

666+
let extraClassDeclaration = [{
667+
// TODO(CIR): The final interface here should include an argument for the
668+
// SyncScope::ID.
669+
// This should be used over the ODS generated setMemOrder.
670+
void setAtomic(mlir::cir::MemOrder order);
671+
}];
672+
659673
// FIXME: add verifier.
660674
}
661675

@@ -2411,8 +2425,12 @@ def GlobalOp : CIR_Op<"global",
24112425
bool hasAvailableExternallyLinkage() {
24122426
return mlir::cir::isAvailableExternallyLinkage(getLinkage());
24132427
}
2428+
bool hasInternalLinkage() {
2429+
return mlir::cir::isInternalLinkage(getLinkage());
2430+
}
24142431
/// Whether the definition of this global may be replaced at link time.
24152432
bool isWeakForLinker() { return cir::isWeakForLinker(getLinkage()); }
2433+
bool isDSOLocal() { return getDsolocal(); }
24162434
}];
24172435

24182436
let skipDefaultBuilders = 1;

clang/lib/CIR/CodeGen/CIRGenAtomic.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1462,7 +1462,7 @@ void CIRGenFunction::buildAtomicStore(RValue rvalue, LValue dest,
14621462
MO = mlir::cir::MemOrder::Release;
14631463
// Initializations don't need to be atomic.
14641464
if (!isInit)
1465-
store.setMemOrder(MO);
1465+
store.setAtomic(MO);
14661466

14671467
// Other decoration.
14681468
if (IsVolatile)

0 commit comments

Comments
 (0)