[clang] [Clang][AArch64] Warn when calling streaming/non-streaming about vect… (PR #79842)
Sander de Smalen via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 19 01:48:52 PDT 2024
================
@@ -7513,6 +7516,30 @@ void Sema::checkCall(NamedDecl *FDecl, const FunctionProtoType *Proto,
}
}
+ auto *CallerFD = dyn_cast<FunctionDecl>(CurContext);
+ bool IsCalleeStreaming =
+ (ExtInfo.AArch64SMEAttributes & FunctionType::SME_PStateSMEnabledMask);
+ bool IsCalleeStreamingCompatible =
+ (ExtInfo.AArch64SMEAttributes &
+ FunctionType::SME_PStateSMCompatibleMask);
+ bool IsBuiltin = (FD && FD->getBuiltinID());
+ AnyScalableArgsOrRet |= Proto->getReturnType()->isSizelessVectorType();
+
+ // If the caller is a function and the callee has a different
+ // non-compitable streaming attribute. If it passed any VL-based arguments
+ // or return VL-based value, then warn that the streaming and non-streaming
+ // vector lengths may be different.
----------------
sdesmalen-arm wrote:
This comment reads a bit strange. What about:
```
// If the call requires a streaming-mode change and has scalable vector
// arguments or return values, then warn the user that the streaming and
// non-streaming vector lengths may be different.
```
https://github.com/llvm/llvm-project/pull/79842
More information about the cfe-commits
mailing list