LLVM 20.0.0git
|
#include "Target/Hexagon/HexagonRegisterInfo.h"
Definition at line 29 of file HexagonRegisterInfo.h.
HexagonRegisterInfo::HexagonRegisterInfo | ( | unsigned | HwMode | ) |
Definition at line 51 of file HexagonRegisterInfo.cpp.
|
override |
Definition at line 203 of file HexagonRegisterInfo.cpp.
References llvm::LiveRegUnits::accumulateUsedDefed(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), DL, FrameIndexReuseLimit, FrameIndexSearchRange, llvm::HexagonSubtarget::getInstrInfo(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), I, II, llvm::SmallSet< T, N, C >::insert(), llvm::MachineInstr::isCall(), MI, MRI, llvm::Offset, llvm::MachineInstr::operands(), llvm::MachineBasicBlock::rend(), llvm::SmallSet< T, N, C >::size(), and Uses.
|
override |
Code Generation virtual methods...
Definition at line 114 of file HexagonRegisterInfo.cpp.
References llvm::MachineFunction::getInfo().
Referenced by llvm::HexagonFrameLowering::determineCalleeSaves(), and llvm::HexagonDAGToDAGISel::emitFunctionEntryCode().
const MCPhysReg * HexagonRegisterInfo::getCallerSavedRegs | ( | const MachineFunction * | MF, |
const TargetRegisterClass * | RC | ||
) | const |
Definition at line 62 of file HexagonRegisterInfo.cpp.
References llvm::dbgs(), llvm::TargetRegisterClass::getID(), Int32, Int64, llvm_unreachable, R2, R4, and R6.
Referenced by needToReserveScavengingSpillSlots().
|
override |
Definition at line 136 of file HexagonRegisterInfo.cpp.
Referenced by llvm::HexagonTargetLowering::LowerCall().
Register HexagonRegisterInfo::getFrameRegister | ( | ) | const |
Definition at line 406 of file HexagonRegisterInfo.cpp.
Referenced by getFrameRegister().
|
override |
Definition at line 397 of file HexagonRegisterInfo.cpp.
References getFrameRegister(), getStackRegister(), and llvm::TargetFrameLowering::hasFP().
Referenced by llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::HexagonPacketizerList::isCallDependent(), and llvm::HexagonTargetLowering::LowerFRAMEADDR().
unsigned HexagonRegisterInfo::getHexagonSubRegIndex | ( | const TargetRegisterClass & | RC, |
unsigned | GenIdx | ||
) | const |
Definition at line 416 of file HexagonRegisterInfo.cpp.
References assert(), llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::empty(), getHexagonSubRegIndex(), llvm::TargetRegisterClass::getID(), getRegClass(), llvm_unreachable, llvm::Hexagon::ps_sub_hi, llvm::Hexagon::ps_sub_lo, and llvm::TargetRegisterClass::superclasses().
Referenced by getHexagonSubRegIndex().
|
override |
Definition at line 447 of file HexagonRegisterInfo.cpp.
|
override |
Definition at line 142 of file HexagonRegisterInfo.cpp.
References llvm::MachineFunction::getInfo(), llvm::MachineFunction::getSubtarget(), llvm::Hexagon_MC::GetVectRegRev(), llvm::HexagonSubtarget::hasReservedR19(), llvm::Register::isValid(), and llvm::Reserved.
Referenced by llvm::HexagonDAGToDAGISel::emitFunctionEntryCode().
Register HexagonRegisterInfo::getStackRegister | ( | ) | const |
Definition at line 56 of file HexagonRegisterInfo.cpp.
|
inlineoverride |
Returns true.
Spill code for predicate registers might need an extra register.
Definition at line 52 of file HexagonRegisterInfo.h.
|
inlineoverride |
Returns true since we may need scavenging for a temporary register when generating hardware loop instructions.
Definition at line 46 of file HexagonRegisterInfo.h.
|
override |
Definition at line 348 of file HexagonRegisterInfo.cpp.
References llvm::any_of(), llvm::TargetRegisterClass::getID(), llvm::SlotIndexes::getInstructionFromIndex(), llvm::LiveIntervals::getInterval(), llvm::LiveIntervals::getSlotIndexes(), llvm::MachineFunction::getSubtarget(), I, MI, and llvm::HexagonSubtarget::useHVXOps().
|
override |
Returns true if the frame pointer is valid.
Definition at line 441 of file HexagonRegisterInfo.cpp.
References llvm::MachineFunction::getSubtarget().