#ifndef MLIR_DIALECT_LINALG_TRANSFORMOPS_LINALGTRANSFORMOPS_H
#define MLIR_DIALECT_LINALG_TRANSFORMOPS_LINALGTRANSFORMOPS_H
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/Linalg/IR/Linalg.h"
#include "mlir/Dialect/Transform/IR/TransformAttrs.h"
#include "mlir/Dialect/Transform/IR/TransformDialect.h"
#include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.h"
#include "mlir/Dialect/Utils/StructuredOpsUtils.h"
#include "mlir/IR/OpImplementation.h"
#include "mlir/IR/RegionKindInterface.h"
namespace mlir {
class TilingInterface;
class RewriterBase;
namespace linalg {
class CopyOp;
struct ForallTilingResult;
class GenericOp;
class LinalgOp;
}
namespace scf {
struct SCFTilingResult;
}
namespace tensor {
class InsertSliceOp;
class PackOp;
class PadOp;
class UnPackOp;
}
namespace transform {
class AnyOpType;
class AnyValueType;
class OperationType;
class TransformHandleTypeInterface;
struct TileSizesSpec { … };
struct NumThreadsSpec { … };
}
}
namespace mlir {
class DialectRegistry;
namespace transform {
DiagnosedSilenceableFailure
tileToForallOpImpl(RewriterBase &rewriter, transform::TransformState &state,
TransformOpInterface transformOp, Operation *target,
ArrayRef<OpFoldResult> mixedNumThreads,
ArrayRef<OpFoldResult> mixedTileSizes,
std::optional<ArrayAttr> mapping,
scf::SCFTilingResult &tilingResult);
}
}
#include "mlir/Dialect/Linalg/TransformOps/LinalgTransformOpsEnums.h.inc"
#define GET_OP_CLASSES
#include "mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.h.inc"
#endif