[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