Issue |
153896
|
Summary |
Crash in Linalg::YieldOp::getSuccessorRegions
|
Labels |
new issue
|
Assignees |
|
Reporter |
wsmoses
|
It's implemented as:
```
void getSuccessorRegions(::llvm::ArrayRef<::mlir::Attribute> operands, ::llvm::SmallVectorImpl<::mlir::RegionSuccessor> & regions) {
::mlir::Operation *op = (*static_cast<ConcreteOp *>(this));
::llvm::cast<::mlir::RegionBranchOpInterface>(op->getParentOp())
.getSuccessorRegions(op->getParentRegion(), regions);
}
static ::llvm::LogicalResult verifyTrait(::mlir::Operation *op) {
static_assert(ConcreteOp::template hasTrait<OpTrait::IsTerminator>(),
"expected operation to be a terminator");
static_assert(ConcreteOp::template hasTrait<OpTrait::ZeroResults>(),
"expected operation to have zero results");
static_assert(ConcreteOp::template hasTrait<OpTrait::ZeroSuccessors>(),
"expected operation to have zero successors");
return success();
}
```
Linalg::YieldOp has the interface RegionBranchTerminatorOpInterface, but linalg::GenericOp does not define `RegionBranchOpInterface`, causing it to crash
cc @ftynse @arpitj1
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs