17 using namespace circt;
18 using namespace firrtl;
25 struct LowerIntrinsicsPass :
public LowerIntrinsicsBase<LowerIntrinsicsPass> {
26 LogicalResult initialize(MLIRContext *context)
override;
27 void runOnOperation()
override;
29 std::shared_ptr<IntrinsicLowerings> lowering;
34 LogicalResult LowerIntrinsicsPass::initialize(MLIRContext *context) {
38 loweringCollection.populateIntrinsicLowerings(lowering);
40 this->lowering = std::make_shared<IntrinsicLowerings>(std::move(lowering));
45 void LowerIntrinsicsPass::runOnOperation() {
46 if (failed(lowering->lower(getOperation())))
47 return signalPassFailure();
52 return std::make_unique<LowerIntrinsicsPass>();
Lowering helper which collects all intrinsic converters.
std::unique_ptr< mlir::Pass > createLowerIntrinsicsPass()
This is the pass constructor.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.