[PATCH] D127209: [SVE][AArch64] Refine hasSVEArgsOrReturn
Peter Waller via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 30 03:30:42 PDT 2022
peterwaller-arm accepted this revision.
peterwaller-arm added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:6202
if (CalleeInSVE || CalleeOutSVE)
CallConv = CallingConv::AArch64_SVE_VectorCall;
}
----------------
peterwaller-arm wrote:
> Note: "Ins" contains the return values of the call, and "Outs" contains the parameters to the call. I think these are confusingly named, at best.
>
> This update of CallConv is a reference to CLI.CallConv, so it's setting the CallConv in the `CLI`, which gets passed around for various decision making.
>
> I note that the logic for setting `CalleeOutSVE` is incorrect, because it does not account for the position of the arguments. If I put a scalable vector in any parameter it will update the calling convention, even though we know that's not the correct logic.
>
> I didn't yet find if/where this matters. If it does not matter I think it may be best removed to save future confusion, since it's incorrect.
With reflection, I'm changing my position on this for this patch, so please go ahead.
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