Introduce a new kind of values into the transform dialect -- parameter values. These values have a type implementing the new `TransformParamTypeInterface` and are associated with lists of attributes rather than lists of payload operations. This mechanism allows one to wrap numeric calculations, typically heuristics, into transform operations separate from those at actually applying the transformation. For example, tile size computation can be now separated from tiling itself, and not hardcoded in the transform dialect. This further improves the separation of concerns between transform choice and implementation. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D140976
38 lines
1.2 KiB
C++
38 lines
1.2 KiB
C++
//===- TestTransformDialectExtension.h --------------------------*- 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines an extension of the MLIR Transform dialect for testing
|
|
// purposes.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef MLIR_TESTTRANSFORMDIALECTEXTENSION_H
|
|
#define MLIR_TESTTRANSFORMDIALECTEXTENSION_H
|
|
|
|
#include "mlir/Dialect/PDL/IR/PDLTypes.h"
|
|
#include "mlir/Dialect/Transform/IR/TransformInterfaces.h"
|
|
#include "mlir/Dialect/Transform/IR/TransformTypes.h"
|
|
#include "mlir/IR/OpImplementation.h"
|
|
|
|
namespace mlir {
|
|
class DialectRegistry;
|
|
} // namespace mlir
|
|
|
|
#define GET_TYPEDEF_CLASSES
|
|
#include "TestTransformDialectExtensionTypes.h.inc"
|
|
|
|
#define GET_OP_CLASSES
|
|
#include "TestTransformDialectExtension.h.inc"
|
|
|
|
namespace test {
|
|
/// Registers the test extension to the Transform dialect.
|
|
void registerTestTransformDialectExtension(::mlir::DialectRegistry ®istry);
|
|
} // namespace test
|
|
|
|
#endif // MLIR_TESTTRANSFORMDIALECTEXTENSION_H
|