LLVM
8.0.1
|
A MemorySSAWalker that does no alias queries, or anything else. More...
#include "llvm/Analysis/MemorySSA.h"
Public Member Functions | |
MemoryAccess * | getClobberingMemoryAccess (MemoryAccess *) override |
Does the same thing as getClobberingMemoryAccess(const Instruction *I), but takes a MemoryAccess instead of an Instruction. More... | |
MemoryAccess * | getClobberingMemoryAccess (MemoryAccess *, const MemoryLocation &) override |
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). More... | |
Public Member Functions inherited from llvm::MemorySSAWalker | |
MemorySSAWalker (MemorySSA *) | |
virtual | ~MemorySSAWalker ()=default |
MemoryAccess * | getClobberingMemoryAccess (const Instruction *I) |
Given a memory Mod/Ref/ModRef'ing instruction, calling this will give you the nearest dominating MemoryAccess that Mod's the location the instruction accesses (by skipping any def which AA can prove does not alias the location(s) accessed by the instruction given). More... | |
virtual void | invalidateInfo (MemoryAccess *) |
Given a memory access, invalidate anything this walker knows about that access. More... | |
virtual void | verify (const MemorySSA *MSSA) |
Additional Inherited Members | |
Public Types inherited from llvm::MemorySSAWalker | |
using | MemoryAccessSet = SmallVector< MemoryAccess *, 8 > |
Protected Attributes inherited from llvm::MemorySSAWalker | |
MemorySSA * | MSSA |
A MemorySSAWalker that does no alias queries, or anything else.
It simply returns the links as they were constructed by the builder.
Definition at line 1057 of file MemorySSA.h.
|
overridevirtual |
Does the same thing as getClobberingMemoryAccess(const Instruction *I), but takes a MemoryAccess instead of an Instruction.
Implements llvm::MemorySSAWalker.
Definition at line 2350 of file MemorySSA.cpp.
|
overridevirtual |
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.
Implements llvm::MemorySSAWalker.
Definition at line 2356 of file MemorySSA.cpp.