LLVM  6.0.0svn
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 charLICMVersioningMetaData = "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

◆ DEBUG_TYPE

#define DEBUG_TYPE   "loop-versioning-licm"

Definition at line 94 of file LoopVersioningLICM.cpp.

Function Documentation

◆ createStringMetadata()

static MDNode* createStringMetadata ( Loop TheLoop,
StringRef  Name,
unsigned  V 
)
static

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( LoopVersioningLICM  ,
"loop-versioning-licm ,
"Loop Versioning For LICM ,
false  ,
false   
)

Variable Documentation

◆ false

loop versioning Loop Versioning For false

Definition at line 575 of file LoopVersioningLICM.cpp.

◆ licm

loop versioning licm

Definition at line 575 of file LoopVersioningLICM.cpp.

◆ LICM

loop versioning Loop Versioning For LICM

◆ LICMVersioningMetaData

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

Definition at line 95 of file LoopVersioningLICM.cpp.

Referenced by llvm::addStringMetadataToLoop().

◆ LVInvarThreshold

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.

Referenced by llvm::addStringMetadataToLoop().

◆ LVLoopDepthThreshold

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.

Referenced by llvm::addStringMetadataToLoop().