LLVM
8.0.1
|
This callback is used in conjunction with PointerMayBeCaptured. More...
#include "llvm/Analysis/CaptureTracking.h"
Public Member Functions | |
virtual | ~CaptureTracker () |
virtual void | tooManyUses ()=0 |
tooManyUses - The depth of traversal has breached a limit. More... | |
virtual bool | shouldExplore (const Use *U) |
shouldExplore - This is the use of a value derived from the pointer. More... | |
virtual bool | captured (const Use *U)=0 |
captured - Information about the pointer was captured by the user of use U. More... | |
This callback is used in conjunction with PointerMayBeCaptured.
In addition to the interface here, you'll need to provide your own getters to see whether anything was captured.
Definition at line 69 of file CaptureTracking.h.
|
virtual |
Definition at line 33 of file CaptureTracking.cpp.
captured - Information about the pointer was captured by the user of use U.
Return true to stop the traversal or false to continue looking for more capturing instructions.
Referenced by llvm::PointerMayBeCaptured(), and shouldExplore().
shouldExplore - This is the use of a value derived from the pointer.
To prune the search (ie., assume that none of its users could possibly capture) return false. To search it, return true.
U->getUser() is always an Instruction.
Definition at line 35 of file CaptureTracking.cpp.
References llvm::SmallVectorImpl< T >::append(), captured(), llvm::DominatorTree::dominates(), llvm::Function::getEntryBlock(), llvm::Instruction::getNumSuccessors(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), I, llvm::isPotentiallyReachable(), llvm::isPotentiallyReachableFromMany(), llvm::DominatorTree::isReachableFromEntry(), llvm::succ_begin(), llvm::succ_end(), and tooManyUses().
Referenced by llvm::PointerMayBeCaptured().
|
pure virtual |
tooManyUses - The depth of traversal has breached a limit.
There may be capturing instructions that will not be passed into captured().
Referenced by llvm::PointerMayBeCaptured(), and shouldExplore().