13#ifndef CIRCT_DIALECT_SYNTH_TRANSFORMS_SYNTHESISPIPELINE_H
14#define CIRCT_DIALECT_SYNTH_TRANSFORMS_SYNTHESISPIPELINE_H
17#include "mlir/Pass/PassManager.h"
18#include "mlir/Pass/PassOptions.h"
37 :
public mlir::PassPipelineOptions<CombLoweringPipelineOptions> {
39 *
this,
"disable-datapath",
40 llvm::cl::desc(
"Disable datapath optimization passes"),
41 llvm::cl::init(
false)};
43 *
this,
"timing-aware",
44 llvm::cl::desc(
"Lower operators in a timing-aware fashion"),
45 llvm::cl::init(
false)};
47 *
this,
"lowering-target", llvm::cl::desc(
"Target IR to lower to"),
50 *
this,
"synthesis-strategy", llvm::cl::desc(
"Synthesis strategy to use"),
54 "Optimize for timing")),
60 :
public mlir::PassPipelineOptions<SynthOptimizationPipelineOptions> {
62 *
this,
"abc-commands", llvm::cl::desc(
"ABC passes to run")};
65 *
this,
"abc-path", llvm::cl::desc(
"Path to ABC"), llvm::cl::init(
"abc")};
68 *
this,
"ignore-abc-failures",
69 llvm::cl::desc(
"Continue on ABC failure instead of aborting"),
70 llvm::cl::init(
false)};
73 *
this,
"disable-word-to-bits",
74 llvm::cl::desc(
"Disable LowerWordToBits pass"), llvm::cl::init(
false)};
@ OptimizationStrategyArea
Optimize for minimal area.
@ OptimizationStrategyTiming
Optimize for minimal critical path delay.
void buildSynthOptimizationPipeline(mlir::OpPassManager &pm, const SynthOptimizationPipelineOptions &options)
void buildCombLoweringPipeline(mlir::OpPassManager &pm, const CombLoweringPipelineOptions &options)
Populate the synthesis pipelines.
void registerSynthesisPipeline()
Register the synthesis pipelines.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Options for the aig lowering pipeline.
PassOptions::Option< TargetIR > targetIR
PassOptions::Option< bool > disableDatapath
PassOptions::Option< bool > timingAware
PassOptions::Option< OptimizationStrategy > synthesisStrategy
Options for the synth optimization pipeline.
PassOptions::Option< bool > disableWordToBits
PassOptions::ListOption< std::string > abcCommands
PassOptions::Option< std::string > abcPath
PassOptions::Option< bool > ignoreAbcFailures