|
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 174 of file RISCVMachineFunctionInfo.h.
|
strong |
| Enumerator | |
|---|---|
| None | |
| StdExtZcmp | |
| VendorXqccmp | |
Definition at line 160 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().
|
inline |
Definition at line 156 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments().
| void RISCVMachineFunctionInfo::addSExt32Register | ( | Register | Reg | ) |
Definition at line 141 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 153 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 118 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVInstrInfo::insertIndirectBranch().
|
inline |
Definition at line 150 of file RISCVMachineFunctionInfo.h.
Definition at line 157 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVTargetLowering::LowerCall().
|
inline |
Definition at line 158 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 216 of file RISCVMachineFunctionInfo.h.
| RISCVMachineFunctionInfo::InterruptStackKind RISCVMachineFunctionInfo::getInterruptStackKind | ( | const MachineFunction & | MF | ) | const |
Definition at line 60 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 129 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 111 of file RISCVMachineFunctionInfo.h.
References llvm::MachineFrameInfo::CreateStackObject(), and llvm::MachineFunction::getFrameInfo().
| RISCVMachineFunctionInfo::PushPopKind RISCVMachineFunctionInfo::getPushPopKind | ( | const MachineFunction & | MF | ) | const |
Definition at line 88 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 191 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 125 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 168 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), and llvm::RISCVFrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 171 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 147 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 144 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 141 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 105 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 108 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 234 of file RISCVMachineFunctionInfo.h.
| bool RISCVMachineFunctionInfo::hasImplicitFPUpdates | ( | const MachineFunction & | MF | ) | const |
Definition at line 112 of file RISCVMachineFunctionInfo.cpp.
References getInterruptStackKind(), getPushPopKind(), QCINest, QCINoNest, and VendorXqccmp.
| void RISCVMachineFunctionInfo::initializeBaseYamlFields | ( | const yaml::RISCVMachineFunctionInfo & | YamlMFI | ) |
Definition at line 135 of file RISCVMachineFunctionInfo.cpp.
References llvm::yaml::RISCVMachineFunctionInfo::VarArgsFrameIndex, and llvm::yaml::RISCVMachineFunctionInfo::VarArgsSaveSize.
|
inline |
Definition at line 164 of file RISCVMachineFunctionInfo.h.
References getPushPopKind(), and None.
Referenced by llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), llvm::RISCVFrameLowering::spillCalleeSavedRegisters(), and useSaveRestoreLibCalls().
Definition at line 145 of file RISCVMachineFunctionInfo.cpp.
References llvm::is_contained().
Referenced by isSignExtendedW().
|
inline |
Definition at line 201 of file RISCVMachineFunctionInfo.h.
References getInterruptStackKind(), SiFiveCLICPreemptible, and SiFiveCLICPreemptibleStackSwap.
Referenced by createSiFivePreemptibleInterruptFrameEntries().
|
inline |
Definition at line 207 of file RISCVMachineFunctionInfo.h.
References getInterruptStackKind(), SiFiveCLICPreemptibleStackSwap, and SiFiveCLICStackSwap.
|
inline |
Definition at line 231 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 213 of file RISCVMachineFunctionInfo.h.
Referenced by createSiFivePreemptibleInterruptFrameEntries().
|
inline |
Definition at line 154 of file RISCVMachineFunctionInfo.h.
References llvm::size().
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments().
|
inline |
Definition at line 121 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 151 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 235 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 232 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments(), and llvm::RISCVTargetLowering::LowerReturn().
|
inline |
Definition at line 130 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 192 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 169 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 172 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 148 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 145 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 142 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 106 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments().
|
inline |
Definition at line 109 of file RISCVMachineFunctionInfo.h.
References Size.
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments().
|
inline |
Definition at line 185 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 132 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 194 of file RISCVMachineFunctionInfo.h.
References getInterruptStackKind(), SiFiveCLICPreemptible, SiFiveCLICPreemptibleStackSwap, and SiFiveCLICStackSwap.
Referenced by getPushPopKind().