LLVM  13.0.0git
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
llvm::StackOffset Class Reference

StackOffset is a class to represent an offset with 2 dimensions, named fixed and scalable, respectively. More...

#include "llvm/Support/TypeSize.h"

Inheritance diagram for llvm::StackOffset:
Inheritance graph
[legend]
Collaboration diagram for llvm::StackOffset:
Collaboration graph
[legend]

Public Member Functions

 StackOffset ()
 
 StackOffset (const LinearPolyBase< StackOffset > &Other)
 
ScalarTy getFixed () const
 
ScalarTy getScalable () const
 
- Public Member Functions inherited from llvm::LinearPolyBase< StackOffset >
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)
 
- Protected Member Functions inherited from llvm::LinearPolyBase< StackOffset >
 LinearPolyBase (ArrayRef< ScalarTy > Values)
 

Additional Inherited Members

- Public Types inherited from llvm::LinearPolyBase< StackOffset >
using ScalarTy = typename LinearPolyBaseTypeTraits< StackOffset >::ScalarTy
 
- Static Public Attributes inherited from llvm::LinearPolyBase< StackOffset >
static constexpr auto Dimensions
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ StackOffset() [1/3]

llvm::StackOffset::StackOffset ( ScalarTy  Fixed,
ScalarTy  Scalable 
)
inlineprotected

Definition at line 136 of file TypeSize.h.

References llvm::Fixed.

◆ StackOffset() [2/3]

llvm::StackOffset::StackOffset ( )
inline

Definition at line 140 of file TypeSize.h.

◆ StackOffset() [3/3]

llvm::StackOffset::StackOffset ( const LinearPolyBase< StackOffset > &  Other)
inline

Definition at line 141 of file TypeSize.h.

References Other.

Member Function Documentation

◆ get()

static StackOffset llvm::StackOffset::get ( ScalarTy  Fixed,
ScalarTy  Scalable 
)
inlinestatic

◆ getFixed() [1/2]

ScalarTy llvm::StackOffset::getFixed ( ) const
inline

Definition at line 149 of file TypeSize.h.

References llvm::LinearPolyBase< StackOffset >::getValue().

Referenced by llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), emitDebugValueComment(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), getFPOffset(), llvm::R600FrameLowering::getFrameIndexReference(), llvm::NVPTXFrameLowering::getFrameIndexReference(), llvm::MipsSEFrameLowering::getFrameIndexReference(), llvm::RISCVFrameLowering::getFrameIndexReference(), llvm::SIFrameLowering::getFrameIndexReference(), llvm::SparcFrameLowering::getFrameIndexReference(), llvm::ARMFrameLowering::getFrameIndexReference(), llvm::SystemZFrameLowering::getFrameIndexReference(), llvm::VEFrameLowering::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().

◆ getFixed() [2/2]

static StackOffset llvm::StackOffset::getFixed ( ScalarTy  Fixed)
inlinestatic

◆ getScalable() [1/2]

ScalarTy llvm::StackOffset::getScalable ( ) const
inline

◆ getScalable() [2/2]

static StackOffset llvm::StackOffset::getScalable ( ScalarTy  Scalable)
inlinestatic

The documentation for this class was generated from the following file: