Skip to content

Commit 9b439cd

Browse files
committed
Tweak enum
1 parent a3e10e3 commit 9b439cd

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

clang/lib/CodeGen/Targets/AArch64.cpp

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1148,15 +1148,18 @@ void AArch64TargetCodeGenInfo::checkFunctionABI(
11481148

11491149
enum class ArmSMEInlinability : uint8_t {
11501150
Ok = 0,
1151-
MismatchedStreamingCompatibility = 1 << 0,
1152-
IncompatibleStreamingModes = 1 << 1,
1153-
CalleeRequiresNewZA = 1 << 2,
1154-
LLVM_MARK_AS_BITMASK_ENUM(/*LargestValue=*/CalleeRequiresNewZA),
1151+
ErrorCalleeRequiresNewZA = 1 << 0,
1152+
WarnIncompatibleStreamingModes = 1 << 1,
1153+
ErrorIncompatibleStreamingModes = 1 << 2,
1154+
1155+
IncompatibleStreamingModes =
1156+
WarnIncompatibleStreamingModes | ErrorIncompatibleStreamingModes,
1157+
1158+
LLVM_MARK_AS_BITMASK_ENUM(/*LargestValue=*/ErrorIncompatibleStreamingModes),
11551159
};
11561160

11571161
/// 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).
1162+
/// \p Caller. Returns the issue (if any) in the ArmSMEInlinability bit enum.
11601163
static ArmSMEInlinability GetArmSMEInlinability(const FunctionDecl *Caller,
11611164
const FunctionDecl *Callee) {
11621165
bool CallerIsStreaming =
@@ -1170,13 +1173,14 @@ static ArmSMEInlinability GetArmSMEInlinability(const FunctionDecl *Caller,
11701173

11711174
if (!CalleeIsStreamingCompatible &&
11721175
(CallerIsStreaming != CalleeIsStreaming || CallerIsStreamingCompatible)) {
1173-
Inlinability |= ArmSMEInlinability::MismatchedStreamingCompatibility;
11741176
if (CalleeIsStreaming)
1175-
Inlinability |= ArmSMEInlinability::IncompatibleStreamingModes;
1177+
Inlinability |= ArmSMEInlinability::ErrorIncompatibleStreamingModes;
1178+
else
1179+
Inlinability |= ArmSMEInlinability::WarnIncompatibleStreamingModes;
11761180
}
11771181
if (auto *NewAttr = Callee->getAttr<ArmNewAttr>())
11781182
if (NewAttr->isNewZA())
1179-
Inlinability |= ArmSMEInlinability::CalleeRequiresNewZA;
1183+
Inlinability |= ArmSMEInlinability::ErrorCalleeRequiresNewZA;
11801184

11811185
return Inlinability;
11821186
}
@@ -1189,18 +1193,18 @@ void AArch64TargetCodeGenInfo::checkFunctionCallABIStreaming(
11891193

11901194
ArmSMEInlinability Inlinability = GetArmSMEInlinability(Caller, Callee);
11911195

1192-
if ((Inlinability & ArmSMEInlinability::MismatchedStreamingCompatibility) !=
1196+
if ((Inlinability & ArmSMEInlinability::IncompatibleStreamingModes) !=
11931197
ArmSMEInlinability::Ok)
11941198
CGM.getDiags().Report(
11951199
CallLoc,
1196-
(Inlinability & ArmSMEInlinability::IncompatibleStreamingModes) !=
1197-
ArmSMEInlinability::Ok
1200+
(Inlinability & ArmSMEInlinability::ErrorIncompatibleStreamingModes) ==
1201+
ArmSMEInlinability::ErrorIncompatibleStreamingModes
11981202
? diag::err_function_always_inline_attribute_mismatch
11991203
: diag::warn_function_always_inline_attribute_mismatch)
12001204
<< Caller->getDeclName() << Callee->getDeclName() << "streaming";
12011205

1202-
if ((Inlinability & ArmSMEInlinability::CalleeRequiresNewZA) !=
1203-
ArmSMEInlinability::Ok)
1206+
if ((Inlinability & ArmSMEInlinability::ErrorCalleeRequiresNewZA) ==
1207+
ArmSMEInlinability::ErrorCalleeRequiresNewZA)
12041208
CGM.getDiags().Report(CallLoc, diag::err_function_always_inline_new_za)
12051209
<< Callee->getDeclName();
12061210
}

0 commit comments

Comments
 (0)