class RegisterOperands

Declaration

class RegisterOperands { /* full declaration omitted */ };

Description

List of registers defined and used by a machine instruction.

Declared at: llvm/include/llvm/CodeGen/RegisterPressure.h:166

Member Variables

public SmallVector<llvm::RegisterMaskPair, 8> Uses
List of virtual registers and register units read by the instruction.
public SmallVector<llvm::RegisterMaskPair, 8> Defs
List of virtual registers and register units defined by the instruction which are not dead.
public SmallVector<llvm::RegisterMaskPair, 8> DeadDefs
List of virtual registers and register units defined by the instruction but dead.

Method Overview

  • public void adjustLaneLiveness(const llvm::LiveIntervals & LIS, const llvm::MachineRegisterInfo & MRI, llvm::SlotIndex Pos, llvm::MachineInstr * AddFlagsMI = nullptr)
  • public void collect(const llvm::MachineInstr & MI, const llvm::TargetRegisterInfo & TRI, const llvm::MachineRegisterInfo & MRI, bool TrackLaneMasks, bool IgnoreDead)
  • public void detectDeadDefs(const llvm::MachineInstr & MI, const llvm::LiveIntervals & LIS)

Methods

void adjustLaneLiveness(
    const llvm::LiveIntervals& LIS,
    const llvm::MachineRegisterInfo& MRI,
    llvm::SlotIndex Pos,
    llvm::MachineInstr* AddFlagsMI = nullptr)

Description

Use liveness information to find out which uses/defs are partially undefined/dead and adjust the RegisterMaskPairs accordingly. If \p AddFlagsMI is given then missing read-undef and dead flags will be added to the instruction.

Declared at: llvm/include/llvm/CodeGen/RegisterPressure.h:191

Parameters

const llvm::LiveIntervals& LIS
const llvm::MachineRegisterInfo& MRI
llvm::SlotIndex Pos
llvm::MachineInstr* AddFlagsMI = nullptr

void collect(const llvm::MachineInstr& MI,
             const llvm::TargetRegisterInfo& TRI,
             const llvm::MachineRegisterInfo& MRI,
             bool TrackLaneMasks,
             bool IgnoreDead)

Description

Analyze the given instruction \p MI and fill in the Uses, Defs and DeadDefs list based on the MachineOperand flags.

Declared at: llvm/include/llvm/CodeGen/RegisterPressure.h:179

Parameters

const llvm::MachineInstr& MI
const llvm::TargetRegisterInfo& TRI
const llvm::MachineRegisterInfo& MRI
bool TrackLaneMasks
bool IgnoreDead

void detectDeadDefs(
    const llvm::MachineInstr& MI,
    const llvm::LiveIntervals& LIS)

Description

Use liveness information to find dead defs not marked with a dead flag and move them to the DeadDefs vector.

Declared at: llvm/include/llvm/CodeGen/RegisterPressure.h:185

Parameters

const llvm::MachineInstr& MI
const llvm::LiveIntervals& LIS