LLVM  6.0.0svn
Classes | Namespaces | Functions
LoopInfoImpl.h File Reference
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/IR/Dominators.h"
Include dependency graph for LoopInfoImpl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::PopulateLoopsDFS< BlockT, LoopT >
 Populate all loop data in a stable order during a single forward DFS. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Functions

template<class BlockT , class LoopT >
static void llvm::discoverAndMapSubloop (LoopT *L, ArrayRef< BlockT *> Backedges, LoopInfoBase< BlockT, LoopT > *LI, const DomTreeBase< BlockT > &DomTree)
 Stable LoopInfo Analysis - Build a loop tree using stable iterators so the result does / not depend on use list (block predecessor) order. More...
 
template<typename T >
bool llvm::compareVectors (std::vector< T > &BB1, std::vector< T > &BB2)
 
template<class BlockT , class LoopT >
void llvm::addInnerLoopsToHeadersMap (DenseMap< BlockT *, const LoopT *> &LoopHeaders, const LoopInfoBase< BlockT, LoopT > &LI, const LoopT &L)
 
template<class BlockT , class LoopT >
static void llvm::compareLoops (const LoopT *L, const LoopT *OtherL, DenseMap< BlockT *, const LoopT *> &OtherLoopHeaders)