LLVM  8.0.1
Public Member Functions | List of all members
llvm::upward_defs_iterator Class 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. More...

#include "llvm/Analysis/MemorySSA.h"

Inheritance diagram for llvm::upward_defs_iterator:
Inheritance graph
[legend]
Collaboration diagram for llvm::upward_defs_iterator:
Collaboration graph
[legend]

Public Member Functions

 upward_defs_iterator (const MemoryAccessPair &Info)
 
 upward_defs_iterator ()
 
bool operator== (const upward_defs_iterator &Other) const
 
BaseT::iterator::reference operator* () const
 
upward_defs_iteratoroperator++ ()
 
BasicBlockgetPhiArgBlock () const
 
- Public Member Functions inherited from llvm::iterator_facade_base< upward_defs_iterator, std::forward_iterator_tag, const MemoryAccessPair >
upward_defs_iterator operator+ (std::ptrdiff_t n) const
 
upward_defs_iterator operator- (std::ptrdiff_t n) const
 
upward_defs_iteratoroperator++ ()
 
upward_defs_iterator operator++ (int)
 
upward_defs_iteratoroperator-- ()
 
upward_defs_iterator operator-- (int)
 
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
 
const MemoryAccessPairoperator-> ()
 
const MemoryAccessPairoperator-> () const
 
ReferenceProxy operator[] (std::ptrdiff_t n)
 
ReferenceProxy operator[] (std::ptrdiff_t n) const
 

Additional Inherited Members

- Protected Types inherited from llvm::iterator_facade_base< upward_defs_iterator, std::forward_iterator_tag, const MemoryAccessPair >
enum  
 

Detailed Description

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 1172 of file MemorySSA.h.

Constructor & Destructor Documentation

◆ upward_defs_iterator() [1/2]

llvm::upward_defs_iterator::upward_defs_iterator ( const MemoryAccessPair Info)
inline

Definition at line 1179 of file MemorySSA.h.

◆ upward_defs_iterator() [2/2]

llvm::upward_defs_iterator::upward_defs_iterator ( )
inline

Definition at line 1188 of file MemorySSA.h.

Member Function Documentation

◆ getPhiArgBlock()

BasicBlock* llvm::upward_defs_iterator::getPhiArgBlock ( ) const
inline

Definition at line 1210 of file MemorySSA.h.

◆ operator*()

BaseT::iterator::reference llvm::upward_defs_iterator::operator* ( ) const
inline

Definition at line 1194 of file MemorySSA.h.

References assert().

◆ operator++()

upward_defs_iterator& llvm::upward_defs_iterator::operator++ ( )
inline

Definition at line 1201 of file MemorySSA.h.

References assert().

◆ operator==()

bool llvm::upward_defs_iterator::operator== ( const upward_defs_iterator Other) const
inline

Definition at line 1190 of file MemorySSA.h.


The documentation for this class was generated from the following file: