LLVM  8.0.1
Macros | Functions | Variables
SCCP.cpp File Reference
#include "llvm/Transforms/Scalar/SCCP.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Analysis/ValueLattice.h"
#include "llvm/Analysis/ValueLatticeUtils.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CallSite.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/InstVisitor.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils/PredicateInfo.h"
#include <cassert>
#include <utility>
#include <vector>
Include dependency graph for SCCP.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "sccp"
 

Functions

 STATISTIC (NumInstRemoved, "Number of instructions removed")
 
 STATISTIC (NumDeadBlocks, "Number of basic blocks unreachable")
 
 STATISTIC (IPNumInstRemoved, "Number of instructions removed by IPSCCP")
 
 STATISTIC (IPNumArgsElimed,"Number of arguments constant propagated by IPSCCP")
 
 STATISTIC (IPNumGlobalConst, "Number of globals found to be constant by IPSCCP")
 
static bool tryToReplaceWithConstant (SCCPSolver &Solver, Value *V)
 
static bool runSCCP (Function &F, const DataLayout &DL, const TargetLibraryInfo *TLI)
 
 INITIALIZE_PASS_BEGIN (SCCPLegacyPass, "sccp", "Sparse Conditional Constant Propagation", false, false) INITIALIZE_PASS_END(SCCPLegacyPass
 
static void findReturnsToZap (Function &F, SmallVector< ReturnInst *, 8 > &ReturnsToZap, SCCPSolver &Solver)
 
static void forceIndeterminateEdge (Instruction *I, SCCPSolver &Solver)
 

Variables

 sccp
 
Sparse Conditional Constant Propagation
 
Sparse Conditional Constant false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "sccp"

Definition at line 65 of file SCCP.cpp.

Function Documentation

◆ findReturnsToZap()

static void findReturnsToZap ( Function F,
SmallVector< ReturnInst *, 8 > &  ReturnsToZap,
SCCPSolver &  Solver 
)
static

◆ forceIndeterminateEdge()

static void forceIndeterminateEdge ( Instruction I,
SCCPSolver &  Solver 
)
static

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( SCCPLegacyPass  ,
"sccp"  ,
"Sparse Conditional Constant Propagation ,
false  ,
false   
)

◆ runSCCP()

static bool runSCCP ( Function F,
const DataLayout DL,
const TargetLibraryInfo TLI 
)
static

◆ STATISTIC() [1/5]

STATISTIC ( NumInstRemoved  ,
"Number of instructions removed"   
)

◆ STATISTIC() [2/5]

STATISTIC ( NumDeadBlocks  ,
"Number of basic blocks unreachable"   
)

◆ STATISTIC() [3/5]

STATISTIC ( IPNumInstRemoved  ,
"Number of instructions removed by IPSCCP"   
)

◆ STATISTIC() [4/5]

STATISTIC ( IPNumArgsElimed  ,
"Number of arguments constant propagated by IPSCCP"   
)

◆ STATISTIC() [5/5]

STATISTIC ( IPNumGlobalConst  ,
"Number of globals found to be constant by IPSCCP"   
)

◆ tryToReplaceWithConstant()

static bool tryToReplaceWithConstant ( SCCPSolver &  Solver,
Value V 
)
static

Variable Documentation

◆ false

Sparse Conditional Constant false

Definition at line 1866 of file SCCP.cpp.

◆ Propagation

Sparse Conditional Constant Propagation

Definition at line 1866 of file SCCP.cpp.

◆ sccp

sccp

Definition at line 1866 of file SCCP.cpp.