@@ -1146,38 +1146,37 @@ void AArch64TargetCodeGenInfo::checkFunctionABI(
11461146 }
11471147}
11481148
1149- enum class ArmStreamingInlinability : uint8_t {
1149+ enum ArmSMEInlinability : uint8_t {
11501150 Ok = 0 ,
1151- IncompatibleStreamingModes = 1 ,
11521151 MismatchedStreamingCompatibility = 1 << 1 ,
1153- CalleeHasNewZA = 1 << 2 ,
1154- LLVM_MARK_AS_BITMASK_ENUM (/* LargestValue=*/ CalleeHasNewZA),
1152+ IncompatibleStreamingModes = 1 ,
1153+ CalleeRequiresNewZA = 1 << 2 ,
1154+ LLVM_MARK_AS_BITMASK_ENUM (/* LargestValue=*/ CalleeRequiresNewZA),
11551155};
11561156
1157- // / Determines if there are any streaming ABI issues with inlining \p Callee
1158- // / into \p Caller. Returns the issues in the ArmStreamingInlinability bit enum
1159- // / (multiple bits can be set).
1160- static ArmStreamingInlinability
1161- GetArmStreamingInlinability (const FunctionDecl *Caller,
1162- const FunctionDecl *Callee) {
1157+ // / Determines if there are any Arm SME ABI issues with inlining \p Callee into
1158+ // / \p Caller. Returns the issues in the ArmSMEInlinability bit enum (multiple
1159+ // / bits can be set).
1160+ static ArmSMEInlinability GetArmSMEInlinability (const FunctionDecl *Caller,
1161+ const FunctionDecl *Callee) {
11631162 bool CallerIsStreaming =
11641163 IsArmStreamingFunction (Caller, /* IncludeLocallyStreaming=*/ true );
11651164 bool CalleeIsStreaming =
11661165 IsArmStreamingFunction (Callee, /* IncludeLocallyStreaming=*/ true );
11671166 bool CallerIsStreamingCompatible = isStreamingCompatible (Caller);
11681167 bool CalleeIsStreamingCompatible = isStreamingCompatible (Callee);
11691168
1170- ArmStreamingInlinability Inlinability = ArmStreamingInlinability ::Ok;
1169+ ArmSMEInlinability Inlinability = ArmSMEInlinability ::Ok;
11711170
11721171 if (!CalleeIsStreamingCompatible &&
11731172 (CallerIsStreaming != CalleeIsStreaming || CallerIsStreamingCompatible)) {
1174- Inlinability |= ArmStreamingInlinability ::MismatchedStreamingCompatibility;
1173+ Inlinability |= ArmSMEInlinability ::MismatchedStreamingCompatibility;
11751174 if (CalleeIsStreaming)
1176- Inlinability |= ArmStreamingInlinability ::IncompatibleStreamingModes;
1175+ Inlinability |= ArmSMEInlinability ::IncompatibleStreamingModes;
11771176 }
11781177 if (auto *NewAttr = Callee->getAttr <ArmNewAttr>())
11791178 if (NewAttr->isNewZA ())
1180- Inlinability |= ArmStreamingInlinability::CalleeHasNewZA ;
1179+ Inlinability |= ArmSMEInlinability::CalleeRequiresNewZA ;
11811180
11821181 return Inlinability;
11831182}
@@ -1188,18 +1187,18 @@ void AArch64TargetCodeGenInfo::checkFunctionCallABIStreaming(
11881187 if (!Caller || !Callee || !Callee->hasAttr <AlwaysInlineAttr>())
11891188 return ;
11901189
1191- ArmStreamingInlinability Inlinability =
1192- GetArmStreamingInlinability (Caller, Callee);
1190+ ArmSMEInlinability Inlinability = GetArmSMEInlinability (Caller, Callee);
11931191
1194- if (bool (Inlinability &
1195- ArmStreamingInlinability::MismatchedStreamingCompatibility) )
1192+ if ((Inlinability & ArmSMEInlinability::MismatchedStreamingCompatibility) !=
1193+ 0 )
11961194 CGM.getDiags ().Report (
1197- CallLoc, bool (Inlinability &
1198- ArmStreamingInlinability ::IncompatibleStreamingModes)
1199- ? diag::err_function_always_inline_attribute_mismatch
1200- : diag::warn_function_always_inline_attribute_mismatch)
1195+ CallLoc,
1196+ (Inlinability & ArmSMEInlinability ::IncompatibleStreamingModes) != 0
1197+ ? diag::err_function_always_inline_attribute_mismatch
1198+ : diag::warn_function_always_inline_attribute_mismatch)
12011199 << Caller->getDeclName () << Callee->getDeclName () << " streaming" ;
1202- if (bool (Inlinability & ArmStreamingInlinability::CalleeHasNewZA))
1200+
1201+ if ((Inlinability & ArmSMEInlinability::CalleeRequiresNewZA) != 0 )
12031202 CGM.getDiags ().Report (CallLoc, diag::err_function_always_inline_new_za)
12041203 << Callee->getDeclName ();
12051204}
@@ -1238,8 +1237,7 @@ void AArch64TargetCodeGenInfo::checkFunctionCallABI(CodeGenModule &CGM,
12381237bool AArch64TargetCodeGenInfo::wouldInliningViolateFunctionCallABI (
12391238 const FunctionDecl *Caller, const FunctionDecl *Callee) const {
12401239 return Caller && Callee &&
1241- GetArmStreamingInlinability (Caller, Callee) !=
1242- ArmStreamingInlinability::Ok;
1240+ GetArmSMEInlinability (Caller, Callee) != ArmSMEInlinability::Ok;
12431241}
12441242
12451243void AArch64ABIInfo::appendAttributeMangling (TargetClonesAttr *Attr,
0 commit comments