[RISCV] Use OrigTy from InputArg/OutputArg (NFCI) (#154095)

The InputArg/OutputArg now contains the OrigTy, so directly use that
instead of trying to recover it.

CC_RISCV is now *nearly* a normal CC assignment function. However, it
still differs by having an IsRet flag.
This commit is contained in:
Nikita Popov 2025-08-19 09:28:24 +02:00 committed by GitHub
parent 9d37e80d3c
commit 86ac834df5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -22356,20 +22356,12 @@ void RISCVTargetLowering::analyzeInputArgs(
MachineFunction &MF, CCState &CCInfo,
const SmallVectorImpl<ISD::InputArg> &Ins, bool IsRet,
RISCVCCAssignFn Fn) const {
FunctionType *FType = MF.getFunction().getFunctionType();
for (const auto &[Idx, In] : enumerate(Ins)) {
MVT ArgVT = In.VT;
ISD::ArgFlagsTy ArgFlags = In.Flags;
Type *ArgTy = nullptr;
if (IsRet)
ArgTy = FType->getReturnType();
else if (In.isOrigArg())
ArgTy = FType->getParamType(In.getOrigArgIndex());
if (Fn(Idx, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, CCInfo, IsRet,
ArgTy)) {
In.OrigTy)) {
LLVM_DEBUG(dbgs() << "InputArg #" << Idx << " has unhandled type "
<< ArgVT << '\n');
llvm_unreachable(nullptr);
@ -22384,10 +22376,9 @@ void RISCVTargetLowering::analyzeOutputArgs(
for (const auto &[Idx, Out] : enumerate(Outs)) {
MVT ArgVT = Out.VT;
ISD::ArgFlagsTy ArgFlags = Out.Flags;
Type *OrigTy = CLI ? CLI->getArgs()[Out.OrigArgIndex].Ty : nullptr;
if (Fn(Idx, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, CCInfo, IsRet,
OrigTy)) {
Out.OrigTy)) {
LLVM_DEBUG(dbgs() << "OutputArg #" << Idx << " has unhandled type "
<< ArgVT << "\n");
llvm_unreachable(nullptr);
@ -23169,7 +23160,7 @@ bool RISCVTargetLowering::CanLowerReturn(
MVT VT = Outs[i].VT;
ISD::ArgFlagsTy ArgFlags = Outs[i].Flags;
if (CC_RISCV(i, VT, VT, CCValAssign::Full, ArgFlags, CCInfo,
/*IsRet=*/true, nullptr))
/*IsRet=*/true, Outs[i].OrigTy))
return false;
}
return true;