let constructor = "mlir::createPipelineDataTransferPass()";
}
-def BufferPlacement : Pass<"buffer-placement"> {
+def BufferPlacement : FunctionPass<"buffer-placement"> {
let summary = "Optimizes placement of alloc and dealloc operations";
let description = [{
This pass implements an algorithm to optimize the placement of alloc and
+
//===- BufferPlacement.cpp - the impl for buffer placement ---------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
//===----------------------------------------------------------------------===//
#include "mlir/Transforms/BufferPlacement.h"
+#include "PassDetail.h"
#include "mlir/Dialect/Linalg/IR/LinalgOps.h"
#include "mlir/IR/Operation.h"
#include "mlir/Pass/Pass.h"
/// The actual buffer placement pass that moves alloc and dealloc nodes into
/// the right positions. It uses the algorithm described at the top of the
/// file.
-struct BufferPlacementPass
- : mlir::PassWrapper<BufferPlacementPass, FunctionPass> {
+struct BufferPlacementPass : BufferPlacementBase<BufferPlacementPass> {
void runOnFunction() override {
// Place all required alloc, copy and dealloc nodes.