29 lines
917 B
C++
29 lines
917 B
C++
#pragma once
|
|
|
|
#include "PimCompilerOptions.hpp"
|
|
#include "mlir/IR/BuiltinOps.h"
|
|
#include "llvm/Support/Error.h"
|
|
#include "mlir/Pass/PassManager.h"
|
|
#include "mlir/Pass/PassRegistry.h"
|
|
|
|
#include "onnx-mlir/Compiler/OMCompilerTypes.h"
|
|
|
|
namespace onnx_mlir {
|
|
|
|
namespace spatial { struct SchedulingTarget; struct SpatialTargetResources; }
|
|
spatial::SchedulingTarget getPimSchedulingTarget();
|
|
struct PimInstructionTiming;
|
|
PimInstructionTiming getPimInstructionTiming();
|
|
llvm::Expected<int64_t> getPimPeriodicTimingContract();
|
|
|
|
void addPimLoweringPasses(mlir::PassManager &pm,
|
|
const spatial::SpatialTargetResources &resources, PimEmissionTargetType target,
|
|
bool reportProgress = true);
|
|
|
|
void addPassesPim(mlir::OwningOpRef<mlir::ModuleOp>& module,
|
|
mlir::PassManager& pm,
|
|
EmissionTargetType& emissionTarget,
|
|
std::string outputNameNoExt);
|
|
|
|
} // namespace onnx_mlir
|