LLVM 22.0.0git
llvm::AAResultBase Class Reference

A base class to help implement the function alias analysis results concept. More...

#include "llvm/Analysis/AliasAnalysis.h"

Inheritance diagram for llvm::AAResultBase:
[legend]

Public Member Functions

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)

Protected Member Functions

 AAResultBase ()=default
 AAResultBase (const AAResultBase &Arg)
 AAResultBase (AAResultBase &&Arg)

Detailed Description

A base class to help implement the function alias analysis results concept.

Because of the nature of many alias analysis implementations, they often only implement a subset of the interface. This base class will attempt to implement the remaining portions of the interface in terms of simpler forms of the interface where possible, and otherwise provide conservatively correct fallback implementations.

Implementors of an alias analysis should derive from this class, and then override specific methods that they wish to customize. There is no need to use virtual anywhere.

Definition at line 858 of file AliasAnalysis.h.

Constructor & Destructor Documentation

◆ AAResultBase() [1/3]

◆ AAResultBase() [2/3]

llvm::AAResultBase::AAResultBase ( const AAResultBase & Arg)
inlineprotected

Definition at line 864 of file AliasAnalysis.h.

References AAResultBase().

◆ AAResultBase() [3/3]

llvm::AAResultBase::AAResultBase ( AAResultBase && Arg)
inlineprotected

Definition at line 865 of file AliasAnalysis.h.

References AAResultBase().

Member Function Documentation

◆ alias()

AliasResult llvm::AAResultBase::alias ( const MemoryLocation & LocA,
const MemoryLocation & LocB,
AAQueryInfo & AAQI,
const Instruction * I )
inline

Definition at line 868 of file AliasAnalysis.h.

References I, and llvm::AliasResult::MayAlias.

Referenced by llvm::objcarc::ObjCARCAAResult::alias().

◆ aliasErrno()

AliasResult llvm::AAResultBase::aliasErrno ( const MemoryLocation & Loc,
const Module * M )
inline

Definition at line 873 of file AliasAnalysis.h.

References llvm::AliasResult::MayAlias.

◆ getArgModRefInfo()

ModRefInfo llvm::AAResultBase::getArgModRefInfo ( const CallBase * Call,
unsigned ArgIdx )
inline

Definition at line 882 of file AliasAnalysis.h.

References Call, and llvm::ModRef.

◆ getMemoryEffects() [1/2]

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

◆ getMemoryEffects() [2/2]

MemoryEffects llvm::AAResultBase::getMemoryEffects ( const Function * F)
inline

Definition at line 890 of file AliasAnalysis.h.

References F, and llvm::MemoryEffectsBase< IRMemLocation >::unknown().

◆ getModRefInfo() [1/2]

ModRefInfo llvm::AAResultBase::getModRefInfo ( const CallBase * Call,
const MemoryLocation & Loc,
AAQueryInfo & AAQI )
inline

◆ getModRefInfo() [2/2]

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

Definition at line 899 of file AliasAnalysis.h.

References llvm::ModRef.

◆ getModRefInfoMask()

ModRefInfo llvm::AAResultBase::getModRefInfoMask ( const MemoryLocation & Loc,
AAQueryInfo & AAQI,
bool IgnoreLocals )
inline

Definition at line 877 of file AliasAnalysis.h.

References llvm::ModRef.

Referenced by llvm::objcarc::ObjCARCAAResult::getModRefInfoMask().


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