19#include "mlir/Transforms/DialectConversion.h"
21#include "mlir/Pass/Pass.h"
27#define GEN_PASS_DEF_PREPAREFORFORMALPASS
28#include "circt/Dialect/Verif/Passes.h.inc"
42 using OpConversionPattern<hw::WireOp>::OpConversionPattern;
45 matchAndRewrite(hw::WireOp wire, OpAdaptor adaptor,
46 ConversionPatternRewriter &rewriter)
const override {
47 rewriter.replaceOp(wire, adaptor.getInput());
53struct PrepareForFormalPass
54 : verif::impl::PrepareForFormalPassBase<PrepareForFormalPass> {
55 void runOnOperation()
override;
59void PrepareForFormalPass::runOnOperation() {
61 ConversionTarget target(getContext());
62 target.addLegalDialect<hw::HWDialect>();
63 target.addIllegalOp<hw::WireOp>();
66 RewritePatternSet patterns(&getContext());
67 patterns.add<WireOpConversionPattern>(patterns.getContext());
71 applyPartialConversion(getOperation(), target, std::move(patterns))))
72 return signalPassFailure();
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.