class AAResults::Concept

Declaration

class AAResults::Concept { /* full declaration omitted */ };

Description

A private abstract base class describing the concept of an individual alias analysis implementation. This interface is implemented by any \c 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 \c AAResults class. Only differences and specifics to how the implementations are called are documented here.

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1013

Method Overview

  • public virtual llvm::AliasResult alias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB, llvm::AAQueryInfo & AAQI)
  • public virtual llvm::ModRefInfo getArgModRefInfo(const llvm::CallBase * Call, unsigned int ArgIdx)
  • public virtual llvm::FunctionModRefBehavior getModRefBehavior(const llvm::CallBase * Call)
  • public virtual llvm::FunctionModRefBehavior getModRefBehavior(const llvm::Function * F)
  • public virtual llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
  • public virtual llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call1, const llvm::CallBase * Call2, llvm::AAQueryInfo & AAQI)
  • public virtual bool pointsToConstantMemory(const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI, bool OrLocal)
  • public virtual void setAAResults(llvm::AAResults * NewAAR)
  • public virtual ~Concept()

Methods

virtual llvm::AliasResult alias(
    const llvm::MemoryLocation& LocA,
    const llvm::MemoryLocation& LocB,
    llvm::AAQueryInfo& AAQI)

Description

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.

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1029

Parameters

const llvm::MemoryLocation& LocA
const llvm::MemoryLocation& LocB
llvm::AAQueryInfo& AAQI

virtual llvm::ModRefInfo getArgModRefInfo(
    const llvm::CallBase* Call,
    unsigned int ArgIdx)

Description

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.

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1047

Parameters

const llvm::CallBase* Call
unsigned int ArgIdx

virtual llvm::FunctionModRefBehavior
getModRefBehavior(const llvm::CallBase* Call)

Description

Return the behavior of the given call site.

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1051

Parameters

const llvm::CallBase* Call

virtual llvm::FunctionModRefBehavior
getModRefBehavior(const llvm::Function* F)

Description

Return the behavior when calling the given function.

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1054

Parameters

const llvm::Function* F

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

Description

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

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1058

Parameters

const llvm::CallBase* Call
const llvm::MemoryLocation& Loc
llvm::AAQueryInfo& AAQI

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

Description

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

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1065

Parameters

const llvm::CallBase* Call1
const llvm::CallBase* Call2
llvm::AAQueryInfo& AAQI

virtual bool pointsToConstantMemory(
    const llvm::MemoryLocation& Loc,
    llvm::AAQueryInfo& AAQI,
    bool OrLocal)

Description

Checks whether the given location points to constant memory, or if\p OrLocal is true whether it points to a local alloca.

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1034

Parameters

const llvm::MemoryLocation& Loc
llvm::AAQueryInfo& AAQI
bool OrLocal

virtual void setAAResults(llvm::AAResults* NewAAR)

Description

An update API used internally by the AAResults to provide a handle back to the top level aggregation.

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1019

Parameters

llvm::AAResults* NewAAR

virtual ~Concept()

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1015