[clang] [CIR] Split side_effect into memory effects, nounwind, and willreturn (PR #223890)
Andy Kaylor via cfe-commits
cfe-commits at lists.llvm.org
Mon Sep 21 13:57:39 PDT 2026
================
@@ -411,6 +411,73 @@ static ParseResult parseFloatLiteral(AsmParser &parser,
return success();
}
+//===----------------------------------------------------------------------===//
+// MemoryEffectsAttr definitions
+//===----------------------------------------------------------------------===//
+
+MemoryEffectsAttr MemoryEffectsAttr::none(MLIRContext *ctx) {
+ return get(ctx, ModRefInfo::NoModRef);
+}
+
+MemoryEffectsAttr MemoryEffectsAttr::readOnly(MLIRContext *ctx) {
+ return get(ctx, ModRefInfo::Ref);
+}
+
+MemoryEffectsAttr MemoryEffectsAttr::writeOnly(MLIRContext *ctx) {
+ return get(ctx, ModRefInfo::Mod);
+}
+
+MemoryEffectsAttr MemoryEffectsAttr::argMemOnly(MLIRContext *ctx,
+ ModRefInfo mr) {
+ return get(ctx, ModRefInfo::NoModRef, mr, ModRefInfo::NoModRef,
----------------
andykaylor wrote:
These would benefit from comments indicating what each argument means -- `/
```suggestion
return get(ctx, /*other=*/ModRefInfo::NoModRef, /*arg_mem=*/mr, /*inaccessible_mem=*/ModRefInfo::NoModRef,
etc.
```
https://github.com/llvm/llvm-project/pull/223890
More information about the cfe-commits
mailing list