aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSeth Brenith <sethbrenith@users.noreply.github.com>2023-12-04 11:53:36 -0800
committerGitHub <noreply@github.com>2023-12-04 11:53:36 -0800
commitf6c7baea098aac03687f5041fc860ca95f070e4e (patch)
tree23826312afbd0dea8f55c49abc04beb60ade28c6 /clang/lib/Frontend/CompilerInvocation.cpp
parentc43c86c285a39dcc6ec4a15b8f155152031b3997 (diff)
downloadllvm-f6c7baea098aac03687f5041fc860ca95f070e4e.zip
llvm-f6c7baea098aac03687f5041fc860ca95f070e4e.tar.gz
llvm-f6c7baea098aac03687f5041fc860ca95f070e4e.tar.bz2
[Win/x64] Update preserve_most to treat XMM registers like C (#73866)
As [scottmcm described](https://discourse.llvm.org/t/conv-c-and-conv-preservemost-mix-badly-on-windows-x64/73054), the `preserve_most` calling convention, as currently implemented, is a bad fit for Windows on x64. The intent of `preserve_most` is "to make the code in the caller as unintrusive as possible", but `preserve_most` causes the caller to spill and restore ten SIMD registers. It would be preferable to make `preserve_most` treat the XMM registers however the C calling convention does on the target operating system. This is a breaking change, but the documentation indicates that `preserve_most` is still experimental, so I believe that ABI compatibility is not yet a requirement.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions