22 "SM_Enabled and SM_Compatible are mutually exclusive");
24 "ZA_New and ZA_Shared are mutually exclusive");
26 "ZA_New and ZA_Preserved are mutually exclusive");
37 if (Attrs.hasFnAttr(
"aarch64_pstate_sm_enabled"))
39 if (Attrs.hasFnAttr(
"aarch64_pstate_sm_compatible"))
41 if (Attrs.hasFnAttr(
"aarch64_pstate_sm_body"))
43 if (Attrs.hasFnAttr(
"aarch64_pstate_za_shared"))
45 if (Attrs.hasFnAttr(
"aarch64_pstate_za_new"))
47 if (Attrs.hasFnAttr(
"aarch64_pstate_za_preserved"))
53 bool BodyOverridesInterface)
const {
57 if (BodyOverridesInterface &&
Callee.hasStreamingBody()) {
59 : std::optional<bool>(
true);
62 if (
Callee.hasStreamingCompatibleInterface())
73 return Callee.hasStreamingInterface();
amdgpu Simplify well known AMD library false FunctionCallee Callee
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to callin...
Function * getCalledFunction() const
Returns the function called, or null if this is an indirect function invocation or the function signa...
AttributeList getAttributes() const
Return the parameter attributes for this call.
SMEAttrs is a utility class to parse the SME ACLE attributes on functions.
bool hasStreamingInterface() const
bool hasNonStreamingInterfaceAndBody() const
SMEAttrs(unsigned Mask=Normal)
bool hasStreamingCompatibleInterface() const
bool hasNewZAInterface() const
bool hasStreamingInterfaceOrBody() const
void set(unsigned M, bool Enable=true)
std::optional< bool > requiresSMChange(const SMEAttrs &Callee, bool BodyOverridesInterface=false) const
bool hasSharedZAInterface() const
This is an optimization pass for GlobalISel generic memory operations.