LLVM 20.0.0git
|
Walks the defining accesses of MemoryDefs. More...
#include "llvm/Analysis/MemorySSA.h"
Public Member Functions | |
def_chain_iterator () | |
def_chain_iterator (T MA) | |
T | operator* () const |
def_chain_iterator & | operator++ () |
bool | operator== (const def_chain_iterator &O) const |
Public Member Functions inherited from llvm::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT > | |
DerivedT | operator+ (DifferenceTypeT n) const |
DerivedT | operator- (DifferenceTypeT n) const |
DerivedT & | operator++ () |
DerivedT | operator++ (int) |
DerivedT & | operator-- () |
DerivedT | operator-- (int) |
bool | operator!= (const DerivedT &RHS) const |
bool | operator> (const DerivedT &RHS) const |
bool | operator<= (const DerivedT &RHS) const |
bool | operator>= (const DerivedT &RHS) const |
PointerProxy | operator-> () const |
ReferenceProxy | operator[] (DifferenceTypeT n) const |
Additional Inherited Members | |
Public Types inherited from llvm::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT > | |
using | iterator_category = IteratorCategoryT |
using | value_type = T |
using | difference_type = DifferenceTypeT |
using | pointer = PointerT |
using | reference = ReferenceT |
Protected Types inherited from llvm::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT > | |
enum | { IsRandomAccess , IsBidirectional } |
Walks the defining accesses of MemoryDefs.
Stops after we hit something that has no defining use (e.g. a MemoryPhi or liveOnEntry). Note that, when comparing against a null def_chain_iterator, this will compare equal only after walking said Phi/liveOnEntry.
The UseOptimizedChain flag specifies whether to walk the clobbering access chain, or all the accesses.
Normally, MemoryDef are all just def/use linked together, so a def_chain on a MemoryDef will walk all MemoryDefs above it in the program until it hits a phi node. The optimized chain walks the clobbering access of a store. So if you are just trying to find, given a store, what the next thing that would clobber the same memory is, you want the optimized chain.
Definition at line 1325 of file MemorySSA.h.
|
inline |
Definition at line 1328 of file MemorySSA.h.
|
inline |
Definition at line 1329 of file MemorySSA.h.
|
inline |
Definition at line 1331 of file MemorySSA.h.
|
inline |
Definition at line 1333 of file MemorySSA.h.
|
inline |
Definition at line 1347 of file MemorySSA.h.