LLVM
15.0.0git
|
#include "Target/Hexagon/HexagonRegisterInfo.h"
Definition at line 29 of file HexagonRegisterInfo.h.
HexagonRegisterInfo::HexagonRegisterInfo | ( | unsigned | HwMode | ) |
Definition at line 56 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(), llvm::MachineRegisterInfo::createVirtualRegister(), DL, E, FrameIndexReuseLimit, FrameIndexSearchRange, llvm::HexagonSubtarget::getInstrInfo(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineInstrBundleIterator< Ty, IsReverse >::getReverse(), llvm::MachineFunction::getSubtarget(), I, llvm::SmallSet< T, N, C >::insert(), llvm::MachineInstr::isCall(), LLVM_FALLTHROUGH, MI, MRI, llvm::MachineInstr::operands(), llvm::MachineBasicBlock::rend(), llvm::SmallSet< T, N, C >::size(), and Uses.
|
override |
Code Generation virtual methods...
Definition at line 119 of file HexagonRegisterInfo.cpp.
References llvm::MachineFunction::getInfo(), and R2.
Referenced by llvm::HexagonFrameLowering::determineCalleeSaves().
const MCPhysReg * HexagonRegisterInfo::getCallerSavedRegs | ( | const MachineFunction * | MF, |
const TargetRegisterClass * | RC | ||
) | const |
Definition at line 67 of file HexagonRegisterInfo.cpp.
References llvm::dbgs(), llvm::TargetRegisterClass::getID(), llvm_unreachable, P2, R2, R4, R6, llvm::NVPTX::PTXLdStInstCode::V2, and llvm::NVPTX::PTXLdStInstCode::V4.
Referenced by needToReserveScavengingSpillSlots().
|
override |
Definition at line 141 of file HexagonRegisterInfo.cpp.
Referenced by llvm::HexagonTargetLowering::LowerCall().
unsigned HexagonRegisterInfo::getFirstCallerSavedNonParamReg | ( | ) | const |
Definition at line 455 of file HexagonRegisterInfo.cpp.
References R6.
unsigned HexagonRegisterInfo::getFrameRegister | ( | ) | const |
Definition at line 410 of file HexagonRegisterInfo.cpp.
Referenced by getFrameRegister().
|
override |
Definition at line 401 of file HexagonRegisterInfo.cpp.
References getFrameRegister(), getStackRegister(), and llvm::HexagonFrameLowering::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 420 of file HexagonRegisterInfo.cpp.
References assert(), llvm::TargetRegisterClass::getID(), llvm::TargetRegisterClass::getSuperClasses(), llvm_unreachable, llvm::Hexagon::ps_sub_hi, and llvm::Hexagon::ps_sub_lo.
|
override |
Definition at line 450 of file HexagonRegisterInfo.cpp.
unsigned HexagonRegisterInfo::getRARegister | ( | ) | const |
Definition at line 396 of file HexagonRegisterInfo.cpp.
Referenced by llvm::HexagonPacketizerList::isCallDependent(), llvm::HexagonTargetLowering::LowerINLINEASM(), and llvm::HexagonTargetLowering::LowerRETURNADDR().
|
override |
Definition at line 147 of file HexagonRegisterInfo.cpp.
References llvm::BitVector::find_first(), llvm::BitVector::find_next(), llvm::MachineFunction::getSubtarget(), llvm::Hexagon_MC::GetVectRegRev(), llvm::HexagonSubtarget::hasReservedR19(), LC0, llvm::BitVector::set(), and x.
unsigned HexagonRegisterInfo::getStackRegister | ( | ) | const |
bool HexagonRegisterInfo::isEHReturnCalleeSaveReg | ( | unsigned | Reg | ) | const |
Definition at line 61 of file HexagonRegisterInfo.cpp.
References R2.
|
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 347 of file HexagonRegisterInfo.cpp.
References llvm::any_of(), E, llvm::TargetRegisterClass::getID(), llvm::SlotIndexes::getInstructionFromIndex(), llvm::LiveIntervals::getInterval(), llvm::LiveIntervals::getSlotIndexes(), llvm::MachineFunction::getSubtarget(), I, MI, S, and llvm::HexagonSubtarget::useHVXOps().
|
override |
Returns true if the frame pointer is valid.
Definition at line 444 of file HexagonRegisterInfo.cpp.
References llvm::MachineFunction::getSubtarget().