[LinalgExt] Delete dead codes. (#16104)
The original users are deleted in
https://github.com/openxla/iree/commit/f0c83805e71bdce6650bbc5ef0a92faf58767346
and
https://github.com/openxla/iree/commit/db83cc4fa9b99056cddd8b9fa6b2586039ecc8cc
They were used by some LinalgExt transforms ops, which are already
upstreamed, so the utils are no longer needed.
diff --git a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgExt/Transforms/Utils.h b/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgExt/Transforms/Utils.h
deleted file mode 100644
index f6a407b..0000000
--- a/llvm-external-projects/iree-dialects/include/iree-dialects/Dialect/LinalgExt/Transforms/Utils.h
+++ /dev/null
@@ -1,72 +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_DIALECTS_DIALECT_LINALGEXT_TRANSFORMS_UTILS_H_
-#define IREE_DIALECTS_DIALECT_LINALGEXT_TRANSFORMS_UTILS_H_
-
-#include "mlir/Dialect/Affine/IR/AffineOps.h"
-#include "mlir/Dialect/Linalg/Transforms/Transforms.h"
-#include "mlir/IR/AffineExpr.h"
-#include "mlir/Support/LLVM.h"
-
-namespace mlir {
-class Location;
-class OpBuilder;
-class Operation;
-class Value;
-
-namespace tensor {
-class ExtractSliceOp;
-}
-
-namespace iree_compiler {
-namespace IREE {
-namespace LinalgExt {
-
-/// Helper function which auto-completes the missing trailing dimensions to
-/// always be offset = 0, size = dim, stride = 1.
-void completeOffsetsSizesAndStrides(OpBuilder &b, Location loc, Value tensor,
- ArrayRef<Value> leadingOffsets,
- ArrayRef<Value> leadingSizes,
- ArrayRef<Value> leadingStrides,
- SmallVectorImpl<Value> &offsets,
- SmallVectorImpl<Value> &sizes,
- SmallVectorImpl<Value> &strides);
-
-/// Create a tensor::ExtractSliceOp by auto-completing the missing trailing
-/// dimensions to always be offset = 0, size = dim, stride = 1.
-Value createSubsetExtractOpFromLeadingOffsetsSizesAndStrides(
- OpBuilder &b, Location loc, Value tensor,
- llvm::ArrayRef<Value> leadingOffsets, ArrayRef<Value> leadingSizes,
- ArrayRef<Value> leadingStrides);
-
-/// Create a tensor::InsertSliceOp by auto-completing the missing trailing
-/// dimensions to always be offset = 0, size = dim, stride = 1.
-Value createSubsetInsertOpFromLeadingOffsetsSizesAndStrides(
- OpBuilder &b, Location loc, Value tensor, Value dest,
- ArrayRef<Value> leadingOffsets, ArrayRef<Value> leadingSizes,
- ArrayRef<Value> leadingStrides);
-
-/// Insert the `source` tensor into the `dest` tensor by creating the relevant
-/// `subset_insert` op. The details of the `subset_insert` op are retrieved
-/// from the `subset_extract` op so that they form a matching extract/insert
-/// pair.
-Value createMatchingSubsetInsertOp(OpBuilder &b, Location loc,
- tensor::ExtractSliceOp subsetExtractOp,
- Value source, Value dest);
-
-/// Create the parallel insertion terminator version of
-/// `createMatchingSubsetInsertOp`.
-void createMatchingParallelSubsetInsertOp(
- OpBuilder &b, Location loc, tensor::ExtractSliceOp subsetExtractOp,
- Value source, Value dest);
-
-} // namespace LinalgExt
-} // namespace IREE
-} // namespace iree_compiler
-} // namespace mlir
-
-#endif // IREE_DIALECTS_DIALECT_LINALGEXT_TRANSFORMS_UTILS_H_
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/CMakeLists.txt b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/CMakeLists.txt
index 73c75d8..3ec7fc7 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/CMakeLists.txt
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/CMakeLists.txt
@@ -1,6 +1,5 @@
add_mlir_library(IREELinalgExtTransforms
ForeachThreadToAsync.cpp
- Utils.cpp
PARTIAL_SOURCES_INTENDED
DEPENDS
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/ForeachThreadToAsync.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/ForeachThreadToAsync.cpp
index d7b3a66..427d4fb 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/ForeachThreadToAsync.cpp
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/ForeachThreadToAsync.cpp
@@ -7,7 +7,6 @@
#include <cstdlib>
#include "iree-dialects/Dialect/LinalgExt/Transforms/Transforms.h"
-#include "iree-dialects/Dialect/LinalgExt/Transforms/Utils.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Async/IR/Async.h"
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/Utils.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/Utils.cpp
deleted file mode 100644
index 0a86658..0000000
--- a/llvm-external-projects/iree-dialects/lib/Dialect/LinalgExt/Transforms/Utils.cpp
+++ /dev/null
@@ -1,96 +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/LinalgExt/Transforms/Utils.h"
-
-#include "iree-dialects/Dialect/LinalgExt/IR/LinalgExtOps.h"
-#include "mlir/Dialect/Affine/IR/AffineOps.h"
-#include "mlir/Dialect/Linalg/Transforms/Transforms.h"
-#include "mlir/Dialect/Tensor/IR/Tensor.h"
-#include "mlir/IR/Operation.h"
-#include "mlir/IR/OperationSupport.h"
-#include "mlir/IR/PatternMatch.h"
-#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
-
-using namespace mlir;
-using namespace mlir::iree_compiler::IREE::LinalgExt;
-
-void mlir::iree_compiler::IREE::LinalgExt::completeOffsetsSizesAndStrides(
- OpBuilder &b, Location loc, Value tensor, ArrayRef<Value> leadingOffsets,
- ArrayRef<Value> leadingSizes, ArrayRef<Value> leadingStrides,
- SmallVectorImpl<Value> &offsets, SmallVectorImpl<Value> &sizes,
- SmallVectorImpl<Value> &strides) {
- assert(leadingOffsets.size() == leadingSizes.size() &&
- "expected matching lengths");
- assert(leadingSizes.size() == leadingStrides.size() &&
- "expected matching lengths");
-
- auto rankedTensorType = tensor.getType().cast<RankedTensorType>();
- int64_t tensorRank = rankedTensorType.getRank();
- int64_t leadingRank = leadingOffsets.size();
- offsets = SmallVector<Value>(leadingOffsets.begin(), leadingOffsets.end());
- sizes = SmallVector<Value>(leadingSizes.begin(), leadingSizes.end());
- strides = SmallVector<Value>(leadingStrides.begin(), leadingStrides.end());
- if (leadingRank >= tensorRank)
- return;
- Value zero = b.create<arith::ConstantIndexOp>(loc, 0);
- Value one = b.create<arith::ConstantIndexOp>(loc, 1);
- for (int64_t i = leadingRank, e = tensorRank; i < e; ++i) {
- offsets.push_back(zero);
- sizes.push_back(b.createOrFold<tensor::DimOp>(loc, tensor, i));
- strides.push_back(one);
- }
-}
-
-/// Create a tensor::ExtractSliceOp by auto-completing the missing trailing
-/// dimensions to always be offset = 0, size = dim, stride = 1.
-Value mlir::iree_compiler::IREE::LinalgExt::
- createSubsetExtractOpFromLeadingOffsetsSizesAndStrides(
- OpBuilder &b, Location loc, Value tensor,
- ArrayRef<Value> leadingOffsets, ArrayRef<Value> leadingSizes,
- ArrayRef<Value> leadingStrides) {
- SmallVector<Value> offsets, sizes, strides;
- completeOffsetsSizesAndStrides(b, loc, tensor, leadingOffsets, leadingSizes,
- leadingStrides, offsets, sizes, strides);
- return b.createOrFold<tensor::ExtractSliceOp>(loc, tensor, offsets, sizes,
- strides);
-}
-
-/// Create a tensor::InsertSliceOp by auto-completing the missing trailing
-/// dimensions to always be offset = 0, size = dim, stride = 1.
-Value mlir::iree_compiler::IREE::LinalgExt::
- createSubsetInsertOpFromLeadingOffsetsSizesAndStrides(
- OpBuilder &b, Location loc, Value tensor, Value dest,
- ArrayRef<Value> leadingOffsets, ArrayRef<Value> leadingSizes,
- ArrayRef<Value> leadingStrides) {
- SmallVector<Value> offsets, sizes, strides;
- completeOffsetsSizesAndStrides(b, loc, tensor, leadingOffsets, leadingSizes,
- leadingStrides, offsets, sizes, strides);
- return b.createOrFold<tensor::InsertSliceOp>(loc, tensor, dest, offsets,
- sizes, strides);
-}
-
-/// Insert the `source` tensor into the `dest` tensor by creating the relevant
-/// `subset_insert` op. The details of the `subset_insert` op are retrieved
-/// from the `subset_extract` op so that they form a matching extract/insert
-/// pair.
-Value mlir::iree_compiler::IREE::LinalgExt::createMatchingSubsetInsertOp(
- OpBuilder &b, Location loc, tensor::ExtractSliceOp subsetExtractOp,
- Value source, Value dest) {
- return b.create<tensor::InsertSliceOp>(
- loc, subsetExtractOp.getSource().getType(), source, dest,
- subsetExtractOp.getOffsets(), subsetExtractOp.getSizes(),
- subsetExtractOp.getStrides(), subsetExtractOp.getStaticOffsets(),
- subsetExtractOp.getStaticSizes(), subsetExtractOp.getStaticStrides());
-}
-
-void mlir::iree_compiler::IREE::LinalgExt::createMatchingParallelSubsetInsertOp(
- OpBuilder &b, Location loc, tensor::ExtractSliceOp subsetExtractOp,
- Value source, Value dest) {
- b.create<tensor::ParallelInsertSliceOp>(
- loc, source, dest, subsetExtractOp.getMixedOffsets(),
- subsetExtractOp.getMixedSizes(), subsetExtractOp.getMixedStrides());
-}