================ @@ -539,9 +539,29 @@ Block *cir::BrCondOp::getSuccessorForOperands(ArrayRef<Attribute> operands) { } //===----------------------------------------------------------------------===// -// ForOp +// LoopOpInterface Methods //===----------------------------------------------------------------------===// +void cir::DoWhileOp::getSuccessorRegions( + mlir::RegionBranchPoint point, + llvm::SmallVectorImpl<mlir::RegionSuccessor> ®ions) { + LoopOpInterface::getLoopOpSuccessorRegions(*this, point, regions); +} + +llvm::SmallVector<Region *> cir::DoWhileOp::getLoopRegions() { + return {&getBody()}; +} + +void cir::WhileOp::getSuccessorRegions( + mlir::RegionBranchPoint point, + llvm::SmallVectorImpl<mlir::RegionSuccessor> ®ions) { + LoopOpInterface::getLoopOpSuccessorRegions(*this, point, regions); +} + +llvm::SmallVector<Region *> cir::WhileOp::getLoopRegions() { + return {&getBody()}; +} ---------------- xlauko wrote:
Can be deduplicated as extraClassDefinition in `WhileOpBase` as: ``` let extraClassDefinition = [{ void $cppClass::getSuccessorRegions( mlir::RegionBranchPoint point, llvm::SmallVectorImpl<mlir::RegionSuccessor> ®ions) { LoopOpInterface::getLoopOpSuccessorRegions(*this, point, regions); } llvm::SmallVector<Region *> $cppClass::getLoopRegions() { return {&getBody()}; } }]; ``` https://github.com/llvm/llvm-project/pull/133157 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits