LLVM API Documentation

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

Defines

#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.
static bool processInstruction (Loop &L, Instruction &Inst, DominatorTree &DT, const SmallVectorImpl< BasicBlock * > &ExitBlocks, PredIteratorCache &PredCache)
static bool blockDominatesAnExit (BasicBlock *BB, DominatorTree &DT, const SmallVectorImpl< BasicBlock * > &ExitBlocks)
static void verifyLoop (Loop &L, DominatorTree &DT)

Define 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 172 of file LCSSA.cpp.

References llvm::DominatorTree::dominates(), llvm::DominatorTreeBase< NodeT >::getNode(), and llvm::SmallVectorTemplateCommon< T, typename >::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, typename >::size().

Referenced by processInstruction().

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