LLVM API Documentation

Public Types | Public Member Functions | Friends
llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug > Class Template Reference

#include <MachineRegisterInfo.h>

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

List of all members.

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_iterator (const defusechain_iterator &I)
 defusechain_iterator ()
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.
defusechain_iteratoroperator++ ()
defusechain_iterator operator++ (int)
MachineInstrskipInstruction ()
MachineInstrskipBundle ()
MachineOperandgetOperand () const
unsigned getOperandNo () const
MachineInstroperator* () const
MachineInstroperator-> () const

Friends

class MachineRegisterInfo

Detailed Description

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

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


Member Typedef Documentation

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
typedef std::iterator<std::forward_iterator_tag, MachineInstr, ptrdiff_t>::pointer llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::pointer

Definition at line 531 of file MachineRegisterInfo.h.

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
typedef std::iterator<std::forward_iterator_tag, MachineInstr, ptrdiff_t>::reference llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::reference

Definition at line 529 of file MachineRegisterInfo.h.


Constructor & Destructor Documentation

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::defusechain_iterator ( const defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug > &  I) [inline]

Definition at line 533 of file MachineRegisterInfo.h.

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::defusechain_iterator ( ) [inline]

Definition at line 534 of file MachineRegisterInfo.h.


Member Function Documentation

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
bool llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::atEnd ( ) const [inline]

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

Definition at line 544 of file MachineRegisterInfo.h.

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

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
MachineOperand& llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::getOperand ( ) const [inline]

Definition at line 591 of file MachineRegisterInfo.h.

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

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

Definition at line 598 of file MachineRegisterInfo.h.

References llvm::MachineInstr::getOperand(), and llvm::MachineOperand::getParent().

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

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
bool llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::operator!= ( const defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug > &  x) const [inline]
template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
MachineInstr& llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::operator* ( ) const [inline]

Definition at line 604 of file MachineRegisterInfo.h.

References llvm::MachineOperand::getParent().

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
defusechain_iterator& llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::operator++ ( ) [inline]
template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
defusechain_iterator llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::operator++ ( int  ) [inline]

Definition at line 568 of file MachineRegisterInfo.h.

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
MachineInstr* llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::operator-> ( ) const [inline]

Definition at line 609 of file MachineRegisterInfo.h.

References llvm::MachineOperand::getParent().

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
bool llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::operator== ( const defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug > &  x) const [inline]
template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
MachineInstr* llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::skipBundle ( ) [inline]
template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
MachineInstr* llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug >::skipInstruction ( ) [inline]

skipInstruction - move forward until reaching a different instruction. Return the skipped instruction that is no longer pointed to, or NULL if already pointing to end().

Definition at line 575 of file MachineRegisterInfo.h.

References llvm::MachineOperand::getParent(), and llvm::A64CC::MI.


Friends And Related Function Documentation

template<bool ReturnUses, bool ReturnDefs, bool SkipDebug>
friend class MachineRegisterInfo [friend]

Definition at line 526 of file MachineRegisterInfo.h.


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