//===- GraphPrinters.cpp - DOT printers for various graph types -----------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file defines several printers for various different types of graphs used// by the LLVM infrastructure. It uses the generic graph interface to convert// the graph into a .dot graph. These graphs can then be processed with the// "dot" tool to convert them to postscript or some other suitable format.////===----------------------------------------------------------------------===//#include"llvm/IR/Dominators.h"#include"llvm/Pass.h"usingnamespacellvm;//===----------------------------------------------------------------------===//// DomInfoPrinter Pass//===----------------------------------------------------------------------===//namespace{classDomInfoPrinter:publicFunctionPass{public:staticcharID;// Pass identification, replacement for typeidDomInfoPrinter():FunctionPass(ID){}voidgetAnalysisUsage(AnalysisUsage&AU)constoverride{AU.setPreservesAll();AU.addRequired<DominatorTreeWrapperPass>();}boolrunOnFunction(Function&F)override{getAnalysis<DominatorTreeWrapperPass>().dump();returnfalse;}};}charDomInfoPrinter::ID=0;staticRegisterPass<DomInfoPrinter>DIP("print-dom-info","Dominator Info Printer",true,true);