LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Functions | Variables
LoopSimplify.cpp File Reference
#include "llvm/Transforms/Scalar.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SetOperations.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/DependenceAnalysis.h"
#include "llvm/Analysis/Dominators.h"
#include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/Analysis/LoopPass.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/CFG.h"
#include "llvm/Support/Debug.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Transforms/Utils/LoopUtils.h"
Include dependency graph for LoopSimplify.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "loop-simplify"
 

Functions

 STATISTIC (NumInserted,"Number of pre-header or exit blocks inserted")
 
 STATISTIC (NumNested,"Number of nested loops split out")
 
static void PlaceSplitBlockCarefully (BasicBlock *NewBB, SmallVectorImpl< BasicBlock * > &SplitPreds, Loop *L)
 
 INITIALIZE_PASS_BEGIN (LoopSimplify,"loop-simplify","Canonicalize natural loops", true, false) INITIALIZE_PASS_END(LoopSimplify
 
static void AddBlockAndPredsToSet (BasicBlock *InputBB, BasicBlock *StopBlock, std::set< BasicBlock * > &Blocks)
 
static PHINodeFindPHIToPartitionLoops (Loop *L, DominatorTree *DT, AliasAnalysis *AA, LoopInfo *LI)
 

Variables

loop simplify
 
loop Canonicalize natural loops
 
loop Canonicalize natural true
 

Macro Definition Documentation

#define DEBUG_TYPE   "loop-simplify"

Definition at line 40 of file LoopSimplify.cpp.

Function Documentation

static void AddBlockAndPredsToSet ( BasicBlock InputBB,
BasicBlock StopBlock,
std::set< BasicBlock * > &  Blocks 
)
static

AddBlockAndPredsToSet - Add the specified block, and all of its predecessors, to the specified set, if it's not already in there. Stop predecessor traversal when we reach StopBlock.

Definition at line 451 of file LoopSimplify.cpp.

References llvm::BasicBlock::back(), I, llvm::pred_begin(), and llvm::pred_end().

static PHINode* FindPHIToPartitionLoops ( Loop L,
DominatorTree DT,
AliasAnalysis AA,
LoopInfo LI 
)
static
INITIALIZE_PASS_BEGIN ( LoopSimplify  ,
"loop-simplify ,
"Canonicalize natural loops ,
true  ,
false   
)
void PlaceSplitBlockCarefully ( BasicBlock NewBB,
SmallVectorImpl< BasicBlock * > &  SplitPreds,
Loop L 
)
static
STATISTIC ( NumInserted  ,
"Number of pre-header or exit blocks inserted"   
)
STATISTIC ( NumNested  ,
"Number of nested loops split out"   
)

Variable Documentation

loop Canonicalize natural loops

Definition at line 119 of file LoopSimplify.cpp.

loop simplify

Definition at line 119 of file LoopSimplify.cpp.

loop Canonicalize natural true

Definition at line 119 of file LoopSimplify.cpp.