9#ifndef LLVM_LIB_TARGET_AARCH64_UTILS_AARCH64SMEATTRIBUTES_H
10#define LLVM_LIB_TARGET_AARCH64_UTILS_AARCH64SMEATTRIBUTES_H
16class AArch64TargetLowering;
58 addKnownFunctionAttrs(
F.getName(), *TLI);
62 addKnownFunctionAttrs(FuncName, TLI);
96 return static_cast<unsigned>(S) <<
ZA_Shift;
124 return static_cast<unsigned>(S) <<
ZT0_Shift;
155 return Bitmask ==
Other.Bitmask;
159 void addKnownFunctionAttrs(
StringRef FuncName,
161 void validate()
const;
171 bool IsIndirect =
false;
176 : CallerFn(Caller), CalledFn(Callee), Callsite(Callsite) {}
Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to callin...
SMEAttrs is a utility class to parse the SME ACLE attributes on functions.
bool isPreservesZT0() const
bool hasStreamingInterface() const
static unsigned encodeZAState(StateValue S)
bool hasNonStreamingInterfaceAndBody() const
bool hasStreamingCompatibleInterface() const
SMEAttrs operator|(SMEAttrs Other) const
bool hasAgnosticZAInterface() const
SMEAttrs(const Function &F, const AArch64TargetLowering *TLI=nullptr)
bool hasStreamingInterfaceOrBody() const
static StateValue decodeZAState(unsigned Bitmask)
bool hasNonStreamingInterface() const
bool isSMEABIRoutine() const
bool operator==(SMEAttrs const &Other) const
static StateValue decodeZT0State(unsigned Bitmask)
bool hasStreamingBody() const
bool isPreservesZA() const
SMEAttrs withoutPerCallsiteFlags() const
bool hasPrivateZAInterface() const
void set(unsigned M, bool Enable=true)
bool hasSharedZAInterface() const
SMEAttrs(StringRef FuncName, const AArch64TargetLowering &TLI)
static unsigned encodeZT0State(StateValue S)
SMECallAttrs is a utility class to hold the SMEAttrs for a callsite.
bool requiresEnablingZAAfterCall() const
bool requiresPreservingZT0() const
SMEAttrs const & callsite() const
bool requiresSMChange() const
SMECallAttrs(SMEAttrs Caller, SMEAttrs Callee, SMEAttrs Callsite=SMEAttrs::Normal)
bool requiresLazySave() const
bool requiresDisablingZABeforeCall() const
SMEAttrs const & caller() const
SMEAttrs const & callee() const
bool requiresPreservingAllZAState() const
StringRef - Represent a constant reference to a string, i.e.
This is an optimization pass for GlobalISel generic memory operations.