LLVM 22.0.0git
llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr > 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 >:
[legend]

Public Types

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

Public Member Functions

 defusechain_iterator ()=default
bool operator== (const defusechain_iterator &x) const
bool operator!= (const defusechain_iterator &x) const
defusechain_iteratoroperator++ ()
defusechain_iterator operator++ (int)
unsigned getOperandNo () const
 getOperandNo - Return the operand # of this MachineOperand in its MachineInstr.
MachineOperandoperator* () const
MachineOperandoperator-> () const

Friends

class MachineRegisterInfo

Detailed Description

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

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

Member Typedef Documentation

◆ difference_type

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

Definition at line 1056 of file MachineRegisterInfo.h.

◆ iterator_category

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

Definition at line 1054 of file MachineRegisterInfo.h.

◆ pointer

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

Definition at line 1057 of file MachineRegisterInfo.h.

◆ reference

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

Definition at line 1058 of file MachineRegisterInfo.h.

◆ value_type

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand, bool ByInstr>
using llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr >::value_type = MachineOperand

Definition at line 1055 of file MachineRegisterInfo.h.

Constructor & Destructor Documentation

◆ defusechain_iterator()

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

Member Function Documentation

◆ getOperandNo()

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

getOperandNo - Return the operand # of this MachineOperand in its MachineInstr.

Definition at line 1130 of file MachineRegisterInfo.h.

Referenced by llvm::FastISel::tryToFoldLoad().

◆ operator!=()

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

Definition at line 1100 of file MachineRegisterInfo.h.

◆ operator*()

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

Definition at line 1136 of file MachineRegisterInfo.h.

◆ operator++() [1/2]

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

Definition at line 1105 of file MachineRegisterInfo.h.

◆ operator++() [2/2]

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

Definition at line 1124 of file MachineRegisterInfo.h.

◆ operator->()

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

Definition at line 1141 of file MachineRegisterInfo.h.

◆ operator==()

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

◆ MachineRegisterInfo

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

Definition at line 1049 of file MachineRegisterInfo.h.


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