.. _program_listing_file_lib_Conversion_ConvertToDFG_ConvertToDFG.cpp: Program Listing for File ConvertToDFG.cpp ========================================= |exhale_lsh| :ref:`Return to documentation for file ` (``lib/Conversion/ConvertToDFG/ConvertToDFG.cpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: 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); }); }