9#ifndef LLVM_LIB_TARGET_AARCH64_UTILS_AARCH64SMEATTRIBUTES_H
10#define LLVM_LIB_TARGET_AARCH64_UTILS_AARCH64SMEATTRIBUTES_H
59 addKnownFunctionAttrs(
F.getName(), *RTLCI);
63 addKnownFunctionAttrs(FuncName, RTLCI);
97 return static_cast<unsigned>(S) <<
ZA_Shift;
125 return static_cast<unsigned>(S) <<
ZT0_Shift;
156 return Bitmask ==
Other.Bitmask;
160 void addKnownFunctionAttrs(
StringRef FuncName,
162 void validate()
const;
172 bool IsIndirect =
false;
177 : 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(StringRef FuncName, const RTLIB::RuntimeLibcallsInfo &RTLCI)
SMEAttrs operator|(SMEAttrs Other) const
bool hasAgnosticZAInterface() const
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
SMEAttrs(const Function &F, const RTLIB::RuntimeLibcallsInfo *RTLCI=nullptr)
bool isPreservesZA() const
SMEAttrs withoutPerCallsiteFlags() const
bool hasPrivateZAInterface() const
void set(unsigned M, bool Enable=true)
bool hasSharedZAInterface() const
static unsigned encodeZT0State(StateValue S)
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.
A simple container for information about the supported runtime calls.