LLVM API Documentation

Defines | 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.

Defines

#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

Define 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.