Program Listing for File ConvertToDFG.cpp
↰ Return to documentation for file (lib/Conversion/ConvertToDFG/ConvertToDFG.cpp)
#include "laksa-mlir/Conversion/ConvertToDFG/ConvertToDFG.h"
#include "laksa-mlir/Conversion/Passes.h"
#include "laksa-mlir/Dialect/DFG/Transforms/Passes.h"
#include "laksa-mlir/Dialect/Func/Transforms/Passes.h"
#include "laksa-mlir/Dialect/Linalg/Transforms/Passes.h"
#include "mlir/Dialect/Linalg/Passes.h"
#include "mlir/Pass/PassManager.h"
#include "mlir/Pass/PassRegistry.h"
using namespace mlir;
void mlir::laksa::addComputationNodeOutliningPasses(OpPassManager &pm)
{
pm.addPass(linalg::createLinalgSoftTransposePass());
pm.addPass(createLinalgGeneralizeNamedOpsPass());
pm.addPass(linalg::createLinalgScalarizeSplatDensePass());
pm.addPass(createLinalgInlineScalarOperandsPass());
pm.nest("func.func").addPass(func::createFuncOutlineComputationLeafPass());
}
void mlir::laksa::addConvertToDFGPasses(OpPassManager &pm)
{
addComputationNodeOutliningPasses(pm);
pm.addPass(createConvertFuncToDFGPass());
pm.addPass(dfg::createDFGChannelFanoutExpansionPass());
}
void mlir::laksa::registerConvertToDFGPipeline()
{
PassPipelineRegistration<>(
"convert-to-dfg",
"Convert a program to normalized DFG IR",
[](OpPassManager &pm) { addConvertToDFGPasses(pm); });
}