LLVM  4.0.0
Macros | Functions | Variables
LoopVersioningLICM.cpp File Reference
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/AliasSetTracker.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/LoopAccessAnalysis.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/LoopPass.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpander.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/Analysis/VectorUtils.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/MDBuilder.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/IR/PredIteratorCache.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/Transforms/Utils/LoopUtils.h"
#include "llvm/Transforms/Utils/LoopVersioning.h"
#include "llvm/Transforms/Utils/ValueMapper.h"
Include dependency graph for LoopVersioningLICM.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "loop-versioning-licm"
 

Functions

static MDNodecreateStringMetadata (Loop *TheLoop, StringRef Name, unsigned V)
 Create MDNode for input string. More...
 
 INITIALIZE_PASS_BEGIN (LoopVersioningLICM,"loop-versioning-licm","Loop Versioning For LICM", false, false) INITIALIZE_PASS_END(LoopVersioningLICM
 

Variables

static const char * LICMVersioningMetaData = "llvm.loop.licm_versioning.disable"
 
static cl::opt< float > LVInvarThreshold ("licm-versioning-invariant-threshold", cl::desc("LoopVersioningLICM's minimum allowed percentage""of possible invariant instructions per loop"), cl::init(25), cl::Hidden)
 Threshold minimum allowed percentage for possible invariant instructions in a loop. More...
 
static cl::opt< unsignedLVLoopDepthThreshold ("licm-versioning-max-depth-threshold", cl::desc("LoopVersioningLICM's threshold for maximum allowed loop nest/depth"), cl::init(2), cl::Hidden)
 Threshold for maximum allowed loop nest/depth. More...
 
loop versioning licm
 
loop versioning Loop Versioning For LICM
 
loop versioning Loop Versioning For false
 

Macro Definition Documentation

#define DEBUG_TYPE   "loop-versioning-licm"

Definition at line 94 of file LoopVersioningLICM.cpp.

Function Documentation

static MDNode* createStringMetadata ( Loop TheLoop,
StringRef  Name,
unsigned  V 
)
static
INITIALIZE_PASS_BEGIN ( LoopVersioningLICM  ,
"loop-versioning-licm ,
"Loop Versioning For LICM ,
false  ,
false   
)

Variable Documentation

loop versioning Loop Versioning For false

Definition at line 575 of file LoopVersioningLICM.cpp.

loop versioning licm

Definition at line 575 of file LoopVersioningLICM.cpp.

loop versioning Loop Versioning For LICM

Definition at line 575 of file LoopVersioningLICM.cpp.

Referenced by llvm::LICMPass::run().

const char* LICMVersioningMetaData = "llvm.loop.licm_versioning.disable"
static

Definition at line 95 of file LoopVersioningLICM.cpp.

cl::opt<float> LVInvarThreshold("licm-versioning-invariant-threshold", cl::desc("LoopVersioningLICM's minimum allowed percentage""of possible invariant instructions per loop"), cl::init(25), cl::Hidden)
static

Threshold minimum allowed percentage for possible invariant instructions in a loop.

cl::opt<unsigned> LVLoopDepthThreshold("licm-versioning-max-depth-threshold", cl::desc("LoopVersioningLICM's threshold for maximum allowed loop nest/depth"), cl::init(2), cl::Hidden)
static

Threshold for maximum allowed loop nest/depth.