llvm::MemorySSAWalker

This is the generic walker interface for walkers of MemorySSA. 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.

Synopsis

Declared in <llvm/Analysis/MemorySSA.h>

class MemorySSAWalker;

Type Aliases

Name
MemoryAccessSet

Member Functions

NameDescription
MemorySSAWalker [constructor]Construct from MemorySSA
~MemorySSAWalker [destructor] [virtual]Destructor
getClobberingMemoryAccess getClobberingMemoryAccess overloads
invalidateInfo [virtual]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.

Protected Data Members

Name
MSSA

Friends

NameDescription
llvm::MemorySSAEncapsulates MemorySSA, including all data associated with memory accesses.

Derived Classes

NameDescription
DoNothingMemorySSAWalker A MemorySSAWalker that does no alias queries, or anything else. It simply returns the links as they were constructed by the builder.