DeadLock
This commit is contained in:
@@ -10,8 +10,9 @@ using namespace mlir;
|
||||
namespace onnx_mlir {
|
||||
namespace spatial {
|
||||
|
||||
LogicalResult SpatCompute::fold(FoldAdaptor adaptor, ::llvm::SmallVectorImpl<::mlir::OpFoldResult>& results) {
|
||||
Block& block = getBody().front();
|
||||
template <typename ComputeOpTy>
|
||||
LogicalResult foldComputeLike(ComputeOpTy compute, ::llvm::SmallVectorImpl<::mlir::OpFoldResult>& results) {
|
||||
Block& block = compute.getBody().front();
|
||||
if (!llvm::hasSingleElement(block))
|
||||
return failure();
|
||||
|
||||
@@ -22,7 +23,7 @@ LogicalResult SpatCompute::fold(FoldAdaptor adaptor, ::llvm::SmallVectorImpl<::m
|
||||
for (Value yieldedValue : yieldOp.getOperands()) {
|
||||
if (auto blockArg = dyn_cast<BlockArgument>(yieldedValue)) {
|
||||
if (blockArg.getOwner() == &block) {
|
||||
results.push_back(getOperand(blockArg.getArgNumber()));
|
||||
results.push_back(compute.getOperand(blockArg.getArgNumber()));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -31,5 +32,13 @@ LogicalResult SpatCompute::fold(FoldAdaptor adaptor, ::llvm::SmallVectorImpl<::m
|
||||
return success();
|
||||
}
|
||||
|
||||
LogicalResult SpatGraphCompute::fold(FoldAdaptor adaptor, ::llvm::SmallVectorImpl<::mlir::OpFoldResult>& results) {
|
||||
return foldComputeLike(*this, results);
|
||||
}
|
||||
|
||||
LogicalResult SpatScheduledCompute::fold(FoldAdaptor adaptor, ::llvm::SmallVectorImpl<::mlir::OpFoldResult>& results) {
|
||||
return foldComputeLike(*this, results);
|
||||
}
|
||||
|
||||
} // namespace spatial
|
||||
} // namespace onnx_mlir
|
||||
|
||||
Reference in New Issue
Block a user