Files
Raptor/src/PIM/Compiler/PimCompilerUtils.hpp
T

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