LLVM
15.0.0git
|
StackOffset is a class to represent an offset with 2 dimensions, named fixed and scalable, respectively. More...
#include "llvm/Support/TypeSize.h"
Public Member Functions | |
StackOffset () | |
StackOffset (const LinearPolyBase< StackOffset > &Other) | |
ScalarTy | getFixed () const |
ScalarTy | getScalable () const |
![]() | |
bool | operator== (const LinearPolyBase &RHS) const |
bool | operator!= (const LinearPolyBase &RHS) const |
bool | isZero () const |
bool | isNonZero () const |
operator bool () const | |
ScalarTy | getValue (unsigned Dim) const |
Static Public Member Functions | |
static StackOffset | getFixed (ScalarTy Fixed) |
static StackOffset | getScalable (ScalarTy Scalable) |
static StackOffset | get (ScalarTy Fixed, ScalarTy Scalable) |
Protected Member Functions | |
StackOffset (ScalarTy Fixed, ScalarTy Scalable) | |
![]() | |
LinearPolyBase (ArrayRef< ScalarTy > Values) | |
Additional Inherited Members | |
![]() | |
using | ScalarTy = typename LinearPolyBaseTypeTraits< StackOffset >::ScalarTy |
![]() | |
static constexpr auto | Dimensions |
StackOffset is a class to represent an offset with 2 dimensions, named fixed and scalable, respectively.
This class allows a value for both dimensions to depict e.g. "8 bytes and 16 scalable bytes", which is needed to represent stack offsets.
Definition at line 134 of file TypeSize.h.
Definition at line 136 of file TypeSize.h.
References llvm::Fixed.
|
inline |
Definition at line 140 of file TypeSize.h.
|
inline |
Definition at line 141 of file TypeSize.h.
References Other.
|
inlinestatic |
Definition at line 145 of file TypeSize.h.
References llvm::Fixed.
Referenced by llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::RISCVFrameLowering::getFrameIndexReference(), llvm::isAArch64FrameOffsetLegal(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 149 of file TypeSize.h.
References llvm::LinearPolyBase< StackOffset >::getValue().
Referenced by convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), emitDebugValueComment(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::emitFrameOffset(), emitFrameOffsetAdj(), llvm::AArch64FrameLowering::emitPrologue(), getFPOffset(), llvm::R600FrameLowering::getFrameIndexReference(), llvm::NVPTXFrameLowering::getFrameIndexReference(), llvm::SIFrameLowering::getFrameIndexReference(), llvm::MipsSEFrameLowering::getFrameIndexReference(), llvm::RISCVFrameLowering::getFrameIndexReference(), llvm::CSKYFrameLowering::getFrameIndexReference(), llvm::SparcFrameLowering::getFrameIndexReference(), llvm::ARMFrameLowering::getFrameIndexReference(), llvm::VEFrameLowering::getFrameIndexReference(), llvm::SystemZELFFrameLowering::getFrameIndexReference(), llvm::HexagonFrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReference(), llvm::M68kFrameLowering::getFrameIndexReference(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), llvm::X86FrameLowering::getFrameIndexReferenceSP(), llvm::AArch64FrameLowering::getNonLocalFrameIndexReference(), getStackOffset(), llvm::AArch64RegisterInfo::isFrameOffsetLegal(), llvm::AArch64RegisterInfo::resolveFrameIndex(), llvm::AArch64FrameLowering::resolveFrameOffsetReference(), and llvm::rewriteAArch64FrameIndex().
|
inlinestatic |
Definition at line 143 of file TypeSize.h.
References llvm::Fixed.
Referenced by llvm::VERegisterInfo::eliminateFrameIndex(), llvm::M68kRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::SystemZELFFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::getSEHFrameIndexOffset(), llvm::X86FrameLowering::getWin64EHFrameIndexRef(), llvm::isAArch64FrameOffsetLegal(), LiveDebugValues::SpillLoc::operator<(), llvm::AArch64FrameLowering::resolveFrameOffsetReference(), and llvm::X86FrameLowering::restoreWin32EHStackPointers().
|
inline |
Definition at line 150 of file TypeSize.h.
References llvm::LinearPolyBase< StackOffset >::getValue().
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), llvm::emitFrameOffset(), emitFrameOffsetAdj(), llvm::RISCVFrameLowering::getFrameIndexReference(), and getSVEStackSize().
|
inlinestatic |
Definition at line 144 of file TypeSize.h.
Referenced by llvm::isAArch64FrameOffsetLegal(), LiveDebugValues::SpillLoc::operator<(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().