39 return "Post dominance root node";
58 return "Dominator tree";
74 return "Post dominator tree";
84 struct DominatorTreeWrapperPassAnalysisGraphTraits {
91 DominatorTreeWrapperPass, false, DominatorTree *,
92 DominatorTreeWrapperPassAnalysisGraphTraits> {
96 DominatorTreeWrapperPassAnalysisGraphTraits>(
103 DominatorTreeWrapperPass, true, DominatorTree *,
104 DominatorTreeWrapperPassAnalysisGraphTraits> {
108 DominatorTreeWrapperPassAnalysisGraphTraits>(
114 struct PostDominatorTreeWrapperPassAnalysisGraphTraits {
121 PostDominatorTreeWrapperPass, false,
123 PostDominatorTreeWrapperPassAnalysisGraphTraits> {
128 PostDominatorTreeWrapperPassAnalysisGraphTraits>(
135 PostDominatorTreeWrapperPass, true,
137 PostDominatorTreeWrapperPassAnalysisGraphTraits> {
139 PostDomOnlyViewer() :
142 PostDominatorTreeWrapperPassAnalysisGraphTraits>(
151 "View dominance tree of function",
false,
false)
153 char DomOnlyViewer::
ID = 0;
158 char PostDomViewer::ID = 0;
160 "View postdominance tree of
function", false, false)
162 char PostDomOnlyViewer::ID = 0;
164 "View postdominance tree of function "
165 "(with no function bodies)",
170 DominatorTreeWrapperPass, false, DominatorTree *,
171 DominatorTreeWrapperPassAnalysisGraphTraits> {
175 DominatorTreeWrapperPassAnalysisGraphTraits>(
182 DominatorTreeWrapperPass, true, DominatorTree *,
183 DominatorTreeWrapperPassAnalysisGraphTraits> {
187 DominatorTreeWrapperPassAnalysisGraphTraits>(
193 struct PostDomPrinter
195 PostDominatorTreeWrapperPass, false,
197 PostDominatorTreeWrapperPassAnalysisGraphTraits> {
202 PostDominatorTreeWrapperPassAnalysisGraphTraits>(
208 struct PostDomOnlyPrinter
210 PostDominatorTreeWrapperPass, true,
212 PostDominatorTreeWrapperPassAnalysisGraphTraits> {
214 PostDomOnlyPrinter() :
217 PostDominatorTreeWrapperPassAnalysisGraphTraits>(
228 "Print dominance tree of function to 'dot' file",
231 char DomOnlyPrinter::
ID = 0;
237 char PostDomPrinter::ID = 0;
242 char PostDomOnlyPrinter::ID = 0;
253 return new DomPrinter();
257 return new DomOnlyPrinter();
261 return new DomViewer();
265 return new DomOnlyViewer();
269 return new PostDomPrinter();
273 return new PostDomOnlyPrinter();
277 return new PostDomViewer();
281 return new PostDomOnlyViewer();
FunctionPass * createDomOnlyViewerPass()
void initializeDomViewerPass(PassRegistry &)
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
void Print(const Unit &v, const char *PrintAfter)
FunctionPass * createPostDomPrinterPass()
void initializePostDomViewerPass(PassRegistry &)
void initializePostDomOnlyViewerPass(PassRegistry &)
const Function * getParent() const
Return the enclosing method, or null if none.
void initializeDomOnlyPrinterPass(PassRegistry &)
FunctionPass * createDomViewerPass()
void initializePostDomPrinterPass(PassRegistry &)
DomTreeNodeBase< NodeT > * getRootNode()
getRootNode - This returns the entry node for the CFG of the function.
DominatorTree & getDomTree()
DOTGraphTraits(bool isSimple=false)
std::string getNodeLabel(const void *, const GraphType &)
getNodeLabel - Given a node and a pointer to the top level graph, return the label to print in the no...
static bool isSimple(Instruction *I)
Function Alias Analysis false
Base class for the actual dominator tree node.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree...
FunctionPass * createDomPrinterPass()
LLVM Basic Block Representation.
void initializeDomOnlyViewerPass(PassRegistry &)
INITIALIZE_PASS(DomViewer,"view-dom","View dominance tree of function", false, false) char DomOnlyViewer INITIALIZE_PASS(DomOnlyViewer,"view-dom-only","View dominance tree of function (with no function bodies)", false, false) char PostDomViewer INITIALIZE_PASS(PostDomViewer,"view-postdom","View postdominance tree of function", false, false) char PostDomOnlyViewer INITIALIZE_PASS(PostDomOnlyViewer,"view-postdom-only","View postdominance tree of function ""(with no function bodies)", false, false) namespace
std::string getNodeLabel(DomTreeNode *Node, DominatorTree *G)
DOTGraphTraits(bool isSimple=false)
FunctionPass class - This class is used to implement most global optimizations.
static std::string getGraphName(PostDominatorTree *DT)
dot regions Print regions of function to dot file(with no function bodies)"
std::string getNodeLabel(DomTreeNode *Node, DomTreeNode *Graph)
DOTGraphTraits - Template class that can be specialized to customize how graphs are converted to 'dot...
void initializePostDomOnlyPrinterPass(PassRegistry &)
PostDominatorTree & getPostDomTree()
DOTGraphTraits(bool isSimple=false)
FunctionPass * createDomOnlyPrinterPass()
std::string getNodeLabel(DomTreeNode *Node, PostDominatorTree *G)
FunctionPass * createPostDomViewerPass()
void initializeDomPrinterPass(PassRegistry &)
PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominat...
FunctionPass * createPostDomOnlyViewerPass()
FunctionPass * createPostDomOnlyPrinterPass()
static std::string getGraphName(DominatorTree *DT)
DefaultDOTGraphTraits - This class provides the default implementations of all of the DOTGraphTraits ...
print Print MemDeps of function
Legacy analysis pass which computes a DominatorTree.