28#include "mlir/Transforms/Passes.h"
36 pm.addPass(om::createStripOMPass());
37 pm.addPass(emit::createStripEmitPass());
39 pm.addPass(createLowerVerifSimulationsPass());
41 arc::AddTapsOptions opts;
45 pm.addPass(arc::createAddTapsPass(opts));
47 pm.addPass(arc::createStripSVPass());
49 arc::InferMemoriesOptions opts;
52 pm.addPass(arc::createInferMemoriesPass(opts));
54 pm.addPass(sim::createLowerDPIFunc());
55 pm.addPass(createCSEPass());
56 pm.addPass(arc::createArcCanonicalizerPass());
62 ConvertToArcsPassOptions opts;
64 pm.addPass(createConvertToArcsPass(opts));
67 pm.addPass(arc::createDedupPass());
68 pm.addPass(hw::createFlattenModules());
69 pm.addPass(createCSEPass());
70 pm.addPass(arc::createArcCanonicalizerPass());
77 pm.addPass(arc::createSplitLoopsPass());
79 pm.addPass(arc::createDedupPass());
81 arc::InferStatePropertiesOptions opts;
84 pm.addPass(arc::createInferStateProperties(opts));
86 pm.addPass(createCSEPass());
87 pm.addPass(arc::createArcCanonicalizerPass());
90 pm.addPass(arc::createMakeTablesPass());
91 pm.addPass(createCSEPass());
92 pm.addPass(arc::createArcCanonicalizerPass());
109 pm.addPass(arc::createLowerStatePass());
118 pm.addPass(arc::createInlineArcsPass());
120 pm.addPass(arc::createMergeIfsPass());
121 pm.addPass(createCSEPass());
122 pm.addPass(arc::createArcCanonicalizerPass());
127 pm.addPass(arc::createLowerArcsToFuncsPass());
128 pm.nest<arc::ModelOp>().addPass(arc::createAllocateStatePass());
129 pm.addPass(arc::createLowerClocksToFuncsPass());
134 pm.addPass(createCSEPass());
135 pm.addPass(arc::createArcCanonicalizerPass());
140 pm.addPass(createCSEPass());
141 pm.addPass(arc::createArcCanonicalizerPass());
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
void populateArcStateLoweringPipeline(mlir::OpPassManager &pm, const ArcStateLoweringOptions &options={})
void populateArcOptimizationPipeline(mlir::OpPassManager &pm, const ArcOptimizationOptions &options={})
void populateArcConversionPipeline(mlir::OpPassManager &pm, const ArcConversionOptions &options={})
std::unique_ptr< mlir::Pass > createLowerFirMemPass()
std::unique_ptr< OperationPass< ModuleOp > > createLowerArcToLLVMPass()
void populateArcPreprocessingPipeline(mlir::OpPassManager &pm, const ArcPreprocessingOptions &options={})
void populateArcToLLVMPipeline(mlir::OpPassManager &pm)
void populateArcStateAllocationPipeline(mlir::OpPassManager &pm, const ArcStateAllocationOptions &options={})
Option< bool > observeRegisters
Option< bool > shouldDedup
Option< bool > shouldMakeLUTs
Option< bool > shouldDetectResets
Option< bool > shouldDetectEnables
Option< bool > shouldDedup
Option< bool > observeNamedValues
Option< bool > observeMemories
Option< bool > observeWires
Option< bool > observePorts
Option< unsigned > splitFuncsThreshold
Option< bool > shouldInline