LLVM  6.0.0svn
Public Member Functions | List of all members
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
 
virtual void setAAResults (AAResults *NewAAR)=0
 An update API used internally by the AAResults to provide a handle back to the top level aggregation. More...
 
Alias Queries
virtual AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB)=0
 The main low level interface to the alias analysis implementation. More...
 
virtual bool pointsToConstantMemory (const MemoryLocation &Loc, bool OrLocal)=0
 Checks whether the given location points to constant memory, or if OrLocal is true whether it points to a local alloca. More...
 
Simple mod/ref information
virtual ModRefInfo getArgModRefInfo (ImmutableCallSite CS, unsigned ArgIdx)=0
 Get the ModRef info associated with a pointer argument of a callsite. More...
 
virtual FunctionModRefBehavior getModRefBehavior (ImmutableCallSite CS)=0
 Return the behavior of the given call site. More...
 
virtual FunctionModRefBehavior getModRefBehavior (const Function *F)=0
 Return the behavior when calling the given function. More...
 
virtual ModRefInfo getModRefInfo (ImmutableCallSite CS, const MemoryLocation &Loc)=0
 getModRefInfo (for call sites) - Return information about whether a particular call site modifies or reads the specified memory location. More...
 
virtual ModRefInfo getModRefInfo (ImmutableCallSite CS1, ImmutableCallSite CS2)=0
 Return information about whether two call sites may refer to the same set of memory locations. More...
 

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 696 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 
)
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.

◆ getArgModRefInfo()

virtual ModRefInfo llvm::AAResults::Concept::getArgModRefInfo ( ImmutableCallSite  CS,
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.

◆ getModRefBehavior() [1/2]

virtual FunctionModRefBehavior llvm::AAResults::Concept::getModRefBehavior ( ImmutableCallSite  CS)
pure virtual

Return the behavior of the given call site.

◆ getModRefBehavior() [2/2]

virtual FunctionModRefBehavior llvm::AAResults::Concept::getModRefBehavior ( const Function F)
pure virtual

Return the behavior when calling the given function.

◆ getModRefInfo() [1/2]

virtual ModRefInfo llvm::AAResults::Concept::getModRefInfo ( ImmutableCallSite  CS,
const MemoryLocation Loc 
)
pure virtual

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

◆ getModRefInfo() [2/2]

virtual ModRefInfo llvm::AAResults::Concept::getModRefInfo ( ImmutableCallSite  CS1,
ImmutableCallSite  CS2 
)
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

◆ pointsToConstantMemory()

virtual bool llvm::AAResults::Concept::pointsToConstantMemory ( const MemoryLocation Loc,
bool  OrLocal 
)
pure virtual

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

◆ setAAResults()

virtual void llvm::AAResults::Concept::setAAResults ( AAResults NewAAR)
pure virtual

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


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