LLVM  6.0.0svn
MachinePostDominators.cpp
Go to the documentation of this file.
1 //===- MachinePostDominators.cpp -Machine Post Dominator Calculation ------===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file implements simple dominator construction algorithms for finding
11 // post dominators on machine functions.
12 //
13 //===----------------------------------------------------------------------===//
14 
16 
17 using namespace llvm;
18 
19 namespace llvm {
20 template class DominatorTreeBase<MachineBasicBlock, true>; // PostDomTreeBase
21 }
22 
24 
25 //declare initializeMachinePostDominatorTreePass
27  "MachinePostDominator Tree Construction", true, true)
28 
32 }
33 
36  return new MachinePostDominatorTree();
37 }
38 
39 bool
41  DT->recalculate(F);
42  return false;
43 }
44 
46  delete DT;
47 }
48 
49 void
51  AU.setPreservesAll();
53 }
54 
55 void
57  DT->print(OS);
58 }
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
Compute iterated dominance frontiers using a linear time algorithm.
Definition: AllocatorList.h:24
A Module instance is used to store all the information related to an LLVM module. ...
Definition: Module.h:63
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
bool runOnMachineFunction(MachineFunction &MF) override
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...
#define F(x, y, z)
Definition: MD5.cpp:55
void initializeMachinePostDominatorTreePass(PassRegistry &)
FunctionPass * createMachinePostDominatorTreePass()
Core dominator tree base class.
Definition: LoopInfo.h:60
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.
Represent the analysis usage information of a pass.
INITIALIZE_PASS(MachinePostDominatorTree, "machinepostdomtree", "MachinePostDominator Tree Construction", true, true) MachinePostDominatorTree
FunctionPass class - This class is used to implement most global optimizations.
Definition: Pass.h:298
PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominat...
void setPreservesAll()
Set by analyses that do not transform their input at all.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.
void print(llvm::raw_ostream &OS, const Module *M=nullptr) const override
print - Print out the internal state of the pass.
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:44