LLVM: llvm::SMEAttrs Class Reference (original) (raw)

SMEAttrs is a utility class to parse the SME ACLE attributes on functions. More...

#include "[Target/AArch64/AArch64SMEAttributes.h](AArch64SMEAttributes%5F8h%5Fsource.html)"

Public Types
enum class StateValue { None = 0 , In = 1 , Out = 2 , InOut = 3 , Preserved = 4 , New = 5 }
enum Mask { Normal = 0 , SM_Enabled = 1 << 0 , SM_Compatible = 1 << 1 , SM_Body = 1 << 2 , SME_ABI_Routine = 1 << 3 , ZA_State_Agnostic = 1 << 4 , ZT0_Undef = 1 << 5 , ZA_Shift = 6 , ZA_Mask = 0b111 << ZA_Shift , ZT0_Shift = 9 , ZT0_Mask = 0b111 << ZT0_Shift , CallSiteFlags_Mask = ZT0_Undef }
Public Member Functions
SMEAttrs ()=default
SMEAttrs (unsigned Mask)
SMEAttrs (const Function &F, const RTLIB::RuntimeLibcallsInfo *RTLCI=nullptr)
SMEAttrs (const AttributeList &L)
SMEAttrs (StringRef FuncName, const RTLIB::RuntimeLibcallsInfo &RTLCI)
void set (unsigned M, bool Enable=true)
bool hasStreamingBody () const
bool hasStreamingInterface () const
bool hasStreamingInterfaceOrBody () const
bool hasStreamingCompatibleInterface () const
bool hasNonStreamingInterface () const
bool hasNonStreamingInterfaceAndBody () const
bool isNewZA () const
bool isInZA () const
bool isOutZA () const
bool isInOutZA () const
bool isPreservesZA () const
bool sharesZA () const
bool hasAgnosticZAInterface () const
bool hasSharedZAInterface () const
bool hasPrivateZAInterface () const
bool hasZAState () const
bool isSMEABIRoutine () const
bool isNewZT0 () const
bool isInZT0 () const
bool isOutZT0 () const
bool isInOutZT0 () const
bool isPreservesZT0 () const
bool hasUndefZT0 () const
bool sharesZT0 () const
bool hasZT0State () const
SMEAttrs operator| (SMEAttrs Other) const
SMEAttrs withoutPerCallsiteFlags () const
bool operator== (SMEAttrs const &Other) const

SMEAttrs is a utility class to parse the SME ACLE attributes on functions.

It helps determine a function's requirements for PSTATE.ZA and PSTATE.SM.

Definition at line 25 of file AArch64SMEAttributes.h.

Mask

Enumerator
Normal
SM_Enabled
SM_Compatible
SM_Body
SME_ABI_Routine
ZA_State_Agnostic
ZT0_Undef
ZA_Shift
ZA_Mask
ZT0_Shift
ZT0_Mask
CallSiteFlags_Mask

Definition at line 39 of file AArch64SMEAttributes.h.

StateValue

SMEAttrs() [1/5]

llvm::SMEAttrs::SMEAttrs ( ) default

SMEAttrs() [2/5]

llvm::SMEAttrs::SMEAttrs ( unsigned Mask) inline

SMEAttrs() [3/5]

SMEAttrs() [4/5]

SMEAttrs::SMEAttrs ( const AttributeList & L )

Definition at line 43 of file AArch64SMEAttributes.cpp.

References encodeZAState(), encodeZT0State(), In, InOut, New, Out, Preserved, SM_Body, SM_Compatible, SM_Enabled, ZA_State_Agnostic, and ZT0_Undef.

SMEAttrs() [5/5]

decodeZAState()

StateValue llvm::SMEAttrs::decodeZAState ( unsigned Bitmask) inlinestatic

decodeZT0State()

StateValue llvm::SMEAttrs::decodeZT0State ( unsigned Bitmask) inlinestatic

encodeZAState()

unsigned llvm::SMEAttrs::encodeZAState ( StateValue S) inlinestatic

encodeZT0State()

unsigned llvm::SMEAttrs::encodeZT0State ( StateValue S) inlinestatic

hasAgnosticZAInterface()

bool llvm::SMEAttrs::hasAgnosticZAInterface ( ) const inline

hasNonStreamingInterface()

bool llvm::SMEAttrs::hasNonStreamingInterface ( ) const inline

hasNonStreamingInterfaceAndBody()

bool llvm::SMEAttrs::hasNonStreamingInterfaceAndBody ( ) const inline

hasPrivateZAInterface()

bool llvm::SMEAttrs::hasPrivateZAInterface ( ) const inline

hasSharedZAInterface()

bool llvm::SMEAttrs::hasSharedZAInterface ( ) const inline

hasStreamingBody()

bool llvm::SMEAttrs::hasStreamingBody ( ) const inline

hasStreamingCompatibleInterface()

bool llvm::SMEAttrs::hasStreamingCompatibleInterface ( ) const inline

hasStreamingInterface()

bool llvm::SMEAttrs::hasStreamingInterface ( ) const inline

hasStreamingInterfaceOrBody()

bool llvm::SMEAttrs::hasStreamingInterfaceOrBody ( ) const inline

hasUndefZT0()

bool llvm::SMEAttrs::hasUndefZT0 ( ) const inline

hasZAState()

bool llvm::SMEAttrs::hasZAState ( ) const inline

hasZT0State()

bool llvm::SMEAttrs::hasZT0State ( ) const inline

isInOutZA()

bool llvm::SMEAttrs::isInOutZA ( ) const inline

isInOutZT0()

bool llvm::SMEAttrs::isInOutZT0 ( ) const inline

isInZA()

bool llvm::SMEAttrs::isInZA ( ) const inline

isInZT0()

bool llvm::SMEAttrs::isInZT0 ( ) const inline

isNewZA()

bool llvm::SMEAttrs::isNewZA ( ) const inline

isNewZT0()

bool llvm::SMEAttrs::isNewZT0 ( ) const inline

isOutZA()

bool llvm::SMEAttrs::isOutZA ( ) const inline

isOutZT0()

bool llvm::SMEAttrs::isOutZT0 ( ) const inline

isPreservesZA()

bool llvm::SMEAttrs::isPreservesZA ( ) const inline

isPreservesZT0()

bool llvm::SMEAttrs::isPreservesZT0 ( ) const inline

isSMEABIRoutine()

bool llvm::SMEAttrs::isSMEABIRoutine ( ) const inline

operator==()

operator|()

set()

sharesZA()

bool llvm::SMEAttrs::sharesZA ( ) const inline

sharesZT0()

bool llvm::SMEAttrs::sharesZT0 ( ) const inline

withoutPerCallsiteFlags()

SMEAttrs llvm::SMEAttrs::withoutPerCallsiteFlags ( ) const inline

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