[PATCH] D127209: [SVE][AArch64] Refine hasSVEArgsOrReturn
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 16 10:53:09 PDT 2022
efriedma added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:6196
+ CallConv = CallingConv::AArch64_SVE_VectorCall;
+ FuncInfo->setIsSVECC(true);
+ }
----------------
MattDevereau wrote:
> efriedma wrote:
> > I don't understand what you're doing here; FuncInfo describes the caller, not the callee.
> Not doing this causes `sve_caller_sve_callee` and `sve_caller_sve_callee_fastcc` in `sve-tailcall.ll` to fail.
> From `ISD::InputArg`:
>
> ```
> /// InputArg - This struct carries flags and type information about a
> /// single incoming (formal) argument or incoming (from the perspective
> /// of the caller) return value virtual register.
> ///
> ```
In @sve_caller_sve_callee, the return type is an SVE type, so we should be calling `setIsSVECC(true)` elsewhere.
I think this maybe another case of the issue that LowerReturn doesn't run/runs too late?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D127209/new/
https://reviews.llvm.org/D127209
More information about the llvm-commits
mailing list