LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BasicAliasAnalysis Struct Reference

Inheritance diagram for BasicAliasAnalysis:

Inheritance graph
[legend]
Collaboration diagram for BasicAliasAnalysis:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 BasicAliasAnalysis ()
AliasResult alias (const Value *V1, unsigned V1Size, const Value *V2, unsigned V2Size)
ModRefResult getModRefInfo (CallSite CS, Value *P, unsigned Size)
ModRefResult getModRefInfo (CallSite CS1, CallSite CS2)
virtual bool hasNoModRefInfoForCalls () const
bool pointsToConstantMemory (const Value *P)

Static Public Attributes

char ID = 0

Detailed Description

BasicAliasAnalysis - This is the default alias analysis implementation. Because it doesn't chain to a previous alias analysis (like -no-aa), it derives from the NoAA class.

Definition at line 270 of file BasicAliasAnalysis.cpp.


Constructor & Destructor Documentation

BasicAliasAnalysis::BasicAliasAnalysis  )  [inline]
 

Definition at line 272 of file BasicAliasAnalysis.cpp.


Member Function Documentation

AliasAnalysis::AliasResult BasicAliasAnalysis::alias const Value V1,
unsigned  V1Size,
const Value V2,
unsigned  V2Size
[virtual]
 

alias - The main low level interface to the alias analysis implementation. Returns a Result indicating whether the two pointers are aliased to each other. This is the interface that must be implemented by specific alias analysis implementations.

Reimplemented from NoAA.

Definition at line 370 of file BasicAliasAnalysis.cpp.

References GetGEPOperands(), llvm::TargetData::getIndexedOffset(), llvm::User::getOperand(), llvm::Constant::getOperand(), llvm::AliasAnalysis::getTargetData(), llvm::Intrinsic::getType(), llvm::Value::getType(), getUnderlyingObject(), llvm::ConstantExpr::isCast(), isGEP(), isIdentifiedObject(), isKnownNonNull(), isNonEscapingLocalObject(), llvm::Constant::isNullValue(), isObjectSmallerThan(), llvm::SmallVectorImpl< T >::size(), and std::swap().

Referenced by getModRefInfo().

ModRefResult BasicAliasAnalysis::getModRefInfo CallSite  CS1,
CallSite  CS2
[inline, virtual]
 

getModRefInfo - Return information about whether two call sites may refer to the same set of memory locations. This function returns NoModRef if the two calls refer to disjoint memory locations, Ref if CS1 reads memory written by CS2, Mod if CS1 writes to memory read or written by CS2, or ModRef if CS1 might read or write memory accessed by CS2.

Reimplemented from NoAA.

Definition at line 277 of file BasicAliasAnalysis.cpp.

References NoAA::getModRefInfo().

AliasAnalysis::ModRefResult BasicAliasAnalysis::getModRefInfo CallSite  CS,
Value P,
unsigned  Size
[virtual]
 

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

Reimplemented from NoAA.

Definition at line 329 of file BasicAliasAnalysis.cpp.

References alias(), llvm::CallSite::arg_begin(), llvm::CallSite::arg_end(), llvm::CallSite::arg_iterator, llvm::CallSite::getInstruction(), getUnderlyingObject(), isNonEscapingLocalObject(), and llvm::CallInst::isTailCall().

virtual bool BasicAliasAnalysis::hasNoModRefInfoForCalls  )  const [inline, virtual]
 

hasNoModRefInfoForCalls - We can provide mod/ref information against non-escaping allocations.

Reimplemented from NoAA.

Definition at line 283 of file BasicAliasAnalysis.cpp.

bool BasicAliasAnalysis::pointsToConstantMemory const Value P  )  [virtual]
 

pointsToConstantMemory - Chase pointers until we find a (constant global) or not.

Reimplemented from NoAA.

Definition at line 316 of file BasicAliasAnalysis.cpp.

References getUnderlyingObject(), and llvm::GlobalVariable::isConstant().


Member Data Documentation

char BasicAliasAnalysis::ID = 0 [static]
 

Reimplemented from NoAA.

Definition at line 302 of file BasicAliasAnalysis.cpp.


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


This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.