LLVM  8.0.1
Public Member Functions | List of all members
llvm::LiveIntervals::HMEditor Class Reference

Toolkit used by handleMove to trim or extend live intervals. More...

Public Member Functions

 HMEditor (LiveIntervals &LIS, const MachineRegisterInfo &MRI, const TargetRegisterInfo &TRI, SlotIndex OldIdx, SlotIndex NewIdx, bool UpdateFlags)
 
LiveRangegetRegUnitLI (unsigned Unit)
 
void updateAllRanges (MachineInstr *MI)
 Update all live ranges touched by MI, assuming a move from OldIdx to NewIdx. More...
 

Detailed Description

Toolkit used by handleMove to trim or extend live intervals.

Definition at line 945 of file LiveIntervals.cpp.

Constructor & Destructor Documentation

◆ HMEditor()

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

Definition at line 956 of file LiveIntervals.cpp.

Member Function Documentation

◆ getRegUnitLI()

LiveRange* llvm::LiveIntervals::HMEditor::getRegUnitLI ( unsigned  Unit)
inline

◆ updateAllRanges()

void llvm::LiveIntervals::HMEditor::updateAllRanges ( MachineInstr MI)
inline

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

Definition at line 974 of file LiveIntervals.cpp.

References llvm::LiveRange::advanceTo(), llvm::LaneBitmask::any(), assert(), llvm::MachineBasicBlock::begin(), llvm::LiveRange::begin(), llvm::copy(), llvm::dbgs(), llvm::VNInfo::def, E, llvm::sys::path::end(), llvm::MachineBasicBlock::end(), llvm::LiveRange::end(), llvm::LiveRange::find(), llvm::SlotIndex::getBaseIndex(), llvm::SlotIndex::getDeadSlot(), llvm::LiveIntervals::getInstructionFromIndex(), llvm::SlotIndexes::getInstructionFromIndex(), llvm::SlotIndexes::getInstructionIndex(), llvm::LiveIntervals::getInterval(), llvm::MachineRegisterInfo::getMaxLaneMaskForVReg(), llvm::SlotIndexes::getMBBFromIndex(), llvm::SlotIndexes::getNextNonNullIndex(), llvm::LaneBitmask::getNone(), llvm::SlotIndex::getRegSlot(), llvm::LiveIntervals::getSlotIndexes(), llvm::TargetRegisterInfo::getSubRegIndexLaneMask(), llvm::TargetRegisterInfo::hasRegUnit(), llvm::LiveInterval::hasSubRanges(), if(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SlotIndex::isEarlierEqualInstr(), llvm::SlotIndex::isEarlierInstr(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::SlotIndex::isSameInstr(), llvm::MachineOperandIteratorBase::isValid(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::TargetRegisterInfo::isVirtualRegister(), LLVM_DEBUG, llvm::lower_bound(), llvm::max(), MI, llvm::MachineInstr::operands(), llvm::PrintLaneMask(), llvm::printReg(), llvm::printRegUnit(), Reg, llvm::LiveRange::removeValNo(), llvm::LiveInterval::subranges(), SubReg, llvm::MachineRegisterInfo::use_nodbg_operands(), and llvm::LiveRange::verify().

Referenced by llvm::LiveIntervals::handleMove(), and llvm::LiveIntervals::handleMoveIntoBundle().


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