class LiveIntervals::HMEditor

Declaration

class LiveIntervals::HMEditor { /* full declaration omitted */ };

Description

Toolkit used by handleMove to trim or extend live intervals.

Declared at: llvm/lib/CodeGen/LiveIntervals.cpp:979

Member Variables

private llvm::LiveIntervals& LIS
private const llvm::MachineRegisterInfo& MRI
private const llvm::TargetRegisterInfo& TRI
private llvm::SlotIndex OldIdx
private llvm::SlotIndex NewIdx
private SmallPtrSet<llvm::LiveRange*, 8> Updated
private bool UpdateFlags

Method Overview

  • public HMEditor(llvm::LiveIntervals & LIS, const llvm::MachineRegisterInfo & MRI, const llvm::TargetRegisterInfo & TRI, llvm::SlotIndex OldIdx, llvm::SlotIndex NewIdx, bool UpdateFlags)
  • private llvm::SlotIndex findLastUseBefore(llvm::SlotIndex Before, llvm::Register Reg, llvm::LaneBitmask LaneMask)
  • public llvm::LiveRange * getRegUnitLI(unsigned int Unit)
  • private void handleMoveDown(llvm::LiveRange & LR)
  • private void handleMoveUp(llvm::LiveRange & LR, llvm::Register Reg, llvm::LaneBitmask LaneMask)
  • public void updateAllRanges(llvm::MachineInstr * MI)
  • private void updateRange(llvm::LiveRange & LR, llvm::Register Reg, llvm::LaneBitmask LaneMask)
  • private void updateRegMaskSlots()

Methods

HMEditor(llvm::LiveIntervals& LIS,
         const llvm::MachineRegisterInfo& MRI,
         const llvm::TargetRegisterInfo& TRI,
         llvm::SlotIndex OldIdx,
         llvm::SlotIndex NewIdx,
         bool UpdateFlags)

Declared at: llvm/lib/CodeGen/LiveIntervals.cpp:990

Parameters

llvm::LiveIntervals& LIS
const llvm::MachineRegisterInfo& MRI
const llvm::TargetRegisterInfo& TRI
llvm::SlotIndex OldIdx
llvm::SlotIndex NewIdx
bool UpdateFlags

llvm::SlotIndex findLastUseBefore(
    llvm::SlotIndex Before,
    llvm::Register Reg,
    llvm::LaneBitmask LaneMask)

Declared at: llvm/lib/CodeGen/LiveIntervals.cpp:1456

Parameters

llvm::SlotIndex Before
llvm::Register Reg
llvm::LaneBitmask LaneMask

llvm::LiveRange* getRegUnitLI(unsigned int Unit)

Declared at: llvm/lib/CodeGen/LiveIntervals.cpp:1000

Parameters

unsigned int Unit

void handleMoveDown(llvm::LiveRange& LR)

Description

Update LR to reflect an instruction has been moved downwards from OldIdx to NewIdx (OldIdx < NewIdx).

Declared at: llvm/lib/CodeGen/LiveIntervals.cpp:1101

Parameters

llvm::LiveRange& LR

void handleMoveUp(llvm::LiveRange& LR,
                  llvm::Register Reg,
                  llvm::LaneBitmask LaneMask)

Description

Update LR to reflect an instruction has been moved upwards from OldIdx to NewIdx (NewIdx < OldIdx).

Declared at: llvm/lib/CodeGen/LiveIntervals.cpp:1274

Parameters

llvm::LiveRange& LR
llvm::Register Reg
llvm::LaneBitmask LaneMask

void updateAllRanges(llvm::MachineInstr* MI)

Description

Update all live ranges touched by MI, assuming a move from OldIdx to NewIdx.

Declared at: llvm/lib/CodeGen/LiveIntervals.cpp:1008

Parameters

llvm::MachineInstr* MI

void updateRange(llvm::LiveRange& LR,
                 llvm::Register Reg,
                 llvm::LaneBitmask LaneMask)

Description

Update a single live range, assuming an instruction has been moved from OldIdx to NewIdx.

Declared at: llvm/lib/CodeGen/LiveIntervals.cpp:1077

Parameters

llvm::LiveRange& LR
llvm::Register Reg
llvm::LaneBitmask LaneMask

void updateRegMaskSlots()

Declared at: llvm/lib/CodeGen/LiveIntervals.cpp:1441