|
LLVM 23.0.0git
|
RISCVMachineFunctionInfo - This class is derived from MachineFunctionInfo and contains private RISCV-specific information for each MachineFunction. More...
#include "Target/RISCV/RISCVMachineFunctionInfo.h"
Public Types | |
| enum class | PushPopKind { None = 0 , StdExtZcmp , VendorXqccmp } |
| enum class | InterruptStackKind { None = 0 , QCINest , QCINoNest , SiFiveCLICPreemptible , SiFiveCLICStackSwap , SiFiveCLICPreemptibleStackSwap } |
Additional Inherited Members | |
| Static Public Member Functions inherited from llvm::MachineFunctionInfo | |
| template<typename FuncInfoTy, typename SubtargetTy = TargetSubtargetInfo> | |
| static FuncInfoTy * | create (BumpPtrAllocator &Allocator, const Function &F, const SubtargetTy *STI) |
| Factory function: default behavior is to call new using the supplied allocator. | |
| template<typename Ty> | |
| static Ty * | create (BumpPtrAllocator &Allocator, const Ty &MFI) |
RISCVMachineFunctionInfo - This class is derived from MachineFunctionInfo and contains private RISCV-specific information for each MachineFunction.
Definition at line 47 of file RISCVMachineFunctionInfo.h.
|
strong |
| Enumerator | |
|---|---|
| None | |
| QCINest | |
| QCINoNest | |
| SiFiveCLICPreemptible | |
| SiFiveCLICStackSwap | |
| SiFiveCLICPreemptibleStackSwap | |
Definition at line 162 of file RISCVMachineFunctionInfo.h.
|
strong |
| Enumerator | |
|---|---|
| None | |
| StdExtZcmp | |
| VendorXqccmp | |
Definition at line 148 of file RISCVMachineFunctionInfo.h.
| RISCVMachineFunctionInfo::RISCVMachineFunctionInfo | ( | const Function & | F, |
| const RISCVSubtarget * | STI ) |
Definition at line 30 of file RISCVMachineFunctionInfo.cpp.
References llvm::alignDown(), assert(), llvm::dyn_cast_or_null(), llvm::mdconst::extract_or_null(), F, llvm::RISCVSubtarget::getFrameLowering(), llvm::TargetFrameLowering::getTransientStackAlign(), llvm::StringRef::size(), and llvm::Align::value().
Referenced by clone().
| void RISCVMachineFunctionInfo::addSExt32Register | ( | Register | Reg | ) |
Definition at line 144 of file RISCVMachineFunctionInfo.cpp.
Referenced by unpackFromRegLoc().
|
overridevirtual |
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
This requires remapping MachineBasicBlock references from the original parent to values in the new function. Targets may assume that virtual register and frame index values are preserved in the new function.
Reimplemented from llvm::MachineFunctionInfo.
Definition at line 23 of file RISCVMachineFunctionInfo.cpp.
References llvm::MachineFunction::cloneInfo(), and RISCVMachineFunctionInfo().
|
inline |
Definition at line 113 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVInstrInfo::insertIndirectBranch().
|
inline |
Definition at line 145 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 204 of file RISCVMachineFunctionInfo.h.
| RISCVMachineFunctionInfo::InterruptStackKind RISCVMachineFunctionInfo::getInterruptStackKind | ( | const MachineFunction & | MF | ) | const |
Definition at line 63 of file RISCVMachineFunctionInfo.cpp.
References assert(), llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), llvm::Function::getFnAttribute(), llvm::MachineFunction::getFunction(), llvm::Attribute::getValueAsString(), llvm::Function::hasFnAttribute(), None, QCINest, QCINoNest, SiFiveCLICPreemptible, SiFiveCLICPreemptibleStackSwap, and SiFiveCLICStackSwap.
Referenced by hasImplicitFPUpdates(), isSiFivePreemptibleInterrupt(), isSiFiveStackSwapInterrupt(), llvm::RISCVFrameLowering::spillCalleeSavedRegisters(), useQCIInterrupt(), and useSiFiveInterrupt().
|
inline |
Definition at line 124 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 106 of file RISCVMachineFunctionInfo.h.
References llvm::MachineFrameInfo::CreateStackObject(), and llvm::MachineFunction::getFrameInfo().
| RISCVMachineFunctionInfo::PushPopKind RISCVMachineFunctionInfo::getPushPopKind | ( | const MachineFunction & | MF | ) | const |
Definition at line 91 of file RISCVMachineFunctionInfo.cpp.
References llvm::TargetOptions::DisableFramePointerElim(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::getTarget(), None, llvm::TargetMachine::Options, StdExtZcmp, useSiFiveInterrupt(), and VendorXqccmp.
Referenced by hasImplicitFPUpdates(), isPushable(), llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), and llvm::RISCVFrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 179 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 120 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 156 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), and llvm::RISCVFrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 159 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 142 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 139 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 136 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 100 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 103 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 225 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVTargetLowering::expandIndirectJTBranch(), and llvm::RISCVTargetLowering::LowerCall().
|
inline |
Definition at line 222 of file RISCVMachineFunctionInfo.h.
| bool RISCVMachineFunctionInfo::hasImplicitFPUpdates | ( | const MachineFunction & | MF | ) | const |
Definition at line 115 of file RISCVMachineFunctionInfo.cpp.
References getInterruptStackKind(), getPushPopKind(), QCINest, QCINoNest, and VendorXqccmp.
| void RISCVMachineFunctionInfo::initializeBaseYamlFields | ( | const yaml::RISCVMachineFunctionInfo & | YamlMFI | ) |
Definition at line 138 of file RISCVMachineFunctionInfo.cpp.
References llvm::yaml::RISCVMachineFunctionInfo::VarArgsFrameIndex, and llvm::yaml::RISCVMachineFunctionInfo::VarArgsSaveSize.
|
inline |
Definition at line 152 of file RISCVMachineFunctionInfo.h.
References getPushPopKind(), and None.
Referenced by llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), llvm::RISCVFrameLowering::spillCalleeSavedRegisters(), and useSaveRestoreLibCalls().
Definition at line 148 of file RISCVMachineFunctionInfo.cpp.
References llvm::is_contained().
Referenced by isSignExtendedW().
|
inline |
Definition at line 189 of file RISCVMachineFunctionInfo.h.
References getInterruptStackKind(), SiFiveCLICPreemptible, and SiFiveCLICPreemptibleStackSwap.
Referenced by createSiFivePreemptibleInterruptFrameEntries().
|
inline |
Definition at line 195 of file RISCVMachineFunctionInfo.h.
References getInterruptStackKind(), SiFiveCLICPreemptibleStackSwap, and SiFiveCLICStackSwap.
|
inline |
Definition at line 219 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 201 of file RISCVMachineFunctionInfo.h.
Referenced by createSiFivePreemptibleInterruptFrameEntries().
|
inline |
Definition at line 116 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 146 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 223 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 220 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::RISCVCallLowering::lowerFormalArguments(), llvm::RISCVTargetLowering::LowerReturn(), and llvm::RISCVCallLowering::lowerReturn().
|
inline |
Definition at line 125 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 180 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 157 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 160 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 143 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 140 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 137 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 101 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments().
|
inline |
Definition at line 104 of file RISCVMachineFunctionInfo.h.
References Size.
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments().
|
inline |
Definition at line 173 of file RISCVMachineFunctionInfo.h.
References getInterruptStackKind(), QCINest, and QCINoNest.
Referenced by llvm::RISCVFrameLowering::canUseAsEpilogue(), llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), and llvm::RISCVFrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 127 of file RISCVMachineFunctionInfo.h.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasFnAttribute(), llvm::MachineFrameInfo::hasTailCall(), and isPushable().
Referenced by llvm::RISCVFrameLowering::canUseAsEpilogue(), and llvm::RISCVFrameLowering::canUseAsPrologue().
|
inline |
Definition at line 182 of file RISCVMachineFunctionInfo.h.
References getInterruptStackKind(), SiFiveCLICPreemptible, SiFiveCLICPreemptibleStackSwap, and SiFiveCLICStackSwap.
Referenced by getPushPopKind().