[llvm] [RISCV] Use OrigTy from InputArg/OutputArg (NFCI) (PR #154095)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 18 04:13:25 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-risc-v
Author: Nikita Popov (nikic)
<details>
<summary>Changes</summary>
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.
---
Full diff: https://github.com/llvm/llvm-project/pull/154095.diff
1 Files Affected:
- (modified) llvm/lib/Target/RISCV/RISCVISelLowering.cpp (+3-12)
``````````diff
diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
index aedba7e52e3ab..b86c240a4371c 100644
--- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
@@ -22335,20 +22335,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);
@@ -22363,10 +22355,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);
@@ -23148,7 +23139,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;
``````````
</details>
https://github.com/llvm/llvm-project/pull/154095
More information about the llvm-commits
mailing list