LLVM  4.0.0
Namespaces | Macros | Functions | Variables
LoopLoadElimination.cpp File Reference
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/LoopAccessAnalysis.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpander.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Value.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/LoopVersioning.h"
#include <forward_list>
#include <cassert>
#include <algorithm>
#include <set>
#include <tuple>
#include <utility>
Include dependency graph for LoopLoadElimination.cpp:

Go to the source code of this file.

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define LLE_OPTION   "loop-load-elim"
 
#define DEBUG_TYPE   LLE_OPTION
 

Functions

 STATISTIC (NumLoopLoadEliminted,"Number of loads eliminated by LLE")
 
FunctionPassllvm::createLoopLoadEliminationPass ()
 

Variables

static cl::opt< unsignedCheckPerElim ("runtime-check-per-loop-load-elim", cl::Hidden, cl::desc("Max number of memchecks allowed per eliminated load on average"), cl::init(1))
 
static cl::opt< unsignedLoadElimSCEVCheckThreshold ("loop-load-elimination-scev-check-threshold", cl::init(8), cl::Hidden, cl::desc("The maximum number of SCEV checks allowed for Loop ""Load Elimination"))
 
static const char LLE_name [] = "Loop Load Elimination"
 

Macro Definition Documentation

#define DEBUG_TYPE   LLE_OPTION

Definition at line 56 of file LoopLoadElimination.cpp.

#define LLE_OPTION   "loop-load-elim"

Definition at line 55 of file LoopLoadElimination.cpp.

Function Documentation

STATISTIC ( NumLoopLoadEliminted  ,
"Number of loads eliminated by LLE"   
)

Variable Documentation

cl::opt<unsigned> CheckPerElim("runtime-check-per-loop-load-elim", cl::Hidden, cl::desc("Max number of memchecks allowed per eliminated load on average"), cl::init(1))
static
const char LLE_name[] = "Loop Load Elimination"
static

Definition at line 618 of file LoopLoadElimination.cpp.

cl::opt<unsigned> LoadElimSCEVCheckThreshold("loop-load-elimination-scev-check-threshold", cl::init(8), cl::Hidden, cl::desc("The maximum number of SCEV checks allowed for Loop ""Load Elimination"))
static