class AAResults
Declaration
class AAResults { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:311
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)
- public llvm::ModRefInfo callCapturesBefore(const llvm::Instruction * I, const llvm::Value * P, llvm::LocationSize Size, llvm::DominatorTree * DT, llvm::OrderedBasicBlock * OBB = nullptr)
- public llvm::ModRefInfo callCapturesBefore(const llvm::Instruction * I, const llvm::MemoryLocation & MemLoc, llvm::DominatorTree * DT, llvm::OrderedBasicBlock * OBB = nullptr)
- 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::Value * Ptr, llvm::LocationSize Size, const llvm::ModRefInfo Mode)
- public bool canInstructionRangeModRef(const llvm::Instruction & I1, const llvm::Instruction & I2, const llvm::MemoryLocation & Loc, 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 static bool doesNotReadMemory(llvm::FunctionModRefBehavior MRB)
- 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(const llvm::AtomicCmpXchgInst * CX, const llvm::Value * P, llvm::LocationSize Size)
- 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::VAArgInst * I, const llvm::MemoryLocation & Loc)
- public llvm::ModRefInfo getModRefInfo(const llvm::AtomicCmpXchgInst * CX, 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::LoadInst * L, const llvm::MemoryLocation & Loc)
- public llvm::ModRefInfo getModRefInfo(const llvm::CatchPadInst * 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::CatchReturnInst * I, const llvm::MemoryLocation & Loc)
- public llvm::ModRefInfo getModRefInfo(const llvm::CatchReturnInst * 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::Instruction * I, const llvm::Value * P, llvm::LocationSize Size)
- 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::FenceInst * 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::StoreInst * S, 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::CallBase * Call, 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::FenceInst * S, const llvm::Value * P, llvm::LocationSize Size)
- public bool invalidate(llvm::Function & F, const llvm::PreservedAnalyses & PA, FunctionAnalysisManager::Invalidator & Inv)
- public bool isMustAlias(const llvm::Value * V1, const llvm::Value * V2)
- public bool isMustAlias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB)
- public bool isNoAlias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB)
- public bool isNoAlias(const llvm::Value * V1, llvm::LocationSize V1Size, const llvm::Value * V2, llvm::LocationSize V2Size)
- public bool isNoAlias(const llvm::Value * V1, const llvm::Value * V2)
- 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::CallBase * Call)
- public bool onlyReadsMemory(const llvm::Function * F)
- 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:316
Parameters
- llvm::AAResults&& Arg
¶AAResults(const llvm::TargetLibraryInfo& TLI)
AAResults(const llvm::TargetLibraryInfo& TLI)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:315
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:332
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:320
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:349
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:352
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:358
Parameters
- const llvm::Value* V1
- const llvm::Value* V2
¶llvm::ModRefInfo callCapturesBefore(
const llvm::Instruction* I,
const llvm::Value* P,
llvm::LocationSize Size,
llvm::DominatorTree* DT,
llvm::OrderedBasicBlock* OBB = nullptr)
llvm::ModRefInfo callCapturesBefore(
const llvm::Instruction* I,
const llvm::Value* P,
llvm::LocationSize Size,
llvm::DominatorTree* DT,
llvm::OrderedBasicBlock* OBB = nullptr)
Description
A convenience wrapper to synthesize a memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:655
Parameters
- const llvm::Instruction* I
- const llvm::Value* P
- llvm::LocationSize Size
- llvm::DominatorTree* DT
- llvm::OrderedBasicBlock* OBB = nullptr
¶llvm::ModRefInfo callCapturesBefore(
const llvm::Instruction* I,
const llvm::MemoryLocation& MemLoc,
llvm::DominatorTree* DT,
llvm::OrderedBasicBlock* OBB = nullptr)
llvm::ModRefInfo callCapturesBefore(
const llvm::Instruction* I,
const llvm::MemoryLocation& MemLoc,
llvm::DominatorTree* DT,
llvm::OrderedBasicBlock* OBB = nullptr)
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. An ordered basic block \p OBB can be used to speed up instruction ordering queries inside the BasicBlock containing \p I. Early exits in callCapturesBefore may lead to ModRefInfo::Must not being set.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:650
Parameters
- const llvm::Instruction* I
- const llvm::MemoryLocation& MemLoc
- llvm::DominatorTree* DT
- llvm::OrderedBasicBlock* OBB = nullptr
¶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:671
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:668
Parameters
- const llvm::BasicBlock& BB
- const llvm::MemoryLocation& Loc
¶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:686
Parameters
- 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::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:681
Parameters
- const llvm::Instruction& I1
- const llvm::Instruction& I2
- const llvm::MemoryLocation& Loc
- 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:497
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:510
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:430
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:445
Parameters
- const llvm::Function* F
¶static bool doesNotReadMemory(
llvm::FunctionModRefBehavior MRB)
static bool doesNotReadMemory(
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:483
Parameters
- llvm::FunctionModRefBehavior MRB
¶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:411
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:414
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:417
Parameters
- const llvm::Function* F
¶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:568
Parameters
- const llvm::AtomicCmpXchgInst* CX
- const llvm::Value* P
- llvm::LocationSize Size
¶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:575
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:578
Parameters
- const llvm::AtomicRMWInst* RMW
- const llvm::Value* P
- llvm::LocationSize Size
¶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:585
Parameters
- const llvm::VAArgInst* I
- const llvm::MemoryLocation& Loc
¶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:564
Parameters
- const llvm::AtomicCmpXchgInst* CX
- 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:588
Parameters
- const llvm::VAArgInst* I
- 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:534
Parameters
- const llvm::LoadInst* L
- const llvm::MemoryLocation& Loc
¶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:595
Parameters
- const llvm::CatchPadInst* 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:598
Parameters
- const llvm::CatchPadInst* 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:605
Parameters
- const llvm::CatchReturnInst* I
- const llvm::MemoryLocation& Loc
¶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:608
Parameters
- const llvm::CatchReturnInst* 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:623
Parameters
- const llvm::Instruction* I
- const Optional<llvm::MemoryLocation>& OptLoc
¶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:630
Parameters
- const llvm::Instruction* I
- const llvm::Value* P
- llvm::LocationSize Size
¶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:637
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:642
Parameters
- const llvm::CallBase* Call1
- const llvm::CallBase* Call2
¶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:554
Parameters
- const llvm::FenceInst* 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:547
Parameters
- const llvm::StoreInst* S
- 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:544
Parameters
- const llvm::StoreInst* S
- 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:537
Parameters
- const llvm::LoadInst* L
- const llvm::Value* P
- llvm::LocationSize Size
¶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:527
Parameters
- const llvm::CallBase* Call
- 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:524
Parameters
- const llvm::CallBase* Call
- const llvm::MemoryLocation& Loc
¶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:557
Parameters
- const llvm::FenceInst* S
- const llvm::Value* P
- llvm::LocationSize Size
¶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:338
Parameters
- llvm::Function& F
- const llvm::PreservedAnalyses& PA
- FunctionAnalysisManager::Invalidator& Inv
¶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:386
Parameters
- const llvm::Value* V1
- const llvm::Value* V2
¶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:381
Parameters
- const llvm::MemoryLocation& LocA
- const llvm::MemoryLocation& LocB
¶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:364
Parameters
- const llvm::MemoryLocation& LocA
- const llvm::MemoryLocation& LocB
¶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:369
Parameters
- const llvm::Value* V1
- llvm::LocationSize V1Size
- const llvm::Value* V2
- llvm::LocationSize V2Size
¶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:375
Parameters
- const llvm::Value* V1
- const llvm::Value* V2
¶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:490
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:504
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:517
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:477
Parameters
- llvm::FunctionModRefBehavior MRB
¶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:458
Parameters
- const llvm::CallBase* Call
¶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:471
Parameters
- const llvm::Function* F
¶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:393
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:397
Parameters
- const llvm::Value* P
- bool OrLocal = false
¶~AAResults()
~AAResults()
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:317