|
LLVM 24.0.0git
|
Provide an iterator that walks defs, giving both the memory access, and the current pointer location, updating the pointer location as it changes due to phi node translation. More...
#include "llvm/Analysis/MemorySSA.h"
Public Member Functions | |
| upward_defs_iterator (const UpwardDefsElem &Elem, DominatorTree *DT) | |
| upward_defs_iterator () | |
| bool | operator== (const upward_defs_iterator &Other) const |
| std::iterator_traits< BaseT >::reference | operator* () const |
| upward_defs_iterator & | operator++ () |
| BasicBlock * | getPhiArgBlock () const |
| Public Member Functions inherited from llvm::iterator_facade_base< upward_defs_iterator, std::forward_iterator_tag, const UpwardDefsElem > | |
| upward_defs_iterator | operator+ (std::ptrdiff_t n) const |
| upward_defs_iterator | operator- (std::ptrdiff_t n) const |
| upward_defs_iterator & | operator++ () |
| upward_defs_iterator & | operator-- () |
| bool | operator!= (const upward_defs_iterator &RHS) const |
| bool | operator> (const upward_defs_iterator &RHS) const |
| bool | operator<= (const upward_defs_iterator &RHS) const |
| bool | operator>= (const upward_defs_iterator &RHS) const |
| PointerProxy | operator-> () const |
| ReferenceProxy | operator[] (std::ptrdiff_t n) const |
Additional Inherited Members | |
| Public Types inherited from llvm::iterator_facade_base< upward_defs_iterator, std::forward_iterator_tag, const UpwardDefsElem > | |
| enum | |
| using | iterator_category |
| using | value_type |
| using | difference_type |
| using | pointer |
| using | reference |
Provide an iterator that walks defs, giving both the memory access, and the current pointer location, updating the pointer location as it changes due to phi node translation.
This iterator, while somewhat specialized, is what most clients actually want when walking upwards through MemorySSA def chains. It takes a pair of <MemoryAccess,MemoryLocation>, and walks defs, properly translating the memory location through phi nodes for the user.
Definition at line 1221 of file MemorySSA.h.
|
inline |
Definition at line 1228 of file MemorySSA.h.
References llvm::isa(), llvm::UpwardDefsElem::MA, and llvm::UpwardDefsElem::MayBeCrossIteration.
Referenced by operator++(), and operator==().
|
inline |
Definition at line 1238 of file MemorySSA.h.
|
inline |
Definition at line 1260 of file MemorySSA.h.
|
inline |
Definition at line 1244 of file MemorySSA.h.
References assert().
|
inline |
Definition at line 1251 of file MemorySSA.h.
References assert(), and upward_defs_iterator().
|
inline |
Definition at line 1240 of file MemorySSA.h.
References llvm::Other, and upward_defs_iterator().