LLVM  8.0.1
Public Types | Public Member Functions | Friends | List of all members
llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle > Class Template Reference

reg_begin/reg_end - Provide iteration support to walk over all definitions and uses of a register within the MachineFunction that corresponds to this MachineRegisterInfo object. More...

#include "llvm/CodeGen/MachineRegisterInfo.h"

Inheritance diagram for llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >:
Inheritance graph
[legend]
Collaboration diagram for llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >:
Collaboration graph
[legend]

Public Types

using reference = std::iterator< std::forward_iterator_tag, MachineInstr, ptrdiff_t >::reference
 
using pointer = std::iterator< std::forward_iterator_tag, MachineInstr, ptrdiff_t >::pointer
 

Public Member Functions

 defusechain_iterator ()=default
 
bool operator== (const defusechain_iterator &x) const
 
bool operator!= (const defusechain_iterator &x) const
 
bool atEnd () const
 atEnd - return true if this iterator is equal to reg_end() on the value. More...
 
defusechain_iteratoroperator++ ()
 
defusechain_iterator operator++ (int)
 
unsigned getOperandNo () const
 getOperandNo - Return the operand # of this MachineOperand in its MachineInstr. More...
 
MachineOperandoperator* () const
 
MachineOperandoperator-> () const
 

Friends

class MachineRegisterInfo
 

Detailed Description

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
class llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >

reg_begin/reg_end - Provide iteration support to walk over all definitions and uses of a register within the MachineFunction that corresponds to this MachineRegisterInfo object.

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 267 of file MachineRegisterInfo.h.

Member Typedef Documentation

◆ pointer

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
using llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::pointer = std::iterator<std::forward_iterator_tag, MachineInstr, ptrdiff_t>::pointer

Definition at line 995 of file MachineRegisterInfo.h.

◆ reference

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
using llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::reference = std::iterator<std::forward_iterator_tag, MachineInstr, ptrdiff_t>::reference

Definition at line 993 of file MachineRegisterInfo.h.

Constructor & Destructor Documentation

◆ defusechain_iterator()

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::defusechain_iterator ( )
default

Member Function Documentation

◆ atEnd()

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
bool llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::atEnd ( ) const
inline

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

Definition at line 1007 of file MachineRegisterInfo.h.

Referenced by llvm::MachineTraceMetrics::Ensemble::verify().

◆ getOperandNo()

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
unsigned llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::getOperandNo ( ) const
inline

◆ operator!=()

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
bool llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator!= ( const defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle > &  x) const
inline

Definition at line 1002 of file MachineRegisterInfo.h.

References llvm::operator==().

◆ operator*()

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
MachineOperand& llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator* ( ) const
inline

Definition at line 1041 of file MachineRegisterInfo.h.

References assert().

◆ operator++() [1/2]

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
defusechain_iterator& llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++ ( )
inline

◆ operator++() [2/2]

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
defusechain_iterator llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++ ( int  )
inline

Definition at line 1029 of file MachineRegisterInfo.h.

◆ operator->()

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
MachineOperand* llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator-> ( ) const
inline

Definition at line 1046 of file MachineRegisterInfo.h.

References assert().

◆ operator==()

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
bool llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator== ( const defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle > &  x) const
inline

Definition at line 999 of file MachineRegisterInfo.h.

Friends And Related Function Documentation

◆ MachineRegisterInfo

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
friend class MachineRegisterInfo
friend

Definition at line 956 of file MachineRegisterInfo.h.


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