LLVM API Documentation

Public Types | Public Member Functions | Static Public Attributes
llvm::LazyValueInfo Class Reference

#include <LazyValueInfo.h>

Inheritance diagram for llvm::LazyValueInfo:
Inheritance graph
[legend]
Collaboration diagram for llvm::LazyValueInfo:
Collaboration graph
[legend]

List of all members.

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, Instruction *CxtI=nullptr)
Tristate getPredicateAt (unsigned Pred, Value *V, Constant *C, Instruction *CxtI)
ConstantgetConstant (Value *V, BasicBlock *BB, Instruction *CxtI=nullptr)
ConstantgetConstantOnEdge (Value *V, BasicBlock *FromBB, BasicBlock *ToBB, Instruction *CxtI=nullptr)
void threadEdge (BasicBlock *PredBB, BasicBlock *OldSucc, BasicBlock *NewSucc)
void eraseBlock (BasicBlock *BB)
 eraseBlock - Inform the analysis cache that we have erased a block.
void getAnalysisUsage (AnalysisUsage &AU) const override
void releaseMemory () override
bool runOnFunction (Function &F) override

Static Public Attributes

static char ID = 0

Detailed Description

LazyValueInfo - This pass computes, caches, and vends lazy value constraint information.

Definition at line 31 of file LazyValueInfo.h.


Member Enumeration Documentation

Tristate - This is used to return true/false/dunno results.

Enumerator:
Unknown 
False 
True 

Definition at line 47 of file LazyValueInfo.h.


Constructor & Destructor Documentation

llvm::LazyValueInfo::LazyValueInfo ( ) [inline]

Definition at line 44 of file LazyValueInfo.h.


Member Function Documentation

eraseBlock - Inform the analysis cache that we have erased a block.

Definition at line 1270 of file LazyValueInfo.cpp.

References getCache().

void LazyValueInfo::getAnalysisUsage ( AnalysisUsage ) const [override, 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 1129 of file LazyValueInfo.cpp.

References llvm::AnalysisUsage::addRequired(), and llvm::AnalysisUsage::setPreservesAll().

Constant * LazyValueInfo::getConstant ( Value V,
BasicBlock BB,
Instruction CxtI = nullptr 
)

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 1143 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,
Instruction CxtI = nullptr 
)

getConstantOnEdge - Determine whether the specified value is known to be a constant on the specified edge. Return null if not.

Definition at line 1160 of file LazyValueInfo.cpp.

References llvm::ConstantInt::get(), getCache(), llvm::Value::getContext(), and llvm::ConstantRange::getSingleElement().

getPredicateAt - Determine whether the specified value comparison with a constant is known to be true or false at the specified instruction (from an assume intrinsic). Pred is a CmpInst predicate.

Definition at line 1257 of file LazyValueInfo.cpp.

References getCache(), and getPredicateResult().

LazyValueInfo::Tristate LazyValueInfo::getPredicateOnEdge ( unsigned  Pred,
Value V,
Constant C,
BasicBlock FromBB,
BasicBlock ToBB,
Instruction CxtI = nullptr 
)

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 1247 of file LazyValueInfo.cpp.

References getCache(), and getPredicateResult().

void LazyValueInfo::releaseMemory ( ) [override, 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 1135 of file LazyValueInfo.cpp.

References getCache().

bool LazyValueInfo::runOnFunction ( Function F) [override, virtual]

runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.

Implements llvm::FunctionPass.

Definition at line 1111 of file LazyValueInfo.cpp.

References getCache(), llvm::DataLayoutPass::getDataLayout(), and llvm::DominatorTreeWrapperPass::getDomTree().

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 1265 of file LazyValueInfo.cpp.

References getCache().


Member Data Documentation

char LazyValueInfo::ID = 0 [static]

Definition at line 40 of file LazyValueInfo.h.


The documentation for this class was generated from the following files: