[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:34 PDT 2026
================
@@ -1350,21 +1372,21 @@ static mlir::ParseResult parseCallCommon(mlir::OpAsmParser &parser,
result.addAttribute(CIRDialect::getNoThrowAttrName(),
mlir::UnitAttr::get(parser.getContext()));
- if (parser.parseOptionalKeyword("side_effect").succeeded()) {
- if (parser.parseLParen().failed())
- return failure();
- cir::SideEffect sideEffect;
- if (parseCIRKeyword<cir::SideEffect>(parser, sideEffect).failed())
- return failure();
- if (parser.parseRParen().failed())
- return failure();
- auto attr = cir::SideEffectAttr::get(parser.getContext(), sideEffect);
- result.addAttribute(CIRDialect::getSideEffectAttrName(), attr);
- }
+ if (parser.parseOptionalKeyword("nounwind").succeeded())
+ result.addAttribute(CIRDialect::getNoUnwindAttrName(),
+ mlir::UnitAttr::get(parser.getContext()));
+
+ if (parser.parseOptionalKeyword("willreturn").succeeded())
+ result.addAttribute(CIRDialect::getWillReturnAttrName(),
+ mlir::UnitAttr::get(parser.getContext()));
+ llvm::SMLoc attrsLoc = parser.getCurrentLocation();
if (parser.parseOptionalAttrDict(result.attributes))
return ::mlir::failure();
+ if (checkEffectAttrKinds(parser, attrsLoc, result.attributes).failed())
----------------
adams381 wrote:
See the reply above.
https://github.com/llvm/llvm-project/pull/223890
More information about the cfe-commits
mailing list