LLVM 22.0.0git
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:
[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.
AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *CtxI)
ModRefInfo getModRefInfoMask (const MemoryLocation &Loc, AAQueryInfo &AAQI, bool IgnoreLocals)
MemoryEffects getMemoryEffects (const Function *F)
ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)
MemoryEffects getMemoryEffects (const CallBase *Call, AAQueryInfo &AAQI)
ModRefInfo getModRefInfo (const CallBase *Call1, const CallBase *Call2, AAQueryInfo &AAQI)
Public Member Functions inherited from llvm::AAResultBase
AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *I)
AliasResult aliasErrno (const MemoryLocation &Loc, const Module *M)
ModRefInfo getModRefInfoMask (const MemoryLocation &Loc, AAQueryInfo &AAQI, bool IgnoreLocals)
ModRefInfo getArgModRefInfo (const CallBase *Call, unsigned ArgIdx)
MemoryEffects getMemoryEffects (const CallBase *Call, AAQueryInfo &AAQI)
MemoryEffects getMemoryEffects (const Function *F)
ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)
ModRefInfo getModRefInfo (const CallBase *Call1, const CallBase *Call2, AAQueryInfo &AAQI)

Additional Inherited Members

Protected Member Functions inherited from llvm::AAResultBase
 AAResultBase ()=default
 AAResultBase (const AAResultBase &Arg)
 AAResultBase (AAResultBase &&Arg)

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 36 of file ObjCARCAliasAnalysis.h.

Constructor & Destructor Documentation

◆ ObjCARCAAResult() [1/2]

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

Definition at line 40 of file ObjCARCAliasAnalysis.h.

Referenced by ObjCARCAAResult().

◆ ObjCARCAAResult() [2/2]

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

Member Function Documentation

◆ alias()

◆ getMemoryEffects() [1/2]

MemoryEffects llvm::AAResultBase::getMemoryEffects ( const CallBase * Call,
AAQueryInfo & AAQI )
inline

Definition at line 886 of file AliasAnalysis.h.

◆ getMemoryEffects() [2/2]

◆ getModRefInfo() [1/2]

◆ getModRefInfo() [2/2]

ModRefInfo llvm::AAResultBase::getModRefInfo ( const CallBase * Call1,
const CallBase * Call2,
AAQueryInfo & AAQI )
inline

Definition at line 899 of file AliasAnalysis.h.

◆ getModRefInfoMask()

◆ 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 47 of file ObjCARCAliasAnalysis.h.


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