LLVM  8.0.1
Classes | Public Member Functions | Static Public Member Functions | List of all members
llvm::GlobalsAAResult Class Reference

An alias analysis result set for globals. More...

#include "llvm/Analysis/GlobalsModRef.h"

Inheritance diagram for llvm::GlobalsAAResult:
Inheritance graph
[legend]
Collaboration diagram for llvm::GlobalsAAResult:
Collaboration graph
[legend]

Classes

class  FunctionInfo
 The mod/ref information collected for a particular function. More...
 

Public Member Functions

 GlobalsAAResult (GlobalsAAResult &&Arg)
 
 ~GlobalsAAResult ()
 
AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB)
 alias - If one of the pointers is to a global that we are tracking, and the other is some random pointer, we know there cannot be an alias, because the address of the global isn't taken. More...
 
ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc)
 
FunctionModRefBehavior getModRefBehavior (const Function *F)
 getModRefBehavior - Return the behavior of the specified function if called from the specified call site. More...
 
FunctionModRefBehavior getModRefBehavior (const CallBase *Call)
 getModRefBehavior - Return the behavior of the specified function if called from the specified call site. More...
 
- Public Member Functions inherited from llvm::AAResultBase< GlobalsAAResult >
AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB)
 
bool pointsToConstantMemory (const MemoryLocation &Loc, bool OrLocal)
 
ModRefInfo getArgModRefInfo (const CallBase *Call, unsigned ArgIdx)
 
FunctionModRefBehavior getModRefBehavior (const CallBase *Call)
 
FunctionModRefBehavior getModRefBehavior (const Function *F)
 
ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc)
 
ModRefInfo getModRefInfo (const CallBase *Call1, const CallBase *Call2)
 

Static Public Member Functions

static GlobalsAAResult analyzeModule (Module &M, const TargetLibraryInfo &TLI, CallGraph &CG)
 

Additional Inherited Members

- Protected Member Functions inherited from llvm::AAResultBase< GlobalsAAResult >
 AAResultBase ()=default
 
 AAResultBase (const AAResultBase &Arg)
 
 AAResultBase (AAResultBase &&Arg)
 
AAResultsProxy getBestAAResults ()
 Get a proxy for the best AA result set to query at this time. More...
 

Detailed Description

An alias analysis result set for globals.

This focuses on handling aliasing properties of globals and interprocedural function call mod/ref information.

Definition at line 32 of file GlobalsModRef.h.

Constructor & Destructor Documentation

◆ GlobalsAAResult()

GlobalsAAResult::GlobalsAAResult ( GlobalsAAResult &&  Arg)

Definition at line 941 of file GlobalsModRef.cpp.

References Arg, assert(), and H.

◆ ~GlobalsAAResult()

GlobalsAAResult::~GlobalsAAResult ( )

Definition at line 955 of file GlobalsModRef.cpp.

Member Function Documentation

◆ alias()

AliasResult GlobalsAAResult::alias ( const MemoryLocation LocA,
const MemoryLocation LocB 
)

alias - If one of the pointers is to a global that we are tracking, and the other is some random pointer, we know there cannot be an alias, because the address of the global isn't taken.

Definition at line 809 of file GlobalsModRef.cpp.

References llvm::AAResultBase< DerivedT >::alias(), llvm::all_of(), llvm::CallBase::args(), llvm::CallBase::doesNotAccessMemory(), llvm::dyn_cast(), EnableUnsafeGlobalsModRefAliasResults, llvm::GetUnderlyingObject(), llvm::GetUnderlyingObjects(), llvm::is_contained(), llvm::isIdentifiedObject(), llvm::ModRef, llvm::NoAlias, llvm::NoModRef, llvm::CallBase::onlyReadsMemory(), llvm::MemoryLocation::Ptr, and llvm::Ref.

◆ analyzeModule()

GlobalsAAResult GlobalsAAResult::analyzeModule ( Module M,
const TargetLibraryInfo TLI,
CallGraph CG 
)
static

◆ getModRefBehavior() [1/2]

FunctionModRefBehavior GlobalsAAResult::getModRefBehavior ( const Function F)

getModRefBehavior - Return the behavior of the specified function if called from the specified call site.

The call site may be null in which case the most generic behavior of this function should be returned.

Definition at line 244 of file GlobalsModRef.cpp.

References llvm::FMRB_DoesNotAccessMemory, llvm::FMRB_OnlyReadsMemory, llvm::FMRB_UnknownModRefBehavior, llvm::AAResultBase< DerivedT >::getModRefBehavior(), llvm::isModOrRefSet(), and llvm::isModSet().

◆ getModRefBehavior() [2/2]

FunctionModRefBehavior GlobalsAAResult::getModRefBehavior ( const CallBase Call)

◆ getModRefInfo()

ModRefInfo GlobalsAAResult::getModRefInfo ( const CallBase Call,
const MemoryLocation Loc 
)

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