LLVM  3.7.0
Classes | Namespaces | Functions
LoopUtils.h File Reference
#include "llvm/ADT/SmallVector.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRBuilder.h"
Include dependency graph for LoopUtils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::LICMSafetyInfo
 Captures loop safety information. More...
 
class  llvm::RecurrenceDescriptor
 The RecurrenceDescriptor is used to identify recurrences variables in a loop. More...
 
class  llvm::RecurrenceDescriptor::InstDesc
 This POD struct holds information about a potential recurrence operation. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Functions

BasicBlockllvm::InsertPreheaderForLoop (Loop *L, Pass *P)
 InsertPreheaderForLoop - Once we discover that a loop doesn't have a preheader, this method is called to insert one. More...
 
bool llvm::simplifyLoop (Loop *L, DominatorTree *DT, LoopInfo *LI, Pass *PP, AliasAnalysis *AA=nullptr, ScalarEvolution *SE=nullptr, AssumptionCache *AC=nullptr)
 Simplify each loop in a loop nest recursively. More...
 
bool llvm::formLCSSA (Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE=nullptr)
 Put loop into LCSSA form. More...
 
bool llvm::formLCSSARecursively (Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE=nullptr)
 Put a loop nest into LCSSA form. More...
 
bool llvm::sinkRegion (DomTreeNode *, AliasAnalysis *, LoopInfo *, DominatorTree *, TargetLibraryInfo *, Loop *, AliasSetTracker *, LICMSafetyInfo *)
 Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in reverse depth first order w.r.t the DominatorTree. More...
 
bool llvm::hoistRegion (DomTreeNode *, AliasAnalysis *, LoopInfo *, DominatorTree *, TargetLibraryInfo *, Loop *, AliasSetTracker *, LICMSafetyInfo *)
 Walk the specified region of the CFG (defined by all blocks dominated by the specified block, and that are in the current loop) in depth first order w.r.t the DominatorTree. More...
 
bool llvm::promoteLoopAccessesToScalars (AliasSet &, SmallVectorImpl< BasicBlock * > &, SmallVectorImpl< Instruction * > &, PredIteratorCache &, LoopInfo *, DominatorTree *, Loop *, AliasSetTracker *, LICMSafetyInfo *)
 Try to promote memory values to scalars by sinking stores out of the loop and moving loads to before the loop. More...
 
void llvm::computeLICMSafetyInfo (LICMSafetyInfo *, Loop *)
 Computes safety information for a loop checks loop body & header for the possiblity of may throw exception, it takes LICMSafetyInfo and loop as argument. More...
 
bool llvm::isInductionPHI (PHINode *, ScalarEvolution *, ConstantInt *&)
 Checks if the given PHINode in a loop header is an induction variable. More...