diff --git a/mlir/include/mlir/Dialect/Linalg/Passes.td b/mlir/include/mlir/Dialect/Linalg/Passes.td --- a/mlir/include/mlir/Dialect/Linalg/Passes.td +++ b/mlir/include/mlir/Dialect/Linalg/Passes.td @@ -111,7 +111,7 @@ let dependentDialects = ["linalg::LinalgDialect"]; } -def LinalgDetensorize : Pass<"linalg-detensorize", ""> { +def LinalgDetensorize : InterfacePass<"linalg-detensorize", "FunctionOpInterface"> { let summary = "Detensorize linalg ops"; let constructor = "mlir::createLinalgDetensorizePass()"; let dependentDialects = []; diff --git a/mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp b/mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp --- a/mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp @@ -474,7 +474,7 @@ DenseSet opsToDetensor; DenseMap> detensorableBranchOps; DenseSet blockArgsToDetensor; - FunctionOpInterface funcOp = cast(getOperation()); + FunctionOpInterface funcOp = getOperation(); if (aggressiveMode.getValue()) { AggressiveDetensoringModel costModel;