class AAResults
Declaration
class AAResults { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:511
Member Variables
- private const llvm::TargetLibraryInfo& TLI
- private std::vector<std::unique_ptr<Concept>> AAs
- private std::vector<AnalysisKey*> AADeps
Method Overview
- public AAResults(llvm::AAResults && Arg)
- public AAResults(const llvm::TargetLibraryInfo & TLI)
- public void addAADependencyID(llvm::AnalysisKey * ID)
- public template <typename AAResultT>void addAAResult(AAResultT & AAResult)
- public llvm::AliasResult alias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB)
- public llvm::AliasResult alias(const llvm::Value * V1, llvm::LocationSize V1Size, const llvm::Value * V2, llvm::LocationSize V2Size)
- public llvm::AliasResult alias(const llvm::Value * V1, const llvm::Value * V2)
- private llvm::AliasResult alias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB, llvm::AAQueryInfo & AAQI)
- private llvm::ModRefInfo callCapturesBefore(const llvm::Instruction * I, const llvm::MemoryLocation & MemLoc, llvm::DominatorTree * DT, llvm::AAQueryInfo & AAQIP)
- public llvm::ModRefInfo callCapturesBefore(const llvm::Instruction * I, const llvm::Value * P, llvm::LocationSize Size, llvm::DominatorTree * DT)
- public llvm::ModRefInfo callCapturesBefore(const llvm::Instruction * I, const llvm::MemoryLocation & MemLoc, llvm::DominatorTree * DT)
- public bool canBasicBlockModify(const llvm::BasicBlock & BB, const llvm::Value * P, llvm::LocationSize Size)
- public bool canBasicBlockModify(const llvm::BasicBlock & BB, const llvm::MemoryLocation & Loc)
- public bool canInstructionRangeModRef(const llvm::Instruction & I1, const llvm::Instruction & I2, const llvm::MemoryLocation & Loc, const llvm::ModRefInfo Mode)
- public bool canInstructionRangeModRef(const llvm::Instruction & I1, const llvm::Instruction & I2, const llvm::Value * Ptr, llvm::LocationSize Size, const llvm::ModRefInfo Mode)
- public static bool doesAccessArgPointees(llvm::FunctionModRefBehavior MRB)
- public static bool doesAccessInaccessibleMem(llvm::FunctionModRefBehavior MRB)
- public bool doesNotAccessMemory(const llvm::CallBase * Call)
- public bool doesNotAccessMemory(const llvm::Function * F)
- public llvm::ModRefInfo getArgModRefInfo(const llvm::CallBase * Call, unsigned int ArgIdx)
- public llvm::FunctionModRefBehavior getModRefBehavior(const llvm::CallBase * Call)
- public llvm::FunctionModRefBehavior getModRefBehavior(const llvm::Function * F)
- public llvm::ModRefInfo getModRefInfo(llvm::Instruction * I, const llvm::CallBase * Call)
- public llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call1, const llvm::CallBase * Call2)
- public llvm::ModRefInfo getModRefInfo(const llvm::Instruction * I, const llvm::Value * P, llvm::LocationSize Size)
- public llvm::ModRefInfo getModRefInfo(const llvm::Instruction * I, const Optional<llvm::MemoryLocation> & OptLoc)
- public llvm::ModRefInfo getModRefInfo(const llvm::CatchReturnInst * I, const llvm::Value * P, llvm::LocationSize Size)
- public llvm::ModRefInfo getModRefInfo(const llvm::CatchReturnInst * I, const llvm::MemoryLocation & Loc)
- public llvm::ModRefInfo getModRefInfo(const llvm::CatchPadInst * I, const llvm::Value * P, llvm::LocationSize Size)
- public llvm::ModRefInfo getModRefInfo(const llvm::AtomicCmpXchgInst * CX, const llvm::Value * P, llvm::LocationSize Size)
- public llvm::ModRefInfo getModRefInfo(const llvm::CatchPadInst * I, const llvm::MemoryLocation & Loc)
- private llvm::ModRefInfo getModRefInfo(llvm::Instruction * I, const llvm::CallBase * Call2, llvm::AAQueryInfo & AAQIP)
- private llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
- private llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call1, const llvm::CallBase * Call2, llvm::AAQueryInfo & AAQI)
- private llvm::ModRefInfo getModRefInfo(const llvm::VAArgInst * V, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
- private llvm::ModRefInfo getModRefInfo(const llvm::LoadInst * L, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
- private llvm::ModRefInfo getModRefInfo(const llvm::StoreInst * S, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
- private llvm::ModRefInfo getModRefInfo(const llvm::FenceInst * S, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
- private llvm::ModRefInfo getModRefInfo(const llvm::AtomicCmpXchgInst * CX, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
- private llvm::ModRefInfo getModRefInfo(const llvm::AtomicRMWInst * RMW, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
- private llvm::ModRefInfo getModRefInfo(const llvm::CatchPadInst * I, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
- private llvm::ModRefInfo getModRefInfo(const llvm::CatchReturnInst * I, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
- private llvm::ModRefInfo getModRefInfo(const llvm::Instruction * I, const Optional<llvm::MemoryLocation> & OptLoc, llvm::AAQueryInfo & AAQIP)
- public llvm::ModRefInfo getModRefInfo(const llvm::VAArgInst * I, const llvm::MemoryLocation & Loc)
- public llvm::ModRefInfo getModRefInfo(const llvm::VAArgInst * I, const llvm::Value * P, llvm::LocationSize Size)
- public llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call, const llvm::MemoryLocation & Loc)
- public llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call, const llvm::Value * P, llvm::LocationSize Size)
- public llvm::ModRefInfo getModRefInfo(const llvm::LoadInst * L, const llvm::MemoryLocation & Loc)
- public llvm::ModRefInfo getModRefInfo(const llvm::LoadInst * L, const llvm::Value * P, llvm::LocationSize Size)
- public llvm::ModRefInfo getModRefInfo(const llvm::StoreInst * S, const llvm::MemoryLocation & Loc)
- public llvm::ModRefInfo getModRefInfo(const llvm::StoreInst * S, const llvm::Value * P, llvm::LocationSize Size)
- public llvm::ModRefInfo getModRefInfo(const llvm::FenceInst * S, const llvm::Value * P, llvm::LocationSize Size)
- public llvm::ModRefInfo getModRefInfo(const llvm::AtomicCmpXchgInst * CX, const llvm::MemoryLocation & Loc)
- public llvm::ModRefInfo getModRefInfo(const llvm::AtomicRMWInst * RMW, const llvm::MemoryLocation & Loc)
- public llvm::ModRefInfo getModRefInfo(const llvm::AtomicRMWInst * RMW, const llvm::Value * P, llvm::LocationSize Size)
- public llvm::ModRefInfo getModRefInfo(const llvm::FenceInst * S, const llvm::MemoryLocation & Loc)
- public bool invalidate(llvm::Function & F, const llvm::PreservedAnalyses & PA, FunctionAnalysisManager::Invalidator & Inv)
- public bool isMustAlias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB)
- public bool isMustAlias(const llvm::Value * V1, const llvm::Value * V2)
- public bool isNoAlias(const llvm::Value * V1, const llvm::Value * V2)
- public bool isNoAlias(const llvm::Value * V1, llvm::LocationSize V1Size, const llvm::Value * V2, llvm::LocationSize V2Size)
- public bool isNoAlias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB)
- public static bool onlyAccessesArgPointees(llvm::FunctionModRefBehavior MRB)
- public static bool onlyAccessesInaccessibleMem(llvm::FunctionModRefBehavior MRB)
- public static bool onlyAccessesInaccessibleOrArgMem(llvm::FunctionModRefBehavior MRB)
- public static bool onlyReadsMemory(llvm::FunctionModRefBehavior MRB)
- public bool onlyReadsMemory(const llvm::Function * F)
- public bool onlyReadsMemory(const llvm::CallBase * Call)
- public static bool onlyWritesMemory(llvm::FunctionModRefBehavior MRB)
- private bool pointsToConstantMemory(const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI, bool OrLocal = false)
- public bool pointsToConstantMemory(const llvm::MemoryLocation & Loc, bool OrLocal = false)
- public bool pointsToConstantMemory(const llvm::Value * P, bool OrLocal = false)
- public ~AAResults()
Methods
¶AAResults(llvm::AAResults&& Arg)
AAResults(llvm::AAResults&& Arg)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:516
Parameters
- llvm::AAResults&& Arg
¶AAResults(const llvm::TargetLibraryInfo& TLI)
AAResults(const llvm::TargetLibraryInfo& TLI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:515
Parameters
- const llvm::TargetLibraryInfo& TLI
¶void addAADependencyID(llvm::AnalysisKey* ID)
void addAADependencyID(llvm::AnalysisKey* ID)
Description
Register a function analysis ID that the results aggregation depends on. This is used in the new pass manager to implement the invalidation logic where we must invalidate the results aggregation if any of our component analyses become invalid.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:532
Parameters
¶template <typename AAResultT>
void addAAResult(AAResultT& AAResult)
template <typename AAResultT>
void addAAResult(AAResultT& AAResult)
Description
Register a specific AA result.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:520
Templates
- AAResultT
Parameters
- AAResultT& AAResult
¶llvm::AliasResult alias(
const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB)
llvm::AliasResult alias(
const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB)
Description
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.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:549
Parameters
- const llvm::MemoryLocation& LocA
- const llvm::MemoryLocation& LocB
¶llvm::AliasResult alias(const llvm::Value* V1,
llvm::LocationSize V1Size,
const llvm::Value* V2,
llvm::LocationSize V2Size)
llvm::AliasResult alias(const llvm::Value* V1,
llvm::LocationSize V1Size,
const llvm::Value* V2,
llvm::LocationSize V2Size)
Description
A convenience wrapper around the primary \c alias interface.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:552
Parameters
- const llvm::Value* V1
- llvm::LocationSize V1Size
- const llvm::Value* V2
- llvm::LocationSize V2Size
¶llvm::AliasResult alias(const llvm::Value* V1,
const llvm::Value* V2)
llvm::AliasResult alias(const llvm::Value* V1,
const llvm::Value* V2)
Description
A convenience wrapper around the primary \c alias interface.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:558
Parameters
- const llvm::Value* V1
- const llvm::Value* V2
¶llvm::AliasResult alias(
const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB,
llvm::AAQueryInfo& AAQI)
llvm::AliasResult alias(
const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB,
llvm::AAQueryInfo& AAQI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:897
Parameters
- const llvm::MemoryLocation& LocA
- const llvm::MemoryLocation& LocB
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo callCapturesBefore(
const llvm::Instruction* I,
const llvm::MemoryLocation& MemLoc,
llvm::DominatorTree* DT,
llvm::AAQueryInfo& AAQIP)
llvm::ModRefInfo callCapturesBefore(
const llvm::Instruction* I,
const llvm::MemoryLocation& MemLoc,
llvm::DominatorTree* DT,
llvm::AAQueryInfo& AAQIP)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:926
Parameters
- const llvm::Instruction* I
- const llvm::MemoryLocation& MemLoc
- llvm::DominatorTree* DT
- llvm::AAQueryInfo& AAQIP
¶llvm::ModRefInfo callCapturesBefore(
const llvm::Instruction* I,
const llvm::Value* P,
llvm::LocationSize Size,
llvm::DominatorTree* DT)
llvm::ModRefInfo callCapturesBefore(
const llvm::Instruction* I,
const llvm::Value* P,
llvm::LocationSize Size,
llvm::DominatorTree* DT)
Description
A convenience wrapper to synthesize a memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:860
Parameters
- const llvm::Instruction* I
- const llvm::Value* P
- llvm::LocationSize Size
- llvm::DominatorTree* DT
¶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)
Description
Return information about whether a particular call site modifies or reads the specified memory location \p MemLoc before instruction \p I in a BasicBlock. Early exits in callCapturesBefore may lead to ModRefInfo::Must not being set.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:852
Parameters
- const llvm::Instruction* I
- const llvm::MemoryLocation& MemLoc
- llvm::DominatorTree* DT
¶bool canBasicBlockModify(
const llvm::BasicBlock& BB,
const llvm::Value* P,
llvm::LocationSize Size)
bool canBasicBlockModify(
const llvm::BasicBlock& BB,
const llvm::Value* P,
llvm::LocationSize Size)
Description
A convenience wrapper synthesizing a memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:875
Parameters
- const llvm::BasicBlock& BB
- const llvm::Value* P
- llvm::LocationSize Size
¶bool canBasicBlockModify(
const llvm::BasicBlock& BB,
const llvm::MemoryLocation& Loc)
bool canBasicBlockModify(
const llvm::BasicBlock& BB,
const llvm::MemoryLocation& Loc)
Description
Check if it is possible for execution of the specified basic block to modify the location Loc.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:872
Parameters
- const llvm::BasicBlock& BB
- const llvm::MemoryLocation& Loc
¶bool canInstructionRangeModRef(
const llvm::Instruction& I1,
const llvm::Instruction& I2,
const llvm::MemoryLocation& Loc,
const llvm::ModRefInfo Mode)
bool canInstructionRangeModRef(
const llvm::Instruction& I1,
const llvm::Instruction& I2,
const llvm::MemoryLocation& Loc,
const llvm::ModRefInfo Mode)
Description
Check if it is possible for the execution of the specified instructions to mod\ref (according to the mode) the location Loc. The instructions to consider are all of the instructions in the range of [I1,I2] INCLUSIVE. I1 and I2 must be in the same basic block.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:885
Parameters
- const llvm::Instruction& I1
- const llvm::Instruction& I2
- const llvm::MemoryLocation& Loc
- const llvm::ModRefInfo Mode
¶bool canInstructionRangeModRef(
const llvm::Instruction& I1,
const llvm::Instruction& I2,
const llvm::Value* Ptr,
llvm::LocationSize Size,
const llvm::ModRefInfo Mode)
bool canInstructionRangeModRef(
const llvm::Instruction& I1,
const llvm::Instruction& I2,
const llvm::Value* Ptr,
llvm::LocationSize Size,
const llvm::ModRefInfo Mode)
Description
A convenience wrapper synthesizing a memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:890
Parameters
- const llvm::Instruction& I1
- const llvm::Instruction& I2
- const llvm::Value* Ptr
- llvm::LocationSize Size
- const llvm::ModRefInfo Mode
¶static bool doesAccessArgPointees(
llvm::FunctionModRefBehavior MRB)
static bool doesAccessArgPointees(
llvm::FunctionModRefBehavior MRB)
Description
Checks if functions with the specified behavior are known to potentially read or write from objects pointed to be their pointer-typed arguments (with arbitrary offsets).
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:699
Parameters
- llvm::FunctionModRefBehavior MRB
¶static bool doesAccessInaccessibleMem(
llvm::FunctionModRefBehavior MRB)
static bool doesAccessInaccessibleMem(
llvm::FunctionModRefBehavior MRB)
Description
Checks if functions with the specified behavior are known to potentially read or write from memory that is inaccessible from LLVM IR.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:712
Parameters
- llvm::FunctionModRefBehavior MRB
¶bool doesNotAccessMemory(
const llvm::CallBase* Call)
bool doesNotAccessMemory(
const llvm::CallBase* Call)
Description
Checks if the specified call is known to never read or write memory. Note that if the call only reads from known-constant memory, it is also legal to return true. Also, calls that unwind the stack are legal for this predicate. Many optimizations (such as CSE and LICM) can be performed on such calls without worrying about aliasing properties, and many calls have this property (e.g. calls to 'sin' and 'cos'). This property corresponds to the GCC 'const' attribute.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:632
Parameters
- const llvm::CallBase* Call
¶bool doesNotAccessMemory(const llvm::Function* F)
bool doesNotAccessMemory(const llvm::Function* F)
Description
Checks if the specified function is known to never read or write memory. Note that if the function only reads from known-constant memory, it is also legal to return true. Also, function that unwind the stack are legal for this predicate. Many optimizations (such as CSE and LICM) can be performed on such calls to such functions without worrying about aliasing properties, and many functions have this property (e.g. 'sin' and 'cos'). This property corresponds to the GCC 'const' attribute.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:647
Parameters
- const llvm::Function* F
¶llvm::ModRefInfo getArgModRefInfo(
const llvm::CallBase* Call,
unsigned int ArgIdx)
llvm::ModRefInfo getArgModRefInfo(
const llvm::CallBase* Call,
unsigned int ArgIdx)
Description
Get the ModRef info associated with a pointer argument of a call. 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. This never sets ModRefInfo::Must.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:613
Parameters
- const llvm::CallBase* Call
- unsigned int ArgIdx
¶llvm::FunctionModRefBehavior getModRefBehavior(
const llvm::CallBase* Call)
llvm::FunctionModRefBehavior getModRefBehavior(
const llvm::CallBase* Call)
Description
Return the behavior of the given call site.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:616
Parameters
- const llvm::CallBase* Call
¶llvm::FunctionModRefBehavior getModRefBehavior(
const llvm::Function* F)
llvm::FunctionModRefBehavior getModRefBehavior(
const llvm::Function* F)
Description
Return the behavior when calling the given function.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:619
Parameters
- const llvm::Function* F
¶llvm::ModRefInfo getModRefInfo(
llvm::Instruction* I,
const llvm::CallBase* Call)
llvm::ModRefInfo getModRefInfo(
llvm::Instruction* I,
const llvm::CallBase* Call)
Description
Return information about whether a call and an instruction may refer to the same memory locations.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:840
Parameters
- llvm::Instruction* I
- const llvm::CallBase* Call
¶llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call1,
const llvm::CallBase* Call2)
llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call1,
const llvm::CallBase* Call2)
Description
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
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:845
Parameters
- const llvm::CallBase* Call1
- const llvm::CallBase* Call2
¶llvm::ModRefInfo getModRefInfo(
const llvm::Instruction* I,
const llvm::Value* P,
llvm::LocationSize Size)
llvm::ModRefInfo getModRefInfo(
const llvm::Instruction* I,
const llvm::Value* P,
llvm::LocationSize Size)
Description
A convenience wrapper for constructing the memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:833
Parameters
- const llvm::Instruction* I
- const llvm::Value* P
- llvm::LocationSize Size
¶llvm::ModRefInfo getModRefInfo(
const llvm::Instruction* I,
const Optional<llvm::MemoryLocation>& OptLoc)
llvm::ModRefInfo getModRefInfo(
const llvm::Instruction* I,
const Optional<llvm::MemoryLocation>& OptLoc)
Description
Check whether or not an instruction may read or write the optionally specified memory location. An instruction that doesn't read or write memory may be trivially LICM'd for example. For function calls, this delegates to the alias-analysis specific call-site mod-ref behavior queries. Otherwise it delegates to the specific helpers above.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:826
Parameters
- const llvm::Instruction* I
- const Optional<llvm::MemoryLocation>& OptLoc
¶llvm::ModRefInfo getModRefInfo(
const llvm::CatchReturnInst* I,
const llvm::Value* P,
llvm::LocationSize Size)
llvm::ModRefInfo getModRefInfo(
const llvm::CatchReturnInst* I,
const llvm::Value* P,
llvm::LocationSize Size)
Description
getModRefInfo (for catchrets) - A convenience wrapper.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:811
Parameters
- const llvm::CatchReturnInst* I
- const llvm::Value* P
- llvm::LocationSize Size
¶llvm::ModRefInfo getModRefInfo(
const llvm::CatchReturnInst* I,
const llvm::MemoryLocation& Loc)
llvm::ModRefInfo getModRefInfo(
const llvm::CatchReturnInst* I,
const llvm::MemoryLocation& Loc)
Description
getModRefInfo (for catchrets) - Return information about whether a particular catchret modifies or reads the specified memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:808
Parameters
- const llvm::CatchReturnInst* I
- const llvm::MemoryLocation& Loc
¶llvm::ModRefInfo getModRefInfo(
const llvm::CatchPadInst* I,
const llvm::Value* P,
llvm::LocationSize Size)
llvm::ModRefInfo getModRefInfo(
const llvm::CatchPadInst* I,
const llvm::Value* P,
llvm::LocationSize Size)
Description
getModRefInfo (for catchpads) - A convenience wrapper.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:801
Parameters
- const llvm::CatchPadInst* I
- const llvm::Value* P
- llvm::LocationSize Size
¶llvm::ModRefInfo getModRefInfo(
const llvm::AtomicCmpXchgInst* CX,
const llvm::Value* P,
llvm::LocationSize Size)
llvm::ModRefInfo getModRefInfo(
const llvm::AtomicCmpXchgInst* CX,
const llvm::Value* P,
llvm::LocationSize Size)
Description
getModRefInfo (for cmpxchges) - A convenience wrapper.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:771
Parameters
- const llvm::AtomicCmpXchgInst* CX
- const llvm::Value* P
- llvm::LocationSize Size
¶llvm::ModRefInfo getModRefInfo(
const llvm::CatchPadInst* I,
const llvm::MemoryLocation& Loc)
llvm::ModRefInfo getModRefInfo(
const llvm::CatchPadInst* I,
const llvm::MemoryLocation& Loc)
Description
getModRefInfo (for catchpads) - Return information about whether a particular catchpad modifies or reads the specified memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:798
Parameters
- const llvm::CatchPadInst* I
- const llvm::MemoryLocation& Loc
¶llvm::ModRefInfo getModRefInfo(
llvm::Instruction* I,
const llvm::CallBase* Call2,
llvm::AAQueryInfo& AAQIP)
llvm::ModRefInfo getModRefInfo(
llvm::Instruction* I,
const llvm::CallBase* Call2,
llvm::AAQueryInfo& AAQIP)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:901
Parameters
- llvm::Instruction* I
- const llvm::CallBase* Call2
- llvm::AAQueryInfo& AAQIP
¶llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:903
Parameters
- const llvm::CallBase* Call
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call1,
const llvm::CallBase* Call2,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call1,
const llvm::CallBase* Call2,
llvm::AAQueryInfo& AAQI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:905
Parameters
- const llvm::CallBase* Call1
- const llvm::CallBase* Call2
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getModRefInfo(
const llvm::VAArgInst* V,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::VAArgInst* V,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:907
Parameters
- const llvm::VAArgInst* V
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getModRefInfo(
const llvm::LoadInst* L,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::LoadInst* L,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:909
Parameters
- const llvm::LoadInst* L
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getModRefInfo(
const llvm::StoreInst* S,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::StoreInst* S,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:911
Parameters
- const llvm::StoreInst* S
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getModRefInfo(
const llvm::FenceInst* S,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::FenceInst* S,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:913
Parameters
- const llvm::FenceInst* S
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getModRefInfo(
const llvm::AtomicCmpXchgInst* CX,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::AtomicCmpXchgInst* CX,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:915
Parameters
- const llvm::AtomicCmpXchgInst* CX
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getModRefInfo(
const llvm::AtomicRMWInst* RMW,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::AtomicRMWInst* RMW,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:917
Parameters
- const llvm::AtomicRMWInst* RMW
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getModRefInfo(
const llvm::CatchPadInst* I,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::CatchPadInst* I,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:919
Parameters
- const llvm::CatchPadInst* I
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getModRefInfo(
const llvm::CatchReturnInst* I,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::CatchReturnInst* I,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:921
Parameters
- const llvm::CatchReturnInst* I
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getModRefInfo(
const llvm::Instruction* I,
const Optional<llvm::MemoryLocation>& OptLoc,
llvm::AAQueryInfo& AAQIP)
llvm::ModRefInfo getModRefInfo(
const llvm::Instruction* I,
const Optional<llvm::MemoryLocation>& OptLoc,
llvm::AAQueryInfo& AAQIP)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:923
Parameters
- const llvm::Instruction* I
- const Optional<llvm::MemoryLocation>& OptLoc
- llvm::AAQueryInfo& AAQIP
¶llvm::ModRefInfo getModRefInfo(
const llvm::VAArgInst* I,
const llvm::MemoryLocation& Loc)
llvm::ModRefInfo getModRefInfo(
const llvm::VAArgInst* I,
const llvm::MemoryLocation& Loc)
Description
getModRefInfo (for va_args) - Return information about whether a particular va_arg modifies or reads the specified memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:788
Parameters
- const llvm::VAArgInst* I
- const llvm::MemoryLocation& Loc
¶llvm::ModRefInfo getModRefInfo(
const llvm::VAArgInst* I,
const llvm::Value* P,
llvm::LocationSize Size)
llvm::ModRefInfo getModRefInfo(
const llvm::VAArgInst* I,
const llvm::Value* P,
llvm::LocationSize Size)
Description
getModRefInfo (for va_args) - A convenience wrapper.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:791
Parameters
- const llvm::VAArgInst* I
- const llvm::Value* P
- llvm::LocationSize Size
¶llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call,
const llvm::MemoryLocation& Loc)
llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call,
const llvm::MemoryLocation& Loc)
Description
getModRefInfo (for call sites) - Return information about whether a particular call site modifies or reads the specified memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:727
Parameters
- const llvm::CallBase* Call
- const llvm::MemoryLocation& Loc
¶llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call,
const llvm::Value* P,
llvm::LocationSize Size)
llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call,
const llvm::Value* P,
llvm::LocationSize Size)
Description
getModRefInfo (for call sites) - A convenience wrapper.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:730
Parameters
- const llvm::CallBase* Call
- const llvm::Value* P
- llvm::LocationSize Size
¶llvm::ModRefInfo getModRefInfo(
const llvm::LoadInst* L,
const llvm::MemoryLocation& Loc)
llvm::ModRefInfo getModRefInfo(
const llvm::LoadInst* L,
const llvm::MemoryLocation& Loc)
Description
getModRefInfo (for loads) - Return information about whether a particular load modifies or reads the specified memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:737
Parameters
- const llvm::LoadInst* L
- const llvm::MemoryLocation& Loc
¶llvm::ModRefInfo getModRefInfo(
const llvm::LoadInst* L,
const llvm::Value* P,
llvm::LocationSize Size)
llvm::ModRefInfo getModRefInfo(
const llvm::LoadInst* L,
const llvm::Value* P,
llvm::LocationSize Size)
Description
getModRefInfo (for loads) - A convenience wrapper.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:740
Parameters
- const llvm::LoadInst* L
- const llvm::Value* P
- llvm::LocationSize Size
¶llvm::ModRefInfo getModRefInfo(
const llvm::StoreInst* S,
const llvm::MemoryLocation& Loc)
llvm::ModRefInfo getModRefInfo(
const llvm::StoreInst* S,
const llvm::MemoryLocation& Loc)
Description
getModRefInfo (for stores) - Return information about whether a particular store modifies or reads the specified memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:747
Parameters
- const llvm::StoreInst* S
- const llvm::MemoryLocation& Loc
¶llvm::ModRefInfo getModRefInfo(
const llvm::StoreInst* S,
const llvm::Value* P,
llvm::LocationSize Size)
llvm::ModRefInfo getModRefInfo(
const llvm::StoreInst* S,
const llvm::Value* P,
llvm::LocationSize Size)
Description
getModRefInfo (for stores) - A convenience wrapper.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:750
Parameters
- const llvm::StoreInst* S
- const llvm::Value* P
- llvm::LocationSize Size
¶llvm::ModRefInfo getModRefInfo(
const llvm::FenceInst* S,
const llvm::Value* P,
llvm::LocationSize Size)
llvm::ModRefInfo getModRefInfo(
const llvm::FenceInst* S,
const llvm::Value* P,
llvm::LocationSize Size)
Description
getModRefInfo (for fences) - A convenience wrapper.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:760
Parameters
- const llvm::FenceInst* S
- const llvm::Value* P
- llvm::LocationSize Size
¶llvm::ModRefInfo getModRefInfo(
const llvm::AtomicCmpXchgInst* CX,
const llvm::MemoryLocation& Loc)
llvm::ModRefInfo getModRefInfo(
const llvm::AtomicCmpXchgInst* CX,
const llvm::MemoryLocation& Loc)
Description
getModRefInfo (for cmpxchges) - Return information about whether a particular cmpxchg modifies or reads the specified memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:767
Parameters
- const llvm::AtomicCmpXchgInst* CX
- const llvm::MemoryLocation& Loc
¶llvm::ModRefInfo getModRefInfo(
const llvm::AtomicRMWInst* RMW,
const llvm::MemoryLocation& Loc)
llvm::ModRefInfo getModRefInfo(
const llvm::AtomicRMWInst* RMW,
const llvm::MemoryLocation& Loc)
Description
getModRefInfo (for atomicrmws) - Return information about whether a particular atomicrmw modifies or reads the specified memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:778
Parameters
- const llvm::AtomicRMWInst* RMW
- const llvm::MemoryLocation& Loc
¶llvm::ModRefInfo getModRefInfo(
const llvm::AtomicRMWInst* RMW,
const llvm::Value* P,
llvm::LocationSize Size)
llvm::ModRefInfo getModRefInfo(
const llvm::AtomicRMWInst* RMW,
const llvm::Value* P,
llvm::LocationSize Size)
Description
getModRefInfo (for atomicrmws) - A convenience wrapper.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:781
Parameters
- const llvm::AtomicRMWInst* RMW
- const llvm::Value* P
- llvm::LocationSize Size
¶llvm::ModRefInfo getModRefInfo(
const llvm::FenceInst* S,
const llvm::MemoryLocation& Loc)
llvm::ModRefInfo getModRefInfo(
const llvm::FenceInst* S,
const llvm::MemoryLocation& Loc)
Description
getModRefInfo (for fences) - Return information about whether a particular store modifies or reads the specified memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:757
Parameters
- const llvm::FenceInst* S
- const llvm::MemoryLocation& Loc
¶bool invalidate(
llvm::Function& F,
const llvm::PreservedAnalyses& PA,
FunctionAnalysisManager::Invalidator& Inv)
bool invalidate(
llvm::Function& F,
const llvm::PreservedAnalyses& PA,
FunctionAnalysisManager::Invalidator& Inv)
Description
Handle invalidation events in the new pass manager. The aggregation is invalidated if any of the underlying analyses is invalidated.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:538
Parameters
- llvm::Function& F
- const llvm::PreservedAnalyses& PA
- FunctionAnalysisManager::Invalidator& Inv
¶bool isMustAlias(const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB)
bool isMustAlias(const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB)
Description
A trivial helper function to check to see if the specified pointers are must-alias.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:583
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)
Description
A convenience wrapper around the \c isMustAlias helper interface.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:588
Parameters
- const llvm::Value* V1
- const llvm::Value* V2
¶bool isNoAlias(const llvm::Value* V1,
const llvm::Value* V2)
bool isNoAlias(const llvm::Value* V1,
const llvm::Value* V2)
Description
A convenience wrapper around the \c isNoAlias helper interface.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:576
Parameters
- const llvm::Value* V1
- const llvm::Value* V2
¶bool isNoAlias(const llvm::Value* V1,
llvm::LocationSize V1Size,
const llvm::Value* V2,
llvm::LocationSize V2Size)
bool isNoAlias(const llvm::Value* V1,
llvm::LocationSize V1Size,
const llvm::Value* V2,
llvm::LocationSize V2Size)
Description
A convenience wrapper around the \c isNoAlias helper interface.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:570
Parameters
- const llvm::Value* V1
- llvm::LocationSize V1Size
- const llvm::Value* V2
- llvm::LocationSize V2Size
¶bool isNoAlias(const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB)
bool isNoAlias(const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB)
Description
A trivial helper function to check to see if the specified pointers are no-alias.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:565
Parameters
- const llvm::MemoryLocation& LocA
- const llvm::MemoryLocation& LocB
¶static bool onlyAccessesArgPointees(
llvm::FunctionModRefBehavior MRB)
static bool onlyAccessesArgPointees(
llvm::FunctionModRefBehavior MRB)
Description
Checks if functions with the specified behavior are known to read and write at most from objects pointed to by their pointer-typed arguments (with arbitrary offsets).
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:692
Parameters
- llvm::FunctionModRefBehavior MRB
¶static bool onlyAccessesInaccessibleMem(
llvm::FunctionModRefBehavior MRB)
static bool onlyAccessesInaccessibleMem(
llvm::FunctionModRefBehavior MRB)
Description
Checks if functions with the specified behavior are known to read and write at most from memory that is inaccessible from LLVM IR.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:706
Parameters
- llvm::FunctionModRefBehavior MRB
¶static bool onlyAccessesInaccessibleOrArgMem(
llvm::FunctionModRefBehavior MRB)
static bool onlyAccessesInaccessibleOrArgMem(
llvm::FunctionModRefBehavior MRB)
Description
Checks if functions with the specified behavior are known to read and write at most from memory that is inaccessible from LLVM IR or objects pointed to by their pointer-typed arguments (with arbitrary offsets).
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:720
Parameters
- llvm::FunctionModRefBehavior MRB
¶static bool onlyReadsMemory(
llvm::FunctionModRefBehavior MRB)
static bool onlyReadsMemory(
llvm::FunctionModRefBehavior MRB)
Description
Checks if functions with the specified behavior are known to only read from non-volatile memory (or not access memory at all).
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:679
Parameters
- llvm::FunctionModRefBehavior MRB
¶bool onlyReadsMemory(const llvm::Function* F)
bool onlyReadsMemory(const llvm::Function* F)
Description
Checks if the specified function is known to only read from non-volatile memory (or not access memory at all). Functions that unwind the stack are legal for this predicate. This property allows many common optimizations to be performed in the absence of interfering store instructions, such as CSE of strlen calls. This property corresponds to the GCC 'pure' attribute.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:673
Parameters
- const llvm::Function* F
¶bool onlyReadsMemory(const llvm::CallBase* Call)
bool onlyReadsMemory(const llvm::CallBase* Call)
Description
Checks if the specified call is known to only read from non-volatile memory (or not access memory at all). Calls that unwind the stack are legal for this predicate. This property allows many common optimizations to be performed in the absence of interfering store instructions, such as CSE of strlen calls. This property corresponds to the GCC 'pure' attribute.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:660
Parameters
- const llvm::CallBase* Call
¶static bool onlyWritesMemory(
llvm::FunctionModRefBehavior MRB)
static bool onlyWritesMemory(
llvm::FunctionModRefBehavior MRB)
Description
Checks if functions with the specified behavior are known to only write memory (or not access memory at all).
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:685
Parameters
- llvm::FunctionModRefBehavior MRB
¶bool pointsToConstantMemory(
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI,
bool OrLocal = false)
bool pointsToConstantMemory(
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI,
bool OrLocal = false)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:899
Parameters
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
- bool OrLocal = false
¶bool pointsToConstantMemory(
const llvm::MemoryLocation& Loc,
bool OrLocal = false)
bool pointsToConstantMemory(
const llvm::MemoryLocation& Loc,
bool OrLocal = false)
Description
Checks whether the given location points to constant memory, or if\p OrLocal is true whether it points to a local alloca.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:595
Parameters
- const llvm::MemoryLocation& Loc
- bool OrLocal = false
¶bool pointsToConstantMemory(const llvm::Value* P,
bool OrLocal = false)
bool pointsToConstantMemory(const llvm::Value* P,
bool OrLocal = false)
Description
A convenience wrapper around the primary \c pointsToConstantMemory interface.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:599
Parameters
- const llvm::Value* P
- bool OrLocal = false
¶~AAResults()
~AAResults()
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:517