[all-commits] [llvm/llvm-project] 5fbab4: [MS] Apply `inreg` to AArch64 sret parms on instan...

Reid Kleckner via All-commits all-commits at lists.llvm.org
Thu Oct 15 15:00:21 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 5fbab4025eb57b12f2842ab188ff07a110708e1d
      https://github.com/llvm/llvm-project/commit/5fbab4025eb57b12f2842ab188ff07a110708e1d
  Author: Reid Kleckner <rnk at google.com>
  Date:   2020-10-15 (Thu, 15 Oct 2020)

  Changed paths:
    M clang/lib/CodeGen/MicrosoftCXXABI.cpp
    M clang/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp

  Log Message:
  -----------
  [MS] Apply `inreg` to AArch64 sret parms on instance methods

The documentation rules indicate that instance methods should return
large, trivially copyable aggregates via X1/X0 and not X8 as is normally
done when returning such structs from free functions:
https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=vs-2019#return-values

Fixes PR47836, a bug in the initial implementation of these rules.

I tried to simplify the logic a bit as well while I'm here.

Differential Revision: https://reviews.llvm.org/D89362




More information about the All-commits mailing list