32 errs() <<
"DomTree dump not available, build with DEBUG\n";
38 this->
viewGraph(
"domtree",
"Dominator Tree for function");
40 errs() <<
"DomTree dump not available, build with DEBUG\n";
45struct LegacyDominatorTreeWrapperPassAnalysisGraphTraits {
51struct DomViewerWrapperPass
53 DominatorTreeWrapperPass, false, DominatorTree *,
54 LegacyDominatorTreeWrapperPassAnalysisGraphTraits> {
56 DomViewerWrapperPass()
59 LegacyDominatorTreeWrapperPassAnalysisGraphTraits>(
"dom",
ID) {}
62struct DomOnlyViewerWrapperPass
64 DominatorTreeWrapperPass, true, DominatorTree *,
65 LegacyDominatorTreeWrapperPassAnalysisGraphTraits> {
67 DomOnlyViewerWrapperPass()
70 LegacyDominatorTreeWrapperPassAnalysisGraphTraits>(
"domonly",
ID) {}
73struct LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits {
79struct PostDomViewerWrapperPass
81 PostDominatorTreeWrapperPass, false, PostDominatorTree *,
82 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits> {
84 PostDomViewerWrapperPass()
87 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits>(
"postdom",
91struct PostDomOnlyViewerWrapperPass
93 PostDominatorTreeWrapperPass, true, PostDominatorTree *,
94 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits> {
96 PostDomOnlyViewerWrapperPass()
99 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits>(
100 "postdomonly",
ID) {}
104char DomViewerWrapperPass::ID = 0;
106 "View dominance tree of function",
false,
false)
108char DomOnlyViewerWrapperPass::
ID = 0;
113char PostDomViewerWrapperPass::
ID = 0;
117char PostDomOnlyViewerWrapperPass::
ID = 0;
119 "View postdominance tree of
function "
124struct DomPrinterWrapperPass
126 DominatorTreeWrapperPass, false, DominatorTree *,
127 LegacyDominatorTreeWrapperPassAnalysisGraphTraits> {
129 DomPrinterWrapperPass()
132 LegacyDominatorTreeWrapperPassAnalysisGraphTraits>(
"dom",
ID) {}
135struct DomOnlyPrinterWrapperPass
137 DominatorTreeWrapperPass, true, DominatorTree *,
138 LegacyDominatorTreeWrapperPassAnalysisGraphTraits> {
140 DomOnlyPrinterWrapperPass()
143 LegacyDominatorTreeWrapperPassAnalysisGraphTraits>(
"domonly",
ID) {}
146struct PostDomPrinterWrapperPass
148 PostDominatorTreeWrapperPass, false, PostDominatorTree *,
149 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits> {
151 PostDomPrinterWrapperPass()
154 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits>(
"postdom",
158struct PostDomOnlyPrinterWrapperPass
160 PostDominatorTreeWrapperPass, true, PostDominatorTree *,
161 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits> {
163 PostDomOnlyPrinterWrapperPass()
166 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits>(
167 "postdomonly",
ID) {}
171char DomPrinterWrapperPass::ID = 0;
173 "Print dominance tree of function to 'dot' file",
false,
false)
175char DomOnlyPrinterWrapperPass::
ID = 0;
181char PostDomPrinterWrapperPass::
ID = 0;
186char PostDomOnlyPrinterWrapperPass::
ID = 0;
197 return new DomPrinterWrapperPass();
201 return new DomOnlyPrinterWrapperPass();
205 return new DomViewerWrapperPass();
209 return new DomOnlyViewerWrapperPass();
213 return new PostDomPrinterWrapperPass();
217 return new PostDomOnlyPrinterWrapperPass();
221 return new PostDomViewerWrapperPass();
225 return new PostDomOnlyViewerWrapperPass();
Performs the initial survey of the specified function
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
dot regions Print regions of function to dot file(with no function bodies)"
Legacy analysis pass which computes a DominatorTree.
DominatorTree & getDomTree()
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
LLVM_ABI void viewGraph()
FunctionPass class - This class is used to implement most global optimizations.
PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominat...
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI FunctionPass * createDomOnlyPrinterWrapperPassPass()
LLVM_ABI FunctionPass * createPostDomOnlyViewerWrapperPassPass()
LLVM_ABI FunctionPass * createPostDomViewerWrapperPassPass()
LLVM_ABI FunctionPass * createDomPrinterWrapperPassPass()
LLVM_ABI FunctionPass * createPostDomOnlyPrinterWrapperPassPass()
LLVM_ABI raw_fd_ostream & errs()
This returns a reference to a raw_ostream for standard error.
LLVM_ABI FunctionPass * createDomOnlyViewerWrapperPassPass()
void ViewGraph(const GraphType &G, const Twine &Name, bool ShortNames=false, const Twine &Title="", GraphProgram::Name Program=GraphProgram::DOT)
ViewGraph - Emit a dot graph, run 'dot', run gv on the postscript file, then cleanup.
LLVM_ABI FunctionPass * createPostDomPrinterWrapperPassPass()
LLVM_ABI FunctionPass * createDomViewerWrapperPassPass()
PostDominatorTree & getPostDomTree()