[qt/clang/llvm]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/clang/llvm Pushed by mirror-service into branch 'upstream/users/adams381/cir-callconv-x86_64-leaf-floats'. Changed from 0000000000000000000000000000000000000000 to 1932bd2c2faf725f6e0d5905855d25a0063383a9 Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit 1932bd2c2faf725f6e0d5905855d25a0063383a9 by Adam Smith on 08/08/2026 at 21:36.. [CIR] Accept _Complex and all float formats in x86_64 callconv lowering The CallConvLowering bridge accepted only float and double, so a function taking a _Complex, or a float in any other format, failed the pass instead of being classified. An all-float aggregate failed for a different reason: its SSE eightbyte coerces to a vector, and the bridge had no way to represent one, so it reported the coercion NYI rather than emitting a wrong signature. Mapping every CIR floating-point type through FPTypeInterface covers all of them at once. A _Complex maps to the library's complex type and a vector coercion now converts back to a CIR vector. Accepting a long double also makes a union holding one classifiable. That exposes the ABI-compatibility flags, which the pass left at the library defaults. They now come from the triple and the compatibility version, which is what lets a long double union reach registers on Darwin instead of memory. updateArgAttrs appended argument attributes instead of setting them, so a name already present landed in the dictionary twice. CIRGen marks a _Complex long double parameter llvm.noundef, and the ABI then passes it byval, which wants llvm.noundef too. An integer coercion lost its bit-precise flag coming back from the classifier. A struct holding a _BitInt(128) then took __int128's 16-byte alignment for its coerce slot instead of 8. Assisted-by: Cursor / claude-opus-5 https://invent.kde.org/qt/clang/llvm/-/commit/1932bd2c2faf725f6e0d5905855d25a0063383a9