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,ZA_Shift = 5,ZA_Mask = 0b111 << ZA_Shift, ZT0_Shift = 8,ZT0_Mask = 0b111 << ZT0_Shift } |
Static Public Member Functions | |
staticStateValue | decodeZAState (unsigned Bitmask) |
staticunsigned | encodeZAState (StateValue S) |
staticStateValue | decodeZT0State (unsigned Bitmask) |
staticunsigned | 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. It has interfaces to query whether a streaming mode change or lazy-save mechanism is required when going from one function to another (e.g. through a call).
Definition at line25 of fileAArch64SMEAttributes.h.
Enumerator | |
---|---|
Normal | |
SM_Enabled | |
SM_Compatible | |
SM_Body | |
SME_ABI_Routine | |
ZA_State_Agnostic | |
ZA_Shift | |
ZA_Mask | |
ZT0_Shift | |
ZT0_Mask |
Definition at line39 of fileAArch64SMEAttributes.h.
| strong |
Enumerator | |
---|---|
None | |
In | |
Out | |
InOut | |
Preserved | |
New |
Definition at line29 of fileAArch64SMEAttributes.h.
Definition at line52 of fileAArch64SMEAttributes.h.
Referencesset().
Definition at line53 of fileAArch64SMEAttributes.h.
Definition at line47 of fileAArch64SMEAttributes.cpp.
ReferencesF,llvm::CallBase::getAttributes(),llvm::CallBase::getCalledFunction(), andset().
SMEAttrs::SMEAttrs | ( | constAttributeList & | L | ) |
Definition at line68 of fileAArch64SMEAttributes.cpp.
ReferencesencodeZAState(),encodeZT0State(),In,InOut,New,Out,Preserved,SM_Body,SM_Compatible,SM_Enabled, andZA_State_Agnostic.
SMEAttrs::SMEAttrs | ( | StringRef | FuncName | ) |
Definition at line54 of fileAArch64SMEAttributes.cpp.
ReferencesencodeZAState(),In,SM_Compatible, andSME_ABI_Routine.
| inlinestatic |
Definition at line81 of fileAArch64SMEAttributes.h.
ReferencesZA_Mask, andZA_Shift.
Referenced byisInOutZA(),isInZA(),isNewZA(),isOutZA(),isPreservesZA(), andsharesZA().
| inlinestatic |
Definition at line112 of fileAArch64SMEAttributes.h.
ReferencesZT0_Mask, andZT0_Shift.
Referenced byisInOutZT0(),isInZT0(),isNewZT0(),isOutZT0(),isPreservesZT0(), andsharesZT0().
| inlinestatic |
| inlinestatic |
| inline |
Definition at line100 of fileAArch64SMEAttributes.h.
ReferencesZA_State_Agnostic.
Referenced byllvm::AArch64::createFastISel(),hasPrivateZAInterface(),requiresPreservingAllZAState(), andset().
| inline |
Definition at line69 of fileAArch64SMEAttributes.h.
ReferenceshasStreamingCompatibleInterface(), andhasStreamingInterface().
Referenced bygetSMCondition(), andhasNonStreamingInterfaceAndBody().
| inline |
Definition at line72 of fileAArch64SMEAttributes.h.
ReferenceshasNonStreamingInterface(), andhasStreamingBody().
Referenced byrequiresSMChange().
| inline |
Definition at line102 of fileAArch64SMEAttributes.h.
ReferenceshasAgnosticZAInterface(), andhasSharedZAInterface().
| inline |
Definition at line101 of fileAArch64SMEAttributes.h.
ReferencessharesZA(), andsharesZT0().
Referenced byhasPrivateZAInterface(), andset().
| inline |
Definition at line61 of fileAArch64SMEAttributes.h.
ReferencesSM_Body.
Referenced byllvm::AArch64TTIImpl::areInlineCompatible(),emitVGSaveRestore(),enableMultiVectorSpillFill(),getSMCondition(),hasNonStreamingInterfaceAndBody(), andhasStreamingInterfaceOrBody().
| inline |
Definition at line66 of fileAArch64SMEAttributes.h.
ReferencesSM_Compatible.
Referenced byllvm::AArch64::createFastISel(),getSMCondition(),hasNonStreamingInterface(), andset().
| inline |
Definition at line62 of fileAArch64SMEAttributes.h.
ReferencesSM_Enabled.
Referenced byemitVGSaveRestore(),enableMultiVectorSpillFill(),getSMCondition(),hasNonStreamingInterface(),hasStreamingInterfaceOrBody(), andset().
| inline |
Definition at line63 of fileAArch64SMEAttributes.h.
ReferenceshasStreamingBody(), andhasStreamingInterface().
Referenced byllvm::AArch64::createFastISel(), andrequiresSMChange().
| inline |
Definition at line105 of fileAArch64SMEAttributes.h.
ReferencesisNewZA(), andsharesZA().
Referenced byllvm::AArch64::createFastISel(),requiresDisablingZABeforeCall(), andrequiresLazySave().
| inline |
Definition at line133 of fileAArch64SMEAttributes.h.
ReferencesisNewZT0(), andsharesZT0().
Referenced byllvm::AArch64::createFastISel(),requiresDisablingZABeforeCall(), andrequiresPreservingZT0().
| inline |
Definition at line91 of fileAArch64SMEAttributes.h.
ReferencesdecodeZAState(), andInOut.
Referenced byset().
| inline |
Definition at line122 of fileAArch64SMEAttributes.h.
ReferencesdecodeZT0State(), andInOut.
Referenced byset().
| inline |
Definition at line89 of fileAArch64SMEAttributes.h.
ReferencesdecodeZAState(), andIn.
Referenced byset().
| inline |
Definition at line120 of fileAArch64SMEAttributes.h.
ReferencesdecodeZT0State(), andIn.
Referenced byset().
| inline |
Definition at line88 of fileAArch64SMEAttributes.h.
ReferencesdecodeZAState(), andNew.
Referenced byllvm::AArch64TTIImpl::areInlineCompatible(),hasZAState(), andset().
| inline |
Definition at line119 of fileAArch64SMEAttributes.h.
ReferencesdecodeZT0State(), andNew.
Referenced byllvm::AArch64TTIImpl::areInlineCompatible(),hasZT0State(), andset().
| inline |
Definition at line90 of fileAArch64SMEAttributes.h.
ReferencesdecodeZAState(), andOut.
Referenced byset().
| inline |
Definition at line121 of fileAArch64SMEAttributes.h.
ReferencesdecodeZT0State(), andOut.
Referenced byset().
| inline |
Definition at line92 of fileAArch64SMEAttributes.h.
ReferencesdecodeZAState(), andPreserved.
Referenced byset().
| inline |
Definition at line125 of fileAArch64SMEAttributes.h.
ReferencesdecodeZT0State(), andPreserved.
Referenced byset().
Definition at line138 of fileAArch64SMEAttributes.h.
ReferenceshasZAState(),hasZT0State(), andSME_ABI_Routine.
Referenced byrequiresEnablingZAAfterCall().
Definition at line142 of fileAArch64SMEAttributes.h.
ReferencesrequiresDisablingZABeforeCall(), andrequiresLazySave().
Definition at line106 of fileAArch64SMEAttributes.h.
ReferenceshasZAState(), andSME_ABI_Routine.
Referenced byrequiresEnablingZAAfterCall().
Definition at line145 of fileAArch64SMEAttributes.h.
ReferenceshasAgnosticZAInterface(), andSME_ABI_Routine.
Definition at line134 of fileAArch64SMEAttributes.h.
ReferenceshasZT0State().
Definition at line100 of fileAArch64SMEAttributes.cpp.
ReferenceshasNonStreamingInterfaceAndBody(), andhasStreamingInterfaceOrBody().
Referenced byllvm::AArch64TTIImpl::getInlineCallPenalty().
Definition at line15 of fileAArch64SMEAttributes.cpp.
Referencesassert(),llvm::Enable,hasAgnosticZAInterface(),hasSharedZAInterface(),hasStreamingCompatibleInterface(),hasStreamingInterface(),isInOutZA(),isInOutZT0(),isInZA(),isInZT0(),isNewZA(),isNewZT0(),isOutZA(),isOutZT0(),isPreservesZA(),isPreservesZT0(),sharesZA(),sharesZT0(), andSME_ABI_Routine.
Referenced byllvm::AArch64TTIImpl::areInlineCompatible(), andSMEAttrs().
| inline |
Definition at line95 of fileAArch64SMEAttributes.h.
ReferencesdecodeZAState(),In,InOut,Out, andPreserved.
Referenced byhasSharedZAInterface(),hasZAState(), andset().
| inline |
Definition at line128 of fileAArch64SMEAttributes.h.
ReferencesdecodeZT0State(),In,InOut,Out, andPreserved.
Referenced byhasSharedZAInterface(),hasZT0State(), andset().