LLVM: lib/Target/RISCV/RISCVFrameLowering.cpp File Reference (original) (raw)
Go to the source code of this file.
Variables | |
---|---|
static constexpr Register | FPReg = RISCV::X8 |
static constexpr Register | SPReg = RISCV::X2 |
static constexpr Register | RAReg = RISCV::X1 |
static const std::pair< MCPhysReg, int8_t > | FixedCSRFIMap [] |
◆ appendScalableVectorExpression()
◆ createDefCFAExpression()
Definition at line 586 of file RISCVFrameLowering.cpp.
References llvm::SmallString< InternalLen >::append(), appendScalableVectorExpression(), assert(), llvm::MCCFIInstruction::createEscape(), llvm::encodeULEB128(), llvm::printReg(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorBase< Size_T >::size(), SPReg, llvm::SmallString< InternalLen >::str(), and TRI.
◆ createDefCFAOffset()
Definition at line 616 of file RISCVFrameLowering.cpp.
References llvm::SmallString< InternalLen >::append(), appendScalableVectorExpression(), assert(), llvm::MCCFIInstruction::createEscape(), llvm::encodeULEB128(), llvm::printReg(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorBase< Size_T >::size(), llvm::SmallString< InternalLen >::str(), and TRI.
◆ emitSCSEpilogue()
Definition at line 192 of file RISCVFrameLowering.cpp.
References llvm::MachineInstrBuilder::addCFIIndex(), llvm::MachineFunction::addFrameInst(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::MCCFIInstruction::createRestore(), llvm::RegState::Define, DL, llvm::MachineInstr::FrameDestroy, llvm::MachineFrameInfo::getCalleeSavedInfo(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::CalleeSavedInfo::getReg(), llvm::RISCVABI::getSCSPReg(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasFnAttribute(), MBB, MI, llvm::none_of(), RAReg, llvm::MachineInstrBuilder::setMIFlag(), llvm::MachineInstrBuilder::setMIFlags(), and TII.
Referenced by llvm::RISCVFrameLowering::emitEpilogue().
◆ emitSCSPrologue()
Definition at line 126 of file RISCVFrameLowering.cpp.
References llvm::MachineInstrBuilder::addCFIIndex(), llvm::MachineFunction::addFrameInst(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), llvm::MCCFIInstruction::createEscape(), llvm::RegState::Define, DL, llvm::MachineInstr::FrameSetup, llvm::MachineFrameInfo::getCalleeSavedInfo(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::CalleeSavedInfo::getReg(), llvm::RISCVABI::getSCSPReg(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasFnAttribute(), MBB, MI, llvm::none_of(), llvm::Offset, RAReg, llvm::MachineInstrBuilder::setMIFlag(), TII, and TRI.
Referenced by llvm::RISCVFrameLowering::emitPrologue().
◆ emitStackProbeInline()
Definition at line 2126 of file RISCVFrameLowering.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::addSuccessor(), assert(), llvm::BuildMI(), llvm::MachineFunction::CreateMachineBasicBlock(), DL, llvm::MachineBasicBlock::end(), llvm::MachineInstr::FrameSetup, llvm::fullyRecomputeLiveIns(), llvm::MachineBasicBlock::getBasicBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::RISCVTargetLowering::getStackProbeSize(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::insert(), MBB, MBBI, llvm::MachineInstrBuilder::setMIFlags(), llvm::MachineBasicBlock::splice(), SPReg, TII, and llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs().
◆ estimateFunctionSizeInBytes()
◆ getABIStackAlignment()
◆ getCalleeSavedRVVNumRegs()
◆ getLibCallID()
Definition at line 246 of file RISCVFrameLowering.cpp.
References FPReg, llvm::CalleeSavedInfo::getFrameIdx(), llvm::MachineFunction::getInfo(), llvm::CalleeSavedInfo::getReg(), llvm::Register::id(), llvm_unreachable, and RAReg.
Referenced by llvm::RISCVFrameLowering::assignCalleeSavedSpillSlots(), llvm::RISCVFrameLowering::emitEpilogue(), llvm::RISCVFrameLowering::emitPrologue(), getRestoreLibCallName(), and getSpillLibCallName().
◆ getMaxPushPopReg()
◆ getPushOrLibCallsSavedInfo()
◆ getPushPopEncodingAndNum()
Definition at line 341 of file RISCVFrameLowering.cpp.
References FPReg, llvm_unreachable, llvm::RISCVZC::RA, llvm::RISCVZC::RA_S0, llvm::RISCVZC::RA_S0_S1, llvm::RISCVZC::RA_S0_S11, llvm::RISCVZC::RA_S0_S2, llvm::RISCVZC::RA_S0_S3, llvm::RISCVZC::RA_S0_S4, llvm::RISCVZC::RA_S0_S5, llvm::RISCVZC::RA_S0_S6, llvm::RISCVZC::RA_S0_S7, llvm::RISCVZC::RA_S0_S8, llvm::RISCVZC::RA_S0_S9, and RAReg.
Referenced by llvm::RISCVFrameLowering::assignCalleeSavedSpillSlots().
◆ getRestoreLibCallName()
◆ getRVVBaseRegister()
◆ getRVVCalleeSavedInfo()
◆ getScavSlotsNumForRVV()
◆ getSpillLibCallName()
◆ getUnmanagedCSI()
◆ hasRVVFrameObject()
◆ FixedCSRFIMap
Initial value:
= {
{ RISCV::X9, -3}, { RISCV::X18, -4},
{ RISCV::X19, -5}, { RISCV::X20, -6},
{ RISCV::X21, -7}, { RISCV::X22, -8},
{ RISCV::X23, -9}, { RISCV::X24, -10},
{ RISCV::X25, -11}, { RISCV::X26, -12},
{ RISCV::X27, -13}}
static constexpr Register FPReg
static constexpr Register RAReg
Definition at line 115 of file RISCVFrameLowering.cpp.
Referenced by llvm::RISCVFrameLowering::assignCalleeSavedSpillSlots(), getMaxPushPopReg(), getPushOrLibCallsSavedInfo(), llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), and llvm::RISCVFrameLowering::spillCalleeSavedRegisters().
◆ FPReg
Definition at line 105 of file RISCVFrameLowering.cpp.
Referenced by llvm::M68kFrameLowering::assignCalleeSavedSpillSlots(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), llvm::RISCVFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::CSKYFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::RISCVFrameLowering::emitEpilogue(), llvm::CSKYFrameLowering::emitPrologue(), llvm::LoongArchFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::getFrameIndexReference(), getLibCallID(), getPushPopEncodingAndNum(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), and llvm::Thumb1FrameLowering::spillCalleeSavedRegisters().
◆ RAReg
◆ SPReg
Definition at line 108 of file RISCVFrameLowering.cpp.
Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::RISCVFrameLowering::allocateStack(), llvm::AMDGPURegisterBankInfo::applyMappingDynStackAlloc(), createDefCFAExpression(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::CSKYFrameLowering::eliminateCallFramePseudoInstr(), llvm::LoongArchFrameLowering::eliminateCallFramePseudoInstr(), llvm::RISCVFrameLowering::eliminateCallFramePseudoInstr(), llvm::RISCVTargetLowering::emitDynamicProbedAlloc(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::CSKYFrameLowering::emitEpilogue(), llvm::LoongArchFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::RISCVFrameLowering::emitEpilogue(), llvm::SystemZXPLINKFrameLowering::emitEpilogue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), llvm::PPCTargetLowering::emitProbedAlloca(), llvm::CSKYFrameLowering::emitPrologue(), llvm::LoongArchFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), emitStackProbeInline(), llvm::LegalizerHelper::getDynStackAllocTargetPtr(), llvm::RISCVFrameLowering::getFrameIndexReference(), M68kOutgoingArgHandler::getStackAddress(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::PPCInstrInfo::isTOCSaveMI(), llvm::SITargetLowering::LowerDYNAMIC_STACKALLOC(), llvm::LanaiTargetLowering::LowerDYNAMIC_STACKALLOC(), LowerDYNAMIC_STACKALLOC(), and llvm::LegalizerHelper::lowerDynStackAlloc().