[llvm] [RISCV] Handle RVV return type in calling convention correctly (PR #87736)
Brandon Wu via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 11 05:16:51 PDT 2024
================
@@ -21077,7 +21079,92 @@ unsigned RISCVTargetLowering::getMinimumJumpTableEntries() const {
return Subtarget.getMinimumJumpTableEntries();
}
-void RVVArgDispatcher::constructArgInfos(ArrayRef<Type *> TypeList) {
+// Handle single arg such as return value.
+template <typename Arg>
+void RVVArgDispatcher::constructArgInfos(ArrayRef<Arg> ArgList) {
+ // This lambda determines whether an array of types are constructed by
+ // homogeneous vector types.
+ auto isHomogeneousScalableVectorType = [](ArrayRef<Arg> ArgList) {
+ // First, extract the first element in the argument type.
+ MVT FirstArgRegType;
+ unsigned FirstArgElements = 0;
+ auto It = ArgList.begin();
+ bool IsPart = false;
+
+ if (It == ArgList.end())
+ return false;
+
+ for (; It != ArgList.end(); ++It) {
+ FirstArgRegType = It->VT;
+ FirstArgRegType.dump();
----------------
4vtomat wrote:
Oh, I forgot to remove it lol~
https://github.com/llvm/llvm-project/pull/87736
More information about the llvm-commits
mailing list