LLVM API Documentation
#include <MachineLoopInfo.h>


Public Types | |
| typedef std::vector < MachineLoop * > ::const_iterator | iterator |
Public Member Functions | |
| MachineLoopInfo () | |
| ~MachineLoopInfo () | |
| iterator | begin () const |
| iterator | end () const |
| bool | empty () const |
| MachineLoop * | getLoopFor (const MachineBasicBlock *BB) const |
| const MachineLoop * | operator[] (const MachineBasicBlock *BB) const |
| unsigned | getLoopDepth (const MachineBasicBlock *BB) const |
| bool | isLoopHeader (MachineBasicBlock *BB) const |
| virtual bool | runOnMachineFunction (MachineFunction &F) |
| virtual void | releaseMemory () |
| virtual void | getAnalysisUsage (AnalysisUsage &AU) const |
| MachineLoop * | removeLoop (iterator I) |
| void | changeLoopFor (MachineBasicBlock *BB, MachineLoop *L) |
| void | changeTopLevelLoop (MachineLoop *OldLoop, MachineLoop *NewLoop) |
| void | addTopLevelLoop (MachineLoop *New) |
| void | removeBlock (MachineBasicBlock *BB) |
Static Public Attributes | |
| static char | ID = 0 |
Friends | |
| class | LoopBase< MachineBasicBlock > |
Definition at line 72 of file MachineLoopInfo.h.
| typedef std::vector<MachineLoop*>::const_iterator llvm::MachineLoopInfo::iterator |
iterator/begin/end - The interface to the top-level loops in the current function.
Definition at line 89 of file MachineLoopInfo.h.
| llvm::MachineLoopInfo::MachineLoopInfo | ( | ) | [inline] |
| llvm::MachineLoopInfo::~MachineLoopInfo | ( | ) | [inline] |
| iterator llvm::MachineLoopInfo::begin | ( | ) | const [inline] |
| iterator llvm::MachineLoopInfo::end | ( | ) | const [inline] |
| bool llvm::MachineLoopInfo::empty | ( | ) | const [inline] |
| MachineLoop* llvm::MachineLoopInfo::getLoopFor | ( | const MachineBasicBlock * | BB | ) | const [inline] |
getLoopFor - Return the inner most loop that BB lives in. If a basic block is in no loop (for example the entry node), null is returned.
Definition at line 97 of file MachineLoopInfo.h.
References llvm::LoopInfo::getLoopFor(), and LI.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph().
| const MachineLoop* llvm::MachineLoopInfo::operator[] | ( | const MachineBasicBlock * | BB | ) | const [inline] |
operator[] - same as getLoopFor...
Definition at line 103 of file MachineLoopInfo.h.
References llvm::LoopInfo::getLoopFor(), and LI.
| unsigned llvm::MachineLoopInfo::getLoopDepth | ( | const MachineBasicBlock * | BB | ) | const [inline] |
getLoopDepth - Return the loop nesting level of the specified block...
Definition at line 109 of file MachineLoopInfo.h.
References llvm::LoopInfo::getLoopDepth(), and LI.
Referenced by llvm::LiveIntervals::addIntervalsForSpills(), llvm::LiveIntervals::addIntervalsForSpillsFast(), and getConflictWeight().
| bool llvm::MachineLoopInfo::isLoopHeader | ( | MachineBasicBlock * | BB | ) | const [inline] |
Definition at line 114 of file MachineLoopInfo.h.
References llvm::LoopInfo::isLoopHeader(), and LI.
| bool MachineLoopInfo::runOnMachineFunction | ( | MachineFunction & | F | ) | [virtual] |
runOnFunction - Calculate the natural loop information.
Implements llvm::MachineFunctionPass.
Definition at line 31 of file MachineLoopInfo.cpp.
References releaseMemory().
| virtual void llvm::MachineLoopInfo::releaseMemory | ( | ) | [inline, virtual] |
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. The default behavior of passes is to hold onto memory for the entire duration of their lifetime (which is the entire compile time). For pipelined passes, this is not a big deal because that memory gets recycled every time the pass is invoked on another program unit. For IP passes, it is more important to free memory when it is unused.
Optionally implement this function to release pass memory when it is no longer used.
Reimplemented from llvm::Pass.
Definition at line 122 of file MachineLoopInfo.h.
References LI, and llvm::LoopInfo::releaseMemory().
Referenced by runOnMachineFunction().
| void MachineLoopInfo::getAnalysisUsage | ( | AnalysisUsage & | ) | const [virtual] |
getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. If a pass specifies that it uses a particular analysis result to this function, it can then use the getAnalysis<AnalysisType>() function, below.
Reimplemented from llvm::Pass.
Definition at line 37 of file MachineLoopInfo.cpp.
References llvm::AnalysisUsage::addRequired(), and llvm::AnalysisUsage::setPreservesAll().
| MachineLoop* llvm::MachineLoopInfo::removeLoop | ( | iterator | I | ) | [inline] |
removeLoop - This removes the specified top-level loop from this loop info object. The loop is not deleted, as it will presumably be inserted into another loop.
Definition at line 129 of file MachineLoopInfo.h.
References LI, and llvm::LoopInfo::removeLoop().
| void llvm::MachineLoopInfo::changeLoopFor | ( | MachineBasicBlock * | BB, | |
| MachineLoop * | L | |||
| ) | [inline] |
changeLoopFor - Change the top-level loop that contains BB to the specified loop. This should be used by transformations that restructure the loop hierarchy tree.
Definition at line 134 of file MachineLoopInfo.h.
References llvm::LoopInfo::changeLoopFor(), and LI.
| void llvm::MachineLoopInfo::changeTopLevelLoop | ( | MachineLoop * | OldLoop, | |
| MachineLoop * | NewLoop | |||
| ) | [inline] |
changeTopLevelLoop - Replace the specified loop in the top-level loops list with the indicated loop.
Definition at line 140 of file MachineLoopInfo.h.
References llvm::LoopInfo::changeTopLevelLoop(), and LI.
| void llvm::MachineLoopInfo::addTopLevelLoop | ( | MachineLoop * | New | ) | [inline] |
addTopLevelLoop - This adds the specified loop to the collection of top-level loops.
Definition at line 146 of file MachineLoopInfo.h.
References llvm::LoopInfo::addTopLevelLoop(), and LI.
| void llvm::MachineLoopInfo::removeBlock | ( | MachineBasicBlock * | BB | ) | [inline] |
removeBlock - This method completely removes BB from all data structures, including all of the Loop objects it is nested in and our mapping from MachineBasicBlocks to loops.
Definition at line 153 of file MachineLoopInfo.h.
References LI, and llvm::LoopInfo::removeBlock().
friend class LoopBase< MachineBasicBlock > [friend] |
Definition at line 74 of file MachineLoopInfo.h.
char MachineLoopInfo::ID = 0 [static] |
Definition at line 78 of file MachineLoopInfo.h.
This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.