LLVM  3.7.0
Macros | Functions
LCSSA.cpp File Reference
#include "llvm/Transforms/Scalar.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/LoopPass.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/PredIteratorCache.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Utils/LoopUtils.h"
#include "llvm/Transforms/Utils/SSAUpdater.h"
Include dependency graph for LCSSA.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "lcssa"
 

Functions

 STATISTIC (NumLCSSA,"Number of live out of a loop variables")
 
static bool isExitBlock (BasicBlock *BB, const SmallVectorImpl< BasicBlock * > &ExitBlocks)
 Return true if the specified block is in the list. More...
 
static bool processInstruction (Loop &L, Instruction &Inst, DominatorTree &DT, const SmallVectorImpl< BasicBlock * > &ExitBlocks, PredIteratorCache &PredCache, LoopInfo *LI)
 Given an instruction in the loop, check to see if it has any uses that are outside the current loop. More...
 
static bool blockDominatesAnExit (BasicBlock *BB, DominatorTree &DT, const SmallVectorImpl< BasicBlock * > &ExitBlocks)
 Return true if the specified block dominates at least one of the blocks in the specified list. More...
 

Macro Definition Documentation

#define DEBUG_TYPE   "lcssa"

Definition at line 46 of file LCSSA.cpp.

Function Documentation

static bool blockDominatesAnExit ( BasicBlock BB,
DominatorTree DT,
const SmallVectorImpl< BasicBlock * > &  ExitBlocks 
)
static

Return true if the specified block dominates at least one of the blocks in the specified list.

Definition at line 204 of file LCSSA.cpp.

References llvm::DominatorTree::dominates(), llvm::DominatorTreeBase< N >::getNode(), and llvm::SmallVectorTemplateCommon< T >::size().

Referenced by llvm::formLCSSA().

static bool isExitBlock ( BasicBlock BB,
const SmallVectorImpl< BasicBlock * > &  ExitBlocks 
)
static

Return true if the specified block is in the list.

Definition at line 51 of file LCSSA.cpp.

References llvm::SmallVectorTemplateCommon< T >::size().

Referenced by processInstruction().

static bool processInstruction ( Loop L,
Instruction Inst,
DominatorTree DT,
const SmallVectorImpl< BasicBlock * > &  ExitBlocks,
PredIteratorCache PredCache,
LoopInfo LI 
)
static
STATISTIC ( NumLCSSA  ,
"Number of live out of a loop variables  
)