[clang] [clang] Pass fp128 indirectly and return in xmm0 on Windows (PR #115052)

Reid Kleckner via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 28 16:23:29 PST 2025


rnk wrote:

If you take the two PRs together, we're going to implement the indirection logic at both the frontend and backend level. If we do it in the backend, I think it's technically necessary to do it in the frontend, but it is consistent with how we handle all other types. I'd like to see that explained in the commit message: why should this be in the frontend as well?

To answer that question, there are tradeoffs, but it's generally good for memory optimizations to be able to observe ABI details. For example, the backend lowering creates extra stack objects if we need to pass the same fp128 argument twice to two functions, whereas mid-level optimizations might be able to remove that.

Otherwise, I think this is good to go. I suppose Rust folks are watching this PR, otherwise, I'd say loop them in.

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


More information about the cfe-commits mailing list