class BatchAAResults
Declaration
class BatchAAResults { /* full declaration omitted */ };
Description
This class is a wrapper over an AAResults, and it is intended to be used only when there are no IR changes inbetween queries. BatchAAResults is reusing the same `AAQueryInfo` to preserve the state across queries, esentially making AA work in "batch mode". The internal state cannot be cleared, so to go "out-of-batch-mode", the user must either use AAResults, or create a new BatchAAResults.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:951
Member Variables
- private llvm::AAResults& AA
- private llvm::AAQueryInfo AAQI
- private llvm::SimpleCaptureInfo SimpleCI
Method Overview
- public BatchAAResults(llvm::AAResults & AAR)
- public BatchAAResults(llvm::AAResults & AAR, llvm::CaptureInfo * CI)
- public llvm::AliasResult alias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB)
- public llvm::ModRefInfo callCapturesBefore(const llvm::Instruction * I, const llvm::MemoryLocation & MemLoc, llvm::DominatorTree * DT)
- public llvm::ModRefInfo getArgModRefInfo(const llvm::CallBase * Call, unsigned int ArgIdx)
- public llvm::FunctionModRefBehavior getModRefBehavior(const llvm::CallBase * Call)
- public llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call, const llvm::MemoryLocation & Loc)
- public llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call1, const llvm::CallBase * Call2)
- public llvm::ModRefInfo getModRefInfo(const llvm::Instruction * I, const Optional<llvm::MemoryLocation> & OptLoc)
- public llvm::ModRefInfo getModRefInfo(llvm::Instruction * I, const llvm::CallBase * Call2)
- public bool isMustAlias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB)
- public bool isMustAlias(const llvm::Value * V1, const llvm::Value * V2)
- public bool pointsToConstantMemory(const llvm::MemoryLocation & Loc, bool OrLocal = false)
Methods
¶BatchAAResults(llvm::AAResults& AAR)
BatchAAResults(llvm::AAResults& AAR)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:957
Parameters
- llvm::AAResults& AAR
¶BatchAAResults(llvm::AAResults& AAR,
llvm::CaptureInfo* CI)
BatchAAResults(llvm::AAResults& AAR,
llvm::CaptureInfo* CI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:958
Parameters
- llvm::AAResults& AAR
- llvm::CaptureInfo* CI
¶llvm::AliasResult alias(
const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB)
llvm::AliasResult alias(
const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:960
Parameters
- const llvm::MemoryLocation& LocA
- const llvm::MemoryLocation& LocB
¶llvm::ModRefInfo callCapturesBefore(
const llvm::Instruction* I,
const llvm::MemoryLocation& MemLoc,
llvm::DominatorTree* DT)
llvm::ModRefInfo callCapturesBefore(
const llvm::Instruction* I,
const llvm::MemoryLocation& MemLoc,
llvm::DominatorTree* DT)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:993
Parameters
- const llvm::Instruction* I
- const llvm::MemoryLocation& MemLoc
- llvm::DominatorTree* DT
¶llvm::ModRefInfo getArgModRefInfo(
const llvm::CallBase* Call,
unsigned int ArgIdx)
llvm::ModRefInfo getArgModRefInfo(
const llvm::CallBase* Call,
unsigned int ArgIdx)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:979
Parameters
- const llvm::CallBase* Call
- unsigned int ArgIdx
¶llvm::FunctionModRefBehavior getModRefBehavior(
const llvm::CallBase* Call)
llvm::FunctionModRefBehavior getModRefBehavior(
const llvm::CallBase* Call)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:982
Parameters
- const llvm::CallBase* Call
¶llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call,
const llvm::MemoryLocation& Loc)
llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call,
const llvm::MemoryLocation& Loc)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:966
Parameters
- const llvm::CallBase* Call
- const llvm::MemoryLocation& Loc
¶llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call1,
const llvm::CallBase* Call2)
llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call1,
const llvm::CallBase* Call2)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:969
Parameters
- const llvm::CallBase* Call1
- const llvm::CallBase* Call2
¶llvm::ModRefInfo getModRefInfo(
const llvm::Instruction* I,
const Optional<llvm::MemoryLocation>& OptLoc)
llvm::ModRefInfo getModRefInfo(
const llvm::Instruction* I,
const Optional<llvm::MemoryLocation>& OptLoc)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:972
Parameters
- const llvm::Instruction* I
- const Optional<llvm::MemoryLocation>& OptLoc
¶llvm::ModRefInfo getModRefInfo(
llvm::Instruction* I,
const llvm::CallBase* Call2)
llvm::ModRefInfo getModRefInfo(
llvm::Instruction* I,
const llvm::CallBase* Call2)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:976
Parameters
- llvm::Instruction* I
- const llvm::CallBase* Call2
¶bool isMustAlias(const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB)
bool isMustAlias(const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:985
Parameters
- const llvm::MemoryLocation& LocA
- const llvm::MemoryLocation& LocB
¶bool isMustAlias(const llvm::Value* V1,
const llvm::Value* V2)
bool isMustAlias(const llvm::Value* V1,
const llvm::Value* V2)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:988
Parameters
- const llvm::Value* V1
- const llvm::Value* V2
¶bool pointsToConstantMemory(
const llvm::MemoryLocation& Loc,
bool OrLocal = false)
bool pointsToConstantMemory(
const llvm::MemoryLocation& Loc,
bool OrLocal = false)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:963
Parameters
- const llvm::MemoryLocation& Loc
- bool OrLocal = false