class MachineRegisterInfo::defusechain_instr_iterator

Declaration

template <bool ReturnUses,
          bool ReturnDefs,
          bool SkipDebug,
          bool ByOperand,
          bool ByInstr,
          bool ByBundle>
class MachineRegisterInfo::defusechain_instr_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:1106

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:1130

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:1161

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

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

Parameters

llvm::MachineOperand* op

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

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