|
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 48 of file RISCVMachineFunctionInfo.h.
|
strong |
| Enumerator | |
|---|---|
| None | |
| QCINest | |
| QCINoNest | |
| SiFiveCLICPreemptible | |
| SiFiveCLICStackSwap | |
| SiFiveCLICPreemptibleStackSwap | |
Definition at line 180 of file RISCVMachineFunctionInfo.h.
|
strong |
| Enumerator | |
|---|---|
| None | |
| StdExtZcmp | |
| VendorXqccmp | |
Definition at line 166 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 122 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVInstrInfo::insertIndirectBranch().
|
inline |
Definition at line 154 of file RISCVMachineFunctionInfo.h.
Definition at line 160 of file RISCVMachineFunctionInfo.h.
References assert().
Referenced by llvm::RISCVTargetLowering::LowerCall().
|
inline |
Definition at line 222 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 133 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 115 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 197 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 129 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 174 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), and llvm::RISCVFrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 177 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 151 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 148 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 145 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 109 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 112 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 243 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVTargetLowering::expandIndirectJTBranch(), and llvm::RISCVTargetLowering::LowerCall().
|
inline |
Definition at line 240 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 170 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 207 of file RISCVMachineFunctionInfo.h.
References getInterruptStackKind(), SiFiveCLICPreemptible, and SiFiveCLICPreemptibleStackSwap.
Referenced by createSiFivePreemptibleInterruptFrameEntries().
|
inline |
Definition at line 213 of file RISCVMachineFunctionInfo.h.
References getInterruptStackKind(), SiFiveCLICPreemptibleStackSwap, and SiFiveCLICStackSwap.
|
inline |
Definition at line 237 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 219 of file RISCVMachineFunctionInfo.h.
Referenced by createSiFivePreemptibleInterruptFrameEntries().
|
inline |
Definition at line 125 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 155 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 241 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 157 of file RISCVMachineFunctionInfo.h.
References Reg.
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments().
|
inline |
Definition at line 238 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::RISCVCallLowering::lowerFormalArguments(), llvm::RISCVTargetLowering::LowerReturn(), and llvm::RISCVCallLowering::lowerReturn().
|
inline |
Definition at line 134 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 198 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 175 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 178 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 152 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 149 of file RISCVMachineFunctionInfo.h.
|
inline |
Definition at line 146 of file RISCVMachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 110 of file RISCVMachineFunctionInfo.h.
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments().
|
inline |
Definition at line 113 of file RISCVMachineFunctionInfo.h.
References Size.
Referenced by llvm::RISCVTargetLowering::LowerFormalArguments().
|
inline |
Definition at line 191 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 136 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 200 of file RISCVMachineFunctionInfo.h.
References getInterruptStackKind(), SiFiveCLICPreemptible, SiFiveCLICPreemptibleStackSwap, and SiFiveCLICStackSwap.
Referenced by getPushPopKind().