class LazyValueInfo
Declaration
class LazyValueInfo { /* full declaration omitted */ };
Description
This pass computes, caches, and vends lazy value constraint information.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:31
Method Overview
- public LazyValueInfo()
- public LazyValueInfo(llvm::AssumptionCache * AC_, const llvm::DataLayout * DL_, llvm::TargetLibraryInfo * TLI_, llvm::DominatorTree * DT_)
- public LazyValueInfo(llvm::LazyValueInfo && Arg)
- public void disableDT()
- public void enableDT()
- public void eraseBlock(llvm::BasicBlock * BB)
- public llvm::Constant * getConstant(llvm::Value * V, llvm::BasicBlock * BB, llvm::Instruction * CxtI = nullptr)
- public llvm::Constant * getConstantOnEdge(llvm::Value * V, llvm::BasicBlock * FromBB, llvm::BasicBlock * ToBB, llvm::Instruction * CxtI = nullptr)
- public llvm::ConstantRange getConstantRange(llvm::Value * V, llvm::BasicBlock * BB, llvm::Instruction * CxtI = nullptr)
- public llvm::ConstantRange getConstantRangeOnEdge(llvm::Value * V, llvm::BasicBlock * FromBB, llvm::BasicBlock * ToBB, llvm::Instruction * CxtI = nullptr)
- public llvm::LazyValueInfo::Tristate getPredicateAt(unsigned int Pred, llvm::Value * V, llvm::Constant * C, llvm::Instruction * CxtI)
- public llvm::LazyValueInfo::Tristate getPredicateOnEdge(unsigned int Pred, llvm::Value * V, llvm::Constant * C, llvm::BasicBlock * FromBB, llvm::BasicBlock * ToBB, llvm::Instruction * CxtI = nullptr)
- public bool invalidate(llvm::Function & F, const llvm::PreservedAnalyses & PA, FunctionAnalysisManager::Invalidator & Inv)
- public void printLVI(llvm::Function & F, llvm::DominatorTree & DTree, llvm::raw_ostream & OS)
- public void releaseMemory()
- public void threadEdge(llvm::BasicBlock * PredBB, llvm::BasicBlock * OldSucc, llvm::BasicBlock * NewSucc)
- public ~LazyValueInfo()
Methods
¶LazyValueInfo()
LazyValueInfo()
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:42
¶LazyValueInfo(llvm::AssumptionCache* AC_,
const llvm::DataLayout* DL_,
llvm::TargetLibraryInfo* TLI_,
llvm::DominatorTree* DT_)
LazyValueInfo(llvm::AssumptionCache* AC_,
const llvm::DataLayout* DL_,
llvm::TargetLibraryInfo* TLI_,
llvm::DominatorTree* DT_)
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:43
Parameters
- llvm::AssumptionCache* AC_
- const llvm::DataLayout* DL_
- llvm::TargetLibraryInfo* TLI_
- llvm::DominatorTree* DT_
¶LazyValueInfo(llvm::LazyValueInfo&& Arg)
LazyValueInfo(llvm::LazyValueInfo&& Arg)
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:46
Parameters
- llvm::LazyValueInfo&& Arg
¶void disableDT()
void disableDT()
Description
Disables use of the DominatorTree within LVI.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:116
¶void enableDT()
void enableDT()
Description
Enables use of the DominatorTree within LVI. Does nothing if the class instance was initialized without a DT pointer.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:120
¶void eraseBlock(llvm::BasicBlock* BB)
void eraseBlock(llvm::BasicBlock* BB)
Description
Inform the analysis cache that we have erased a block.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:107
Parameters
- llvm::BasicBlock* BB
¶llvm::Constant* getConstant(
llvm::Value* V,
llvm::BasicBlock* BB,
llvm::Instruction* CxtI = nullptr)
llvm::Constant* getConstant(
llvm::Value* V,
llvm::BasicBlock* BB,
llvm::Instruction* CxtI = nullptr)
Description
Determine whether the specified value is known to be a constant at the end of the specified block. Return null if not.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:83
Parameters
- llvm::Value* V
- llvm::BasicBlock* BB
- llvm::Instruction* CxtI = nullptr
¶llvm::Constant* getConstantOnEdge(
llvm::Value* V,
llvm::BasicBlock* FromBB,
llvm::BasicBlock* ToBB,
llvm::Instruction* CxtI = nullptr)
llvm::Constant* getConstantOnEdge(
llvm::Value* V,
llvm::BasicBlock* FromBB,
llvm::BasicBlock* ToBB,
llvm::Instruction* CxtI = nullptr)
Description
Determine whether the specified value is known to be a constant on the specified edge. Return null if not.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:92
Parameters
- llvm::Value* V
- llvm::BasicBlock* FromBB
- llvm::BasicBlock* ToBB
- llvm::Instruction* CxtI = nullptr
¶llvm::ConstantRange getConstantRange(
llvm::Value* V,
llvm::BasicBlock* BB,
llvm::Instruction* CxtI = nullptr)
llvm::ConstantRange getConstantRange(
llvm::Value* V,
llvm::BasicBlock* BB,
llvm::Instruction* CxtI = nullptr)
Description
Return the ConstantRange constraint that is known to hold for the specified value at the end of the specified block. This may only be called on integer-typed Values.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:88
Parameters
- llvm::Value* V
- llvm::BasicBlock* BB
- llvm::Instruction* CxtI = nullptr
¶llvm::ConstantRange getConstantRangeOnEdge(
llvm::Value* V,
llvm::BasicBlock* FromBB,
llvm::BasicBlock* ToBB,
llvm::Instruction* CxtI = nullptr)
llvm::ConstantRange getConstantRangeOnEdge(
llvm::Value* V,
llvm::BasicBlock* FromBB,
llvm::BasicBlock* ToBB,
llvm::Instruction* CxtI = nullptr)
Description
Return the ConstantRage constraint that is known to hold for the specified value on the specified edge. This may be only be called on integer-typed Values.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:98
Parameters
- llvm::Value* V
- llvm::BasicBlock* FromBB
- llvm::BasicBlock* ToBB
- llvm::Instruction* CxtI = nullptr
¶llvm::LazyValueInfo::Tristate getPredicateAt(
unsigned int Pred,
llvm::Value* V,
llvm::Constant* C,
llvm::Instruction* CxtI)
llvm::LazyValueInfo::Tristate getPredicateAt(
unsigned int Pred,
llvm::Value* V,
llvm::Constant* C,
llvm::Instruction* CxtI)
Description
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.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:78
Parameters
- unsigned int Pred
- llvm::Value* V
- llvm::Constant* C
- llvm::Instruction* CxtI
¶llvm::LazyValueInfo::Tristate getPredicateOnEdge(
unsigned int Pred,
llvm::Value* V,
llvm::Constant* C,
llvm::BasicBlock* FromBB,
llvm::BasicBlock* ToBB,
llvm::Instruction* CxtI = nullptr)
llvm::LazyValueInfo::Tristate getPredicateOnEdge(
unsigned int Pred,
llvm::Value* V,
llvm::Constant* C,
llvm::BasicBlock* FromBB,
llvm::BasicBlock* ToBB,
llvm::Instruction* CxtI = nullptr)
Description
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.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:71
Parameters
- unsigned int Pred
- llvm::Value* V
- llvm::Constant* C
- llvm::BasicBlock* FromBB
- llvm::BasicBlock* ToBB
- llvm::Instruction* CxtI = nullptr
¶bool invalidate(
llvm::Function& F,
const llvm::PreservedAnalyses& PA,
FunctionAnalysisManager::Invalidator& Inv)
bool invalidate(
llvm::Function& F,
const llvm::PreservedAnalyses& PA,
FunctionAnalysisManager::Invalidator& Inv)
Description
Handle invalidation events in the new pass manager.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:126
Parameters
- llvm::Function& F
- const llvm::PreservedAnalyses& PA
- FunctionAnalysisManager::Invalidator& Inv
¶void printLVI(llvm::Function& F,
llvm::DominatorTree& DTree,
llvm::raw_ostream& OS)
void printLVI(llvm::Function& F,
llvm::DominatorTree& DTree,
llvm::raw_ostream& OS)
Description
Print the \LazyValueInfoAnalysis. We pass in the DTree that is required for identifying which basic blocks we can solve/print for, in the LVIPrinter. The DT is optional in LVI, so we need to pass it here as an argument.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:113
Parameters
- llvm::Function& F
- llvm::DominatorTree& DTree
- llvm::raw_ostream& OS
¶void releaseMemory()
void releaseMemory()
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:123
¶void threadEdge(llvm::BasicBlock* PredBB,
llvm::BasicBlock* OldSucc,
llvm::BasicBlock* NewSucc)
void threadEdge(llvm::BasicBlock* PredBB,
llvm::BasicBlock* OldSucc,
llvm::BasicBlock* NewSucc)
Description
Inform the analysis cache that we have threaded an edge from PredBB to OldSucc to be from PredBB to NewSucc instead.
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:104
Parameters
- llvm::BasicBlock* PredBB
- llvm::BasicBlock* OldSucc
- llvm::BasicBlock* NewSucc
¶~LazyValueInfo()
~LazyValueInfo()
Declared at: llvm/include/llvm/Analysis/LazyValueInfo.h:41