13#ifndef CIRCT_DIALECT_SYNTH_TRANSFORMS_SYNTHESISPIPELINE_H
14#define CIRCT_DIALECT_SYNTH_TRANSFORMS_SYNTHESISPIPELINE_H
16#include "mlir/Pass/PassManager.h"
17#include "mlir/Pass/PassOptions.h"
36 :
public mlir::PassPipelineOptions<CombLoweringPipelineOptions> {
38 *
this,
"disable-datapath",
39 llvm::cl::desc(
"Disable datapath optimization passes"),
40 llvm::cl::init(
false)};
42 *
this,
"timing-aware",
43 llvm::cl::desc(
"Lower operators in a timing-aware fashion"),
44 llvm::cl::init(
false)};
46 *
this,
"lowering-target", llvm::cl::desc(
"Target IR to lower to"),
52 :
public mlir::PassPipelineOptions<SynthOptimizationPipelineOptions> {
54 *
this,
"abc-commands", llvm::cl::desc(
"ABC passes to run")};
57 *
this,
"abc-path", llvm::cl::desc(
"Path to ABC"), llvm::cl::init(
"abc")};
60 *
this,
"ignore-abc-failures",
61 llvm::cl::desc(
"Continue on ABC failure instead of aborting"),
62 llvm::cl::init(
false)};
65 *
this,
"disable-word-to-bits",
66 llvm::cl::desc(
"Disable LowerWordToBits pass"), llvm::cl::init(
false)};
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
Options for the synth optimization pipeline.
PassOptions::Option< bool > disableWordToBits
PassOptions::ListOption< std::string > abcCommands
PassOptions::Option< std::string > abcPath
PassOptions::Option< bool > ignoreAbcFailures