[llvm] fix preserve_none in X86 backend (PR #192300)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 17 12:16:17 PDT 2026


efriedma-quic wrote:

> So I expect everything not specified in CC_X86_64_Preserve_None should be delegated to CC_X86_64_C, including CCIfByVal<CCPassByVal<8, 8>>, but why doesn't it work in this case?

The underlying representation of a byval value is a pointer, so it matches `CCIfType<[i64]`.

Maybe it would be more clear if we refactored the code to use some `CCIfCC<"CallingConv::PreserveNone"` checks inside CC_X86_64_C, instead of using `CCDelegateTo<CC_X86_64_C>`.

https://github.com/llvm/llvm-project/pull/192300


More information about the llvm-commits mailing list