LLVM 18.0.0git
|
#include "Target/RISCV/RISCVRegisterInfo.h"
Definition at line 23 of file RISCVRegisterInfo.h.
RISCVRegisterInfo::RISCVRegisterInfo | ( | unsigned | HwMode | ) |
Definition at line 53 of file RISCVRegisterInfo.cpp.
void RISCVRegisterInfo::adjustReg | ( | MachineBasicBlock & | MBB, |
MachineBasicBlock::iterator | II, | ||
const DebugLoc & | DL, | ||
Register | DestReg, | ||
Register | SrcReg, | ||
StackOffset | Offset, | ||
MachineInstr::MIFlag | Flag, | ||
MaybeAlign | RequiredAlign | ||
) | const |
Definition at line 177 of file RISCVRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), DL, llvm::getKillRegState(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::RegState::Kill, MBB, MRI, llvm::Offset, llvm::MachineInstrBuilder::setMIFlag(), TII, llvm::Align::value(), and llvm::MaybeAlign::valueOrOne().
Referenced by llvm::RISCVFrameLowering::eliminateCallFramePseudoInstr(), eliminateFrameIndex(), and llvm::RISCVFrameLowering::emitEpilogue().
|
override |
Definition at line 396 of file RISCVRegisterInfo.cpp.
References adjustReg(), assert(), DL, llvm::StackOffset::get(), llvm::StackOffset::getFixed(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::RISCV::isRVVSpill(), lowerVRELOAD(), lowerVSPILL(), MI, MRI, llvm::MachineInstr::NoFlags, llvm::Offset, and llvm::report_fatal_error().
|
override |
Definition at line 58 of file RISCVRegisterInfo.cpp.
References llvm::RISCVABI::ABI_ILP32, llvm::RISCVABI::ABI_ILP32D, llvm::RISCVABI::ABI_ILP32F, llvm::RISCVABI::ABI_LP64, llvm::RISCVABI::ABI_LP64D, llvm::RISCVABI::ABI_LP64F, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::CallingConv::GHC, llvm::Function::hasFnAttribute(), and llvm_unreachable.
|
override |
Definition at line 648 of file RISCVRegisterInfo.cpp.
References llvm::RISCVABI::ABI_ILP32, llvm::RISCVABI::ABI_ILP32D, llvm::RISCVABI::ABI_ILP32F, llvm::RISCVABI::ABI_LP64, llvm::RISCVABI::ABI_LP64D, llvm::RISCVABI::ABI_LP64F, CC, llvm::MachineFunction::getSubtarget(), llvm::CallingConv::GHC, and llvm_unreachable.
|
override |
Definition at line 632 of file RISCVRegisterInfo.cpp.
References assert(), llvm::RISCVII::getFormat(), Idx, llvm::RISCVII::InstFormatI, llvm::RISCVII::InstFormatS, and MI.
Referenced by isFrameOffsetLegal(), needsFrameBaseReg(), and resolveFrameIndex().
|
override |
Definition at line 642 of file RISCVRegisterInfo.cpp.
References llvm::TargetFrameLowering::hasFP().
|
override |
Definition at line 670 of file RISCVRegisterInfo.cpp.
Definition at line 139 of file RISCVRegisterInfo.cpp.
|
override |
Definition at line 685 of file RISCVRegisterInfo.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::DIExpression::appendOffset(), assert(), getDwarfRegNum(), llvm::Offset, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
inlineoverride |
Definition at line 84 of file RISCVRegisterInfo.h.
|
override |
Definition at line 719 of file RISCVRegisterInfo.cpp.
References assert(), contains(), llvm::SmallSet< T, N, C >::count(), DisableRegAllocHints, llvm::VirtRegMap::getPhys(), llvm::TargetRegisterInfo::getRegAllocationHints(), llvm::MachineFunction::getRegInfo(), llvm::MachineOperand::getSubReg(), llvm::SmallSet< T, N, C >::insert(), llvm::is_contained(), Matrix, MI, MRI, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
override |
Definition at line 713 of file RISCVRegisterInfo.cpp.
References llvm::MachineFunction::getSubtarget().
|
override |
Definition at line 85 of file RISCVRegisterInfo.cpp.
References assert(), llvm::RISCVABI::getBPReg(), llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::CallingConv::GRAAL, llvm::RISCVFrameLowering::hasBP(), llvm::RISCVFrameLowering::hasFP(), llvm::report_fatal_error(), and llvm::Reserved.
Referenced by llvm::RISCVTargetLowering::getRegisterByName(), and needsFrameBaseReg().
|
override |
Definition at line 161 of file RISCVRegisterInfo.cpp.
References llvm::find_if(), FixedCSRFIMap, llvm::MachineFunction::getInfo(), and P.
|
override |
Definition at line 134 of file RISCVRegisterInfo.cpp.
References llvm::MachineFunction::getSubtarget().
|
override |
Definition at line 577 of file RISCVRegisterInfo.cpp.
References assert(), getFrameIndexInstrOffset(), MI, and llvm::Offset.
Referenced by needsFrameBaseReg().
void RISCVRegisterInfo::lowerVRELOAD | ( | MachineBasicBlock::iterator | II | ) | const |
Definition at line 334 of file RISCVRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::sampleprof::Base, llvm::BuildMI(), DL, llvm::TargetSubtargetInfo::getInstrInfo(), llvm::getKillRegState(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), I, llvm::RISCV::isRVVSpillForZvlsseg(), llvm_unreachable, llvm::Log2_32(), MBB, MRI, Opcode, TII, and TRI.
Referenced by eliminateFrameIndex().
void RISCVRegisterInfo::lowerVSPILL | ( | MachineBasicBlock::iterator | II | ) | const |
Definition at line 265 of file RISCVRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::sampleprof::Base, llvm::BuildMI(), DL, llvm::TargetSubtargetInfo::getInstrInfo(), llvm::getKillRegState(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), I, llvm::RegState::Implicit, llvm::RISCV::isRVVSpillForZvlsseg(), llvm_unreachable, llvm::Log2_32(), MBB, MRI, Opcode, TII, and TRI.
Referenced by eliminateFrameIndex().
|
override |
Definition at line 594 of file RISCVRegisterInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::MachineRegisterInfo::createVirtualRegister(), DL, llvm::MachineBasicBlock::end(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), MBB, MBBI, llvm::Offset, and TII.
|
override |
Definition at line 530 of file RISCVRegisterInfo.cpp.
References assert(), llvm::RISCVII::getFormat(), getFrameIndexInstrOffset(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getLocalFrameSize(), llvm::MachineFunction::getRegInfo(), getReservedRegs(), llvm::RISCVFrameLowering::hasFP(), llvm::RISCVII::InstFormatI, llvm::RISCVII::InstFormatS, isFrameOffsetLegal(), MI, MRI, llvm::Offset, and llvm::BitVector::test().
|
inlineoverride |
Definition at line 79 of file RISCVRegisterInfo.h.
|
inlineoverride |
Definition at line 75 of file RISCVRegisterInfo.h.
|
override |
Definition at line 521 of file RISCVRegisterInfo.cpp.
|
override |
Definition at line 614 of file RISCVRegisterInfo.cpp.
References assert(), getFrameIndexInstrOffset(), MI, and llvm::Offset.