9#ifndef LLVM_LIB_TARGET_AARCH64_UTILS_AARCH64SMEATTRIBUTES_H
10#define LLVM_LIB_TARGET_AARCH64_UTILS_AARCH64SMEATTRIBUTES_H
57 addKnownFunctionAttrs(
F.getName(), *RTLCI);
61 addKnownFunctionAttrs(FuncName, RTLCI);
95 return static_cast<unsigned>(S) <<
ZA_Shift;
123 return static_cast<unsigned>(S) <<
ZT0_Shift;
149 return Bitmask ==
Other.Bitmask;
153 void addKnownFunctionAttrs(
StringRef FuncName,
155 void validate()
const;
165 bool IsIndirect =
false;
170 : 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
bool hasPrivateZAInterface() const
void set(unsigned M, bool Enable=true)
bool hasSharedZAInterface() const
static unsigned encodeZT0State(StateValue S)
bool requiresPreservingZT0() const
SMEAttrs const & callsite() const
bool requiresSMChange() const
SMECallAttrs(SMEAttrs Caller, SMEAttrs Callee, SMEAttrs Callsite=SMEAttrs::Normal)
bool requiresLazySave() 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.