LLVM API Documentation
#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>

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") | |
| FunctionPass * | llvm::createSCCPPass () |
| ModulePass * | llvm::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") |
| static bool AddressIsTaken | ( | GlobalValue * | GV | ) | [static] |
Definition at line 1629 of file SCCP.cpp.
References llvm::CallSite::get(), llvm::User::getOperand(), llvm::CallSite::hasArgument(), LI, llvm::GlobalValue::removeDeadConstantUsers(), llvm::Value::use_begin(), and llvm::Value::use_end().
| 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" | ||||
| ) |
| SmallVector<BasicBlock*, 64> BBWorkList |
| SmallVector<Value*, 64> InstWorkList |
| DenseSet<Edge> KnownFeasibleEdges |
| enum { ... } LatticeValue |
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.
| DenseMap<std::pair<Function*, unsigned>, LatticeVal> TrackedMultipleRetVals |
| std::multimap<PHINode*, Instruction*> UsersOfOverdefinedPHIs |
| std::map<Value*, LatticeVal> ValueState |
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.