LLVM API Documentation

SCCP.cpp File Reference

#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Instructions.h"
#include "llvm/Pass.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Support/CallSite.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/InstVisitor.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/STLExtras.h"
#include <algorithm>
#include <map>

Include dependency graph for SCCP.cpp:

Go to the source code of this file.

Defines

#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 (IPNumDeadBlocks,"Number of basic blocks unreachable by IPSCCP")
 STATISTIC (IPNumArgsElimed,"Number of arguments constant propagated by IPSCCP")
 STATISTIC (IPNumGlobalConst,"Number of globals found to be constant by IPSCCP")
FunctionPassllvm::createSCCPPass ()
ModulePassllvm::createIPSCCPPass ()
static bool AddressIsTaken (GlobalValue *GV)

Variables

static RegisterPass< SCCP > X ("sccp","Sparse Conditional Constant Propagation")
static RegisterPass< IPSCCP > Y ("ipsccp","Interprocedural Sparse Conditional Constant Propagation")


Define Documentation

#define DEBUG_TYPE   "sccp"

Definition at line 24 of file SCCP.cpp.


Function Documentation

static bool AddressIsTaken ( GlobalValue GV  )  [static]

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

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

STATISTIC ( IPNumDeadBlocks  ,
"Number of basic blocks unreachable by IPSCCP"   
)

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

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

STATISTIC ( NumInstRemoved  ,
"Number of instructions removed"   
)


Variable Documentation

Definition at line 141 of file SCCP.cpp.

Definition at line 169 of file SCCP.cpp.

Definition at line 79 of file SCCP.cpp.

char ID [static]

Definition at line 1499 of file SCCP.cpp.

Definition at line 166 of file SCCP.cpp.

Definition at line 178 of file SCCP.cpp.

enum { ... } LatticeValue

Definition at line 165 of file SCCP.cpp.

GlobalValue - If we are tracking any values for the contents of a global variable, we keep a mapping from the constant accessor to the element of the global, to the currently known value. If the value becomes overdefined, it's entry is simply removed from this map.

Definition at line 148 of file SCCP.cpp.

TrackedMultipleRetVals - Same as TrackedRetVals, but used for functions that return multiple values.

Definition at line 157 of file SCCP.cpp.

TrackedRetVals - If we are tracking arguments into and the return value out of a function, it will have an entry in this map, indicating what the known return value for the function is.

Definition at line 153 of file SCCP.cpp.

UsersOfOverdefinedPHIs - Keep track of any users of PHI nodes that are not overdefined, despite the fact that the PHI node is overdefined.

Definition at line 173 of file SCCP.cpp.

Definition at line 142 of file SCCP.cpp.

RegisterPass<SCCP> X("sccp","Sparse Conditional Constant Propagation") [static]

RegisterPass<IPSCCP> Y("ipsccp","Interprocedural Sparse Conditional Constant Propagation") [static]




This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.