LLVM  3.7.0
Public Types | Public Member Functions | Friends | List of all members
llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle > Class Template Reference

defusechain_iterator - This class provides iterator support for machine operands in the function that use or define a specific register. More...

#include <MachineRegisterInfo.h>

Inheritance diagram for llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >:
[legend]
Collaboration diagram for llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >:
[legend]

Public Types

typedef std::iterator
< std::forward_iterator_tag,
MachineInstr, ptrdiff_t >
::reference 
reference
 
typedef std::iterator
< std::forward_iterator_tag,
MachineInstr, ptrdiff_t >
::pointer 
pointer
 

Public Member Functions

 defusechain_instr_iterator ()
 
bool operator== (const defusechain_instr_iterator &x) const
 
bool operator!= (const defusechain_instr_iterator &x) const
 
bool atEnd () const
 atEnd - return true if this iterator is equal to reg_end() on the value. More...
 
defusechain_instr_iteratoroperator++ ()
 
defusechain_instr_iterator operator++ (int)
 
MachineInstroperator* () const
 
MachineInstroperator-> () const
 

Friends

class MachineRegisterInfo
 

Detailed Description

template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
class llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >

defusechain_iterator - This class provides iterator support for machine operands in the function that use or define a specific register.

If ReturnUses is true it returns uses of registers, if ReturnDefs is true it returns defs. If neither are true then you are silly and it always returns end(). If SkipDebug is true it skips uses marked Debug when incrementing.

Definition at line 229 of file MachineRegisterInfo.h.

Member Typedef Documentation

template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
typedef std::iterator<std::forward_iterator_tag, MachineInstr, ptrdiff_t>::pointer llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >::pointer

Definition at line 950 of file MachineRegisterInfo.h.

template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
typedef std::iterator<std::forward_iterator_tag, MachineInstr, ptrdiff_t>::reference llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >::reference

Definition at line 948 of file MachineRegisterInfo.h.

Constructor & Destructor Documentation

template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >::defusechain_instr_iterator ( )
inline

Definition at line 952 of file MachineRegisterInfo.h.

Member Function Documentation

template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
bool llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >::atEnd ( ) const
inline

atEnd - return true if this iterator is equal to reg_end() on the value.

Definition at line 962 of file MachineRegisterInfo.h.

Referenced by llvm::MachineRegisterInfo::getVRegDef().

template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
bool llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator!= ( const defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle > &  x) const
inline
template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
MachineInstr& llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator* ( ) const
inline
template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
defusechain_instr_iterator& llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++ ( )
inline
template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
defusechain_instr_iterator llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++ ( int  )
inline

Definition at line 983 of file MachineRegisterInfo.h.

template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
MachineInstr* llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator-> ( ) const
inline
template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
bool llvm::MachineRegisterInfo::defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator== ( const defusechain_instr_iterator< Uses, Defs, SkipDebug, ByOperand, ByInstr, ByBundle > &  x) const
inline

Friends And Related Function Documentation

template<bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
friend class MachineRegisterInfo
friend

Definition at line 925 of file MachineRegisterInfo.h.


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