#include "mlir/Dialect/Shape/IR/Shape.h" #include "mlir/IR/Block.h" #include "mlir/IR/Builders.h" #include "mlir/IR/BuiltinOps.h" #include "mlir/IR/IntegerSet.h" #include "mlir/IR/Matchers.h" #include "mlir/IR/OpImplementation.h" #include "mlir/IR/PatternMatch.h" #include "llvm/ADT/SetVector.h" #include "llvm/ADT/SmallBitVector.h" #include "src/Accelerators/PIM/Dialect/Pim/PimOps.hpp" using namespace mlir; namespace onnx_mlir { namespace pim { void PimDialect::initialize() { addOperations< #define GET_OP_LIST #include "src/Accelerators/PIM/Dialect/Pim/PimOps.cpp.inc" >(); } #define POPULATE_DEPENDENCIES(OP_NAME) \ void OP_NAME::populateDependencies(bufferization::RegisterDependenciesFn registerDependenciesFn) { \ registerDependenciesFn(this->getOutBuf(), this->getResult()); \ } POPULATE_DEPENDENCIES(PimVMaxOp) POPULATE_DEPENDENCIES(PimApplyFiltersOp) POPULATE_DEPENDENCIES(PimSumOp) POPULATE_DEPENDENCIES(PimVSDivOp) POPULATE_DEPENDENCIES(PimVReluOp) POPULATE_DEPENDENCIES(PimVExpOp) } // namespace pim } // namespace onnx_mlir //===----------------------------------------------------------------------===// // TableGen'd op method definitions //===----------------------------------------------------------------------===// #define GET_OP_CLASSES #include "src/Accelerators/PIM/Dialect/Pim/PimDialect.cpp.inc" #include "src/Accelerators/PIM/Dialect/Pim/PimOps.cpp.inc"