class MachineRegisterInfo::defusechain_iterator

Declaration

template <bool ReturnUses,
          bool ReturnDefs,
          bool SkipDebug,
          bool ByOperand,
          bool ByInstr,
          bool ByBundle>
class MachineRegisterInfo::defusechain_iterator { /* full declaration omitted */ };

Description

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.

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:998

Templates

bool ReturnUses
bool ReturnDefs
bool SkipDebug
bool ByOperand
bool ByInstr
bool ByBundle

Member Variables

private llvm::MachineOperand* Op = nullptr

Method Overview

Methods

void advance()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:1022

bool atEnd() const

Description

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

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:1053

defusechain_iterator<Uses,
                     Defs,
                     SkipDebug,
                     ByOperand,
                     ByInstr,
                     ByBundle>(
    llvm::MachineOperand* op)

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:1011

Parameters

llvm::MachineOperand* op

defusechain_iterator<Uses,
                     Defs,
                     SkipDebug,
                     ByOperand,
                     ByInstr,
                     ByBundle>()

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:1043

unsigned int getOperandNo() const

Description

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

Declared at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:1081