Files
clang-p2996/mlir/lib/Dialect/Linalg/Transforms/PassDetail.h
MaheshRavishankar 4142932a83 [mlir][Linalg] Move named op conversions out of canonicalizations.
These conversions are better suited to be applied at whole tensor
level. Applying these as canonicalizations end up triggering such
canonicalizations at all levels of the stack which might be
undesirable. For example some of the resulting code patterns wont
bufferize in-place and need additional stack buffers. Best is to be
more deliberate in when these canonicalizations apply.

Differential Revision: https://reviews.llvm.org/D115912
2021-12-20 10:19:05 -08:00

55 lines
1.3 KiB
C++

//===- PassDetail.h - Linalg Pass class details -----------------*- C++ -*-===//
//
// Part of the LLVM Project, 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 DIALECT_LINALG_TRANSFORMS_PASSDETAIL_H_
#define DIALECT_LINALG_TRANSFORMS_PASSDETAIL_H_
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/IR/Dialect.h"
#include "mlir/Pass/Pass.h"
namespace mlir {
// Forward declaration from Dialect.h
template <typename ConcreteDialect>
void registerDialect(DialectRegistry &registry);
namespace arith {
class ArithmeticDialect;
} // namespace arith
namespace bufferization {
class BufferizationDialect;
} // namespace bufferization
namespace linalg {
class LinalgDialect;
} // namespace linalg
namespace scf {
class SCFDialect;
} // namespace scf
namespace memref {
class MemRefDialect;
} // namespace memref
namespace tensor {
class TensorDialect;
} // namespace tensor
namespace vector {
class VectorDialect;
} // namespace vector
#define GEN_PASS_CLASSES
#include "mlir/Dialect/Linalg/Passes.h.inc"
} // namespace mlir
#endif // DIALECT_LINALG_TRANSFORMS_PASSDETAIL_H_