LLVM  6.0.0svn
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 "llvm/Analysis/ObjCARCAliasAnalysis.h"

Inheritance diagram for llvm::objcarc::ObjCARCAAResult:
Inheritance graph
[legend]
Collaboration diagram for llvm::objcarc::ObjCARCAAResult:
Collaboration graph
[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 ()=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 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

◆ ObjCARCAAResult() [1/2]

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

Definition at line 44 of file ObjCARCAliasAnalysis.h.

Referenced by llvm::objcarc::ObjCARCAA::run().

◆ ObjCARCAAResult() [2/2]

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

Definition at line 45 of file ObjCARCAliasAnalysis.h.

Member Function Documentation

◆ alias()

AliasResult ObjCARCAAResult::alias ( const MemoryLocation LocA,
const MemoryLocation LocB 
)

◆ getModRefBehavior()

FunctionModRefBehavior ObjCARCAAResult::getModRefBehavior ( const Function F)

◆ getModRefInfo()

ModRefInfo ObjCARCAAResult::getModRefInfo ( ImmutableCallSite  CS,
const MemoryLocation Loc 
)

◆ invalidate()

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.

References alias(), F(), getModRefBehavior(), llvm::AAResultBase< DerivedT >::getModRefBehavior(), getModRefInfo(), llvm::AAResultBase< DerivedT >::getModRefInfo(), and pointsToConstantMemory().

◆ pointsToConstantMemory()

bool ObjCARCAAResult::pointsToConstantMemory ( const MemoryLocation Loc,
bool  OrLocal 
)

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