LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Friends | List of all members
llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug > Class Template Reference

#include <MachineRegisterInfo.h>

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

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

Friends

class MachineRegisterInfo
 

Detailed Description

template<bool Uses, bool Defs, bool SkipDebug>
class llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >

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

Member Typedef Documentation

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

Definition at line 574 of file MachineRegisterInfo.h.

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

Definition at line 572 of file MachineRegisterInfo.h.

Constructor & Destructor Documentation

template<bool Uses, bool Defs, bool SkipDebug>
llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::defusechain_iterator ( const defusechain_iterator< Uses, Defs, SkipDebug > &  I)
inline

Definition at line 576 of file MachineRegisterInfo.h.

template<bool Uses, bool Defs, bool SkipDebug>
llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::defusechain_iterator ( )
inline

Definition at line 577 of file MachineRegisterInfo.h.

Member Function Documentation

template<bool Uses, bool Defs, bool SkipDebug>
bool llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::atEnd ( ) const
inline

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

Definition at line 587 of file MachineRegisterInfo.h.

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

template<bool Uses, bool Defs, bool SkipDebug>
MachineOperand& llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::getOperand ( ) const
inline

Definition at line 634 of file MachineRegisterInfo.h.

template<bool Uses, bool Defs, bool SkipDebug>
unsigned llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::getOperandNo ( ) const
inline

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

Definition at line 641 of file MachineRegisterInfo.h.

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

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

template<bool Uses, bool Defs, bool SkipDebug>
bool llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::operator!= ( const defusechain_iterator< Uses, Defs, SkipDebug > &  x) const
inline
template<bool Uses, bool Defs, bool SkipDebug>
MachineInstr& llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::operator* ( ) const
inline

Definition at line 647 of file MachineRegisterInfo.h.

References llvm::MachineOperand::getParent().

template<bool Uses, bool Defs, bool SkipDebug>
defusechain_iterator& llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::operator++ ( )
inline
template<bool Uses, bool Defs, bool SkipDebug>
defusechain_iterator llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::operator++ ( int  )
inline

Definition at line 611 of file MachineRegisterInfo.h.

template<bool Uses, bool Defs, bool SkipDebug>
MachineInstr* llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::operator-> ( ) const
inline

Definition at line 652 of file MachineRegisterInfo.h.

References llvm::MachineOperand::getParent().

template<bool Uses, bool Defs, bool SkipDebug>
bool llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::operator== ( const defusechain_iterator< Uses, Defs, SkipDebug > &  x) const
inline
template<bool Uses, bool Defs, bool SkipDebug>
MachineInstr* llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, SkipDebug >::skipBundle ( )
inline
template<bool Uses, bool Defs, bool SkipDebug>
MachineInstr* llvm::MachineRegisterInfo::defusechain_iterator< Uses, Defs, 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 618 of file MachineRegisterInfo.h.

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

Referenced by findUseBetween().

Friends And Related Function Documentation

template<bool Uses, bool Defs, bool SkipDebug>
friend class MachineRegisterInfo
friend

Definition at line 569 of file MachineRegisterInfo.h.


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