11#include "mlir/Pass/Pass.h"
15#define GEN_PASS_DEF_STRIPCONTRACTSPASS
16#include "circt/Dialect/Verif/Passes.h.inc"
25struct StripContractsPass
26 :
public verif::impl::StripContractsPassBase<StripContractsPass> {
27 void runOnOperation()
override {
28 getOperation()->walk([](ContractOp op) {
29 op->replaceUsesWithIf(op.getInputs(), [&](OpOperand &operand) {
30 return operand.getOwner() != op;
34 for (
auto operand : op->getOperands())
35 if (operand.getDefiningOp() == op)
36 for (
auto *user : operand.getUsers())
39 op->dropAllReferences();
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.