#include "mlir/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.h"
#include "mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h"
#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
#include "mlir/Dialect/Bufferization/IR/DstBufferizableOpInterfaceImpl.h"
#include "mlir/Dialect/Linalg/IR/Linalg.h"
#include "mlir/Dialect/SparseTensor/IR/SparseTensor.h"
#include "mlir/Dialect/Tensor/IR/Tensor.h"
#include "mlir/IR/Dialect.h"
#include "mlir/IR/Operation.h"
#include "mlir/Interfaces/DestinationStyleOpInterface.h"
usingnamespacemlir;
usingnamespacelinalg;
usingnamespacemlir::bufferization;
namespace {
static LogicalResult
bufferizeDestinationStyleOpInterface(RewriterBase &rewriter,
DestinationStyleOpInterface op,
const BufferizationOptions &options) { … }
template <typename OpTy>
struct LinalgOpInterface
: public DstBufferizableOpInterfaceExternalModel<LinalgOpInterface<OpTy>,
OpTy> { … };
template <typename... Ops>
struct LinalgOpInterfaceHelper { … };
struct SoftmaxOpInterface
: public DstBufferizableOpInterfaceExternalModel<SoftmaxOpInterface,
linalg::SoftmaxOp> { … };
}
void mlir::linalg::registerBufferizableOpInterfaceExternalModels(
DialectRegistry ®istry) { … }