LLVM 22.0.0git
llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByInstr > 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"

Inheritance diagram for llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByInstr >:
[legend]

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
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 ByInstr>
class llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByInstr >

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

Member Typedef Documentation

◆ difference_type

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

Definition at line 1160 of file MachineRegisterInfo.h.

◆ iterator_category

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

Definition at line 1158 of file MachineRegisterInfo.h.

◆ pointer

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

Definition at line 1161 of file MachineRegisterInfo.h.

◆ reference

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

Definition at line 1162 of file MachineRegisterInfo.h.

◆ value_type

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

Definition at line 1159 of file MachineRegisterInfo.h.

Constructor & Destructor Documentation

◆ defusechain_instr_iterator()

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

Member Function Documentation

◆ operator!=()

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

Definition at line 1204 of file MachineRegisterInfo.h.

◆ operator*()

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

◆ operator++() [1/2]

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

Definition at line 1209 of file MachineRegisterInfo.h.

◆ operator++() [2/2]

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

Definition at line 1226 of file MachineRegisterInfo.h.

◆ operator->()

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

Definition at line 1238 of file MachineRegisterInfo.h.

◆ operator==()

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

◆ MachineRegisterInfo

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

Definition at line 1155 of file MachineRegisterInfo.h.


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