LLVM 22.0.0git
llvm::GlobalsAAResult Class Reference

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

#include "llvm/Analysis/GlobalsModRef.h"

Inheritance diagram for llvm::GlobalsAAResult:
[legend]

Classes

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

Public Member Functions

LLVM_ABI GlobalsAAResult (GlobalsAAResult &&Arg)
LLVM_ABI ~GlobalsAAResult ()
LLVM_ABI bool invalidate (Module &M, const PreservedAnalyses &PA, ModuleAnalysisManager::Invalidator &)
LLVM_ABI AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *CtxI)
 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.
LLVM_ABI ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)
LLVM_ABI MemoryEffects getMemoryEffects (const Function *F)
 getMemoryEffects - Return the behavior of the specified function if called from the specified call site.
ModRefInfo getModRefInfo (const CallBase *Call1, const CallBase *Call2, AAQueryInfo &AAQI)
MemoryEffects getMemoryEffects (const CallBase *Call, AAQueryInfo &AAQI)
Public Member Functions inherited from llvm::AAResultBase
AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *I)
AliasResult aliasErrno (const MemoryLocation &Loc, const Module *M)
ModRefInfo getModRefInfoMask (const MemoryLocation &Loc, AAQueryInfo &AAQI, bool IgnoreLocals)
ModRefInfo getArgModRefInfo (const CallBase *Call, unsigned ArgIdx)
MemoryEffects getMemoryEffects (const CallBase *Call, AAQueryInfo &AAQI)
MemoryEffects getMemoryEffects (const Function *F)
ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)
ModRefInfo getModRefInfo (const CallBase *Call1, const CallBase *Call2, AAQueryInfo &AAQI)

Static Public Member Functions

static LLVM_ABI GlobalsAAResult analyzeModule (Module &M, std::function< const TargetLibraryInfo &(Function &F)> GetTLI, CallGraph &CG)

Friends

struct RecomputeGlobalsAAPass

Additional Inherited Members

Protected Member Functions inherited from llvm::AAResultBase
 AAResultBase ()=default
 AAResultBase (const AAResultBase &Arg)
 AAResultBase (AAResultBase &&Arg)

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 31 of file GlobalsModRef.h.

Constructor & Destructor Documentation

◆ GlobalsAAResult()

GlobalsAAResult::GlobalsAAResult ( GlobalsAAResult && Arg)

Definition at line 976 of file GlobalsModRef.cpp.

References llvm::AAResultBase::AAResultBase(), assert(), H, and llvm::move().

◆ ~GlobalsAAResult()

GlobalsAAResult::~GlobalsAAResult ( )
default

Member Function Documentation

◆ alias()

AliasResult GlobalsAAResult::alias ( const MemoryLocation & LocA,
const MemoryLocation & LocB,
AAQueryInfo & AAQI,
const Instruction * CtxI )

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 836 of file GlobalsModRef.cpp.

References llvm::dyn_cast(), EnableUnsafeGlobalsModRefAliasResults, llvm::getUnderlyingObject(), llvm::AliasResult::MayAlias, llvm::AliasResult::NoAlias, llvm::MemoryLocation::Ptr, and llvm::Value::stripPointerCastsForAliasAnalysis().

◆ analyzeModule()

GlobalsAAResult GlobalsAAResult::analyzeModule ( Module & M,
std::function< const TargetLibraryInfo &(Function &F)> GetTLI,
CallGraph & CG )
static

Definition at line 992 of file GlobalsModRef.cpp.

References F.

Referenced by llvm::GlobalsAA::run(), and llvm::GlobalsAAWrapperPass::runOnModule().

◆ getMemoryEffects() [1/2]

MemoryEffects llvm::AAResultBase::getMemoryEffects ( const CallBase * Call,
AAQueryInfo & AAQI )
inline

Definition at line 886 of file AliasAnalysis.h.

◆ getMemoryEffects() [2/2]

MemoryEffects GlobalsAAResult::getMemoryEffects ( const Function * F)

getMemoryEffects - 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 240 of file GlobalsModRef.cpp.

References F, and llvm::MemoryEffectsBase< IRMemLocation >::unknown().

◆ getModRefInfo() [1/2]

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

◆ getModRefInfo() [2/2]

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

Definition at line 899 of file AliasAnalysis.h.

◆ invalidate()

bool GlobalsAAResult::invalidate ( Module & M,
const PreservedAnalyses & PA,
ModuleAnalysisManager::Invalidator &  )

Definition at line 825 of file GlobalsModRef.cpp.

References llvm::PreservedAnalyses::getChecker().

◆ RecomputeGlobalsAAPass

friend struct RecomputeGlobalsAAPass
friend

Definition at line 80 of file GlobalsModRef.h.

References LLVM_ABI, and RecomputeGlobalsAAPass.

Referenced by RecomputeGlobalsAAPass.


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