LLVM 20.0.0git
|
This is a simple alias analysis implementation that uses knowledge of ARC constructs to answer queries. More...
#include "llvm/Analysis/ObjCARCAliasAnalysis.h"
Additional Inherited Members | |
Protected Member Functions inherited from llvm::AAResultBase | |
AAResultBase ()=default | |
AAResultBase (const AAResultBase &Arg) | |
AAResultBase (AAResultBase &&Arg) | |
This is a simple alias analysis implementation that uses knowledge of ARC constructs to answer queries.
TODO: This class could be generalized to know about other ObjC-specific tricks. Such as knowing that ivars in the non-fragile ABI are non-aliasing even though their offsets are dynamic.
Definition at line 36 of file ObjCARCAliasAnalysis.h.
|
inlineexplicit |
Definition at line 40 of file ObjCARCAliasAnalysis.h.
References DL.
|
inline |
Definition at line 41 of file ObjCARCAliasAnalysis.h.
References DL.
AliasResult ObjCARCAAResult::alias | ( | const MemoryLocation & | LocA, |
const MemoryLocation & | LocB, | ||
AAQueryInfo & | AAQI, | ||
const Instruction * | CtxI | ||
) |
Definition at line 42 of file ObjCARCAliasAnalysis.cpp.
References llvm::MemoryLocation::AATags, llvm::AAResultBase::alias(), llvm::objcarc::EnableARCOpts, llvm::MemoryLocation::getBeforeOrAfter(), llvm::objcarc::GetRCIdentityRoot(), llvm::objcarc::GetUnderlyingObjCPtr(), llvm::AliasResult::MayAlias, llvm::AliasResult::NoAlias, llvm::MemoryLocation::Ptr, and llvm::MemoryLocation::Size.
|
inline |
Definition at line 839 of file AliasAnalysis.h.
|
inline |
Definition at line 843 of file AliasAnalysis.h.
MemoryEffects ObjCARCAAResult::getMemoryEffects | ( | const Function * | F | ) |
Definition at line 102 of file ObjCARCAliasAnalysis.cpp.
References llvm::objcarc::EnableARCOpts, F, llvm::objcarc::GetFunctionClass(), llvm::AAResultBase::getMemoryEffects(), llvm::MemoryEffectsBase< LocationEnum >::none(), and llvm::objcarc::NoopCast.
|
inline |
Definition at line 847 of file AliasAnalysis.h.
ModRefInfo ObjCARCAAResult::getModRefInfo | ( | const CallBase * | Call, |
const MemoryLocation & | Loc, | ||
AAQueryInfo & | AAQI | ||
) |
Definition at line 116 of file ObjCARCAliasAnalysis.cpp.
References llvm::objcarc::Autorelease, llvm::objcarc::AutoreleasepoolPush, llvm::objcarc::AutoreleaseRV, llvm::objcarc::Call, llvm::objcarc::EnableARCOpts, llvm::objcarc::FusedRetainAutorelease, llvm::objcarc::FusedRetainAutoreleaseRV, llvm::objcarc::GetBasicARCInstKind(), llvm::AAResultBase::getModRefInfo(), llvm::NoModRef, llvm::objcarc::NoopCast, llvm::objcarc::Retain, and llvm::objcarc::RetainRV.
|
inline |
Definition at line 852 of file AliasAnalysis.h.
ModRefInfo ObjCARCAAResult::getModRefInfoMask | ( | const MemoryLocation & | Loc, |
AAQueryInfo & | AAQI, | ||
bool | IgnoreLocals | ||
) |
Definition at line 77 of file ObjCARCAliasAnalysis.cpp.
References llvm::MemoryLocation::AATags, llvm::objcarc::EnableARCOpts, llvm::MemoryLocation::getBeforeOrAfter(), llvm::AAResultBase::getModRefInfoMask(), llvm::objcarc::GetRCIdentityRoot(), llvm::objcarc::GetUnderlyingObjCPtr(), llvm::isNoModRef(), llvm::ModRef, llvm::NoModRef, llvm::MemoryLocation::Ptr, and llvm::MemoryLocation::Size.
|
inline |
Handle invalidation events from the new pass manager.
By definition, this result is stateless and so remains valid.
Definition at line 47 of file ObjCARCAliasAnalysis.h.