|
LLVM 24.0.0git
|
#include "Target/Hexagon/HexagonRegisterInfo.h"
Definition at line 29 of file HexagonRegisterInfo.h.
| HexagonRegisterInfo::HexagonRegisterInfo | ( | unsigned | HwMode | ) |
Definition at line 52 of file HexagonRegisterInfo.cpp.
| Register HexagonRegisterInfo::computeStackAlignBaseRegister | ( | const MachineFunction & | MF | ) | const |
Compute the first available callee-saved register to use as the aligned-stack base register when this function needs dynamic stack realignment.
This does not update the machine function info.
Definition at line 185 of file HexagonRegisterInfo.cpp.
References computeStackAlignBaseRegister().
Referenced by computeStackAlignBaseRegister(), and getReservedRegs().
|
override |
Definition at line 271 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, Opc, llvm::MachineInstr::operands(), llvm::MachineBasicBlock::rend(), llvm::SmallSet< T, N, C >::size(), and Uses.
|
override |
Code Generation virtual methods...
Definition at line 143 of file HexagonRegisterInfo.cpp.
References llvm::MachineFunction::getInfo(), and hasHLXSignature().
| const MCPhysReg * HexagonRegisterInfo::getCallerSavedRegs | ( | const MachineFunction * | MF, |
| const TargetRegisterClass * | RC ) const |
Definition at line 82 of file HexagonRegisterInfo.cpp.
References llvm::dbgs(), DenseMapInfo< LocallyHashedType >::Empty, llvm::MCRegisterClass::getID(), llvm_unreachable, R2, R4, R6, llvm::V1, and llvm::V3.
Referenced by needToReserveScavengingSpillSlots().
|
override |
Definition at line 166 of file HexagonRegisterInfo.cpp.
Referenced by llvm::HexagonTargetLowering::LowerCall().
| Register HexagonRegisterInfo::getFrameRegister | ( | ) | const |
Definition at line 482 of file HexagonRegisterInfo.cpp.
Referenced by getFrameRegister().
|
override |
Definition at line 473 of file HexagonRegisterInfo.cpp.
References getFrameRegister(), getStackRegister(), and llvm::TargetFrameLowering::hasFP().
Referenced by llvm::HexagonInstrInfo::expandPostRAPseudo(), and llvm::HexagonTargetLowering::LowerFRAMEADDR().
| unsigned HexagonRegisterInfo::getHexagonSubRegIndex | ( | const TargetRegisterClass & | RC, |
| unsigned | GenIdx ) const |
Definition at line 495 of file HexagonRegisterInfo.cpp.
References assert(), llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::empty(), getHexagonSubRegIndex(), llvm::MCRegisterClass::getID(), getRegClass(), llvm_unreachable, llvm::Hexagon::ps_sub_hi, llvm::Hexagon::ps_sub_lo, and llvm::MCRegisterClass::superclasses().
Referenced by getHexagonSubRegIndex().
Mask for calls that pass or return values in HLX registers.
Definition at line 171 of file HexagonRegisterInfo.cpp.
Referenced by llvm::HexagonTargetLowering::LowerCall().
|
override |
Definition at line 176 of file HexagonRegisterInfo.cpp.
References computeStackAlignBaseRegister(), and llvm::Reserved.
| Register HexagonRegisterInfo::getStackRegister | ( | ) | const |
Definition at line 487 of file HexagonRegisterInfo.cpp.
Referenced by llvm::HexagonInstrInfo::getDuplexCandidateGroup(), getFrameRegister(), and llvm::HexagonTargetLowering::LowerCall().
| Register HexagonRegisterInfo::getVTCMStackRegister | ( | ) | const |
Definition at line 491 of file HexagonRegisterInfo.cpp.
Definition at line 76 of file HexagonRegisterInfo.cpp.
Returns true if the given reserved physical register Reg is live across function calls/returns.
This function should not be used for non-reserved registers, instead register liveness information should be checked
Definition at line 66 of file HexagonRegisterInfo.cpp.
Returns true if the given reserved physical register is live across function calls/returns.
Definition at line 56 of file HexagonRegisterInfo.cpp.
|
inlineoverride |
Returns true.
Spill code for predicate registers might need an extra register.
Definition at line 59 of file HexagonRegisterInfo.h.
|
inlineoverride |
Returns true since we may need scavenging for a temporary register when generating hardware loop instructions.
Definition at line 53 of file HexagonRegisterInfo.h.
|
override |
Definition at line 424 of file HexagonRegisterInfo.cpp.
References llvm::any_of(), llvm::MCRegisterClass::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 522 of file HexagonRegisterInfo.cpp.
References llvm::MachineFunction::getSubtarget().