LLVM 22.0.0git
|
SMEAttrs is a utility class to parse the SME ACLE attributes on functions. More...
#include "Target/AArch64/Utils/AArch64SMEAttributes.h"
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 } |
Static Public Member Functions | |
static StateValue | decodeZAState (unsigned Bitmask) |
static unsigned | encodeZAState (StateValue S) |
static StateValue | decodeZT0State (unsigned Bitmask) |
static unsigned | encodeZT0State (StateValue S) |
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 24 of file AArch64SMEAttributes.h.
enum llvm::SMEAttrs::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 38 of file AArch64SMEAttributes.h.
|
strong |
Enumerator | |
---|---|
None | |
In | |
Out | |
InOut | |
Preserved | |
New |
Definition at line 28 of file AArch64SMEAttributes.h.
|
default |
|
inline |
Definition at line 54 of file AArch64SMEAttributes.h.
References set().
|
inline |
Definition at line 55 of file AArch64SMEAttributes.h.
References F.
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.
|
inline |
Definition at line 61 of file AArch64SMEAttributes.h.
|
inlinestatic |
Definition at line 92 of file AArch64SMEAttributes.h.
References ZA_Mask, and ZA_Shift.
Referenced by isInOutZA(), isInZA(), isNewZA(), isOutZA(), isPreservesZA(), and sharesZA().
|
inlinestatic |
Definition at line 120 of file AArch64SMEAttributes.h.
References ZT0_Mask, and ZT0_Shift.
Referenced by isInOutZT0(), isInZT0(), isNewZT0(), isOutZT0(), isPreservesZT0(), and sharesZT0().
|
inlinestatic |
Definition at line 95 of file AArch64SMEAttributes.h.
References ZA_Shift.
Referenced by SMEAttrs().
|
inlinestatic |
Definition at line 123 of file AArch64SMEAttributes.h.
References ZT0_Shift.
Referenced by SMEAttrs().
|
inline |
Definition at line 111 of file AArch64SMEAttributes.h.
References ZA_State_Agnostic.
Referenced by llvm::AArch64::createFastISel(), hasPrivateZAInterface(), llvm::SMECallAttrs::requiresPreservingAllZAState(), and llvm::SMECallAttrs::requiresPreservingZT0().
|
inline |
Definition at line 84 of file AArch64SMEAttributes.h.
References hasStreamingCompatibleInterface(), and hasStreamingInterface().
Referenced by getSMToggleCondition(), and hasNonStreamingInterfaceAndBody().
|
inline |
Definition at line 87 of file AArch64SMEAttributes.h.
References hasNonStreamingInterface(), and hasStreamingBody().
Referenced by llvm::AArch64TTIImpl::areInlineCompatible().
|
inline |
Definition at line 113 of file AArch64SMEAttributes.h.
References hasAgnosticZAInterface(), and hasSharedZAInterface().
Referenced by llvm::SMECallAttrs::requiresDisablingZABeforeCall(), and llvm::SMECallAttrs::requiresLazySave().
|
inline |
Definition at line 112 of file AArch64SMEAttributes.h.
References sharesZA(), and sharesZT0().
Referenced by hasPrivateZAInterface().
|
inline |
Definition at line 76 of file AArch64SMEAttributes.h.
References SM_Body.
Referenced by llvm::AArch64TTIImpl::areInlineCompatible(), enableMultiVectorSpillFill(), getSMToggleCondition(), llvm::AArch64FrameLowering::hasFPImpl(), hasNonStreamingInterfaceAndBody(), and hasStreamingInterfaceOrBody().
|
inline |
Definition at line 81 of file AArch64SMEAttributes.h.
References SM_Compatible.
Referenced by llvm::AArch64::createFastISel(), getSMToggleCondition(), hasNonStreamingInterface(), and instCombineInStreamingMode().
|
inline |
Definition at line 77 of file AArch64SMEAttributes.h.
References SM_Enabled.
Referenced by enableMultiVectorSpillFill(), getSMToggleCondition(), hasNonStreamingInterface(), and hasStreamingInterfaceOrBody().
|
inline |
Definition at line 78 of file AArch64SMEAttributes.h.
References hasStreamingBody(), and hasStreamingInterface().
Referenced by llvm::AArch64TTIImpl::areInlineCompatible(), llvm::AArch64::createFastISel(), and instCombineInStreamingMode().
|
inline |
Definition at line 136 of file AArch64SMEAttributes.h.
References ZT0_Undef.
Referenced by llvm::SMECallAttrs::requiresPreservingZT0().
|
inline |
Definition at line 116 of file AArch64SMEAttributes.h.
References isNewZA(), and sharesZA().
Referenced by llvm::AArch64::createFastISel(), llvm::SMECallAttrs::requiresDisablingZABeforeCall(), and llvm::SMECallAttrs::requiresLazySave().
|
inline |
Definition at line 142 of file AArch64SMEAttributes.h.
References isNewZT0(), and sharesZT0().
Referenced by llvm::AArch64::createFastISel(), llvm::SMECallAttrs::requiresDisablingZABeforeCall(), and llvm::SMECallAttrs::requiresPreservingZT0().
|
inline |
Definition at line 102 of file AArch64SMEAttributes.h.
References decodeZAState(), and InOut.
|
inline |
Definition at line 130 of file AArch64SMEAttributes.h.
References decodeZT0State(), and InOut.
|
inline |
Definition at line 100 of file AArch64SMEAttributes.h.
References decodeZAState(), and In.
|
inline |
Definition at line 128 of file AArch64SMEAttributes.h.
References decodeZT0State(), and In.
|
inline |
Definition at line 99 of file AArch64SMEAttributes.h.
References decodeZAState(), and New.
Referenced by llvm::AArch64TTIImpl::areInlineCompatible(), and hasZAState().
|
inline |
Definition at line 127 of file AArch64SMEAttributes.h.
References decodeZT0State(), and New.
Referenced by llvm::AArch64TTIImpl::areInlineCompatible(), and hasZT0State().
|
inline |
Definition at line 101 of file AArch64SMEAttributes.h.
References decodeZAState(), and Out.
|
inline |
Definition at line 129 of file AArch64SMEAttributes.h.
References decodeZT0State(), and Out.
|
inline |
Definition at line 103 of file AArch64SMEAttributes.h.
References decodeZAState(), and Preserved.
|
inline |
Definition at line 133 of file AArch64SMEAttributes.h.
References decodeZT0State(), and Preserved.
|
inline |
Definition at line 117 of file AArch64SMEAttributes.h.
References SME_ABI_Routine.
Referenced by isSMEABIRoutineCall(), llvm::SMECallAttrs::requiresDisablingZABeforeCall(), llvm::SMECallAttrs::requiresLazySave(), and llvm::SMECallAttrs::requiresPreservingAllZAState().
Definition at line 154 of file AArch64SMEAttributes.h.
References llvm::Other.
Definition at line 144 of file AArch64SMEAttributes.h.
References llvm::Other, and set().
Definition at line 65 of file AArch64SMEAttributes.h.
References llvm::Enable.
Referenced by llvm::AArch64TTIImpl::areInlineCompatible(), operator|(), and SMEAttrs().
|
inline |
Definition at line 106 of file AArch64SMEAttributes.h.
References decodeZAState(), In, InOut, Out, and Preserved.
Referenced by hasSharedZAInterface(), and hasZAState().
|
inline |
Definition at line 137 of file AArch64SMEAttributes.h.
References decodeZT0State(), In, InOut, Out, and Preserved.
Referenced by hasSharedZAInterface(), hasZT0State(), and llvm::SMECallAttrs::requiresPreservingZT0().
|
inline |
Definition at line 150 of file AArch64SMEAttributes.h.
References CallSiteFlags_Mask.
Referenced by llvm::SMECallAttrs::SMECallAttrs().