class AAResults::Model

Declaration

template <typename AAResultT>
class AAResults::Model : public Concept { /* full declaration omitted */ };

Description

A private class template which derives from \c Concept and wraps some other type. This models the concept by directly forwarding each interface point to the wrapped type which must implement a compatible interface. This provides a type erased binding.

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

Inherits from: AAResults::Concept

Templates

AAResultT

Member Variables

private AAResultT& Result

Method Overview

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

Inherited from AAResults::Concept:

Methods

Model<T>(AAResultT& Result, llvm::AAResults& AAR)

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

Parameters

AAResultT& Result
llvm::AAResults& AAR

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:1088

Parameters

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

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:1098

Parameters

const llvm::CallBase* Call
unsigned int ArgIdx

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

Description

Return the behavior of the given call site.

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

Parameters

const llvm::CallBase* Call

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

Description

Return the behavior when calling the given function.

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

Parameters

const llvm::Function* F

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:1110

Parameters

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

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:1115

Parameters

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

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:1093

Parameters

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

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:1086

Parameters

llvm::AAResults* NewAAR

~Model<T>()

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