31 "Machine Natural Loop Construction",
true,
true)
40 LI.Analyze(getAnalysis<MachineDominatorTree>().getBase());
53 if (TopMBB != Begin) {
57 if (TopMBB == Begin)
break;
67 if (BotMBB != std::prev(End)) {
78 #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
const MachineFunction * getParent() const
getParent - Return the MachineFunction containing this basic block.
BlockT * getHeader() const
machine Machine Natural Loop true
void print(raw_ostream &OS, unsigned Depth=0) const
AnalysisUsage & addRequired()
#define INITIALIZE_PASS_DEPENDENCY(depName)
MachineBasicBlock * getTopBlock()
getTopBlock - Return the "top" block in the loop, which is the first block in the linear layout...
char & MachineLoopInfoID
MachineLoopInfo - This pass is a loop analysis pass.
MachineBasicBlock * getBottomBlock()
getBottomBlock - Return the "bottom" block in the loop, which is the last block in the linear layout...
#define INITIALIZE_PASS_END(passName, arg, name, cfg, analysis)
COFF::MachineTypes Machine
INITIALIZE_PASS_BEGIN(MachineLoopInfo,"machine-loops","Machine Natural Loop Construction", true, true) INITIALIZE_PASS_END(MachineLoopInfo
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.
Represent the analysis usage information of a pass.
bool contains(const LoopT *L) const
contains - Return true if the specified loop is contained within in this loop.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.
raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
void setPreservesAll()
Set by analyses that do not transform their input at all.
machine Machine Natural Loop Construction
BasicBlockListType::iterator iterator
DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominat...
LoopInfo - This class builds and contains all of the top level loop structures in the specified funct...