|
LLVM
4.0.0
|
This is a simple alias analysis implementation that uses knowledge of ARC constructs to answer queries. More...
#include <ObjCARCAliasAnalysis.h>
Additional Inherited Members | |
Protected Member Functions inherited from llvm::AAResultBase< ObjCARCAAResult > | |
| AAResultBase () | |
| AAResultBase (const AAResultBase &Arg) | |
| AAResultBase (AAResultBase &&Arg) | |
| AAResultsProxy | getBestAAResults () |
| Get a proxy for the best AA result set to query at this time. More... | |
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 38 of file ObjCARCAliasAnalysis.h.
|
inlineexplicit |
Definition at line 44 of file ObjCARCAliasAnalysis.h.
|
inline |
Definition at line 45 of file ObjCARCAliasAnalysis.h.
| AliasResult ObjCARCAAResult::alias | ( | const MemoryLocation & | LocA, |
| const MemoryLocation & | LocB | ||
| ) |
Definition at line 40 of file ObjCARCAliasAnalysis.cpp.
References llvm::MemoryLocation::AATags, llvm::AAResultBase< DerivedT >::alias(), llvm::objcarc::EnableARCOpts, llvm::objcarc::GetRCIdentityRoot(), llvm::objcarc::GetUnderlyingObjCPtr(), llvm::MayAlias, llvm::NoAlias, llvm::MemoryLocation::Ptr, SB, and llvm::MemoryLocation::Size.
| FunctionModRefBehavior ObjCARCAAResult::getModRefBehavior | ( | const Function * | F | ) |
Definition at line 95 of file ObjCARCAliasAnalysis.cpp.
References llvm::objcarc::EnableARCOpts, llvm::FMRB_DoesNotAccessMemory, llvm::objcarc::GetFunctionClass(), llvm::AAResultBase< DerivedT >::getModRefBehavior(), and llvm::objcarc::NoopCast.
| ModRefInfo ObjCARCAAResult::getModRefInfo | ( | ImmutableCallSite | CS, |
| const MemoryLocation & | Loc | ||
| ) |
Definition at line 109 of file ObjCARCAliasAnalysis.cpp.
References llvm::objcarc::Autorelease, llvm::objcarc::AutoreleasepoolPush, llvm::objcarc::AutoreleaseRV, llvm::objcarc::EnableARCOpts, llvm::objcarc::FusedRetainAutorelease, llvm::objcarc::FusedRetainAutoreleaseRV, llvm::objcarc::GetBasicARCInstKind(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::getInstruction(), llvm::AAResultBase< DerivedT >::getModRefInfo(), llvm::MRI_NoModRef, llvm::objcarc::NoopCast, llvm::objcarc::Retain, and llvm::objcarc::RetainRV.
|
inline |
Handle invalidation events from the new pass manager.
By definition, this result is stateless and so remains valid.
Definition at line 51 of file ObjCARCAliasAnalysis.h.
| bool ObjCARCAAResult::pointsToConstantMemory | ( | const MemoryLocation & | Loc, |
| bool | OrLocal | ||
| ) |
Definition at line 72 of file ObjCARCAliasAnalysis.cpp.
References llvm::MemoryLocation::AATags, llvm::objcarc::EnableARCOpts, llvm::objcarc::GetRCIdentityRoot(), llvm::objcarc::GetUnderlyingObjCPtr(), llvm::AAResultBase< DerivedT >::pointsToConstantMemory(), llvm::MemoryLocation::Ptr, and llvm::MemoryLocation::Size.
1.8.6