30 #ifndef LLVM_CODEGEN_MACHINELOOPINFO_H
31 #define LLVM_CODEGEN_MACHINELOOPINFO_H
41 __extension__
extern template class LoopBase<MachineBasicBlock, MachineLoop>;
68 __extension__
extern template
69 class LoopInfoBase<MachineBasicBlock, MachineLoop>;
93 inline iterator
end()
const {
return LI.
end(); }
unsigned getLoopDepth(const BlockT *BB) const
static PassRegistry * getPassRegistry()
void removeBlock(BlockT *BB)
LoopT * removeLoop(iterator I)
static NodeType * getEntryNode(const MachineLoop *L)
void addTopLevelLoop(MachineLoop *New)
void changeLoopFor(BlockT *BB, LoopT *L)
LoopT * getLoopFor(const BlockT *BB) const
void initializeMachineLoopInfoPass(PassRegistry &)
LoopInfoBase< BlockT, LoopT > * LI
std::vector< LoopT * >::const_iterator iterator
void removeBlock(MachineBasicBlock *BB)
ID
LLVM Calling Convention Representation.
MachineLoopInfo::iterator ChildIteratorType
void changeTopLevelLoop(MachineLoop *OldLoop, MachineLoop *NewLoop)
static ChildIteratorType child_begin(NodeType *N)
static ChildIteratorType child_end(NodeType *N)
MachineLoop * getLoopFor(const MachineBasicBlock *BB) const
static ChildIteratorType child_end(NodeType *N)
void dump(const SparseBitVector< ElementSize > &LHS, raw_ostream &out)
static NodeType * getEntryNode(MachineLoop *L)
const MachineLoop * operator[](const MachineBasicBlock *BB) const
bool isLoopHeader(BlockT *BB) const
void addTopLevelLoop(LoopT *New)
#define LLVM_DELETED_FUNCTION
MachineLoopInfo::iterator ChildIteratorType
const MachineLoop NodeType
MachineLoop * removeLoop(iterator I)
void changeLoopFor(MachineBasicBlock *BB, MachineLoop *L)
unsigned getLoopDepth(const MachineBasicBlock *BB) const
bool isLoopHeader(MachineBasicBlock *BB) const
virtual void releaseMemory()
void changeTopLevelLoop(LoopT *OldLoop, LoopT *NewLoop)
static ChildIteratorType child_begin(NodeType *N)
LoopInfoBase< MachineBasicBlock, MachineLoop >::iterator iterator
LoopInfoBase< MachineBasicBlock, MachineLoop > & getBase()