LLVM 22.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< def_chain_iterator< T, false >, std::forward_iterator_tag, MemoryAccess * > | |
def_chain_iterator< T, false > | operator+ (std::ptrdiff_t n) const |
def_chain_iterator< T, false > | operator- (std::ptrdiff_t n) const |
def_chain_iterator< T, false > & | operator++ () |
def_chain_iterator< T, false > & | operator-- () |
bool | operator!= (const def_chain_iterator< T, false > &RHS) const |
bool | operator> (const def_chain_iterator< T, false > &RHS) const |
bool | operator<= (const def_chain_iterator< T, false > &RHS) const |
bool | operator>= (const def_chain_iterator< T, false > &RHS) const |
PointerProxy | operator-> () const |
ReferenceProxy | operator[] (std::ptrdiff_t n) const |
Additional Inherited Members | |
Public Types inherited from llvm::iterator_facade_base< def_chain_iterator< T, false >, std::forward_iterator_tag, MemoryAccess * > | |
using | iterator_category |
using | value_type |
using | difference_type |
using | pointer |
using | reference |
Protected Types inherited from llvm::iterator_facade_base< def_chain_iterator< T, false >, std::forward_iterator_tag, MemoryAccess * > | |
enum |
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 1333 of file MemorySSA.h.
|
inline |
Definition at line 1336 of file MemorySSA.h.
Referenced by operator++(), and operator==().
|
inline |
Definition at line 1337 of file MemorySSA.h.
References T.
|
inline |
Definition at line 1339 of file MemorySSA.h.
References T.
|
inline |
Definition at line 1341 of file MemorySSA.h.
References def_chain_iterator(), and llvm::dyn_cast().
|
inline |
Definition at line 1355 of file MemorySSA.h.
References def_chain_iterator().