llvm::MemorySSA

Encapsulates MemorySSA, including all data associated with memory accesses.

Synopsis

Declared in <llvm/Analysis/MemorySSA.h>

class MemorySSA;

Type Aliases

NameDescription
AccessList Intrusive list of all MemoryAccesses in a block.
DefsList Intrusive list of MemoryDefs and MemoryPhis in a block.

Enums

NameDescription
InsertionPlace Used in various insertion functions to specify whether we are talking about the beginning or end of a block.
VerificationLevel How thoroughly verifyMemorySSA should check consistency.

Member Functions

NameDescription
MemorySSA [constructor]Constructors
~MemorySSA [destructor]Destroy this MemorySSA instance and its owned accesses.
dominates dominates overloads
dump Dump MemorySSA to stderr for debugging.
ensureOptimizedUses Optimize MemoryUses for this MemorySSA instance if not already done.
getAA Return the alias analysis used to build this MemorySSA.
getBlockAccesses Return the list of MemoryAccess's for a given basic block.
getBlockDefs Return the list of MemoryDef's and MemoryPhi's for a given basic block.
getDomTree Return the dominator tree associated with this MemorySSA.
getLiveOnEntryDef Return the live-on-entry MemoryDef for this function or loop.
getMemoryAccess getMemoryAccess overloads
getSkipSelfWalker Return a walker that skips the starting access when querying clobbers.
getWalker Return the primary MemorySSAWalker for clobber queries.
isLiveOnEntryDef Return true if MA represents the live on entry value
locallyDominates Given two memory accesses in the same basic block, determine whether MemoryAccess A dominates MemoryAccess B.
print Print MemorySSA to OS.
verifyMemorySSA Verify that MemorySSA is self consistent (IE definitions dominate all uses, uses appear in the right places). This is used by unit tests.

Protected Member Functions

NameDescription
createDefinedAccess Create a MemoryUse or MemoryDef for instruction I.
insertIntoListsBefore Insert MA into block BB's lists before iterator It.
insertIntoListsForBlock Insert MA into the lists for block BB at Point.
moveTo moveTo overloads
removeFromLists Remove MA from block lists, optionally deleting it.
removeFromLookups Remove MA from value and block lookup maps.
renamePass Rename MemorySSA along the dominator subtree rooted at BB.
verifyDominationNumbers Verify per-block domination numbering over Blocks.
verifyOrderingDominationAndDefUses Verify ordering, domination, and def-use links over Blocks.
verifyPrevDefInPhis Verify that MemoryPhi previous defs are consistent over Blocks.

Friends

NameDescription
llvm::MemorySSAUpdaterAutomatic updater that inserts, deletes, and moves MemorySSA accesses.