LLVM  4.0.0
Public Member Functions | List of all members
llvm::objcarc::ObjCARCAAResult Class Reference

This is a simple alias analysis implementation that uses knowledge of ARC constructs to answer queries. More...

#include <ObjCARCAliasAnalysis.h>

Inheritance diagram for llvm::objcarc::ObjCARCAAResult:
[legend]
Collaboration diagram for llvm::objcarc::ObjCARCAAResult:
[legend]

Public Member Functions

 ObjCARCAAResult (const DataLayout &DL)
 
 ObjCARCAAResult (ObjCARCAAResult &&Arg)
 
bool invalidate (Function &, const PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
 Handle invalidation events from the new pass manager. More...
 
AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB)
 
bool pointsToConstantMemory (const MemoryLocation &Loc, bool OrLocal)
 
FunctionModRefBehavior getModRefBehavior (const Function *F)
 
ModRefInfo getModRefInfo (ImmutableCallSite CS, const MemoryLocation &Loc)
 
- Public Member Functions inherited from llvm::AAResultBase< ObjCARCAAResult >
AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB)
 
bool pointsToConstantMemory (const MemoryLocation &Loc, bool OrLocal)
 
ModRefInfo getArgModRefInfo (ImmutableCallSite CS, unsigned ArgIdx)
 
FunctionModRefBehavior getModRefBehavior (ImmutableCallSite CS)
 
FunctionModRefBehavior getModRefBehavior (const Function *F)
 
ModRefInfo getModRefInfo (ImmutableCallSite CS, const MemoryLocation &Loc)
 
ModRefInfo getModRefInfo (ImmutableCallSite CS1, ImmutableCallSite CS2)
 

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...
 

Detailed Description

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.

Constructor & Destructor Documentation

llvm::objcarc::ObjCARCAAResult::ObjCARCAAResult ( const DataLayout DL)
inlineexplicit

Definition at line 44 of file ObjCARCAliasAnalysis.h.

llvm::objcarc::ObjCARCAAResult::ObjCARCAAResult ( ObjCARCAAResult &&  Arg)
inline

Definition at line 45 of file ObjCARCAliasAnalysis.h.

Member Function Documentation

AliasResult ObjCARCAAResult::alias ( const MemoryLocation LocA,
const MemoryLocation LocB 
)
FunctionModRefBehavior ObjCARCAAResult::getModRefBehavior ( const Function F)
ModRefInfo ObjCARCAAResult::getModRefInfo ( ImmutableCallSite  CS,
const MemoryLocation Loc 
)
bool llvm::objcarc::ObjCARCAAResult::invalidate ( Function ,
const PreservedAnalyses ,
FunctionAnalysisManager::Invalidator  
)
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 
)

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