LLVM  8.0.1
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 (const CallBase *Call, 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 (const CallBase *Call, unsigned ArgIdx)
 
FunctionModRefBehavior getModRefBehavior (const CallBase *Call)
 
FunctionModRefBehavior getModRefBehavior (const Function *F)
 
ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc)
 
ModRefInfo getModRefInfo (const CallBase *Call1, const CallBase *Call2)
 

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 ( const CallBase Call,
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(), llvm::objcarc::Call, 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: