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) {
64struct DomOnlyViewerWrapperPass
66 DominatorTreeWrapperPass, true, DominatorTree *,
67 LegacyDominatorTreeWrapperPassAnalysisGraphTraits> {
69 DomOnlyViewerWrapperPass()
72 LegacyDominatorTreeWrapperPassAnalysisGraphTraits>(
"domonly",
ID) {
77struct LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits {
83struct PostDomViewerWrapperPass
85 PostDominatorTreeWrapperPass, false, PostDominatorTree *,
86 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits> {
88 PostDomViewerWrapperPass()
91 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits>(
"postdom",
97struct PostDomOnlyViewerWrapperPass
99 PostDominatorTreeWrapperPass, true, PostDominatorTree *,
100 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits> {
102 PostDomOnlyViewerWrapperPass()
105 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits>(
113char DomViewerWrapperPass::ID = 0;
115 "View dominance tree of function",
false,
false)
117char DomOnlyViewerWrapperPass::
ID = 0;
122char PostDomViewerWrapperPass::
ID = 0;
126char PostDomOnlyViewerWrapperPass::
ID = 0;
128 "View postdominance tree of
function "
133struct DomPrinterWrapperPass
135 DominatorTreeWrapperPass, false, DominatorTree *,
136 LegacyDominatorTreeWrapperPassAnalysisGraphTraits> {
138 DomPrinterWrapperPass()
141 LegacyDominatorTreeWrapperPassAnalysisGraphTraits>(
"dom",
ID) {
146struct DomOnlyPrinterWrapperPass
148 DominatorTreeWrapperPass, true, DominatorTree *,
149 LegacyDominatorTreeWrapperPassAnalysisGraphTraits> {
151 DomOnlyPrinterWrapperPass()
154 LegacyDominatorTreeWrapperPassAnalysisGraphTraits>(
"domonly",
ID) {
159struct PostDomPrinterWrapperPass
161 PostDominatorTreeWrapperPass, false, PostDominatorTree *,
162 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits> {
164 PostDomPrinterWrapperPass()
167 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits>(
"postdom",
173struct PostDomOnlyPrinterWrapperPass
175 PostDominatorTreeWrapperPass, true, PostDominatorTree *,
176 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits> {
178 PostDomOnlyPrinterWrapperPass()
181 LegacyPostDominatorTreeWrapperPassAnalysisGraphTraits>(
189char DomPrinterWrapperPass::ID = 0;
191 "Print dominance tree of function to 'dot' file",
false,
false)
193char DomOnlyPrinterWrapperPass::
ID = 0;
199char PostDomPrinterWrapperPass::
ID = 0;
204char PostDomOnlyPrinterWrapperPass::
ID = 0;
215 return new DomPrinterWrapperPass();
219 return new DomOnlyPrinterWrapperPass();
223 return new DomViewerWrapperPass();
227 return new DomOnlyViewerWrapperPass();
231 return new PostDomPrinterWrapperPass();
235 return new PostDomOnlyPrinterWrapperPass();
239 return new PostDomViewerWrapperPass();
243 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.
FunctionPass class - This class is used to implement most global optimizations.
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
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.
FunctionPass * createDomOnlyPrinterWrapperPassPass()
FunctionPass * createPostDomOnlyViewerWrapperPassPass()
void initializeDomPrinterWrapperPassPass(PassRegistry &)
void initializePostDomViewerWrapperPassPass(PassRegistry &)
FunctionPass * createPostDomViewerWrapperPassPass()
FunctionPass * createPostDomOnlyPrinterWrapperPassPass()
void initializeDomViewerWrapperPassPass(PassRegistry &)
void initializePostDomOnlyPrinterWrapperPassPass(PassRegistry &)
raw_fd_ostream & errs()
This returns a reference to a raw_ostream for standard error.
void initializeDomOnlyPrinterWrapperPassPass(PassRegistry &)
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.
void initializePostDomPrinterWrapperPassPass(PassRegistry &)
void initializeDomOnlyViewerWrapperPassPass(PassRegistry &)
FunctionPass * createPostDomPrinterWrapperPassPass()
FunctionPass * createDomPrinterWrapperPassPass()
FunctionPass * createDomViewerWrapperPassPass()
void initializePostDomOnlyViewerWrapperPassPass(PassRegistry &)
PostDominatorTree & getPostDomTree()