[llvm] [RISCV][GISel] Implement canLowerReturn. (PR #105465)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 20 23:15:47 PDT 2024
================
@@ -418,14 +416,37 @@ bool RISCVCallLowering::lowerReturn(MachineIRBuilder &MIRBuilder,
/*IsRet=*/true, Dispatcher);
RISCVOutgoingValueHandler Handler(MIRBuilder, MF.getRegInfo(), Ret);
if (!determineAndHandleAssignments(Handler, Assigner, SplitRetInfos,
- MIRBuilder, CC, F.isVarArg()))
+ MIRBuilder, CC, F.isVarArg()))
return false;
}
MIRBuilder.insertInstr(Ret);
return true;
}
+bool RISCVCallLowering::canLowerReturn(MachineFunction &MF,
+ CallingConv::ID CallConv,
+ SmallVectorImpl<BaseArgInfo> &Outs,
+ bool IsVarArg) const {
+ SmallVector<CCValAssign, 16> ArgLocs;
+ const auto &TLI = *getTLI<RISCVTargetLowering>();
+ CCState CCInfo(CallConv, IsVarArg, MF, ArgLocs,
+ MF.getFunction().getContext());
+
+ RVVArgDispatcher Dispatcher{&MF, &TLI,
+ ArrayRef(MF.getFunction().getReturnType())};
+
+ for (unsigned I = 0, E = Outs.size(); I < E; ++I) {
+ MVT VT = MVT::getVT(Outs[I].Ty);
+ RISCVABI::ABI ABI = MF.getSubtarget<RISCVSubtarget>().getTargetABI();
----------------
arsenm wrote:
Pull this out of the loop?
https://github.com/llvm/llvm-project/pull/105465
More information about the llvm-commits
mailing list