[clang] [clang][X86] bring `regparm` in line with GCC (PR #227130)

via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 29 02:03:16 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang-codegen

Author: Folkert de Vries (folkertdev)

<details>
<summary>Changes</summary>

Removes some divergences between GCC and Clang using `regparm`. In particular

- All floats count as floats (previously `f16`, `f16b`, `long double` and `f128` did not)
- Complex numbers are always passed via the stack
- Unions are always passed like integers
- Some changes to how wrapping structs (with a single non-ZST field) are handled

I've tested this empirically (with abi-cafe)

---
Full diff: https://github.com/llvm/llvm-project/pull/227130.diff


2 Files Affected:

- (modified) clang/lib/CodeGen/Targets/X86.cpp (+85-16) 
- (modified) clang/test/CodeGen/regparm-struct.c (+74-1) 


``````````diff
The server is unavailable at this time. Please wait a few minutes before you try again.
``````````

</details>


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


More information about the cfe-commits mailing list