LLVM  10.0.0svn
Classes | Public Member Functions | List of all members
llvm::BasicAAResult Class Reference

This is the AA result object for the basic, local, and stateless alias analysis. More...

#include "llvm/Analysis/BasicAliasAnalysis.h"

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

Public Member Functions

 BasicAAResult (const DataLayout &DL, const Function &F, const TargetLibraryInfo &TLI, AssumptionCache &AC, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, PhiValues *PV=nullptr)
 
 BasicAAResult (const BasicAAResult &Arg)
 
 BasicAAResult (BasicAAResult &&Arg)
 
bool invalidate (Function &Fn, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &Inv)
 Handle invalidation events in the new pass manager. More...
 
AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI)
 
ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)
 Checks to see if the specified callsite can clobber the specified memory object. More...
 
ModRefInfo getModRefInfo (const CallBase *Call1, const CallBase *Call2, AAQueryInfo &AAQI)
 
bool pointsToConstantMemory (const MemoryLocation &Loc, AAQueryInfo &AAQI, bool OrLocal)
 Chases pointers until we find a (constant global) or not. More...
 
ModRefInfo getArgModRefInfo (const CallBase *Call, unsigned ArgIdx)
 Get the location associated with a pointer argument of a callsite. More...
 
FunctionModRefBehavior getModRefBehavior (const CallBase *Call)
 Returns the behavior when calling the given call site. More...
 
FunctionModRefBehavior getModRefBehavior (const Function *Fn)
 Returns the behavior when calling the given function. More...
 
- Public Member Functions inherited from llvm::AAResultBase< DerivedT >
AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI)
 
bool pointsToConstantMemory (const MemoryLocation &Loc, AAQueryInfo &AAQI, bool OrLocal)
 
ModRefInfo getArgModRefInfo (const CallBase *Call, unsigned ArgIdx)
 
FunctionModRefBehavior getModRefBehavior (const CallBase *Call)
 
FunctionModRefBehavior getModRefBehavior (const Function *F)
 
ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)
 
ModRefInfo getModRefInfo (const CallBase *Call1, const CallBase *Call2, AAQueryInfo &AAQI)
 

Additional Inherited Members

- Protected Member Functions inherited from llvm::AAResultBase< DerivedT >
 AAResultBase ()=default
 
 AAResultBase (const AAResultBase &Arg)
 
 AAResultBase (AAResultBase &&Arg)
 
AAResultsProxy getBestAAResults ()
 Get a proxy for the best AA result set to query at this time. More...
 

Detailed Description

This is the AA result object for the basic, local, and stateless alias analysis.

It implements the AA query interface in an entirely stateless manner. As one consequence, it is never invalidated due to IR changes. While it does retain some storage, that is used as an optimization and not to preserve information from query to query. However it does retain handles to various other analyses and must be recomputed when those analyses are.

Definition at line 54 of file BasicAliasAnalysis.h.

Constructor & Destructor Documentation

◆ BasicAAResult() [1/3]

llvm::BasicAAResult::BasicAAResult ( const DataLayout DL,
const Function F,
const TargetLibraryInfo TLI,
AssumptionCache AC,
DominatorTree DT = nullptr,
LoopInfo LI = nullptr,
PhiValues PV = nullptr 
)
inline

Definition at line 66 of file BasicAliasAnalysis.h.

Referenced by llvm::BasicAA::run().

◆ BasicAAResult() [2/3]

llvm::BasicAAResult::BasicAAResult ( const BasicAAResult Arg)
inline

Definition at line 73 of file BasicAliasAnalysis.h.

◆ BasicAAResult() [3/3]

llvm::BasicAAResult::BasicAAResult ( BasicAAResult &&  Arg)
inline

Member Function Documentation

◆ alias()

AliasResult BasicAAResult::alias ( const MemoryLocation LocA,
const MemoryLocation LocB,
AAQueryInfo AAQI 
)

◆ getArgModRefInfo()

ModRefInfo BasicAAResult::getArgModRefInfo ( const CallBase Call,
unsigned  ArgIdx 
)

Get the location associated with a pointer argument of a callsite.

Definition at line 796 of file BasicAliasAnalysis.cpp.

References llvm::AAResultBase< DerivedT >::getArgModRefInfo(), isWriteOnlyParam(), llvm::Mod, llvm::NoModRef, llvm::CallBase::paramHasAttr(), and llvm::Ref.

Referenced by BasicAAResult().

◆ getModRefBehavior() [1/2]

FunctionModRefBehavior BasicAAResult::getModRefBehavior ( const CallBase Call)

◆ getModRefBehavior() [2/2]

FunctionModRefBehavior BasicAAResult::getModRefBehavior ( const Function F)

◆ getModRefInfo() [1/2]

ModRefInfo BasicAAResult::getModRefInfo ( const CallBase Call,
const MemoryLocation Loc,
AAQueryInfo AAQI 
)

◆ getModRefInfo() [2/2]

ModRefInfo BasicAAResult::getModRefInfo ( const CallBase Call1,
const CallBase Call2,
AAQueryInfo AAQI 
)

◆ invalidate()

bool BasicAAResult::invalidate ( Function Fn,
const PreservedAnalyses PA,
FunctionAnalysisManager::Invalidator Inv 
)

Handle invalidation events in the new pass manager.

Definition at line 97 of file BasicAliasAnalysis.cpp.

References llvm::AnalysisManager< IRUnitT, ExtraArgTs >::Invalidator::invalidate().

Referenced by BasicAAResult().

◆ pointsToConstantMemory()

bool BasicAAResult::pointsToConstantMemory ( const MemoryLocation Loc,
AAQueryInfo AAQI,
bool  OrLocal 
)

Chases pointers until we find a (constant global) or not.

Returns whether the given pointer value points to memory that is local to the function, with global constants being considered local to all functions.

Definition at line 653 of file BasicAliasAnalysis.cpp.

References assert(), llvm::SmallVectorBase::empty(), llvm::GetUnderlyingObject(), llvm::AAResultBase< DerivedT >::pointsToConstantMemory(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::MemoryLocation::Ptr, llvm::SmallVectorTemplateBase< T >::push_back(), and SI.

Referenced by BasicAAResult().


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