LLVM
8.0.1
|
#include "Target/Hexagon/HexagonRegisterInfo.h"
Definition at line 30 of file HexagonRegisterInfo.h.
HexagonRegisterInfo::HexagonRegisterInfo | ( | unsigned | HwMode | ) |
Definition at line 45 of file HexagonRegisterInfo.cpp.
|
override |
Definition at line 181 of file HexagonRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), assert(), llvm::BuildMI(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::MachineInstr::getDebugLoc(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::HexagonSubtarget::getInstrInfo(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), MI, MRI, llvm::MachineInstr::RemoveOperand(), and llvm::MachineInstr::setDesc().
|
override |
Code Generation virtual methods...
Definition at line 103 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 56 of file HexagonRegisterInfo.cpp.
References llvm::dbgs(), llvm::Empty, llvm::TargetRegisterClass::getID(), llvm_unreachable, R2, R4, R6, llvm::NVPTX::PTXLdStInstCode::V2, and llvm::NVPTX::PTXLdStInstCode::V4.
Referenced by needToReserveScavengingSpillSlots().
|
override |
Definition at line 125 of file HexagonRegisterInfo.cpp.
Referenced by llvm::HexagonTargetLowering::LowerCall().
unsigned HexagonRegisterInfo::getFirstCallerSavedNonParamReg | ( | ) | const |
Definition at line 344 of file HexagonRegisterInfo.cpp.
References R6.
|
override |
Definition at line 290 of file HexagonRegisterInfo.cpp.
References getFrameRegister(), getStackRegister(), and llvm::HexagonFrameLowering::hasFP().
Referenced by llvm::HexagonInstrInfo::expandPostRAPseudo(), and llvm::HexagonTargetLowering::LowerFRAMEADDR().
unsigned HexagonRegisterInfo::getFrameRegister | ( | ) | const |
Definition at line 299 of file HexagonRegisterInfo.cpp.
Referenced by getFrameRegister().
unsigned HexagonRegisterInfo::getHexagonSubRegIndex | ( | const TargetRegisterClass & | RC, |
unsigned | GenIdx | ||
) | const |
Definition at line 309 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 339 of file HexagonRegisterInfo.cpp.
unsigned HexagonRegisterInfo::getRARegister | ( | ) | const |
Definition at line 285 of file HexagonRegisterInfo.cpp.
Referenced by llvm::HexagonTargetLowering::LowerINLINEASM(), and llvm::HexagonTargetLowering::LowerRETURNADDR().
|
override |
Definition at line 131 of file HexagonRegisterInfo.cpp.
References llvm::BitVector::find_first(), llvm::BitVector::find_next(), llvm::MachineFunction::getSubtarget(), llvm::HexagonSubtarget::hasReservedR19(), and llvm::BitVector::set().
unsigned HexagonRegisterInfo::getStackRegister | ( | ) | const |
Definition at line 304 of file HexagonRegisterInfo.cpp.
Referenced by llvm::HexagonInstrInfo::getDuplexCandidateGroup(), getFrameRegister(), and llvm::HexagonTargetLowering::LowerCall().
Definition at line 50 of file HexagonRegisterInfo.cpp.
References R2.
Referenced by llvm::HexagonFrameLowering::getFrameIndexReference().
|
inlineoverride |
Returns true.
Spill code for predicate registers might need an extra register.
Definition at line 53 of file HexagonRegisterInfo.h.
|
inlineoverride |
Returns true since we may need scavenging for a temporary register when generating hardware loop instructions.
Definition at line 47 of file HexagonRegisterInfo.h.
|
override |
Definition at line 236 of file HexagonRegisterInfo.cpp.
References llvm::any_of(), E, llvm::TargetRegisterClass::getID(), llvm::SlotIndexes::getInstructionFromIndex(), llvm::LiveIntervals::getInterval(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::LiveIntervals::getSlotIndexes(), llvm::MachineFunction::getSubtarget(), I, llvm::MachineInstr::isCall(), and llvm::HexagonSubtarget::useHVXOps().
|
inlineoverride |
|
override |
Returns true if the frame pointer is valid.
Definition at line 333 of file HexagonRegisterInfo.cpp.
References llvm::MachineFunction::getSubtarget().