[llvm] [RISCV] RISCV vector calling convention (2/2) (PR #79096)

Brandon Wu via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 7 00:51:43 PST 2024


================
@@ -20543,6 +20531,121 @@ unsigned RISCVTargetLowering::getMinimumJumpTableEntries() const {
   return Subtarget.getMinimumJumpTableEntries();
 }
 
+void RVVArgDispatcher::constructArgInfos(Type *Ty) {
----------------
4vtomat wrote:

By **vector tuple type**, I mean RVV tuple type, for example: `vint32m2x2_t` which needs 2 lmul2 vector registers. The llvm models it as `struct {vint32m2_t, vint32m2_t}` and it would be flattened by backend which makes it impossible to differentiate normal vector type and vector tuple type in `AssignFn`, that's why I added the helper to both GISel and normal selection DAG.

https://github.com/llvm/llvm-project/pull/79096


More information about the llvm-commits mailing list