LLVM API Documentation
#include <LazyValueInfo.h>
Public Types | |
enum | Tristate { Unknown = -1, False = 0, True = 1 } |
Tristate - This is used to return true/false/dunno results. More... | |
Public Member Functions | |
LazyValueInfo () | |
~LazyValueInfo () | |
Tristate | getPredicateOnEdge (unsigned Pred, Value *V, Constant *C, BasicBlock *FromBB, BasicBlock *ToBB) |
Constant * | getConstant (Value *V, BasicBlock *BB) |
Constant * | getConstantOnEdge (Value *V, BasicBlock *FromBB, BasicBlock *ToBB) |
void | threadEdge (BasicBlock *PredBB, BasicBlock *OldSucc, BasicBlock *NewSucc) |
void | eraseBlock (BasicBlock *BB) |
eraseBlock - Inform the analysis cache that we have erased a block. More... | |
virtual void | getAnalysisUsage (AnalysisUsage &AU) const |
virtual void | releaseMemory () |
virtual bool | runOnFunction (Function &F) |
![]() | |
FunctionPass (char &pid) | |
Pass * | createPrinterPass (raw_ostream &O, const std::string &Banner) const |
createPrinterPass - Get a function printer pass. More... | |
virtual void | assignPassManager (PMStack &PMS, PassManagerType T) |
virtual PassManagerType | getPotentialPassManagerType () const |
Return what kind of Pass Manager can manage this pass. More... | |
![]() | |
Pass (PassKind K, char &pid) | |
virtual | ~Pass () |
PassKind | getPassKind () const |
virtual const char * | getPassName () const |
AnalysisID | getPassID () const |
getPassID - Return the PassID number that corresponds to this pass. More... | |
virtual bool | doInitialization (Module &) |
virtual bool | doFinalization (Module &) |
virtual void | print (raw_ostream &O, const Module *M) const |
void | dump () const |
virtual void | preparePassManager (PMStack &) |
Check if available pass managers are suitable for this pass or not. More... | |
void | setResolver (AnalysisResolver *AR) |
AnalysisResolver * | getResolver () const |
virtual void * | getAdjustedAnalysisPointer (AnalysisID ID) |
virtual ImmutablePass * | getAsImmutablePass () |
virtual PMDataManager * | getAsPMDataManager () |
virtual void | verifyAnalysis () const |
virtual void | dumpPassStructure (unsigned Offset=0) |
template<typename AnalysisType > | |
AnalysisType * | getAnalysisIfAvailable () const |
bool | mustPreserveAnalysisID (char &AID) const |
template<typename AnalysisType > | |
AnalysisType & | getAnalysis () const |
template<typename AnalysisType > | |
AnalysisType & | getAnalysis (Function &F) |
template<typename AnalysisType > | |
AnalysisType & | getAnalysisID (AnalysisID PI) const |
template<typename AnalysisType > | |
AnalysisType & | getAnalysisID (AnalysisID PI, Function &F) |
Static Public Attributes | |
static char | ID = 0 |
Additional Inherited Members | |
![]() | |
static const PassInfo * | lookupPassInfo (const void *TI) |
static const PassInfo * | lookupPassInfo (StringRef Arg) |
static Pass * | createPass (AnalysisID ID) |
LazyValueInfo - This pass computes, caches, and vends lazy value constraint information.
Definition at line 28 of file LazyValueInfo.h.
Tristate - This is used to return true/false/dunno results.
Enumerator | |
---|---|
Unknown | |
False | |
True |
Definition at line 42 of file LazyValueInfo.h.
|
inline |
Definition at line 36 of file LazyValueInfo.h.
References llvm::PassRegistry::getPassRegistry(), and llvm::initializeLazyValueInfoPass().
|
inline |
Definition at line 39 of file LazyValueInfo.h.
void LazyValueInfo::eraseBlock | ( | BasicBlock * | BB | ) |
eraseBlock - Inform the analysis cache that we have erased a block.
Definition at line 1141 of file LazyValueInfo.cpp.
References getCache().
|
virtual |
getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. If a pass specifies that it uses a particular analysis result to this function, it can then use the getAnalysis<AnalysisType>() function, below.
Reimplemented from llvm::Pass.
Definition at line 1023 of file LazyValueInfo.cpp.
References llvm::AnalysisUsage::addRequired(), and llvm::AnalysisUsage::setPreservesAll().
Constant * LazyValueInfo::getConstant | ( | Value * | V, |
BasicBlock * | BB | ||
) |
getConstant - Determine whether the specified value is known to be a constant at the end of the specified block. Return null if not.
Definition at line 1036 of file LazyValueInfo.cpp.
References llvm::ConstantInt::get(), getCache(), llvm::Value::getContext(), and llvm::ConstantRange::getSingleElement().
Constant * LazyValueInfo::getConstantOnEdge | ( | Value * | V, |
BasicBlock * | FromBB, | ||
BasicBlock * | ToBB | ||
) |
getConstantOnEdge - Determine whether the specified value is known to be a constant on the specified edge. Return null if not.
Definition at line 1051 of file LazyValueInfo.cpp.
References llvm::ConstantInt::get(), getCache(), llvm::Value::getContext(), and llvm::ConstantRange::getSingleElement().
LazyValueInfo::Tristate LazyValueInfo::getPredicateOnEdge | ( | unsigned | Pred, |
Value * | V, | ||
Constant * | C, | ||
BasicBlock * | FromBB, | ||
BasicBlock * | ToBB | ||
) |
getPredicateOnEdge - Determine whether the specified value comparison with a constant is known to be true or false on the specified CFG edge. Pred is a CmpInst predicate.
Definition at line 1069 of file LazyValueInfo.cpp.
References llvm::CallingConv::C, llvm::ConstantFoldCompareInstOperands(), llvm::ConstantRange::contains(), llvm::dyn_cast(), getCache(), llvm::ConstantInt::getValue(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::ConstantRange::inverse(), llvm::Constant::isNullValue(), llvm::ConstantRange::isSingleElement(), llvm::ICmpInst::makeConstantRange(), TD, and llvm::Unknown.
|
virtual |
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. The default behavior of passes is to hold onto memory for the entire duration of their lifetime (which is the entire compile time). For pipelined passes, this is not a big deal because that memory gets recycled every time the pass is invoked on another program unit. For IP passes, it is more important to free memory when it is unused.
Optionally implement this function to release pass memory when it is no longer used.
Reimplemented from llvm::Pass.
Definition at line 1028 of file LazyValueInfo.cpp.
References getCache().
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
Implements llvm::FunctionPass.
Definition at line 1012 of file LazyValueInfo.cpp.
References getCache(), and TD.
void LazyValueInfo::threadEdge | ( | BasicBlock * | PredBB, |
BasicBlock * | OldSucc, | ||
BasicBlock * | NewSucc | ||
) |
threadEdge - Inform the analysis cache that we have threaded an edge from PredBB to OldSucc to be from PredBB to NewSucc instead.
Definition at line 1136 of file LazyValueInfo.cpp.
References getCache().
|
static |
Definition at line 35 of file LazyValueInfo.h.