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/Support/InstVisitor.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Support/CallSite.h"
#include "llvm/Support/Debug.h"
#include "llvm/ADT/hash_map"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/STLExtras.h"
#include <algorithm>
#include <iostream>
#include <set>

Include dependency graph for SCCP.cpp:

Go to the source code of this file.

Classes

class  SCCPSolver

Defines

#define DEBUG_TYPE   "sccp"

Functions

FunctionPassllvm::createSCCPPass ()
ModulePassllvm::createIPSCCPPass ()
static bool AddressIsTaken (GlobalValue *GV)

Variables

enum { ... } ::LatticeVal::@263 LatticeValue
ConstantConstantVal
Statistic NumInstRemoved ("sccp","Number of instructions removed")
Statistic NumDeadBlocks ("sccp","Number of basic blocks unreachable")
RegisterOpt< SCCP > X ("sccp","Sparse Conditional Constant Propagation")
Statistic IPNumInstRemoved ("ipsccp","Number of instructions removed")
Statistic IPNumDeadBlocks ("ipsccp","Number of basic blocks unreachable")
Statistic IPNumArgsElimed ("ipsccp","Number of arguments constant propagated")
Statistic IPNumGlobalConst ("ipsccp","Number of globals found to be constant")
RegisterOpt< 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]

Definition at line 1196 of file SCCP.cpp.

References llvm::CallSite::arg_begin(), llvm::CallSite::arg_end(), llvm::User::getOperand(), GV, LI, llvm::GlobalValue::removeDeadConstantUsers(), llvm::Value::use_begin(), and llvm::Value::use_end().


Variable Documentation

Constant* ConstantVal

Definition at line 54 of file SCCP.cpp.

Referenced by getValNonImprovising().

Statistic IPNumArgsElimed("ipsccp","Number of arguments constant propagated") [static]

Statistic IPNumDeadBlocks("ipsccp","Number of basic blocks unreachable") [static]

Statistic IPNumGlobalConst("ipsccp","Number of globals found to be constant") [static]

Statistic IPNumInstRemoved("ipsccp","Number of instructions removed") [static]

enum { ... } LatticeValue

Statistic NumDeadBlocks("sccp","Number of basic blocks unreachable") [static]

Statistic NumInstRemoved("sccp","Number of instructions removed") [static]

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

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