LLVM  13.0.0git
Public Types | Public Member Functions | Friends | List of all members
llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, 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 "llvm/CodeGen/MachineRegisterInfo.h"

Public Types

using iterator_category = std::forward_iterator_tag
 
using value_type = MachineInstr
 
using difference_type = std::ptrdiff_t
 
using pointer = value_type *
 
using reference = value_type &
 

Public Member Functions

 defusechain_instr_iterator ()=default
 
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 ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
class llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, 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 269 of file MachineRegisterInfo.h.

Member Typedef Documentation

◆ difference_type

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
using llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::difference_type = std::ptrdiff_t

Definition at line 1087 of file MachineRegisterInfo.h.

◆ iterator_category

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
using llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::iterator_category = std::forward_iterator_tag

Definition at line 1085 of file MachineRegisterInfo.h.

◆ pointer

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
using llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::pointer = value_type *

Definition at line 1088 of file MachineRegisterInfo.h.

◆ reference

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
using llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::reference = value_type &

Definition at line 1089 of file MachineRegisterInfo.h.

◆ value_type

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
using llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::value_type = MachineInstr

Definition at line 1086 of file MachineRegisterInfo.h.

Constructor & Destructor Documentation

◆ defusechain_instr_iterator()

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

Member Function Documentation

◆ atEnd()

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr, bool ByBundle>
bool llvm::MachineRegisterInfo::defusechain_instr_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 1136 of file MachineRegisterInfo.h.

◆ operator!=()

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

◆ operator*()

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

◆ operator++() [1/2]

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

Definition at line 1139 of file MachineRegisterInfo.h.

References assert(), llvm::getBundleStart(), and P.

◆ operator++() [2/2]

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

Definition at line 1158 of file MachineRegisterInfo.h.

◆ operator->()

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

◆ operator==()

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

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


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