Skip to content

Commit 86ac834

Browse files
authored
[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.
1 parent 9d37e80 commit 86ac834

File tree

1 file changed

+3
-12
lines changed

1 file changed

+3
-12
lines changed

llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22356,20 +22356,12 @@ void RISCVTargetLowering::analyzeInputArgs(
2235622356
MachineFunction &MF, CCState &CCInfo,
2235722357
const SmallVectorImpl<ISD::InputArg> &Ins, bool IsRet,
2235822358
RISCVCCAssignFn Fn) const {
22359-
FunctionType *FType = MF.getFunction().getFunctionType();
22360-
2236122359
for (const auto &[Idx, In] : enumerate(Ins)) {
2236222360
MVT ArgVT = In.VT;
2236322361
ISD::ArgFlagsTy ArgFlags = In.Flags;
2236422362

22365-
Type *ArgTy = nullptr;
22366-
if (IsRet)
22367-
ArgTy = FType->getReturnType();
22368-
else if (In.isOrigArg())
22369-
ArgTy = FType->getParamType(In.getOrigArgIndex());
22370-
2237122363
if (Fn(Idx, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, CCInfo, IsRet,
22372-
ArgTy)) {
22364+
In.OrigTy)) {
2237322365
LLVM_DEBUG(dbgs() << "InputArg #" << Idx << " has unhandled type "
2237422366
<< ArgVT << '\n');
2237522367
llvm_unreachable(nullptr);
@@ -22384,10 +22376,9 @@ void RISCVTargetLowering::analyzeOutputArgs(
2238422376
for (const auto &[Idx, Out] : enumerate(Outs)) {
2238522377
MVT ArgVT = Out.VT;
2238622378
ISD::ArgFlagsTy ArgFlags = Out.Flags;
22387-
Type *OrigTy = CLI ? CLI->getArgs()[Out.OrigArgIndex].Ty : nullptr;
2238822379

2238922380
if (Fn(Idx, ArgVT, ArgVT, CCValAssign::Full, ArgFlags, CCInfo, IsRet,
22390-
OrigTy)) {
22381+
Out.OrigTy)) {
2239122382
LLVM_DEBUG(dbgs() << "OutputArg #" << Idx << " has unhandled type "
2239222383
<< ArgVT << "\n");
2239322384
llvm_unreachable(nullptr);
@@ -23169,7 +23160,7 @@ bool RISCVTargetLowering::CanLowerReturn(
2316923160
MVT VT = Outs[i].VT;
2317023161
ISD::ArgFlagsTy ArgFlags = Outs[i].Flags;
2317123162
if (CC_RISCV(i, VT, VT, CCValAssign::Full, ArgFlags, CCInfo,
23172-
/*IsRet=*/true, nullptr))
23163+
/*IsRet=*/true, Outs[i].OrigTy))
2317323164
return false;
2317423165
}
2317523166
return true;

0 commit comments

Comments
 (0)