LLVM API Documentation
LibCallAliasAnalysis - Alias analysis driven from LibCallInfo. More...
#include <LibCallAliasAnalysis.h>
Public Member Functions | |
LibCallAliasAnalysis (LibCallInfo *LC=0) | |
LibCallAliasAnalysis (char &ID, LibCallInfo *LC) | |
~LibCallAliasAnalysis () | |
ModRefResult | getModRefInfo (ImmutableCallSite CS, const Location &Loc) |
ModRefResult | getModRefInfo (ImmutableCallSite CS1, ImmutableCallSite CS2) |
virtual void | getAnalysisUsage (AnalysisUsage &AU) const |
virtual bool | runOnFunction (Function &F) |
virtual void * | getAdjustedAnalysisPointer (const void *PI) |
![]() | |
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 | releaseMemory () |
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) |
![]() | |
AliasAnalysis () | |
virtual | ~AliasAnalysis () |
const DataLayout * | getDataLayout () const |
const TargetLibraryInfo * | getTargetLibraryInfo () const |
uint64_t | getTypeStoreSize (Type *Ty) |
Location | getLocation (const LoadInst *LI) |
Location | getLocation (const StoreInst *SI) |
Location | getLocation (const VAArgInst *VI) |
Location | getLocation (const AtomicCmpXchgInst *CXI) |
Location | getLocation (const AtomicRMWInst *RMWI) |
virtual AliasResult | alias (const Location &LocA, const Location &LocB) |
AliasResult | alias (const Value *V1, uint64_t V1Size, const Value *V2, uint64_t V2Size) |
alias - A convenience wrapper. More... | |
AliasResult | alias (const Value *V1, const Value *V2) |
alias - A convenience wrapper. More... | |
bool | isNoAlias (const Location &LocA, const Location &LocB) |
bool | isNoAlias (const Value *V1, uint64_t V1Size, const Value *V2, uint64_t V2Size) |
isNoAlias - A convenience wrapper. More... | |
bool | isNoAlias (const Value *V1, const Value *V2) |
isNoAlias - A convenience wrapper. More... | |
bool | isMustAlias (const Location &LocA, const Location &LocB) |
isMustAlias - A convenience wrapper. More... | |
bool | isMustAlias (const Value *V1, const Value *V2) |
isMustAlias - A convenience wrapper. More... | |
virtual bool | pointsToConstantMemory (const Location &Loc, bool OrLocal=false) |
bool | pointsToConstantMemory (const Value *P, bool OrLocal=false) |
pointsToConstantMemory - A convenient wrapper. More... | |
virtual ModRefBehavior | getModRefBehavior (ImmutableCallSite CS) |
getModRefBehavior - Return the behavior when calling the given call site. More... | |
virtual ModRefBehavior | getModRefBehavior (const Function *F) |
bool | doesNotAccessMemory (ImmutableCallSite CS) |
bool | doesNotAccessMemory (const Function *F) |
bool | onlyReadsMemory (ImmutableCallSite CS) |
bool | onlyReadsMemory (const Function *F) |
ModRefResult | getModRefInfo (const Instruction *I, const Location &Loc) |
ModRefResult | getModRefInfo (const Instruction *I, const Value *P, uint64_t Size) |
getModRefInfo - A convenience wrapper. More... | |
ModRefResult | getModRefInfo (ImmutableCallSite CS, const Value *P, uint64_t Size) |
getModRefInfo (for call sites) - A convenience wrapper. More... | |
ModRefResult | getModRefInfo (const CallInst *C, const Location &Loc) |
ModRefResult | getModRefInfo (const CallInst *C, const Value *P, uint64_t Size) |
getModRefInfo (for calls) - A convenience wrapper. More... | |
ModRefResult | getModRefInfo (const InvokeInst *I, const Location &Loc) |
ModRefResult | getModRefInfo (const InvokeInst *I, const Value *P, uint64_t Size) |
getModRefInfo (for invokes) - A convenience wrapper. More... | |
ModRefResult | getModRefInfo (const LoadInst *L, const Location &Loc) |
ModRefResult | getModRefInfo (const LoadInst *L, const Value *P, uint64_t Size) |
getModRefInfo (for loads) - A convenience wrapper. More... | |
ModRefResult | getModRefInfo (const StoreInst *S, const Location &Loc) |
ModRefResult | getModRefInfo (const StoreInst *S, const Value *P, uint64_t Size) |
getModRefInfo (for stores) - A convenience wrapper. More... | |
ModRefResult | getModRefInfo (const FenceInst *S, const Location &Loc) |
ModRefResult | getModRefInfo (const FenceInst *S, const Value *P, uint64_t Size) |
getModRefInfo (for fences) - A convenience wrapper. More... | |
ModRefResult | getModRefInfo (const AtomicCmpXchgInst *CX, const Location &Loc) |
ModRefResult | getModRefInfo (const AtomicCmpXchgInst *CX, const Value *P, unsigned Size) |
getModRefInfo (for cmpxchges) - A convenience wrapper. More... | |
ModRefResult | getModRefInfo (const AtomicRMWInst *RMW, const Location &Loc) |
ModRefResult | getModRefInfo (const AtomicRMWInst *RMW, const Value *P, unsigned Size) |
getModRefInfo (for atomicrmws) - A convenience wrapper. More... | |
ModRefResult | getModRefInfo (const VAArgInst *I, const Location &Loc) |
ModRefResult | getModRefInfo (const VAArgInst *I, const Value *P, uint64_t Size) |
getModRefInfo (for va_args) - A convenience wrapper. More... | |
ModRefResult | callCapturesBefore (const Instruction *I, const AliasAnalysis::Location &MemLoc, DominatorTree *DT) |
ModRefResult | callCapturesBefore (const Instruction *I, const Value *P, uint64_t Size, DominatorTree *DT) |
callCapturesBefore - A convenience wrapper. More... | |
bool | canBasicBlockModify (const BasicBlock &BB, const Location &Loc) |
bool | canBasicBlockModify (const BasicBlock &BB, const Value *P, uint64_t Size) |
canBasicBlockModify - A convenience wrapper. More... | |
bool | canInstructionRangeModify (const Instruction &I1, const Instruction &I2, const Location &Loc) |
bool | canInstructionRangeModify (const Instruction &I1, const Instruction &I2, const Value *Ptr, uint64_t Size) |
canInstructionRangeModify - A convenience wrapper. More... | |
virtual void | deleteValue (Value *V) |
virtual void | copyValue (Value *From, Value *To) |
virtual void | addEscapingUse (Use &U) |
void | replaceWithNewValue (Value *Old, Value *New) |
Public Attributes | |
LibCallInfo * | LCI |
Static Public Attributes | |
static char | ID = 0 |
![]() | |
static char | ID = 0 |
static uint64_t const | UnknownSize = ~UINT64_C(0) |
Additional Inherited Members | |
![]() | |
enum | AliasResult { NoAlias = 0, MayAlias, PartialAlias, MustAlias } |
enum | ModRefResult { NoModRef = 0, Ref = 1, Mod = 2, ModRef = 3 } |
enum | { Nowhere = 0, ArgumentPointees = 4, Anywhere = 8 | ArgumentPointees } |
enum | ModRefBehavior { DoesNotAccessMemory = Nowhere | NoModRef, OnlyReadsArgumentPointees = ArgumentPointees | Ref, OnlyAccessesArgumentPointees = ArgumentPointees | ModRef, OnlyReadsMemory = Anywhere | Ref, UnknownModRefBehavior = Anywhere | ModRef } |
![]() | |
static const PassInfo * | lookupPassInfo (const void *TI) |
static const PassInfo * | lookupPassInfo (StringRef Arg) |
static Pass * | createPass (AnalysisID ID) |
![]() | |
static Location | getLocationForSource (const MemTransferInst *MTI) |
static Location | getLocationForDest (const MemIntrinsic *MI) |
static bool | onlyReadsMemory (ModRefBehavior MRB) |
static bool | onlyAccessesArgPointees (ModRefBehavior MRB) |
static bool | doesAccessArgPointees (ModRefBehavior MRB) |
![]() | |
void | InitializeAliasAnalysis (Pass *P) |
![]() | |
const DataLayout * | TD |
const TargetLibraryInfo * | TLI |
LibCallAliasAnalysis - Alias analysis driven from LibCallInfo.
Definition at line 25 of file LibCallAliasAnalysis.h.
|
inlineexplicit |
Definition at line 30 of file LibCallAliasAnalysis.h.
References llvm::PassRegistry::getPassRegistry(), and llvm::initializeLibCallAliasAnalysisPass().
|
inlineexplicit |
Definition at line 34 of file LibCallAliasAnalysis.h.
References llvm::PassRegistry::getPassRegistry(), and llvm::initializeLibCallAliasAnalysisPass().
LibCallAliasAnalysis::~LibCallAliasAnalysis | ( | ) |
Definition at line 30 of file LibCallAliasAnalysis.cpp.
References LCI.
|
inlinevirtual |
getAdjustedAnalysisPointer - This method is used when a pass implements an analysis interface through multiple inheritance. If needed, it should override this to adjust the this pointer as needed for the specified pass info.
Reimplemented from llvm::Pass.
Definition at line 60 of file LibCallAliasAnalysis.h.
References llvm::AliasAnalysis::ID.
|
virtual |
getAnalysisUsage - All alias analysis implementations should invoke this directly (using AliasAnalysis::getAnalysisUsage(AU)).
Reimplemented from llvm::AliasAnalysis.
Definition at line 34 of file LibCallAliasAnalysis.cpp.
References llvm::AliasAnalysis::getAnalysisUsage(), and llvm::AnalysisUsage::setPreservesAll().
|
virtual |
getModRefInfo (for call sites) - Return information about whether a particular call site modifies or reads the specified memory location.
Reimplemented from llvm::AliasAnalysis.
Definition at line 120 of file LibCallAliasAnalysis.cpp.
References F(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::getCalledFunction(), llvm::LibCallInfo::getFunctionInfo(), llvm::AliasAnalysis::getModRefInfo(), LCI, llvm::AliasAnalysis::ModRef, and llvm::AliasAnalysis::NoModRef.
|
inlinevirtual |
getModRefInfo - Return information about whether two call sites may refer to the same set of memory locations. See http://llvm.org/docs/AliasAnalysis.html#ModRefInfo for details.
Reimplemented from llvm::AliasAnalysis.
Definition at line 43 of file LibCallAliasAnalysis.h.
References llvm::AliasAnalysis::getModRefInfo().
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
Implements llvm::FunctionPass.
Definition at line 51 of file LibCallAliasAnalysis.h.
References llvm::AliasAnalysis::InitializeAliasAnalysis().
|
static |
Definition at line 26 of file LibCallAliasAnalysis.h.
LibCallInfo* llvm::LibCallAliasAnalysis::LCI |
Definition at line 28 of file LibCallAliasAnalysis.h.
Referenced by getModRefInfo(), and ~LibCallAliasAnalysis().