class MemorySSA::SkipSelfWalker
Declaration
template <class AliasAnalysisType>
class MemorySSA::SkipSelfWalker : public MemorySSAWalker { /* full declaration omitted */ };
Declared at: llvm/lib/Analysis/MemorySSA.cpp:1098
Inherits from: MemorySSAWalker
Templates
- AliasAnalysisType
Member Variables
- private ClobberWalkerBase<AliasAnalysisType>* Walker
Inherited from MemorySSAWalker:
Method Overview
- public SkipSelfWalker<AliasAnalysisType>(llvm::MemorySSA * M, ClobberWalkerBase<AliasAnalysisType> * W)
- public llvm::MemoryAccess * getClobberingMemoryAccess(llvm::MemoryAccess * MA, unsigned int & UWL)
- public llvm::MemoryAccess * getClobberingMemoryAccess(llvm::MemoryAccess * MA, const llvm::MemoryLocation & Loc, unsigned int & UWL)
- public llvm::MemoryAccess * getClobberingMemoryAccess(llvm::MemoryAccess * MA)
- public llvm::MemoryAccess * getClobberingMemoryAccess(llvm::MemoryAccess * MA, const llvm::MemoryLocation & Loc)
- public void invalidateInfo(llvm::MemoryAccess * MA)
- public ~SkipSelfWalker<AliasAnalysisType>()
Inherited from MemorySSAWalker:
- public getClobberingMemoryAccess
- public getClobberingMemoryAccess
- public getClobberingMemoryAccess
- public invalidateInfo
Methods
¶SkipSelfWalker<AliasAnalysisType>(
llvm::MemorySSA* M,
ClobberWalkerBase<AliasAnalysisType>* W)
SkipSelfWalker<AliasAnalysisType>(
llvm::MemorySSA* M,
ClobberWalkerBase<AliasAnalysisType>* W)
Declared at: llvm/lib/Analysis/MemorySSA.cpp:1102
Parameters
- llvm::MemorySSA* M
- ClobberWalkerBase<AliasAnalysisType>* W
¶llvm::MemoryAccess* getClobberingMemoryAccess(
llvm::MemoryAccess* MA,
unsigned int& UWL)
llvm::MemoryAccess* getClobberingMemoryAccess(
llvm::MemoryAccess* MA,
unsigned int& UWL)
Declared at: llvm/lib/Analysis/MemorySSA.cpp:1108
Parameters
- llvm::MemoryAccess* MA
- unsigned int& UWL
¶llvm::MemoryAccess* getClobberingMemoryAccess(
llvm::MemoryAccess* MA,
const llvm::MemoryLocation& Loc,
unsigned int& UWL)
llvm::MemoryAccess* getClobberingMemoryAccess(
llvm::MemoryAccess* MA,
const llvm::MemoryLocation& Loc,
unsigned int& UWL)
Declared at: llvm/lib/Analysis/MemorySSA.cpp:1111
Parameters
- llvm::MemoryAccess* MA
- const llvm::MemoryLocation& Loc
- unsigned int& UWL
¶llvm::MemoryAccess* getClobberingMemoryAccess(
llvm::MemoryAccess* MA)
llvm::MemoryAccess* getClobberingMemoryAccess(
llvm::MemoryAccess* MA)
Description
Does the same thing as getClobberingMemoryAccess(const Instruction *I), but takes a MemoryAccess instead of an Instruction.
Declared at: llvm/lib/Analysis/MemorySSA.cpp:1117
Parameters
¶llvm::MemoryAccess* getClobberingMemoryAccess(
llvm::MemoryAccess* MA,
const llvm::MemoryLocation& Loc)
llvm::MemoryAccess* getClobberingMemoryAccess(
llvm::MemoryAccess* MA,
const llvm::MemoryLocation& Loc)
Description
Given a potentially clobbering memory access and a new location, calling this will give you the nearest dominating clobbering MemoryAccess (by skipping non-aliasing def links). This version of the function is mainly used to disambiguate phi translated pointers, where the value of a pointer may have changed from the initial memory access. Note that this expects to be handed either a MemoryUse, or an already potentially clobbering access. Unlike the above API, if given a MemoryDef that clobbers the pointer as the starting access, it will return that MemoryDef, whereas the above would return the clobber starting from the use side of the memory def.
Declared at: llvm/lib/Analysis/MemorySSA.cpp:1121
Parameters
- llvm::MemoryAccess* MA
- const llvm::MemoryLocation& Loc
¶void invalidateInfo(llvm::MemoryAccess* MA)
void invalidateInfo(llvm::MemoryAccess* MA)
Description
Given a memory access, invalidate anything this walker knows about that access. This API is used by walkers that store information to perform basic cache invalidation. This will be called by MemorySSA at appropriate times for the walker it uses or returns.
Declared at: llvm/lib/Analysis/MemorySSA.cpp:1127
Parameters
¶~SkipSelfWalker<AliasAnalysisType>()
~SkipSelfWalker<AliasAnalysisType>()
Declared at: llvm/lib/Analysis/MemorySSA.cpp:1104