LLVM 22.0.0git
llvm::AAResults::Concept Class Referenceabstract

A private abstract base class describing the concept of an individual alias analysis implementation. More...

#include "llvm/Analysis/AliasAnalysis.h"

Public Member Functions

virtual ~Concept ()=0
Alias Queries
virtual AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *CtxI)=0
 The main low level interface to the alias analysis implementation.
virtual AliasResult aliasErrno (const MemoryLocation &Loc, const Module *M)=0
 Returns an AliasResult indicating whether a specific memory location aliases errno.
Simple mod/ref information
virtual ModRefInfo getModRefInfoMask (const MemoryLocation &Loc, AAQueryInfo &AAQI, bool IgnoreLocals)=0
 Returns a bitmask that should be unconditionally applied to the ModRef info of a memory location.
virtual ModRefInfo getArgModRefInfo (const CallBase *Call, unsigned ArgIdx)=0
 Get the ModRef info associated with a pointer argument of a callsite.
virtual MemoryEffects getMemoryEffects (const CallBase *Call, AAQueryInfo &AAQI)=0
 Return the behavior of the given call site.
virtual MemoryEffects getMemoryEffects (const Function *F)=0
 Return the behavior when calling the given function.
virtual ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)=0
 getModRefInfo (for call sites) - Return information about whether a particular call site modifies or reads the specified memory location.
virtual ModRefInfo getModRefInfo (const CallBase *Call1, const CallBase *Call2, AAQueryInfo &AAQI)=0
 Return information about whether two call sites may refer to the same set of memory locations.

Detailed Description

A private abstract base class describing the concept of an individual alias analysis implementation.

This interface is implemented by any Model instantiation. It is also the interface which a type used to instantiate the model must provide.

All of these methods model methods by the same name in the AAResults class. Only differences and specifics to how the implementations are called are documented here.

Definition at line 732 of file AliasAnalysis.h.

Constructor & Destructor Documentation

◆ ~Concept()

AAResults::Concept::~Concept ( )
pure virtualdefault

Member Function Documentation

◆ alias()

virtual AliasResult llvm::AAResults::Concept::alias ( const MemoryLocation & LocA,
const MemoryLocation & LocB,
AAQueryInfo & AAQI,
const Instruction * CtxI )
pure virtual

The main low level interface to the alias analysis implementation.

Returns an AliasResult indicating whether the two pointers are aliased to each other. This is the interface that must be implemented by specific alias analysis implementations.

◆ aliasErrno()

virtual AliasResult llvm::AAResults::Concept::aliasErrno ( const MemoryLocation & Loc,
const Module * M )
pure virtual

Returns an AliasResult indicating whether a specific memory location aliases errno.

◆ getArgModRefInfo()

virtual ModRefInfo llvm::AAResults::Concept::getArgModRefInfo ( const CallBase * Call,
unsigned ArgIdx )
pure virtual

Get the ModRef info associated with a pointer argument of a callsite.

The result's bits are set to indicate the allowed aliasing ModRef kinds. Note that these bits do not necessarily account for the overall behavior of the function, but rather only provide additional per-argument information.

References Call.

◆ getMemoryEffects() [1/2]

virtual MemoryEffects llvm::AAResults::Concept::getMemoryEffects ( const CallBase * Call,
AAQueryInfo & AAQI )
pure virtual

Return the behavior of the given call site.

References Call.

◆ getMemoryEffects() [2/2]

virtual MemoryEffects llvm::AAResults::Concept::getMemoryEffects ( const Function * F)
pure virtual

Return the behavior when calling the given function.

References F.

◆ getModRefInfo() [1/2]

virtual ModRefInfo llvm::AAResults::Concept::getModRefInfo ( const CallBase * Call,
const MemoryLocation & Loc,
AAQueryInfo & AAQI )
pure virtual

getModRefInfo (for call sites) - Return information about whether a particular call site modifies or reads the specified memory location.

References Call.

◆ getModRefInfo() [2/2]

virtual ModRefInfo llvm::AAResults::Concept::getModRefInfo ( const CallBase * Call1,
const CallBase * Call2,
AAQueryInfo & AAQI )
pure virtual

Return information about whether two call sites may refer to the same set of memory locations.

See the AA documentation for details: http://llvm.org/docs/AliasAnalysis.html#ModRefInfo

◆ getModRefInfoMask()

virtual ModRefInfo llvm::AAResults::Concept::getModRefInfoMask ( const MemoryLocation & Loc,
AAQueryInfo & AAQI,
bool IgnoreLocals )
pure virtual

Returns a bitmask that should be unconditionally applied to the ModRef info of a memory location.

This allows us to eliminate Mod and/or Ref from the ModRef info based on the knowledge that the memory location points to constant and/or locally-invariant memory.


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