LLVM
16.0.0git
|
#include "RISCVFrameLowering.h"
#include "RISCVMachineFunctionInfo.h"
#include "RISCVSubtarget.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/RegisterScavenging.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/MC/MCDwarf.h"
#include <algorithm>
Go to the source code of this file.
Functions | |
static void | emitSCSPrologue (MachineFunction &MF, MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const DebugLoc &DL) |
static void | emitSCSEpilogue (MachineFunction &MF, MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const DebugLoc &DL) |
static int | getLibCallID (const MachineFunction &MF, const std::vector< CalleeSavedInfo > &CSI) |
static const char * | getSpillLibCallName (const MachineFunction &MF, const std::vector< CalleeSavedInfo > &CSI) |
static const char * | getRestoreLibCallName (const MachineFunction &MF, const std::vector< CalleeSavedInfo > &CSI) |
static Register | getFPReg (const RISCVSubtarget &STI) |
static Register | getSPReg (const RISCVSubtarget &STI) |
static SmallVector< CalleeSavedInfo, 8 > | getNonLibcallCSI (const MachineFunction &MF, const std::vector< CalleeSavedInfo > &CSI) |
static unsigned | getScavSlotsNumForRVV (MachineFunction &MF) |
static bool | hasRVVFrameObject (const MachineFunction &MF) |
|
static |
Definition at line 81 of file RISCVFrameLowering.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::RegState::Define, llvm::LLVMContext::diagnose(), DL, llvm::MachineInstr::FrameDestroy, llvm::MachineFrameInfo::getCalleeSavedInfo(), llvm::Function::getContext(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::CalleeSavedInfo::getReg(), llvm::RISCVABI::getSCSPReg(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasFnAttribute(), llvm::ARM_MB::LD, MBB, MI, llvm::none_of(), llvm::MachineInstrBuilder::setMIFlag(), and TII.
Referenced by llvm::RISCVFrameLowering::emitEpilogue().
|
static |
Definition at line 30 of file RISCVFrameLowering.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::RegState::Define, llvm::LLVMContext::diagnose(), DL, llvm::MachineInstr::FrameSetup, llvm::MachineFrameInfo::getCalleeSavedInfo(), llvm::Function::getContext(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::CalleeSavedInfo::getReg(), llvm::RISCVABI::getSCSPReg(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasFnAttribute(), MBB, MI, llvm::none_of(), llvm::MachineInstrBuilder::setMIFlag(), and TII.
Referenced by llvm::RISCVFrameLowering::emitPrologue().
|
static |
Definition at line 348 of file RISCVFrameLowering.cpp.
Referenced by llvm::RISCVFrameLowering::emitEpilogue(), llvm::RISCVFrameLowering::emitPrologue(), and llvm::RISCVFrameLowering::getFrameIndexReference().
|
static |
Definition at line 135 of file RISCVFrameLowering.cpp.
References llvm::MachineFunction::getInfo(), llvm::Register::id(), llvm_unreachable, and llvm::max().
Referenced by llvm::RISCVFrameLowering::emitPrologue(), getRestoreLibCallName(), and getSpillLibCallName().
|
static |
Definition at line 354 of file RISCVFrameLowering.cpp.
References llvm::TargetStackID::Default, llvm::MachineFunction::getFrameInfo(), and llvm::MachineFrameInfo::getStackID().
Referenced by llvm::RISCVFrameLowering::emitEpilogue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::getFrameIndexReference(), llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), and llvm::RISCVFrameLowering::spillCalleeSavedRegisters().
|
static |
Definition at line 201 of file RISCVFrameLowering.cpp.
References getLibCallID().
Referenced by llvm::RISCVFrameLowering::restoreCalleeSavedRegisters().
|
static |
Definition at line 955 of file RISCVFrameLowering.cpp.
References llvm::MachineFunction::getSubtarget(), llvm::RISCVSubtarget::hasVInstructions(), llvm::RISCV::isRVVSpill(), llvm::max(), MBB, MI, and llvm::TargetStackID::ScalableVector.
Referenced by llvm::RISCVFrameLowering::processFunctionBeforeFrameFinalized().
|
static |
Definition at line 174 of file RISCVFrameLowering.cpp.
References getLibCallID().
Referenced by llvm::RISCVFrameLowering::spillCalleeSavedRegisters().
|
static |
Definition at line 351 of file RISCVFrameLowering.cpp.
Referenced by llvm::RISCVFrameLowering::emitEpilogue(), and llvm::RISCVFrameLowering::emitPrologue().
|
static |
Definition at line 999 of file RISCVFrameLowering.cpp.
References llvm::MachineFunction::getSubtarget().
Referenced by llvm::RISCVFrameLowering::hasReservedCallFrame(), and llvm::RISCVFrameLowering::processFunctionBeforeFrameFinalized().