Generic walker interface for further disambiguating MemorySSA def-use chains.
Declared in <llvm/Analysis/MemorySSA.h>
class MemorySSAWalker;
Walkers are used to be able to further disambiguate the def-use chains MemorySSA gives you, or otherwise produce better info than MemorySSA gives you. In particular, while the def-use chains provide basic information, and are guaranteed to give, for example, the nearest may-aliasing MemoryDef for a MemoryUse as AliasAnalysis considers it, a user mant want better or other information. In particular, they may want to use SCEV info to further disambiguate memory accesses, or they may want the nearest dominating may-aliasing MemoryDef for a call or a store. This API enables a standardized interface to getting and using that info.
| Name | Description |
|---|---|
MemoryAccessSet | Small vector of MemoryAccess pointers returned by some walker queries. |
| Name | Description |
|---|---|
MemorySSAWalker [constructor] | Construct a walker bound to MemorySSA instance MSSA. |
~MemorySSAWalker [destructor] [virtual] | Destroy this walker. |
getClobberingMemoryAccess | getClobberingMemoryAccess overloads |
invalidateInfo [virtual] | Invalidate cached walker info for memory access MA. |
| Name | Description |
|---|---|
MSSA | MemorySSA instance this walker is bound to. |
| Name | Description |
|---|---|
llvm::MemorySSA | Encapsulates MemorySSA, including all data associated with memory accesses. |
| Name | Description |
|---|---|
DoNothingMemorySSAWalker | MemorySSAWalker that returns builder links without alias queries. |