|
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 171 of file HexagonRegisterInfo.cpp.
References computeStackAlignBaseRegister().
Referenced by computeStackAlignBaseRegister(), and getReservedRegs().
|
override |
Definition at line 257 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, 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 134 of file HexagonRegisterInfo.cpp.
References llvm::MachineFunction::getInfo().
Referenced by llvm::HexagonFrameLowering::determineCalleeSaves().
| 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 156 of file HexagonRegisterInfo.cpp.
Referenced by llvm::HexagonTargetLowering::LowerCall().
| Register HexagonRegisterInfo::getFrameRegister | ( | ) | const |
Definition at line 460 of file HexagonRegisterInfo.cpp.
Referenced by getFrameRegister().
|
override |
Definition at line 451 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 470 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().
|
override |
Definition at line 501 of file HexagonRegisterInfo.cpp.
|
override |
Definition at line 162 of file HexagonRegisterInfo.cpp.
References computeStackAlignBaseRegister(), and llvm::Reserved.
| Register HexagonRegisterInfo::getStackRegister | ( | ) | const |
Definition at line 465 of file HexagonRegisterInfo.cpp.
Referenced by llvm::HexagonInstrInfo::getDuplexCandidateGroup(), getFrameRegister(), and llvm::HexagonTargetLowering::LowerCall().
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 57 of file HexagonRegisterInfo.h.
|
inlineoverride |
Returns true since we may need scavenging for a temporary register when generating hardware loop instructions.
Definition at line 51 of file HexagonRegisterInfo.h.
|
override |
Definition at line 402 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 495 of file HexagonRegisterInfo.cpp.
References llvm::MachineFunction::getSubtarget().