[LLVMExternalProjects] Drop the IREE LinalgTransformDialect (#15067)
The LinalgTransformDialect has become a maintenance burden without any
users. This drops the dialect and cleans up some surrounding linalg ext
code that has since been upstreamed.
- Transform ops equivalent to lower_to_llvm now exist upstream
- The linalg ext variant of the TransformDialectInterpreter pass has
since been moved to IREE core
take_first, emit_remark, and the matcher infra + ops are still load
bearing and transitioning to upstream is left as TODO.
diff --git a/compiler/src/iree/compiler/API/api_exports.c b/compiler/src/iree/compiler/API/api_exports.c
index 114d7ca..b27c81f 100644
--- a/compiler/src/iree/compiler/API/api_exports.c
+++ b/compiler/src/iree/compiler/API/api_exports.c
@@ -347,7 +347,6 @@
extern void mlirFunctionTypeGetTypeID();
extern void mlirGetDialectHandle__iree_input__();
extern void mlirGetDialectHandle__iree_linalg_ext__();
-extern void mlirGetDialectHandle__iree_linalg_transform__();
extern void mlirGetDialectHandle__transform__();
extern void mlirIREELinalgTransformRegisterPasses();
extern void mlirIREETransformRegisterPasses();
@@ -997,7 +996,6 @@
x += (uintptr_t)&mlirFunctionTypeGetTypeID;
x += (uintptr_t)&mlirGetDialectHandle__iree_input__;
x += (uintptr_t)&mlirGetDialectHandle__iree_linalg_ext__;
- x += (uintptr_t)&mlirGetDialectHandle__iree_linalg_transform__;
x += (uintptr_t)&mlirGetDialectHandle__transform__;
x += (uintptr_t)&mlirIREELinalgTransformRegisterPasses;
x += (uintptr_t)&mlirIREETransformRegisterPasses;
diff --git a/compiler/src/iree/compiler/API/api_exports.def b/compiler/src/iree/compiler/API/api_exports.def
index b07a8a4..e016464 100644
--- a/compiler/src/iree/compiler/API/api_exports.def
+++ b/compiler/src/iree/compiler/API/api_exports.def
@@ -339,7 +339,6 @@
mlirFunctionTypeGetTypeID
mlirGetDialectHandle__iree_input__
mlirGetDialectHandle__iree_linalg_ext__
- mlirGetDialectHandle__iree_linalg_transform__
mlirGetDialectHandle__transform__
mlirIREELinalgTransformRegisterPasses
mlirIREETransformRegisterPasses
diff --git a/compiler/src/iree/compiler/API/api_exports.ld b/compiler/src/iree/compiler/API/api_exports.ld
index f02718f..8f1cdb4 100644
--- a/compiler/src/iree/compiler/API/api_exports.ld
+++ b/compiler/src/iree/compiler/API/api_exports.ld
@@ -340,7 +340,6 @@
mlirFunctionTypeGetTypeID;
mlirGetDialectHandle__iree_input__;
mlirGetDialectHandle__iree_linalg_ext__;
- mlirGetDialectHandle__iree_linalg_transform__;
mlirGetDialectHandle__transform__;
mlirIREELinalgTransformRegisterPasses;
mlirIREETransformRegisterPasses;
diff --git a/compiler/src/iree/compiler/API/api_exports.macos.lst b/compiler/src/iree/compiler/API/api_exports.macos.lst
index 14283da..dc13969 100644
--- a/compiler/src/iree/compiler/API/api_exports.macos.lst
+++ b/compiler/src/iree/compiler/API/api_exports.macos.lst
@@ -338,7 +338,6 @@
_mlirFunctionTypeGetTypeID
_mlirGetDialectHandle__iree_input__
_mlirGetDialectHandle__iree_linalg_ext__
-_mlirGetDialectHandle__iree_linalg_transform__
_mlirGetDialectHandle__transform__
_mlirIREELinalgTransformRegisterPasses
_mlirIREETransformRegisterPasses
diff --git a/compiler/src/iree/compiler/API/generate_exports.py b/compiler/src/iree/compiler/API/generate_exports.py
index 1f05458..5f151e8 100755
--- a/compiler/src/iree/compiler/API/generate_exports.py
+++ b/compiler/src/iree/compiler/API/generate_exports.py
@@ -72,7 +72,6 @@
"mlirRegisterLinalgPasses",
"mlirGetDialectHandle__iree_input__",
"mlirGetDialectHandle__iree_linalg_ext__",
- "mlirGetDialectHandle__iree_linalg_transform__",
"mlirGetDialectHandle__transform__",
]
diff --git a/compiler/src/iree/compiler/Codegen/Common/TransformDialectInterpreterPass.cpp b/compiler/src/iree/compiler/Codegen/Common/TransformDialectInterpreterPass.cpp
index e172d06..dea6786 100644
--- a/compiler/src/iree/compiler/Codegen/Common/TransformDialectInterpreterPass.cpp
+++ b/compiler/src/iree/compiler/Codegen/Common/TransformDialectInterpreterPass.cpp
@@ -6,7 +6,6 @@
#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtDialect.h"
#include "iree-dialects/Dialect/LinalgExt/TransformOps/LinalgExtTransformOps.h"
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
#include "iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.h"
#include "iree/compiler/Codegen/Common/PassDetail.h"
#include "iree/compiler/Codegen/Common/TransformExtensions/CommonExtensions.h"
@@ -74,7 +73,6 @@
func::FuncDialect,
gpu::GPUDialect,
linalg::LinalgDialect,
- linalg::transform::LinalgTransformDialect,
LLVM::LLVMDialect,
pdl::PDLDialect,
pdl_interp::PDLInterpDialect,
@@ -82,8 +80,8 @@
tensor::TensorDialect,
transform::TransformDialect,
vector::VectorDialect
- // clang-format on
- >();
+ // clang-format on
+ >();
// TODO: these should be registered by the extension instead, but there is
// no support for it in core currently.
diff --git a/compiler/src/iree/compiler/Codegen/LLVMCPU/LLVMCPULowerExecutableTarget.cpp b/compiler/src/iree/compiler/Codegen/LLVMCPU/LLVMCPULowerExecutableTarget.cpp
index 935412c..e8979b6 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMCPU/LLVMCPULowerExecutableTarget.cpp
+++ b/compiler/src/iree/compiler/Codegen/LLVMCPU/LLVMCPULowerExecutableTarget.cpp
@@ -5,7 +5,6 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtDialect.h"
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
#include "iree/compiler/Codegen/Common/TileSizeSelection.h"
#include "iree/compiler/Codegen/Dialect/IREECodegenAttrs.h"
#include "iree/compiler/Codegen/Dialect/IREECodegenDialect.h"
@@ -51,7 +50,6 @@
IREE::LinalgExt::IREELinalgExtDialect,
bufferization::BufferizationDialect,
linalg::LinalgDialect,
- linalg::transform::LinalgTransformDialect,
LLVM::LLVMDialect,
pdl::PDLDialect,
pdl_interp::PDLInterpDialect,
diff --git a/compiler/src/iree/compiler/Codegen/LLVMGPU/LLVMGPULowerExecutableTarget.cpp b/compiler/src/iree/compiler/Codegen/LLVMGPU/LLVMGPULowerExecutableTarget.cpp
index 931e081..ad59a5a 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMGPU/LLVMGPULowerExecutableTarget.cpp
+++ b/compiler/src/iree/compiler/Codegen/LLVMGPU/LLVMGPULowerExecutableTarget.cpp
@@ -5,7 +5,6 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtDialect.h"
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
#include "iree/compiler/Codegen/Dialect/IREECodegenAttrs.h"
#include "iree/compiler/Codegen/Dialect/IREECodegenDialect.h"
#include "iree/compiler/Codegen/LLVMGPU/KernelConfig.h"
@@ -47,7 +46,6 @@
IREE::HAL::HALDialect,
IREE::LinalgExt::IREELinalgExtDialect,
linalg::LinalgDialect,
- linalg::transform::LinalgTransformDialect,
gpu::GPUDialect,
nvgpu::NVGPUDialect,
pdl::PDLDialect,
diff --git a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVMCPU/LLVMCPUTarget.cpp b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVMCPU/LLVMCPUTarget.cpp
index 4527ba5..90a6f45 100644
--- a/compiler/src/iree/compiler/Dialect/HAL/Target/LLVMCPU/LLVMCPUTarget.cpp
+++ b/compiler/src/iree/compiler/Dialect/HAL/Target/LLVMCPU/LLVMCPUTarget.cpp
@@ -10,7 +10,6 @@
#include <unordered_set>
#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtDialect.h"
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
#include "iree/compiler/Codegen/Dialect/IREECodegenDialect.h"
#include "iree/compiler/Codegen/LLVMCPU/Passes.h"
#include "iree/compiler/Codegen/Utils/Utils.h"
@@ -179,7 +178,6 @@
// clang-format off
registry.insert<IREE::Codegen::IREECodegenDialect,
IREE::LinalgExt::IREELinalgExtDialect,
- linalg::transform::LinalgTransformDialect,
mlir::transform::TransformDialect,
pdl::PDLDialect,
pdl_interp::PDLInterpDialect,
diff --git a/compiler/src/iree/compiler/Tools/init_iree_dialects.h b/compiler/src/iree/compiler/Tools/init_iree_dialects.h
index 4dda2a2..8cf0cda 100644
--- a/compiler/src/iree/compiler/Tools/init_iree_dialects.h
+++ b/compiler/src/iree/compiler/Tools/init_iree_dialects.h
@@ -15,7 +15,6 @@
#include "iree-dialects/Dialect/Input/InputDialect.h"
#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtDialect.h"
#include "iree-dialects/Dialect/LinalgExt/Passes/Passes.h"
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
#include "iree-dialects/Dialect/LinalgTransform/Passes.h"
#include "iree/compiler/Codegen/Dialect/IREECodegenDialect.h"
#include "iree/compiler/Codegen/Interfaces/Interfaces.h"
@@ -43,7 +42,6 @@
IREE::HAL::Inline::HALInlineDialect,
IREE::HAL::Loader::HALLoaderDialect,
IREE::LinalgExt::IREELinalgExtDialect,
- mlir::linalg::transform::LinalgTransformDialect,
IREE::Stream::StreamDialect,
IREE::Util::UtilDialect,
IREE::VM::VMDialect,
diff --git a/docs/website/generate_extra_files.sh b/docs/website/generate_extra_files.sh
index 3c4fc12..d01f0fe 100755
--- a/docs/website/generate_extra_files.sh
+++ b/docs/website/generate_extra_files.sh
@@ -48,7 +48,6 @@
# Delete any dialect docs we don't want to publish (yet?).
rm "${BUILD_DOCS_PROCESSED_DIR}/SimpleIODialect.md" # Sample dialect, just ignore
rm "${BUILD_DOCS_PROCESSED_DIR}/StructuredTransformOpsExt.md" # Dialect extensions
-rm "${BUILD_DOCS_PROCESSED_DIR}/LinalgTransformOps.md" # Small dialect, unknown state
# Trim "Dialect" suffix from file names, e.g. FlowDialect.md -> Flow.md.
for f in ${BUILD_DOCS_PROCESSED_DIR}/*Dialect.md; do
@@ -58,7 +57,6 @@
# Rename iree-dialect files.
mv "${BUILD_DOCS_PROCESSED_DIR}/InputOps.md" "${BUILD_DOCS_PROCESSED_DIR}/IREEInput.md"
mv "${BUILD_DOCS_PROCESSED_DIR}/LinalgExtOps.md" "${BUILD_DOCS_PROCESSED_DIR}/IREELinalgExt.md"
-# mv "${BUILD_DOCS_PROCESSED_DIR}/LinalgTransformOps.md" "${BUILD_DOCS_PROCESSED_DIR}/IREELinalgTransform.md"
# mv "${BUILD_DOCS_PROCESSED_DIR}/StructuredTransformOpsExt.md" "${BUILD_DOCS_PROCESSED_DIR}/IREEStructuredTransformExt.md"
# Postprocess the dialect docs (e.g. making tweaks to the markdown source).
diff --git a/llvm-external-projects/iree-dialects/BUILD.bazel b/llvm-external-projects/iree-dialects/BUILD.bazel
index a2945ed..8b8c2d1 100644
--- a/llvm-external-projects/iree-dialects/BUILD.bazel
+++ b/llvm-external-projects/iree-dialects/BUILD.bazel
@@ -495,41 +495,6 @@
################################################################################
gentbl_cc_library(
- name = "IREELinalgTransformIncGen",
- strip_include_prefix = "include",
- tbl_outs = [
- (
- [
- "--dialect=iree_linalg_transform",
- "--gen-dialect-decls",
- ],
- "include/iree-dialects/Dialect/LinalgTransform/LinalgTransformDialect.h.inc",
- ),
- (
- [
- "--dialect=iree_linalg_transform",
- "--gen-dialect-defs",
- ],
- "include/iree-dialects/Dialect/LinalgTransform/LinalgTransformDialect.cpp.inc",
- ),
- (
- ["--gen-op-decls"],
- "include/iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h.inc",
- ),
- (
- ["--gen-op-defs"],
- "include/iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.cpp.inc",
- ),
- ],
- tblgen = "@llvm-project//mlir:mlir-tblgen",
- td_file = "include/iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.td",
- deps = [
- ":TdFiles",
- "@llvm-project//mlir:ControlFlowInterfacesTdFiles",
- ],
-)
-
-gentbl_cc_library(
name = "IREELinalgTransformStructuredIncGen",
strip_include_prefix = "include",
tbl_outs = [
@@ -564,7 +529,6 @@
":IREELinalgExtDialect",
":IREELinalgExtPasses",
":IREELinalgExtTransforms",
- ":IREELinalgTransformIncGen",
":IREELinalgTransformStructuredIncGen",
"@llvm-project//llvm:Support",
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects-c/Dialects.h b/llvm-external-projects/iree-dialects/include/iree-dialects-c/Dialects.h
index 2ababb1..0051ee3 100644
--- a/llvm-external-projects/iree-dialects/include/iree-dialects-c/Dialects.h
+++ b/llvm-external-projects/iree-dialects/include/iree-dialects-c/Dialects.h
@@ -31,8 +31,6 @@
// LinalgTransform
//===--------------------------------------------------------------------===//
-MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(LinalgTransform, iree_linalg_transform);
-
/// Register all passes for LinalgTransform.
MLIR_CAPI_EXPORTED void mlirIREELinalgTransformRegisterPasses();
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/CMakeLists.txt b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/CMakeLists.txt
index 144e245..c0ebeb4 100644
--- a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/CMakeLists.txt
+++ b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/CMakeLists.txt
@@ -1,13 +1,3 @@
-function(_add_dialect)
- set(LLVM_TARGET_DEFINITIONS LinalgTransformOps.td)
- mlir_tablegen(LinalgTransformOps.h.inc -gen-op-decls)
- mlir_tablegen(LinalgTransformOps.cpp.inc -gen-op-defs)
- mlir_tablegen(LinalgTransformDialect.h.inc --gen-dialect-decls --dialect=iree_linalg_transform)
- mlir_tablegen(LinalgTransformDialect.cpp.inc --gen-dialect-defs --dialect=iree_linalg_transform)
- add_public_tablegen_target(IREELinalgTransformIncGen)
- add_dependencies(mlir-headers IREELinalgTransformIncGen)
-endfunction()
-
function(_add_transform_dialect_extension)
set(LLVM_TARGET_DEFINITIONS StructuredTransformOpsExt.td)
mlir_tablegen(StructuredTransformOpsExt.h.inc -gen-op-decls)
@@ -16,20 +6,6 @@
add_dependencies(mlir-headers IREELinalgTransformExtIncGen)
endfunction()
-function(_add_transform_doc)
- set(LLVM_TARGET_DEFINITIONS LinalgTransformOps.td)
- mlir_tablegen(LinalgTransformOps.md -gen-dialect-doc)
- set(GEN_DOC_FILE ${IREE_DIALECTS_BINARY_DIR}/docs/Dialects/LinalgTransformOps.md)
- add_custom_command(
- OUTPUT ${GEN_DOC_FILE}
- COMMAND ${CMAKE_COMMAND} -E copy
- ${CMAKE_CURRENT_BINARY_DIR}/LinalgTransformOps.md
- ${GEN_DOC_FILE}
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/LinalgTransformOps.md)
- add_custom_target(LinalgTransformOpsDocGen DEPENDS ${GEN_DOC_FILE})
- add_dependencies(iree-dialects-doc LinalgTransformOpsDocGen)
-endfunction()
-
function(_add_structured_transform_doc)
set(LLVM_TARGET_DEFINITIONS StructuredTransformOpsExt.td)
mlir_tablegen(StructuredTransformOpsExt.md -gen-dialect-doc)
@@ -44,7 +20,5 @@
add_dependencies(iree-dialects-doc StructuredTransformOpsExtDocGen)
endfunction()
-_add_dialect()
_add_transform_dialect_extension()
-_add_transform_doc()
_add_structured_transform_doc()
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h
deleted file mode 100644
index 487e2e0..0000000
--- a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2021 The IREE Authors
-//
-// Licensed under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-#ifndef MLIR_DIALECT_LINALG_IR_LINALGTRANSFORMOPS_H
-#define MLIR_DIALECT_LINALG_IR_LINALGTRANSFORMOPS_H
-
-#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtOps.h"
-#include "mlir/Dialect/Func/IR/FuncOps.h"
-#include "mlir/Dialect/Linalg/IR/Linalg.h"
-#include "mlir/Dialect/Transform/IR/TransformInterfaces.h"
-#include "mlir/IR/BuiltinAttributes.h"
-#include "mlir/IR/OpDefinition.h"
-
-namespace mlir {
-namespace scf {
-class ForOp;
-} // namespace scf
-} // namespace mlir
-
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformDialect.h.inc"
-
-#define GET_OP_CLASSES
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h.inc"
-
-#endif // MLIR_DIALECT_LINALG_IR_LINALGTRANSFORMOPS_H
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.td b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.td
deleted file mode 100644
index a349690..0000000
--- a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.td
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2021 The IREE Authors
-//
-// Licensed under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-#ifndef LINALG_TRANSFORM_OPS
-#define LINALG_TRANSFORM_OPS
-
-include "mlir/IR/OpBase.td"
-include "mlir/IR/OpAsmInterface.td"
-include "mlir/Dialect/Transform/IR/TransformInterfaces.td"
-include "mlir/Interfaces/ControlFlowInterfaces.td"
-
-def Linalg_Transform_Dialect : Dialect {
- let name = "iree_linalg_transform";
- let cppNamespace = "::mlir::linalg::transform";
- let dependentDialects = [
- "linalg::LinalgDialect",
- ];
-}
-
-// Operations with this trait must provide the following methods:
-// - `Value target()` - returns the operation handle targeted by this
-// transformation, if available;
-// - `Optional<SymbolRefAttr> matcher()` - returns the name of the PDL matcher
-// that selects the ops targeted by this transformation, if provided.
-class Linalg_Transform_Operation<string name, list<Trait> props = []>
- : Op<Linalg_Transform_Dialect, name, props> {
- let cppNamespace = "::mlir::linalg::transform";
-}
-
-class Transform_Op<string name, list<Trait> props = []>
- : Linalg_Transform_Operation<name, !listconcat(props, [
- DeclareOpInterfaceMethods<TransformOpInterface, ["apply"]>])>;
-
-//===----------------------------------------------------------------------===//
-
-def ScopeOp : Linalg_Transform_Operation<"util.scope",
- [IsolatedFromAbove, DeclareOpInterfaceMethods<RegionBranchOpInterface>]> {
- let description = [{An operation to restrict transformation scopes.}];
-
- let regions = (region AnyRegion:$body);
- let arguments = (ins Variadic<AnyType>:$ins);
- let results = (outs Variadic<AnyType>:$outs);
- let assemblyFormat = [{ `(` operands `)` attr-dict-with-keyword $body
- `:` functional-type(operands, results) }];
-}
-
-def ForwardOp : Linalg_Transform_Operation<"util.forward",
- [Terminator, HasParent<"ScopeOp">]> {
- let description = [{Terminator for a scope operation, indicating the results
- that should be forwarded out of the scope.}];
-
- let arguments = (ins Variadic<AnyType>:$ins);
- let assemblyFormat = "operands attr-dict `:` type(operands)";
-}
-
-//===----------------------------------------------------------------------===//
-
-def ExpertOp : Linalg_Transform_Operation<"expert"> {
- let description = [{A "transformation expert" that can be lowered to a
- sequence of transformations. The details of the lowering depend on the name
- and are expressed declaratively.}];
-
- let arguments = (ins TransformHandleTypeInterface:$target,
- StrAttr:$expertName);
- let results = (outs TransformHandleTypeInterface:$transformed);
-
- let assemblyFormat = "`apply` $expertName `to` $target attr-dict `:` functional-type(operands, results)";
-}
-
-#endif // LINALG_TRANSFORM_OPS
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/Passes.h b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/Passes.h
index 47bdbcf..b94f416 100644
--- a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/Passes.h
+++ b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/Passes.h
@@ -12,7 +12,6 @@
namespace transform {
void registerTransformDialectInterpreterPass();
-void registerLinalgTransformExpertExpansionPass();
void registerDropSchedulePass();
} // namespace transform
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/ScopedTransform.h b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/ScopedTransform.h
deleted file mode 100644
index a0594fe..0000000
--- a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/ScopedTransform.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2021 The IREE Authors
-//
-// Licensed under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-#ifndef IREE_LLVM_SANDBOX_DIALECTS_LINALGTRANSFORM_SCOPEDTRANSFORM_H
-#define IREE_LLVM_SANDBOX_DIALECTS_LINALGTRANSFORM_SCOPEDTRANSFORM_H
-
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
-
-namespace mlir {
-namespace linalg {
-namespace transform {
-ScopeOp wrapInScope(Operation *op);
-FailureOr<SmallVector<Operation *>> unwrapScope(ScopeOp scope);
-
-template <typename TransformT>
-auto scoped(Operation *target, TransformT &&transform) {
- auto scope = wrapInScope(target);
- Operation &op = *scope.getBody().front().begin();
- auto result = transform(scope, &op);
- if (failed(unwrapScope(scope)) || failed(result))
- return decltype(result)(failure());
- return result;
-}
-} // namespace transform
-} // namespace linalg
-} // namespace mlir
-
-#endif // IREE_LLVM_SANDBOX_DIALECTS_LINALGTRANSFORM_SCOPEDTRANSFORM_H
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.h b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.h
index f5e63f2..64ed1ca 100644
--- a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.h
+++ b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.h
@@ -19,9 +19,6 @@
namespace linalg {
class LinalgOp;
} // namespace linalg
-namespace pdl {
-class FoOperationTyperOp;
-} // namespace pdl
namespace scf {
class ForOp;
} // namespace scf
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.td b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.td
index 9d54633..b2940bc 100644
--- a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.td
+++ b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.td
@@ -15,36 +15,6 @@
include "mlir/IR/OpAsmInterface.td"
include "mlir/IR/OpBase.td"
-def LowerToLLVMOp : Op<Transform_Dialect, "lower_to_llvm",
- [FunctionalStyleTransformOpTrait,
- MemoryEffectsOpInterface,
- DeclareOpInterfaceMethods<TransformOpInterface>,
- ReportTrackingListenerFailuresOpTrait]> {
- let description = [{
- Indicates that the entire targeted module should be converted
- to the LLVM dialect. This is expected to be the last transformation in
- a sequence.
-
- #### Return modes
-
- This operation consumes the `target` handle and produces the `transformed`
- handle.
- }];
-
- let arguments =
- (ins TransformHandleTypeInterface:$target,
- DefaultValuedAttr<BoolAttr, "false">:$reassociate_fp_reductions,
- DefaultValuedAttr<BoolAttr, "false">:$enable_index_optimizations,
- DefaultValuedAttr<BoolAttr, "false">:$enable_arm_neon,
- DefaultValuedAttr<BoolAttr, "false">:$enable_arm_sve,
- DefaultValuedAttr<BoolAttr, "false">:$enable_amx,
- DefaultValuedAttr<BoolAttr, "false">:$enable_x86vector,
- DefaultValuedAttr<BoolAttr, "false">:$enable_async);
- let results = (outs TransformHandleTypeInterface:$transformed);
- let assemblyFormat = "$target attr-dict `:` functional-type($target, results)";
- let cppNamespace = "mlir::transform_ext";
-}
-
def RegisterMatchCallbacksOp :
Op<Transform_Dialect, "iree.register_match_callbacks",
[DeclareOpInterfaceMethods<MemoryEffectsOpInterface>,
diff --git a/llvm-external-projects/iree-dialects/lib/CAPI/Dialects.cpp b/llvm-external-projects/iree-dialects/lib/CAPI/Dialects.cpp
index 576e626..bdc886b 100644
--- a/llvm-external-projects/iree-dialects/lib/CAPI/Dialects.cpp
+++ b/llvm-external-projects/iree-dialects/lib/CAPI/Dialects.cpp
@@ -9,7 +9,6 @@
#include "iree-dialects/Dialect/Input/InputDialect.h"
#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtDialect.h"
#include "iree-dialects/Dialect/LinalgExt/TransformOps/LinalgExtTransformOps.h"
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
#include "iree-dialects/Dialect/LinalgTransform/Passes.h"
#include "iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.h"
#include "mlir/CAPI/IR.h"
@@ -44,15 +43,11 @@
// IREELinalgTransform
//===--------------------------------------------------------------------===//
-MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(
- IREELinalgTransform, iree_linalg_transform,
- mlir::linalg::transform::LinalgTransformDialect)
-
void mlirIREELinalgTransformRegisterPasses() {
mlir::linalg::transform::registerTransformDialectInterpreterPass();
- mlir::linalg::transform::registerLinalgTransformExpertExpansionPass();
mlir::linalg::transform::registerDropSchedulePass();
}
+
//===--------------------------------------------------------------------===//
// TransformDialect
//===--------------------------------------------------------------------===//
@@ -60,9 +55,8 @@
void ireeRegisterTransformExtensions(MlirContext context) {
MLIRContext *ctx = unwrap(context);
DialectRegistry registry;
- registry.addExtensions<
- mlir::iree_compiler::IREE::LinalgExt::LinalgExtTransformOpsExtension,
- mlir::transform_ext::StructuredTransformOpsExtension>();
+ registry
+ .addExtensions<mlir::transform_ext::StructuredTransformOpsExtension>();
ctx->appendDialectRegistry(registry);
}
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/CMakeLists.txt b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/CMakeLists.txt
index 8261fd5..9d99c95 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/CMakeLists.txt
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/CMakeLists.txt
@@ -1,6 +1,4 @@
add_mlir_library(IREELinalgTransformDialect
- LinalgTransformOps.cpp
- ScopedTransform.cpp
StructuredTransformOpsExt.cpp
DEPENDS
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/LinalgTransformOps.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/LinalgTransformOps.cpp
deleted file mode 100644
index f6e6e33..0000000
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/LinalgTransformOps.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2021 The IREE Authors
-//
-// Licensed under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
-
-#include <algorithm>
-
-#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtOps.h"
-#include "iree-dialects/Dialect/LinalgExt/Transforms/Transforms.h"
-#include "iree-dialects/Dialect/LinalgTransform/ScopedTransform.h"
-#include "mlir/Conversion/AffineToStandard/AffineToStandard.h"
-#include "mlir/Conversion/AsyncToLLVM/AsyncToLLVM.h"
-#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVMPass.h"
-#include "mlir/Conversion/LinalgToStandard/LinalgToStandard.h"
-#include "mlir/Conversion/MathToLLVM/MathToLLVM.h"
-#include "mlir/Conversion/MemRefToLLVM/MemRefToLLVM.h"
-#include "mlir/Conversion/ReconcileUnrealizedCasts/ReconcileUnrealizedCasts.h"
-#include "mlir/Conversion/SCFToControlFlow/SCFToControlFlow.h"
-#include "mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h"
-#include "mlir/Dialect/Async/Passes.h"
-#include "mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h"
-#include "mlir/Dialect/Bufferization/Transforms/Bufferize.h"
-#include "mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h"
-#include "mlir/Dialect/Bufferization/Transforms/OneShotModuleBufferize.h"
-#include "mlir/Dialect/Func/IR/FuncOps.h"
-#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
-#include "mlir/Dialect/Linalg/Passes.h"
-#include "mlir/Dialect/Linalg/Transforms/Hoisting.h"
-#include "mlir/Dialect/Linalg/Transforms/Transforms.h"
-#include "mlir/Dialect/SCF/Transforms/Transforms.h"
-#include "mlir/Dialect/Transform/IR/TransformInterfaces.h"
-#include "mlir/Dialect/Utils/StaticValueUtils.h"
-#include "mlir/IR/Builders.h"
-#include "mlir/IR/Diagnostics.h"
-#include "mlir/IR/OpImplementation.h"
-#include "mlir/IR/SymbolTable.h"
-#include "mlir/Parser/Parser.h"
-#include "mlir/Pass/PassManager.h"
-#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
-#include "mlir/Transforms/InliningUtils.h"
-#include "mlir/Transforms/Passes.h"
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/ADT/ScopeExit.h"
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/FormatVariadic.h"
-
-#define DEBUG_TYPE "linalg-transform-dialect"
-#define DBGS() (llvm::dbgs() << "[" DEBUG_TYPE << "]: ")
-
-using namespace mlir;
-using namespace mlir::iree_compiler::IREE;
-
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformDialect.cpp.inc"
-
-void linalg::transform::LinalgTransformDialect::initialize() {
- addOperations<
-#define GET_OP_LIST
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.cpp.inc"
- >();
-}
-
-//===---------------------------------------------------------------------===//
-// ScopeOp
-//===---------------------------------------------------------------------===//
-
-void linalg::transform::ScopeOp::getSuccessorRegions(
- RegionBranchPoint point, SmallVectorImpl<RegionSuccessor> ®ions) {
- if (!point.isParent())
- regions.emplace_back(getResults());
- else
- regions.emplace_back(&getBody());
-}
-
-#define GET_OP_CLASSES
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.cpp.inc"
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/ScopedTransform.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/ScopedTransform.cpp
deleted file mode 100644
index 74f4327..0000000
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/ScopedTransform.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2021 The IREE Authors
-//
-// Licensed under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-#include "iree-dialects/Dialect/LinalgTransform/ScopedTransform.h"
-
-#include "mlir/Transforms/InliningUtils.h"
-
-using namespace mlir;
-
-namespace {
-struct Rewriter : public PatternRewriter {
- Rewriter(MLIRContext *ctx) : PatternRewriter(ctx) {}
-};
-} // namespace
-
-linalg::transform::ScopeOp linalg::transform::wrapInScope(Operation *op) {
- Rewriter rewriter(op->getContext());
- rewriter.setInsertionPoint(op);
-
- auto scope = rewriter.create<linalg::transform::ScopeOp>(
- op->getLoc(), op->getResultTypes(), op->getOperands());
- Region &body = scope.getBody();
- rewriter.setInsertionPointToStart(&body.emplaceBlock());
- IRMapping bv;
- SmallVector<Location> locs(op->getOperandTypes().size(), op->getLoc());
- bv.map(op->getOperands(), body.addArguments(op->getOperandTypes(), locs));
-
- Operation *cloneInScope = rewriter.clone(*op, bv);
- rewriter.create<ForwardOp>(op->getLoc(), cloneInScope->getResults());
-
- rewriter.replaceOp(op, scope.getResults());
- return scope;
-}
-
-namespace {
-/// Instruct the inliner to inline everything. Scopes have no semantic meaning
-/// so moving operations in and out of them, regardless of whether their
-/// dialects have implemented an inliner interface, is valid.
-struct ScopeInliner : public InlinerInterface {
- using InlinerInterface::InlinerInterface;
-
- bool isLegalToInline(Operation *call, Operation *callable,
- bool wouldBeCloned) const override {
- return true;
- }
- bool isLegalToInline(Region *dest, Region *src, bool wouldBeCloned,
- IRMapping &valueMapping) const override {
- return true;
- }
- bool isLegalToInline(Operation *op, Region *dest, bool wouldBeCloned,
- IRMapping &valueMapping) const override {
- return true;
- }
-
- /// Don't recursively analyze operations, because they can all be "inlined".
- bool shouldAnalyzeRecursively(Operation *op) const override { return false; }
-
- /// Replace uses of the results with the `forward` op's operands.
- void handleTerminator(Operation *op,
- ArrayRef<Value> valuesToRepl) const override {
- assert(isa<linalg::transform::ForwardOp>(op));
- for (auto value : llvm::zip(op->getOperands(), valuesToRepl))
- std::get<1>(value).replaceAllUsesWith(std::get<0>(value));
- }
-};
-} // namespace
-
-FailureOr<SmallVector<Operation *>>
-linalg::transform::unwrapScope(linalg::transform::ScopeOp scope) {
- ScopeInliner interface(scope->getContext());
- SmallVector<Operation *> ops;
- scope.getBody().walk([&](Operation *op) { ops.push_back(op); });
- if (failed(inlineRegion(interface, &scope.getBody(), scope,
- scope.getOperands(), scope.getResults(),
- /*inlineLoc=*/{},
- /*shouldCloneInlinedRegion=*/false)))
- return failure();
- Rewriter(scope->getContext()).eraseOp(scope);
- return ops;
-}
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/StructuredTransformOpsExt.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/StructuredTransformOpsExt.cpp
index e5d14f0..75b309b 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/StructuredTransformOpsExt.cpp
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/IR/StructuredTransformOpsExt.cpp
@@ -7,8 +7,6 @@
#include "iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.h"
#include "iree-dialects/Dialect/LinalgExt/Passes/Passes.h"
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
-#include "iree-dialects/Dialect/LinalgTransform/ScopedTransform.h"
#include "iree-dialects/Transforms/ListenerCSE.h"
#include "iree-dialects/Transforms/TransformMatchers.h"
#include "mlir/Conversion/AffineToStandard/AffineToStandard.h"
@@ -369,112 +367,6 @@
status.attachNote(v.getLoc()) << "replacement value";
}
-//===----------------------------------------------------------------------===//
-// TODO: WILL MIGRATE
-//===----------------------------------------------------------------------===//
-
-using namespace mlir::linalg;
-
-//===---------------------------------------------------------------------===//
-// LowerToLLVMOp
-//===---------------------------------------------------------------------===//
-
-DiagnosedSilenceableFailure transform_ext::LowerToLLVMOp::apply(
- mlir::transform::TransformRewriter &rewriter,
- mlir::transform::TransformResults &result,
- mlir::transform::TransformState &state) {
- auto payloadOps = state.getPayloadOps(getTarget());
- if (!llvm::hasSingleElement(payloadOps) ||
- !isa<ModuleOp>(*payloadOps.begin()))
- return emitSilenceableError() << "expected single module target";
- ModuleOp moduleOp = cast<ModuleOp>(*payloadOps.begin());
-
- //===------------------------------------------------------------------===//
- // BEGIN: Copied from upstream, this needs to be retired once we have a
- // proper upstream transform op.
- //===------------------------------------------------------------------===//
-
- // TODO: it is feasible to scope lowering at arbitrary level and introduce
- // unrealized casts, but there needs to be the final module-wise cleanup in
- // the end. Keep module-level for now.
- PassManager pm(getContext());
-
- auto enableOpaquePointers = [](auto options) {
- options.useOpaquePointers = true;
- return options;
- };
-
- // Blanket-convert any remaining high-level vector ops to loops if any remain.
- pm.addNestedPass<func::FuncOp>(createConvertVectorToSCFPass());
- // Blanket-convert any remaining linalg ops to loops if any remain.
- pm.addNestedPass<func::FuncOp>(createConvertLinalgToLoopsPass());
- if (getEnableAsync()) {
- pm.addPass(createAsyncToAsyncRuntimePass());
- pm.addPass(createAsyncRuntimeRefCountingPass());
- pm.addPass(createAsyncRuntimeRefCountingOptPass());
- }
- pm.addPass(createCanonicalizerPass());
- // Blanket-convert any remaining affine ops if any remain.
- pm.addPass(createLowerAffinePass());
- // Convert SCF to CF (always needed).
- pm.addPass(createConvertSCFToCFPass());
- // Sprinkle some cleanups.
- pm.addPass(createCanonicalizerPass());
- pm.addPass(createCSEPass());
- {
- auto options = ConvertVectorToLLVMPassOptions();
- options.reassociateFPReductions = getReassociateFpReductions();
- options.force32BitVectorIndices = getEnableIndexOptimizations();
- options.armNeon = getEnableArmNeon();
- options.armSVE = getEnableArmSve();
- options.amx = getEnableAmx();
- options.x86Vector = getEnableX86vector();
- options.useOpaquePointers = true;
- pm.addPass(createConvertVectorToLLVMPass(options));
- }
- // Convert Math to LLVM (always needed).
- pm.addNestedPass<func::FuncOp>(createConvertMathToLLVMPass());
- // Expand complicated MemRef operations before lowering them.
- pm.addPass(memref::createExpandStridedMetadataPass());
- // The expansion may create affine expressions. Get rid of them.
- pm.addPass(createLowerAffinePass());
- // Convert MemRef to LLVM (always needed).
- pm.addPass(createFinalizeMemRefToLLVMConversionPass(
- enableOpaquePointers(FinalizeMemRefToLLVMConversionPassOptions{})));
- if (getEnableAsync())
- pm.addPass(createConvertAsyncToLLVMPass());
- // Convert Func to LLVM (always needed).
- pm.addPass(createConvertFuncToLLVMPass(
- enableOpaquePointers(ConvertFuncToLLVMPassOptions{})));
- // Convert Index to LLVM (always needed).
- pm.addPass(createConvertIndexToLLVMPass());
- // Convert remaining unrealized_casts (always needed).
- pm.addPass(createReconcileUnrealizedCastsPass());
-
- if (failed(pm.run(moduleOp)))
- return DiagnosedSilenceableFailure::definiteFailure();
-
- //===------------------------------------------------------------------===//
- // END: Copied from upstream, this needs to be retired once we have a
- // proper upstream transform op.
- //===------------------------------------------------------------------===//
-
- // Make all arguments noalias for now.
- // FIXME: this is a terrible hack!
- moduleOp->walk([](LLVM::LLVMFuncOp funcOp) {
- for (int64_t i = 0; i < funcOp.getNumArguments(); ++i) {
- if (!funcOp.getFunctionType()
- .getParamType(i)
- .isa<LLVM::LLVMPointerType>())
- continue;
- funcOp.setArgAttr(i, "llvm.noalias", UnitAttr::get(funcOp.getContext()));
- }
- });
-
- result.set(getTransformed().cast<OpResult>(), payloadOps);
- return DiagnosedSilenceableFailure::success();
-}
-
//===---------------------------------------------------------------------===//
// MatchCallbackOp
//===---------------------------------------------------------------------===//
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/Passes/CMakeLists.txt b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/Passes/CMakeLists.txt
index 9c27d11..1a75d03 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/Passes/CMakeLists.txt
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/Passes/CMakeLists.txt
@@ -1,5 +1,4 @@
add_mlir_library(IREELinalgTransformDialectPasses
- ExpertExpansion.cpp
TransformInterpreter.cpp
DEPENDS
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/Passes/ExpertExpansion.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/Passes/ExpertExpansion.cpp
deleted file mode 100644
index 66b6b0c..0000000
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/Passes/ExpertExpansion.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-// Copyright 2021 The IREE Authors
-//
-// Licensed under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
-#include "iree-dialects/Dialect/LinalgTransform/Passes.h"
-#include "iree-dialects/Dialect/LinalgTransform/SimplePatternRewriter.h"
-#include "mlir/Dialect/PDL/IR/PDLOps.h"
-#include "mlir/Dialect/PDLInterp/IR/PDLInterp.h"
-#include "mlir/IR/BuiltinOps.h"
-#include "mlir/IR/Diagnostics.h"
-#include "mlir/IR/PatternMatch.h"
-#include "mlir/Pass/Pass.h"
-#include "mlir/Pass/PassRegistry.h"
-#include "mlir/Rewrite/FrozenRewritePatternSet.h"
-#include "mlir/Rewrite/PatternApplicator.h"
-#include "llvm/Support/Debug.h"
-
-#define DEBUG_TYPE "expert-expansion"
-#define DBGS() (llvm::dbgs() << "[" DEBUG_TYPE "]")
-
-using namespace mlir;
-
-/// Expands the linalg::transform::ExpertOp instances in the `module` into lists
-/// of transformations as described by the `expansions` module that contains
-/// PDL.
-static void expandStrategyOps(ModuleOp module, ModuleOp expansions) {
- mlir::OwningOpRef<mlir::ModuleOp> clonedExpansions(
- cast<ModuleOp>(expansions->clone()));
- RewritePatternSet patterns(std::move(clonedExpansions));
- FrozenRewritePatternSet frozen(std::move(patterns));
- PatternApplicator applicator(frozen);
- applicator.applyDefaultCostModel();
-
- module.walk([&](linalg::transform::ExpertOp expertOp) {
- SimplePatternRewriter rewriter(expertOp);
- if (failed(applicator.matchAndRewrite(expertOp, rewriter))) {
- LLVM_DEBUG(DBGS() << "failed to rewrite strategy \""
- << expertOp.getExpertName() << "\"\n");
- }
- });
-}
-
-namespace {
-struct ExpertExpansion : public PassWrapper<ExpertExpansion, Pass> {
- MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(ExpertExpansion)
-
- Pass::Option<std::string> strategyModuleName{
- *this, "strategy-module-name", llvm::cl::init("strategies"),
- llvm::cl::desc(
- "Name of the nested module containing expert strategies.")};
-
- explicit ExpertExpansion(StringRef name = "strategies")
- : PassWrapper<ExpertExpansion, Pass>() {
- strategyModuleName = name.str();
- }
-
- ExpertExpansion(const ExpertExpansion &other)
- : PassWrapper<ExpertExpansion, Pass>(other) {
- strategyModuleName = other.strategyModuleName.getValue();
- }
-
- StringRef getArgument() const final {
- return "linalg-transform-expert-expansion";
- }
-
- void getDependentDialects(DialectRegistry ®istry) const override {
- registry.insert<pdl::PDLDialect, pdl_interp::PDLInterpDialect>();
- }
-
- StringRef getDescription() const final {
- return "Expands transformation experts into individual transformations";
- }
-
- bool canScheduleOn(RegisteredOperationName opName) const override {
- return true;
- }
-
- void runOnOperation() override {
- auto module = dyn_cast<ModuleOp>(getOperation());
- if (!module)
- return signalPassFailure();
-
- ModuleOp strategyModule = nullptr;
- for (auto nestedModule : module.getOps<ModuleOp>()) {
- std::optional<StringRef> name = nestedModule.getSymName();
- if (!name)
- continue;
-
- if (*name == strategyModuleName) {
- if (!strategyModule) {
- strategyModule = nestedModule;
- continue;
- }
- InFlightDiagnostic diag = nestedModule->emitError()
- << "more than one strategy module provided";
- diag.attachNote(strategyModule->getLoc()) << "previous strategy module";
- return signalPassFailure();
- }
- }
-
- if (!strategyModule) {
- module->emitError() << "expected a nested strategy module";
- return signalPassFailure();
- }
-
- expandStrategyOps(module, strategyModule);
- strategyModule->erase();
- }
-};
-} // namespace
-
-void mlir::linalg::transform::registerLinalgTransformExpertExpansionPass() {
- PassRegistration<ExpertExpansion>(
- []() { return std::make_unique<ExpertExpansion>(); });
-}
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/Passes/TransformInterpreter.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/Passes/TransformInterpreter.cpp
index 141ba9b..26c4777 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/Passes/TransformInterpreter.cpp
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgTransform/Passes/TransformInterpreter.cpp
@@ -6,7 +6,6 @@
#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtDialect.h"
#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtOps.h"
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
#include "iree-dialects/Dialect/LinalgTransform/Passes.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
@@ -60,15 +59,14 @@
bufferization::BufferizationDialect,
func::FuncDialect,
linalg::LinalgDialect,
- linalg::transform::LinalgTransformDialect,
LLVM::LLVMDialect,
pdl::PDLDialect,
pdl_interp::PDLInterpDialect,
scf::SCFDialect,
tensor::TensorDialect,
vector::VectorDialect
- // clang-format on
- >();
+ // clang-format on
+ >();
// TODO: these should be registered by the extension instead, but there is
// no support for it in core currently.
diff --git a/llvm-external-projects/iree-dialects/python/CMakeLists.txt b/llvm-external-projects/iree-dialects/python/CMakeLists.txt
index ad42597..8169057 100644
--- a/llvm-external-projects/iree-dialects/python/CMakeLists.txt
+++ b/llvm-external-projects/iree-dialects/python/CMakeLists.txt
@@ -31,15 +31,6 @@
DIALECT_NAME iree_linalg_ext
)
-declare_mlir_dialect_python_bindings(
- ADD_TO_PARENT IREEDialectsPythonSources.Dialects
- ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/iree/compiler"
- TD_FILE dialects/LinalgTransformBinding.td
- SOURCES dialects/iree_linalg_transform.py
- dialects/_iree_linalg_transform_ops_ext.py
- DIALECT_NAME iree_linalg_transform
- )
-
declare_mlir_dialect_extension_python_bindings(
ADD_TO_PARENT IREEDialectsPythonSources.Dialects
ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/iree/compiler"
diff --git a/llvm-external-projects/iree-dialects/python/IREEDialectsModule.cpp b/llvm-external-projects/iree-dialects/python/IREEDialectsModule.cpp
index 1a85609..3a55179 100644
--- a/llvm-external-projects/iree-dialects/python/IREEDialectsModule.cpp
+++ b/llvm-external-projects/iree-dialects/python/IREEDialectsModule.cpp
@@ -51,23 +51,6 @@
py::arg("context") = py::none(), py::arg("load") = true);
//===--------------------------------------------------------------------===//
- // LinalgTransform
- //===--------------------------------------------------------------------===//
- auto iree_linalg_transform_m = m.def_submodule("iree_linalg_transform");
- mlirIREELinalgTransformRegisterPasses();
- iree_linalg_transform_m.def(
- "register_dialect",
- [](MlirContext context, bool load) {
- MlirDialectHandle handle =
- mlirGetDialectHandle__iree_linalg_transform__();
- mlirDialectHandleRegisterDialect(handle, context);
- if (load) {
- mlirDialectHandleLoadDialect(handle, context);
- }
- },
- py::arg("context") = py::none(), py::arg("load") = true);
-
- //===--------------------------------------------------------------------===//
// TransformDialect
//===--------------------------------------------------------------------===//
auto transform_m = m.def_submodule("transform");
diff --git a/llvm-external-projects/iree-dialects/python/iree/compiler/dialects/LinalgTransformBinding.td b/llvm-external-projects/iree-dialects/python/iree/compiler/dialects/LinalgTransformBinding.td
deleted file mode 100644
index f606e8c..0000000
--- a/llvm-external-projects/iree-dialects/python/iree/compiler/dialects/LinalgTransformBinding.td
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2021 The IREE Authors
-//
-// Licensed under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-#ifndef PYTHON_BINDINGS_IREE_LINALGTRANSFORM_BINDING
-#define PYTHON_BINDINGS_IREE_LINALGTRANSFORM_BINDING
-
-include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.td"
-
-#endif // PYTHON_BINDINGS_IREE_LINALGTRANSFORM_BINDING
diff --git a/llvm-external-projects/iree-dialects/python/iree/compiler/dialects/_iree_linalg_transform_ops_ext.py b/llvm-external-projects/iree-dialects/python/iree/compiler/dialects/_iree_linalg_transform_ops_ext.py
deleted file mode 100644
index 2dc4516..0000000
--- a/llvm-external-projects/iree-dialects/python/iree/compiler/dialects/_iree_linalg_transform_ops_ext.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# Copyright 2021 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-# Disable PyType, it does not seem to like the specialization pattern used in
-# MLIR.
-# pytype: skip-file
-try:
- from .. import ir
- from ..dialects import pdl
- from ._ods_common import (
- extend_opview_class as _ods_extend_opview_class,
- segmented_accessor as _ods_segmented_accessor,
- equally_sized_accessor as _ods_equally_sized_accessor,
- get_default_loc_context as _ods_get_default_loc_context,
- get_op_result_or_value as _get_op_result_or_value,
- get_op_results_or_values as _get_op_results_or_values,
- )
- from typing import Optional, Sequence, Union
-except ImportError as e:
- raise RuntimeError("Error loading imports from extension module") from e
-BoolArg = Optional[Union[bool, ir.BoolAttr]]
-IntArg = Optional[Union[int, ir.IntegerAttr]]
-IntListArg = Optional[Union[Sequence[int], ir.ArrayAttr]]
-IntListListArg = Optional[
- Union[Sequence[Union[Sequence[int], ir.ArrayAttr]], ir.ArrayAttr]
-]
-StringArg = Optional[Union[str, ir.StringAttr]]
-StringListArg = Optional[Union[Sequence[str], ir.ArrayAttr]]
-
-
-def _defaulted_ensure(f):
- def inner(value, default=None):
- assert value is not None or default is not None
- return f(default if value is None else value)
-
- return inner
-
-
-@_defaulted_ensure
-def _ensure_int_array_attr(value: IntListArg):
- i64 = ir.IntegerType.get_signless(64)
- if isinstance(value, Sequence):
- return ir.ArrayAttr.get([ir.IntegerAttr.get(i64, i) for i in value])
- return value
-
-
-@_defaulted_ensure
-def _ensure_string_array_attr(value: StringListArg):
- if isinstance(value, Sequence):
- return ir.ArrayAttr.get([ir.StringAttr.get(str(i)) for i in value])
- return value
-
-
-@_defaulted_ensure
-def _ensure_array_of_array_attr(value: IntListListArg):
- if isinstance(value, Sequence):
- return ir.ArrayAttr.get([_ensure_int_array_attr(inner) for inner in value])
- return value
-
-
-@_defaulted_ensure
-def _ensure_int_attr(value: IntArg):
- if isinstance(value, int):
- return ir.IntegerAttr.get(ir.IntegerType.get_signless(64), value)
- return value
-
-
-@_defaulted_ensure
-def _ensure_bool_attr(value: BoolArg):
- if isinstance(value, bool):
- return ir.BoolAttr.get(value)
- return value
-
-
-@_defaulted_ensure
-def _ensure_string_attr(value: StringArg):
- if isinstance(value, str):
- return ir.StringAttr.get(value)
- return value
-
-
-def _count_expected_loops(tile_sizes: ir.ArrayAttr) -> int:
- # Number of loops = number of tile sizes != 0
- zero = _ensure_int_attr(0)
- return len(list(tile_sizes)) - list(tile_sizes).count(zero)
-
-
-##===----------------------------------------------------------------------===##
-## LinalgExt specific transforms
-##===----------------------------------------------------------------------===##
-
-
-class TileToLinalgExtTileOp:
- """Specialization for the TileToLinalgExtTileOp class."""
-
- def __init__(
- self,
- target: Union[ir.Value, ir.Operation, ir.OpView],
- *,
- sizes: IntListArg = None,
- loc=None,
- ip=None
- ):
- sizes = _ensure_int_array_attr(sizes, [])
- operation_type = pdl.OperationType.get()
- super().__init__(operation_type, target, sizes, loc=loc, ip=ip)
-
-
-class FuseIntoContainingOp:
- """Specialization for the FuseIntoContainingOp class."""
-
- def __init__(
- self,
- producerOp: Union[ir.Value, ir.Operation, ir.OpView],
- *,
- containingOp: Union[ir.Value, ir.Operation, ir.OpView],
- loc=None,
- ip=None
- ):
- super().__init__([], producerOp, containingOp, loc=loc, ip=ip)
diff --git a/llvm-external-projects/iree-dialects/python/iree/compiler/dialects/iree_linalg_transform.py b/llvm-external-projects/iree-dialects/python/iree/compiler/dialects/iree_linalg_transform.py
deleted file mode 100644
index 8bb7799..0000000
--- a/llvm-external-projects/iree-dialects/python/iree/compiler/dialects/iree_linalg_transform.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright 2021 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-from ._iree_linalg_transform_ops_gen import *
-from .._mlir_libs._ireeDialects.iree_linalg_transform import *
diff --git a/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/failure.mlir b/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/failure.mlir
deleted file mode 100644
index 950351b..0000000
--- a/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/failure.mlir
+++ /dev/null
@@ -1,25 +0,0 @@
-// RUN: iree-dialects-opt --transform-dialect-interpreter --split-input-file --verify-diagnostics --allow-unregistered-dialect %s
-
-module {
- func.func public @no_outlining() {
- // expected-note @below {{target op}}
- "some.operation"() ({}, {}) : () -> ()
- return
- }
-
- transform.with_pdl_patterns {
- ^bb0(%arg0: !pdl.operation):
- pdl.pattern @some_operation : benefit(1) {
- %0 = operation "some.operation"
- rewrite %0 with "transform.dialect"
- }
-
- transform.sequence %arg0: !pdl.operation failures(propagate) {
- ^bb1(%arg1: !pdl.operation):
- %0 = pdl_match @some_operation in %arg1 : (!pdl.operation) -> !pdl.operation
- // Make sure we don't crash on wrong operation type.
- // expected-error@below {{failed to outline}}
- transform.loop.outline %0 {func_name = "outlined"} : (!pdl.operation) -> (!pdl.operation, !pdl.operation)
- }
- }
-}
diff --git a/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/roundtrip.mlir b/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/roundtrip.mlir
deleted file mode 100644
index e0ba197..0000000
--- a/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/roundtrip.mlir
+++ /dev/null
@@ -1,30 +0,0 @@
-// RUN: iree-dialects-opt %s | FileCheck %s
-
-// CHECK: transform.sequence
-transform.sequence failures(propagate) {
-^bb0(%arg0: !pdl.operation):
- // CHECK: %[[OPS:.*]] = pdl_match @match1 in %{{.*}}
- %0 = pdl_match @match1 in %arg0 : (!pdl.operation) -> !pdl.operation
- // CHECK: %[[TILED:.*]], %{{.*}}:3 = transform.structured.tile_using_for %[[OPS]][4, 4, 4]
- %1, %loops1:3 = transform.structured.tile_using_for %0 [4, 4, 4]
- : (!pdl.operation) -> (!pdl.operation, !pdl.operation, !pdl.operation, !pdl.operation)
- // CHECK: %[[TILED2:.*]], %{{.*}}:3 = transform.structured.tile_using_for %[[TILED]]
- %2, %loops2:3 = transform.structured.tile_using_for %1 [2, 2, 2]
- : (!pdl.operation) -> (!pdl.operation, !pdl.operation, !pdl.operation, !pdl.operation)
- // CHECK: %[[PADDED:.*]], %{{.*}}, %{{.*}} = transform.structured.pad %[[TILED2]] {pack_paddings = [1, 1, 0]}
- %3, %pad, %copy_back = transform.structured.pad %2 {pack_paddings = [1, 1, 0]} : (!pdl.operation) -> (!pdl.operation, !pdl.operation, !pdl.operation)
- // CHECK: %{{.*}} = transform.structured.vectorize_children_and_apply_patterns %[[PADDED]] {vectorize_padding}
- %4 = transform.structured.vectorize_children_and_apply_patterns %3 { vectorize_padding } : (!pdl.operation) -> !pdl.operation
- // CHECK: %[[OPS2:.*]] = pdl_match @{{.*}}
- %5 = pdl_match @match2 in %arg0 : (!pdl.operation) -> !pdl.operation
- // CHECK: transform.structured.vectorize_children_and_apply_patterns %[[OPS2]]
- transform.structured.vectorize_children_and_apply_patterns %5 : (!pdl.operation) -> !pdl.operation
- // CHECK: %[[FUNC:.*]] = transform.structured.match ops{["func.func"]} in %arg0
- // CHECK: apply_patterns.vector.lower_contraction
- %6 = transform.structured.match ops{["func.func"]} in %arg0 : (!pdl.operation) -> !pdl.operation
- transform.apply_patterns to %6 {
- transform.apply_patterns.vector.lower_contraction lowering_strategy = "outerproduct"
- } : !pdl.operation
- // CHECK: lower_to_llvm
- lower_to_llvm %arg0 : (!pdl.operation) -> !pdl.operation
-}
diff --git a/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/scoped.mlir b/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/scoped.mlir
deleted file mode 100644
index 7e66f09..0000000
--- a/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/scoped.mlir
+++ /dev/null
@@ -1,30 +0,0 @@
-// RUN: iree-dialects-opt --test-wrap-scope='opname=arith.addi' %s | FileCheck %s --check-prefix WRAP
-// RUN: iree-dialects-opt --test-unwrap-scope %s | FileCheck %s --check-prefix UNWRAP
-
-// WRAP-LABEL: @test_wrap
-// WRAP-SAME: (%[[ARG0:.*]]: i32) -> i32
-func.func @test_wrap(%arg0: i32) -> i32 {
- // WRAP: %[[V:.*]] = iree_linalg_transform.util.scope(%[[ARG0]], %[[ARG0]]) {
- // WRAP-NEXT: ^[[B:.*]](%[[ARG1:.*]]: i32, %[[ARG2:.*]]: i32):
- // WRAP-NEXT: %[[ADD:.*]] = arith.addi %[[ARG2]], %[[ARG2]]
- // WRAP-NEXT: iree_linalg_transform.util.forward %[[ADD]]
- // WRAP-NEXT: } : (i32, i32) -> i32
- %0 = arith.addi %arg0, %arg0 : i32
- // WRAP: return %[[V]]
- return %0 : i32
-}
-
-// UNWRAP-LABEL: @test_unwrap
-// UNWRAP-SAME: (%[[ARG0:.*]]: i32) -> (i32, i32)
-func.func @test_unwrap(%arg0: i32) -> (i32, i32) {
- // UNWRAP: %[[V0:.*]] = arith.addi %[[ARG0]], %[[ARG0]]
- // UNWRAP-NEXT: %[[V1:.*]] = arith.addi %[[V0]], %[[ARG0]]
- %0:2 = iree_linalg_transform.util.scope(%arg0) {
- ^bb0(%arg1: i32):
- %1 = arith.addi %arg1, %arg1 : i32
- %2 = arith.addi %1, %arg1 : i32
- iree_linalg_transform.util.forward %1, %2 : i32, i32
- } : (i32) -> (i32, i32)
- // UNWRAP-NEXT: return %[[V0]], %[[V1]]
- return %0#0, %0#1 : i32, i32
-}
diff --git a/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/single-tiling-full-script.mlir b/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/single-tiling-full-script.mlir
deleted file mode 100644
index 2d4c96b..0000000
--- a/llvm-external-projects/iree-dialects/test/Dialect/linalg_transform/single-tiling-full-script.mlir
+++ /dev/null
@@ -1,37 +0,0 @@
-// RUN: iree-dialects-opt --transform-dialect-interpreter %s | FileCheck %s
-
-// CHECK-LABEL: func @matmul_tensors
-// CHECK-NOT: linalg
-// CHECK: llvm
-func.func @matmul_tensors(
- %arg0: tensor<128x128xf32>, %arg1: tensor<128x128xf32>, %arg2: tensor<128x128xf32> { linalg.inplaceable = true})
- -> tensor<128x128xf32> {
- %0 = linalg.matmul ins(%arg0, %arg1: tensor<128x128xf32>, tensor<128x128xf32>)
- outs(%arg2: tensor<128x128xf32>)
- -> tensor<128x128xf32>
-
- return %0 : tensor<128x128xf32>
-}
-
-
-transform.sequence failures(propagate) {
-^bb1(%module_op: !transform.any_op):
- %0 = transform.structured.match ops{["linalg.matmul"]} in %module_op : (!transform.any_op) -> !transform.any_op
- %1, %loops:3 = transform.structured.tile_using_for %0 [4, 4, 4]
- : (!transform.any_op) -> (!transform.any_op, !transform.any_op, !transform.any_op, !transform.any_op)
- %2 = get_parent_op %1 {isolated_from_above} : (!transform.any_op) -> !transform.any_op
- transform.structured.vectorize_children_and_apply_patterns %2 { vectorize_padding } : (!transform.any_op) -> !transform.any_op
- %module_op1 = transform.bufferization.one_shot_bufferize layout{IdentityLayoutMap} %module_op
- {bufferize_function_boundaries = true} : (!transform.any_op) -> !transform.any_op
-
- %func = transform.structured.match ops{["func.func"]} in %module_op1
- : (!transform.any_op) -> !transform.any_op
- transform.apply_patterns to %func {
- transform.apply_patterns.vector.lower_contraction lowering_strategy = "outerproduct"
- } : !transform.any_op
- transform.apply_patterns to %func {
- transform.apply_patterns.vector.lower_transpose lowering_strategy = "shuffle_1d"
- } : !transform.any_op
-
- lower_to_llvm %module_op1 : (!transform.any_op) -> !transform.any_op
-}
diff --git a/llvm-external-projects/iree-dialects/test/lib/CMakeLists.txt b/llvm-external-projects/iree-dialects/test/lib/CMakeLists.txt
index 557daa8..e31af32 100644
--- a/llvm-external-projects/iree-dialects/test/lib/CMakeLists.txt
+++ b/llvm-external-projects/iree-dialects/test/lib/CMakeLists.txt
@@ -1,2 +1 @@
-add_subdirectory(Dialect)
add_subdirectory(Transforms)
diff --git a/llvm-external-projects/iree-dialects/test/lib/Dialect/CMakeLists.txt b/llvm-external-projects/iree-dialects/test/lib/Dialect/CMakeLists.txt
deleted file mode 100644
index 1da2860..0000000
--- a/llvm-external-projects/iree-dialects/test/lib/Dialect/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-add_subdirectory(LinalgTransform)
diff --git a/llvm-external-projects/iree-dialects/test/lib/Dialect/LinalgTransform/CMakeLists.txt b/llvm-external-projects/iree-dialects/test/lib/Dialect/LinalgTransform/CMakeLists.txt
deleted file mode 100644
index 261b91d..0000000
--- a/llvm-external-projects/iree-dialects/test/lib/Dialect/LinalgTransform/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-add_mlir_library(IREELinalgTransformTestPasses
- TestScopedTransform.cpp
-
- EXCLUDE_FROM_LIBMLIR
-
- DEPENDS
- mlir-headers
-
- LINK_LIBS PUBLIC
- IREELinalgTransformDialectPasses
- MLIRPass
- )
diff --git a/llvm-external-projects/iree-dialects/test/lib/Dialect/LinalgTransform/TestScopedTransform.cpp b/llvm-external-projects/iree-dialects/test/lib/Dialect/LinalgTransform/TestScopedTransform.cpp
deleted file mode 100644
index 8d46c1a..0000000
--- a/llvm-external-projects/iree-dialects/test/lib/Dialect/LinalgTransform/TestScopedTransform.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright 2021 The IREE Authors
-//
-// Licensed under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-#include "iree-dialects/Dialect/LinalgTransform/ScopedTransform.h"
-#include "mlir/Pass/Pass.h"
-
-using namespace mlir;
-using namespace mlir::linalg;
-
-namespace {
-struct TestWrapScopePass : public PassWrapper<TestWrapScopePass, Pass> {
- MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(TestWrapScopePass)
-
- TestWrapScopePass() = default;
- TestWrapScopePass(const TestWrapScopePass &other) : PassWrapper(other) {}
-
- StringRef getArgument() const final { return "test-wrap-scope"; }
- StringRef getDescription() const final { return "Test wrap scope pass."; }
- bool canScheduleOn(RegisteredOperationName opName) const override {
- return true;
- }
-
- void getDependentDialects(DialectRegistry ®istry) const override {
- registry.insert<linalg::transform::LinalgTransformDialect>();
- }
-
- void runOnOperation() override {
- getOperation()->walk([&](Operation *op) {
- if (op->getName().getStringRef() != opToWrap)
- return;
- linalg::transform::wrapInScope(op);
- });
- }
-
- Pass::Option<std::string> opToWrap{*this, "opname",
- llvm::cl::desc("Op to wrap")};
-};
-
-struct TestUnwrapScopePass : public PassWrapper<TestUnwrapScopePass, Pass> {
- MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(TestUnwrapScopePass)
- StringRef getArgument() const final { return "test-unwrap-scope"; }
- StringRef getDescription() const final { return "Test unwrap scope pass."; }
- bool canScheduleOn(RegisteredOperationName opName) const override {
- return true;
- }
-
- void runOnOperation() override {
- getOperation()->walk(
- [](linalg::transform::ScopeOp scope) { (void)unwrapScope(scope); });
- }
-};
-} // namespace
-
-namespace mlir {
-namespace test_ext {
-void registerTestLinalgTransformWrapScope() {
- PassRegistration<TestWrapScopePass>();
- PassRegistration<TestUnwrapScopePass>();
-}
-} // namespace test_ext
-} // namespace mlir
diff --git a/llvm-external-projects/iree-dialects/test/python/smoketest.py b/llvm-external-projects/iree-dialects/test/python/smoketest.py
index fe1abb7..dae437c 100644
--- a/llvm-external-projects/iree-dialects/test/python/smoketest.py
+++ b/llvm-external-projects/iree-dialects/test/python/smoketest.py
@@ -3,9 +3,7 @@
import iree.compiler.ir
from iree.compiler.dialects import iree_input as iree_d
from iree.compiler.dialects import iree_linalg_ext
-from iree.compiler.dialects import iree_linalg_transform
with iree.compiler.ir.Context() as ctx:
iree_d.register_dialect()
iree_linalg_ext.register_dialect()
- iree_linalg_transform.register_dialect()
diff --git a/llvm-external-projects/iree-dialects/tools/iree-dialects-opt/CMakeLists.txt b/llvm-external-projects/iree-dialects/tools/iree-dialects-opt/CMakeLists.txt
index fe4625d..548b60e 100644
--- a/llvm-external-projects/iree-dialects/tools/iree-dialects-opt/CMakeLists.txt
+++ b/llvm-external-projects/iree-dialects/tools/iree-dialects-opt/CMakeLists.txt
@@ -7,7 +7,6 @@
IREELinalgExtTransforms
IREELinalgTransformDialect
IREELinalgTransformDialectPasses
- IREELinalgTransformTestPasses
IREETransformsTestPasses
# Core dialects.
MLIRAffineDialect
diff --git a/llvm-external-projects/iree-dialects/tools/iree-dialects-opt/iree-dialects-opt.cpp b/llvm-external-projects/iree-dialects/tools/iree-dialects-opt/iree-dialects-opt.cpp
index 692f0c5..b7e73f3 100644
--- a/llvm-external-projects/iree-dialects/tools/iree-dialects-opt/iree-dialects-opt.cpp
+++ b/llvm-external-projects/iree-dialects/tools/iree-dialects-opt/iree-dialects-opt.cpp
@@ -8,7 +8,6 @@
#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtDialect.h"
#include "iree-dialects/Dialect/LinalgExt/Passes/Passes.h"
#include "iree-dialects/Dialect/LinalgExt/TransformOps/LinalgExtTransformOps.h"
-#include "iree-dialects/Dialect/LinalgTransform/LinalgTransformOps.h"
#include "iree-dialects/Dialect/LinalgTransform/Passes.h"
#include "iree-dialects/Dialect/LinalgTransform/StructuredTransformOpsExt.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
@@ -46,7 +45,6 @@
namespace mlir {
namespace test_ext {
/// Test passes, do not deserve an include.
-void registerTestLinalgTransformWrapScope();
void registerTestListenerPasses();
} // namespace test_ext
} // namespace mlir
@@ -61,7 +59,6 @@
// Local dialects
mlir::iree_compiler::IREE::Input::IREEInputDialect,
mlir::iree_compiler::IREE::LinalgExt::IREELinalgExtDialect,
- mlir::linalg::transform::LinalgTransformDialect,
// Upstream dialects
mlir::async::AsyncDialect,
mlir::arith::ArithDialect,
@@ -86,10 +83,8 @@
// Local dialect passes.
mlir::iree_compiler::IREE::LinalgExt::registerPasses();
mlir::linalg::transform::registerTransformDialectInterpreterPass();
- mlir::linalg::transform::registerLinalgTransformExpertExpansionPass();
mlir::linalg::transform::registerDropSchedulePass();
// Local test passes.
- mlir::test_ext::registerTestLinalgTransformWrapScope();
mlir::test_ext::registerTestListenerPasses();
// External models.