[llvm] [GISel][RISCV]Implement indirect parameter passing for large scalars (PR #95429)
Gábor Spaits via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 13 11:06:12 PDT 2024
================
@@ -751,6 +751,7 @@ bool CallLowering::handleAssignments(ValueHandler &Handler,
const LLT NewLLT = Handler.isIncomingArgumentHandler() ? LocTy : ValTy;
const EVT OrigVT = EVT::getEVT(Args[i].Ty);
const LLT OrigTy = getLLTForType(*Args[i].Ty, DL);
+ const LLT PointerTy = LLT::pointer(0, DL.getPointerSizeInBits(0));
// Expected to be multiple regs for a single incoming arg.
----------------
spaits wrote:
Well it is still true I think. The `deterimenAssignments` callback still creates four assignment with four registers with four flags (I am talking about the example that is rv32 with 128 bit registers), but those regs wont be actually created in the GMIR since here we handle indirect parameter passing. I think it may be still usefule information, that if the value were to be split into different register how would it fit in them (basically that is the infor created by `deterimenAssignments` if I am correct). Nevertheless I still not came up with an idea how to use that extra information but who knows when will it be good :) .
https://github.com/llvm/llvm-project/pull/95429
More information about the llvm-commits
mailing list