15 #include "llvm/Support/DOTGraphTraits.h"
16 #include "llvm/Support/GraphWriter.h"
17 #include "llvm/Support/raw_ostream.h"
19 using namespace circt;
20 using namespace firrtl;
23 struct PrintInstanceGraphPass
24 :
public PrintInstanceGraphBase<PrintInstanceGraphPass> {
25 PrintInstanceGraphPass(raw_ostream &os) : os(os) {}
26 void runOnOperation()
override {
27 auto circuitOp = getOperation();
28 auto &instanceGraph = getAnalysis<InstanceGraph>();
29 llvm::WriteGraph(os, &instanceGraph,
false,
31 markAllAnalysesPreserved();
38 return std::make_unique<PrintInstanceGraphPass>(llvm::errs());
std::unique_ptr< mlir::Pass > createPrintInstanceGraphPass()
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.