[clang] [CIR] Split side_effect into memory effects, nounwind, and willreturn (PR #223890)

Adam Smith via cfe-commits cfe-commits at lists.llvm.org
Sun Sep 20 16:26:42 PDT 2026


================
@@ -4297,7 +4297,7 @@ def CIR_FuncOp : CIR_Op<"func", [
     OptionalAttr<DictArrayAttr>:$arg_attrs,
     OptionalAttr<DictArrayAttr>:$res_attrs,
     OptionalAttr<FlatSymbolRefAttr>:$aliasee,
-    OptionalAttr<CIR_SideEffectAttr>:$side_effect,
+    OptionalAttr<CIR_MemoryEffectsAttr>:$memory_effects,
----------------
adams381 wrote:

Agreed, as a follow-up.  `getEffects` is what makes a call deletable, and MLIR decides that on effects alone, so the `willreturn` and `nounwind` gating has to be modeled along with it.

https://github.com/llvm/llvm-project/pull/223890


More information about the cfe-commits mailing list