class MemorySSA::SkipSelfWalker
Declaration
template <class AliasAnalysisType>
class MemorySSA::SkipSelfWalker : public MemorySSAWalker { /* full declaration omitted */ };
Declared at: llvm/lib/Analysis/MemorySSA.cpp:1050
Inherits from: MemorySSAWalker
Templates
- AliasAnalysisType
Member Variables
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:1054
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:1060
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:1063
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:1069
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:1073
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:1079
Parameters
¶~SkipSelfWalker<AliasAnalysisType>()
~SkipSelfWalker<AliasAnalysisType>()
Declared at: llvm/lib/Analysis/MemorySSA.cpp:1056