[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/main'. Changed from 0af5e8419f4bb6c830f3e2ec4b640830ea63a8b0 to af8e570d9009f398473813e8af7e617d40d87199 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 6a932c6041a58a1c352ea65c94810a13d3b453d0 by GitHub (on behalf of janr-bay) on 30/07/2026 at 11:25.. [APFloat][NFC] Generalize bitcast to also cover x87 semantics (#209781) This removes the special case code for bitcasting APInt to a float with x87 semantics in convertF80LongDoubleAPFloatToAPInt. This makes it consistent with previous removal of special cases and will remove one more small obstacle to making APFloat extensible. https://invent.kde.org/qt/clang/llvm/-/commit/6a932c6041a58a1c352ea65c94810a13d3b453d0 Git commit fcf4bb1af7450f618504201610ef8c3ef52844d7 by GitHub (on behalf of Tomer Shafir) on 30/07/2026 at 11:32.. [AArch64] Relax SDep requirement for AppleSMECompute clustering (#212603) Do not require RAW dependency for FuseAppleSMECompute. https://invent.kde.org/qt/clang/llvm/-/commit/fcf4bb1af7450f618504201610ef8c3ef52844d7 Git commit 8aeb59eab5eb0bc516628fa42e7698f23eb3f6d5 by GitHub (on behalf of Alexey Bataev) on 30/07/2026 at 11:55.. [SLP][NFC]Add extra tests for fadd/fsub reordering, NFC Reviewers: Pull Request: https://github.com/llvm/llvm-project/pull/213002 https://invent.kde.org/qt/clang/llvm/-/commit/8aeb59eab5eb0bc516628fa42e7698f23eb3f6d5 Git commit 3a687d3b86c44821ae2a013fe3d9f5bf88a471a9 by GitHub (on behalf of Louis Dionne) on 30/07/2026 at 11:57.. [libc++] Fix incorrect paper statuses (#212827) These two papers also added parallel algorithm overloads, which were never implemented but the papers were still marked as implemented. Mark the papers as Partial instead. CF #103640 and #104095 https://invent.kde.org/qt/clang/llvm/-/commit/3a687d3b86c44821ae2a013fe3d9f5bf88a471a9 Git commit a8cc3d25922b689508dc63487525c73bc2747585 by GitHub (on behalf of Nikolas Klauser) on 30/07/2026 at 12:05.. [libc++] Clean up windows macros (#207577) We have multiple macros for different Windows. However, most of them don't actually define different things. We can condense the macros to - `_WIN32` directly if it only depends on windows, or - `_LIBCPP_MSVCRT` This patch drops `_LIBCPP_MSVCRT_LIKE` and `_LIBCPP_WIN32API`, since they are equivalent to `_WIN32`. https://invent.kde.org/qt/clang/llvm/-/commit/a8cc3d25922b689508dc63487525c73bc2747585 Git commit e7b04d7b58941cc9173930871a18d149f0b8a432 by GitHub (on behalf of Nikolas Klauser) on 30/07/2026 at 12:10.. [libc++abi] Use the same .clang-format as libc++ (#208661) libc++abi is very close to libc++, and even shares some amount of code. We should keep the formatting style the same between the two libraries. https://invent.kde.org/qt/clang/llvm/-/commit/e7b04d7b58941cc9173930871a18d149f0b8a432 Git commit 7b463ebd0d5b23a5efc9ffba1363593e6c6745fb by GitHub (on behalf of Matt Arsenault) on 30/07/2026 at 12:15.. clang/AMDGPU: Forward xnack/sramecc mode to the assembler (#212955) When assembling a .s file with no target ID directive, the requested xnack/sramecc mode has no module flag to carry it. Forward the mode requested via -mxnack/-msramecc (or the -mcpu target ID modifiers) to the assembler as a target feature so it is recorded in the object's e_flags. Co-authored-by: Claude (Opus 4.8) <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/7b463ebd0d5b23a5efc9ffba1363593e6c6745fb Git commit 76140a666d18b940597bf73362d4101af0247ea6 by GitHub (on behalf of Nikolas Klauser) on 30/07/2026 at 12:15.. [libc++] Switch XFAIL in xsgetn.buffer.pass.cpp to LLVM 23 (#212969) We want to back-port the fix for xsgetn, so the XFAIL needs to be updated to reflect that. https://invent.kde.org/qt/clang/llvm/-/commit/76140a666d18b940597bf73362d4101af0247ea6 Git commit c9c03ed3991035591d2a4529f323ed9e5e345221 by GitHub (on behalf of Alexey Bataev) on 30/07/2026 at 12:19.. [SLP]Fix a crash on non-fp operator isFast request isFast should be used only on FPMathOperator kind instructons. Reviewers: Pull Request: https://github.com/llvm/llvm-project/pull/213008 https://invent.kde.org/qt/clang/llvm/-/commit/c9c03ed3991035591d2a4529f323ed9e5e345221 Git commit 424d5a7cb36fb4770f4436762b636ded1e035bb0 by GitHub (on behalf of fineg74) on 30/07/2026 at 12:29.. [OFFLOAD] Fix a platform selection issue for llvm-gpu-loader (#212893) Currently if an image supplied to llvm-gpu-loader is not properly detected by its platform detection logic it does not accept it for execution. The example could be a spirv or bitcode format. This fix allows it to rely on devices to device if an image will be accepted and uses its existing platform detection logic as an optimization only https://invent.kde.org/qt/clang/llvm/-/commit/424d5a7cb36fb4770f4436762b636ded1e035bb0 Git commit e9777c58be265687897e04c5d8013d7d6cb43571 by GitHub (on behalf of David Green) on 30/07/2026 at 12:31.. [AArch64] Add all cost kinds for integer getArithmeticInstrCost (#210759) This adds all (CodeSize, Latency, LatSize) costs to getArithmeticInstrCost integer operations, getting the cost more correct especially for operations that expand into multiple instructions. Floating point are left to another commit to limit the impact. https://invent.kde.org/qt/clang/llvm/-/commit/e9777c58be265687897e04c5d8013d7d6cb43571 Git commit dc6cd6a29a0831d1a4d607162a1dbd07b556143a by GitHub (on behalf of Benjamin Kramer) on 30/07/2026 at 12:32.. [mlir] Honor IntrHasSideEffects on IntrNoMem LLVM intrinsics (#212760) `[IntrNoMem, IntrHasSideEffects]` is a perfectly valid intrinsic trait combination, and MLIR would CSE/DCE those without checking. This mirrors how LLVM models this, see getEffectiveME in IntrinsicEmitter.cpp https://invent.kde.org/qt/clang/llvm/-/commit/dc6cd6a29a0831d1a4d607162a1dbd07b556143a Git commit 9771205212d9802c9de142335fc8af3bc52a1d85 by GitHub (on behalf of Timm Baeder) on 30/07/2026 at 12:36.. [clang][bytecode] Add Record::findBase() (#212952) Similar to findField(). https://invent.kde.org/qt/clang/llvm/-/commit/9771205212d9802c9de142335fc8af3bc52a1d85 Git commit a0c7f8366b8dbbfb25d294541ab9298851cfa65f by GitHub (on behalf of forking-google-bazel-bot[bot]) on 30/07/2026 at 12:37.. [Bazel] Fixes ba37179 (#212986) This fixes ba371791db4f9e7ef05f0a1c26529298b2951a4b (#212948). Buildkite error link: https://buildkite.com/llvm-project/upstream-bazel/builds?commit=ba371791db4f9e7ef05f0a1c26529298b2951a4b Co-authored-by: Google Bazel Bot <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/a0c7f8366b8dbbfb25d294541ab9298851cfa65f Git commit 6a898832ff382b1a288f9eb3bc5cd1f37d0fc29f by GitHub (on behalf of Arseniy Obolenskiy) on 30/07/2026 at 12:37.. [AMDGPU] Fix getDestEquivalentVGPRClass narrowing AV-class registers (#212963) isVGPRClass() rejects AV-class registers, so they were narrowed to VGPR-only instead of preserved. Same reasoning behind the fix as in SIPreAllocateWWMRegs (see https://github.com/llvm/llvm-project/pull/211560) https://invent.kde.org/qt/clang/llvm/-/commit/6a898832ff382b1a288f9eb3bc5cd1f37d0fc29f Git commit 8b36461fb271df4484a375c4b80800fcc8ef8e91 by GitHub (on behalf of Ebuka Ezike) on 30/07/2026 at 12:50.. [lldb-dap] Mirgate TestDAP_evaluate. (#212282) rewrite the `assertEvaluate` and `assertEvaluateFailure` helpers to use the already existing `session.verify_evaluate` function. THe helpers are now inlined functions. https://invent.kde.org/qt/clang/llvm/-/commit/8b36461fb271df4484a375c4b80800fcc8ef8e91 Git commit 179ef900e31ef3b0dfbe762acfa0299551933c8e by GitHub (on behalf of Marc Auberer) on 30/07/2026 at 12:57.. [CodeGen] Remove deprecated createTargetMachineForTriple overload (#212984) This overload was deprecated in favor of the Triple overload and marked for removal after llvm 23 branched. All in-tree callers already use the Triple overload. Co-authored-by: Claude <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/179ef900e31ef3b0dfbe762acfa0299551933c8e Git commit 289a4568f7d18d1d42687f3a2fc2c72bcbadaa28 by GitHub (on behalf of Marc Auberer) on 30/07/2026 at 12:58.. [ADT] Remove deprecated llvm::make_scope_exit (#212987) Update remaining call sites in lldb to construct llvm::scope_exit directly, per the deprecation notice. --------- Co-authored-by: Claude <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/289a4568f7d18d1d42687f3a2fc2c72bcbadaa28 Git commit b11722f1d3bd5debac949fe366c1801d39b8a2bb by GitHub (on behalf of michaelselehov) on 30/07/2026 at 13:11.. [llvm-calc-occupancy] Add an AMDGPU occupancy calculator tool (#208727) Add a command-line utility that reports the occupancy (waves/EU) an AMDGPU kernel would reach for a given workgroup size, VGPR/SGPR usage and LDS. It reuses the backend's own occupancy math, so the numbers match the compiler. Includes a lit test and a CommandGuide man page. Assisted-by: Claude Opus --------- Co-authored-by: mselehov <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/b11722f1d3bd5debac949fe366c1801d39b8a2bb Git commit 04536c4984206eb20d93355145f9f4e9a0f0d266 by GitHub (on behalf of Pradeep Kumar) on 30/07/2026 at 13:15.. [MLIR][APFloat] Add Type definitions for UE5M3 type (#212712) This commit adds UE5M3 type definitions in MLIR based on the Float8E5M3FNU APFloat type https://invent.kde.org/qt/clang/llvm/-/commit/04536c4984206eb20d93355145f9f4e9a0f0d266 Git commit 31d99ba9e29acbb466380224dbad09eb8cb115ed by GitHub (on behalf of Eugene Epshteyn) on 30/07/2026 at 13:38.. [flang] Delete the array-value-copy pass (#212643) Since the removal of the legacy expression lowering (#210385, #210621, #210639, #210873) nothing in flang produces the array-value operations this pass legalizes, and #211816 already removed it from the default pipeline. Delete the pass and the pieces that existed solely for it: - ArrayValueCopy.cpp, its Passes.td definition, createArrayValueCopyPass, and the (duplicated) CMake source entries. - Optimizer/Builder/Factory.h in its entirety: the pass was its only includer, and its contents (attrFortranArrayOffsets, getExtents/getOrigins on shape values, originateIndices) have no other users. - The getTypeParams(fir::ArrayLoadOp) overload (sole caller was the pass) and the ArrayLoadOp forward declaration in BoxValue.h. - The pass LIT tests (array-value-copy*.fir, array-copies-pointers.fir, array-modify.fir); stack-arrays-hlfir.f90 drops the --array-value-copy stage from its RUN pipeline. - The pass-describing paragraphs in fstack-arrays.md and the stale ArrayValueCopy TODO entry in ParameterizedDerivedTypes.md. The array-value operations themselves (fir.array_load and friends; not fir.array_coor) remain in the dialect and will be deleted in a follow-up. Assisted-by: AI https://invent.kde.org/qt/clang/llvm/-/commit/31d99ba9e29acbb466380224dbad09eb8cb115ed Git commit 938d446f7c1caa33aed9fcfdf350419fe8fb1002 by GitHub (on behalf of Luke Lau) on 30/07/2026 at 13:38.. [Support] Don't bring PatternMatchHelpers into top-level scope. NFC (#213016) https://invent.kde.org/qt/clang/llvm/-/commit/938d446f7c1caa33aed9fcfdf350419fe8fb1002 Git commit 6e9a51c805878c03fe0813688bd8ad2ef9cb7c6f by GitHub (on behalf of Pavel Labath) on 30/07/2026 at 13:41.. [libc][cmake] Make hermetic tests support FLAGS (#212460) Currently the tests skip themselves because this gets treated as a (missing) dependency. I also enable tests that were explicitly skipped with UNIT_TEST_ONLY. Some of the FP tests are claiming to be failing on GPUs (in 2023). If that is still true, I'll skip them with if(TARGET_IS_GPU). https://invent.kde.org/qt/clang/llvm/-/commit/6e9a51c805878c03fe0813688bd8ad2ef9cb7c6f Git commit cc623d6e991ffbcf85fe5b7bc637d9070eee0015 by GitHub (on behalf of Pavel Labath) on 30/07/2026 at 13:46.. [libc][test] Add EXPECT_STREQ and ASSERT_STREQ macros for integration tests (#212729) Add EXPECT_STREQ and ASSERT_STREQ macros to IntegrationTest/test.h using cpp::string_view. Note that, unlike the unit test macro (but like googletest), this version treats NULL as distinct from "". The inconsistency is unfortunate, but I think it's important as the code is used for testing functions like getenv(), where "" and NULL have very different meanings. We should probably follow this up with a change to make the unit test macro behave the same way. Update integration tests to use the new macros instead of handrolled string equality functions (my_streq), strcmp, inline_strcmp, or string_view wrappers. https://invent.kde.org/qt/clang/llvm/-/commit/cc623d6e991ffbcf85fe5b7bc637d9070eee0015 Git commit 3122acf9f49012f645ea45e741b81910333a77bc by GitHub (on behalf of Pavel Labath) on 30/07/2026 at 13:46.. [libc] Move test macro implementations out of the Test class (#212783) This is useful for several reasons: - it makes it possible to use the macros outside of the test methods, aligning with googletest. Although this isn't recommended, the alternatives are often not worth it. - it makes it possible (with additional changes) to expose this infrastructure to C_TESTs (which currently use the assert() macro, which is a no-op in release mode) - it makes it possible to add (and have assertions in) googletest style SetUp/TearDownTestSuite functions. I've converted the main assertion macros for now, to test the waters. I'm planning to handle EXPECT/ASSERT_THAT and EXPECT/ASSERT_EXIT/DEATH in a follow-up. https://invent.kde.org/qt/clang/llvm/-/commit/3122acf9f49012f645ea45e741b81910333a77bc Git commit 44840ca0fa1c3cc32278a633dc4fd86c7605392d by GitHub (on behalf of Paul Walker) on 30/07/2026 at 13:47.. [NFC][LLVM] Cleanup Transforms/InstCombine/AArch64/sve-intrinsic-simplify-*.ll (#213012) https://invent.kde.org/qt/clang/llvm/-/commit/44840ca0fa1c3cc32278a633dc4fd86c7605392d Git commit 0c60c8ad15a0c4255f094bc799c80a683348109c by GitHub (on behalf of Diego Novillo) on 30/07/2026 at 13:47.. [SPIRV] Emit NonSemantic DebugTypedef (#211883) This adds `DebugTypedef` emission to the SPIR-V NonSemantic.Shader.DebugInfo handler. `SPIRVNonSemanticDebugHandler` now collects `DIDerivedType` nodes tagged `DW_TAG_typedef` and emits one `DebugTypedef` per node. The emitter reuses the handler's type-id map and skips a typedef whose base type was not emitted. This one has similar limitations to the other type emitters (tracked in #211850) 1. Typedefs are emitted in one `DebugInfoFinder`-order pass, so a typedef whose base is another typedef emitted later in that pass is dropped. 2. The Parent operand uses the enclosing type's id when the typedef's scope is an emitted `DIType`, otherwise the compile unit. On its own this PR emits no type that can be a typedef's scope. I'll address this after debug info for composite types is in mainline. Tests: 1. `debug-typedef.ll` covers a file-scope typedef of `int` parented to the compile unit, checking all six operands. 2. `debug-typedef-skip-base-not-in-regs.ll` covers the skip path with a typedef of a pointer that has no DWARF address space. 3. `debug-typedef-nested-drop.ll`: tests the one-pass limitation: a two-level typedef emits one `DebugTypedef`, with `--implicit-check-not=DebugTypedef`. https://invent.kde.org/qt/clang/llvm/-/commit/0c60c8ad15a0c4255f094bc799c80a683348109c Git commit cf6335b275a996adff8334cb35245480ece481e1 by GitHub (on behalf of tfzee) on 30/07/2026 at 13:59.. [X86] Lower scalar bf16 arithmetic on AVX10.2 via packed ops (#212245) Currently basic(fadd/fsub/fmul/fdiv/fsqrt/fma) bf16 operations, as they are not natively supported, are expanded to f32 operations. However with AVX10.2 there are packed versions for these operations which should be used instead and are enabled with this PR. Since there is no native bf16 register class I instead go through f16 since it matches its size and register class. This conversion will end up getting optimized away leaving only the intended packed operation. I used AI to double check and expand on comments. https://invent.kde.org/qt/clang/llvm/-/commit/cf6335b275a996adff8334cb35245480ece481e1 Git commit 409b7b49623582da0b5f6a6eb5e607ffe19cd349 by GitHub (on behalf of Paul Walker) on 30/07/2026 at 14:00.. [NFC][AArch64ISelLowering] Use getExtractSubvector and getInsertSubvector helpers. (#213004) https://invent.kde.org/qt/clang/llvm/-/commit/409b7b49623582da0b5f6a6eb5e607ffe19cd349 Git commit f30df0953917256142cfbe1172e22ebbca8204b3 by GitHub (on behalf of Fateme Hosseini) on 30/07/2026 at 14:04.. [Hexagon] Fix ISel error: LLVM: cannot select -fmaximum (#211283) This patch adds a custom lowering for FMAXIMUM. FMAXIMUM is NaN-propagating, and currently, we don't have any hexagon instruction to support that behaviour. The patch is also extended to cover FMINIMUM as well. Check if any of the inputs are NaN. If so, propagate the NaN to the output, otherwise return the maximum/minimum of the inputs, using ISD::FMINNUM/ISD::FMAXNUM to run Hexagon's F2_sfmin/F2_sfmax when no operand is NaN. NaN is propagated (rather than replaced with a new ConstantFP NaN node) to avoid triggering a wrong C2_MUX selection in ISD::SELECT. https://invent.kde.org/qt/clang/llvm/-/commit/f30df0953917256142cfbe1172e22ebbca8204b3 Git commit 2d697f8562d7845d5554cc1d2cd2264401b9d68f by GitHub (on behalf of Zahira Ammarguellat) on 30/07/2026 at 14:07.. [OpenMP] Restore loop variable values after loop-transformation constructs. (#212853) This PR relands #208533 which was reverted in #212832 due to test failures with iterator-based loops. Original Change: #208533 fixes loop variable finalization for OpenMP 6.0 loop-transformations constructs: tile, stripe, reverse, interchange and fuse to comply with spec requirement page 371, lines 19-21. The spec requires that "After the execution of the loop-transforming construct, the loop-iteration variables of any of its transformation-affected loops have the values that they would have without the loop-transforming directive". What's Fixed in This Reland: The original implementation attempted to finalize all loop variables, including iterators in range-based for loops (CXXForRangeStmt). This caused issues because the finalization formula `final_value = lower_bound + num_iterations * step` only applies to arithmetic types (integers, floats). https://invent.kde.org/qt/clang/llvm/-/commit/2d697f8562d7845d5554cc1d2cd2264401b9d68f Git commit b95468ff04ba648fa637a4c0783b0e2d332b712c by GitHub (on behalf of Paulius Velesko) on 30/07/2026 at 14:10.. [HIPSPV] Add in-tree SPIR-V backend support for chipStar (#206910) https://invent.kde.org/qt/clang/llvm/-/commit/b95468ff04ba648fa637a4c0783b0e2d332b712c Git commit cb0944c34b44c4ceadc891e7ee8fd5013ada8b93 by GitHub (on behalf of Nick Sarnie) on 30/07/2026 at 14:10.. [offload][lit] Add jit unittest (#212860) Basic test for the JIT path. Context: https://github.com/llvm/llvm-project/pull/212823 --------- Signed-off-by: Nick Sarnie <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/cb0944c34b44c4ceadc891e7ee8fd5013ada8b93 Git commit 11d7c9c9b4e8ebaf5f9bfb6ba80aecd498aa25ca by GitHub (on behalf of michaelselehov) on 30/07/2026 at 14:12.. [llvm-calc-occupancy] Fix build after SGPR queries moved to TargetParser (#213023) Urgent buildbot fix for #208727. That PR was developed before #209848, which moved the SGPR count queries into TargetParser and removed `AMDGPU::IsaInfo::getAddressableNumSGPRs()`, so `llvm-calc-occupancy.cpp` fails to compile on current `main`: ``` llvm-calc-occupancy.cpp:229:41: error: no member named 'getAddressableNumSGPRs' in namespace 'llvm::AMDGPU::IsaInfo' ``` This switches to the equivalent `GCNSubtarget::getAddressableNumSGPRs()`, which forwards to the TargetParser version. All other `IsaInfo::*` calls in the file were checked against the new API and are unaffected. Verified locally: `ninja llvm-calc-occupancy` builds clean, `llvm/test/tools/llvm-calc-occupancy` passes, and the reported addressable SGPR count is unchanged (102 on gfx90a). https://invent.kde.org/qt/clang/llvm/-/commit/11d7c9c9b4e8ebaf5f9bfb6ba80aecd498aa25ca Git commit 3b2fe5ae137b845c83a3e435b23f1d9c2abb17f6 by GitHub (on behalf of Alexey Bataev) on 30/07/2026 at 14:14.. [SLP][NFC]Add a test with the non-profitable vectorization, NFC Reviewers: Pull Request: https://github.com/llvm/llvm-project/pull/213028 https://invent.kde.org/qt/clang/llvm/-/commit/3b2fe5ae137b845c83a3e435b23f1d9c2abb17f6 Git commit e001308a83cace2f133edf4ee08c574ba7c2c702 by GitHub (on behalf of Nikolas Klauser) on 30/07/2026 at 14:17.. [libc++] Fix exception_fallback.ipp not compiling (#212961) https://invent.kde.org/qt/clang/llvm/-/commit/e001308a83cace2f133edf4ee08c574ba7c2c702 Git commit a853e6fcaf602b3c9bdd21a02af2c4f32a2cb5d1 by GitHub (on behalf of Jeff Bailey) on 30/07/2026 at 14:27.. [libc] Add struct passwd type, pwd.yaml, and pwd_utils parser (#212421) Added struct passwd type definition, pwd.yaml header specification, and parse_passwd_line utility returning ErrorOr<struct passwd> for colon-separated password file parsing with hermetic unit tests. Note: Additional POSIX pwd.h functions (getpwuid, getpwnam, getpwuid_r, getpwnam_r, fgetpwent) are omitted from this initial change and will be added in follow-up PRs. * Added libc/include/llvm-libc-types/struct_passwd.h and proxy header * Added libc/include/pwd.yaml header specification * Added pwd_utils.h and pwd_utils.cpp implementing ErrorOr<struct passwd> parse_passwd_line * Added pwd.h to target public headers for linux architectures * Added unit tests in libc/test/src/pwd/pwd_utils_test.cpp Assisted-by: Automated tooling, human reviewed. https://invent.kde.org/qt/clang/llvm/-/commit/a853e6fcaf602b3c9bdd21a02af2c4f32a2cb5d1 Git commit d7c1e6054fb66a5954a6403d3803f7bc5f1eb449 by GitHub (on behalf of Alexey Bataev) on 30/07/2026 at 14:30.. [SLP]Recalculate gather costs after tree trimming Gather node costs are computed against the set of vectorized nodes available for reuse. Tree trimming changes that set, but the costs were not recalculated: a gather that reused a trimmed-away vectorized value kept its 0 cost, and the node transformed to a gather matched the same sibling gather for a free reuse, so the buildvector cost was lost and unprofitable trees were vectorized. Recalculate costs of all gather nodes after trimming. Fixes #212983 Reviewers: Pull Request: https://github.com/llvm/llvm-project/pull/213034 https://invent.kde.org/qt/clang/llvm/-/commit/d7c1e6054fb66a5954a6403d3803f7bc5f1eb449 Git commit e74432084f392d19bf7f30dfd58d3c47a1a32178 by GitHub (on behalf of David Young) on 30/07/2026 at 14:33.. [Bazel] Fix Host target's exported headers to include windows (#213018) When PR# 201283 added windows os select to the build of the Host target, it missed the exported headers since the CI checks run only linux and mac (and I hadn't gotten to this in my slow slog of windows bazel lldb support). I found when translating to BUCK and running into this compilation error on windows for buck2 built lldb. Still cannot build and claude tells me the exclude is necessary to avoid a duplicate. claude assisted with bazel rule creation https://invent.kde.org/qt/clang/llvm/-/commit/e74432084f392d19bf7f30dfd58d3c47a1a32178 Git commit aa07c1f12d5d7fd61484236fbfdb2c26c81575fe by GitHub (on behalf of Manuel Carrasco) on 30/07/2026 at 14:45.. Implement support for NSDI DebugFunction opcode. (#211760) Add support for [DebugFunction](https://github.khronos.org/SPIRV-Registry/nonsemantic/NonSemantic.Shader.DebugInfo.html#DebugFunction). https://invent.kde.org/qt/clang/llvm/-/commit/aa07c1f12d5d7fd61484236fbfdb2c26c81575fe Git commit 2f08dff5138a4ce908b6d4511a9439e859fedf86 by GitHub (on behalf of Alexey Samsonov) on 30/07/2026 at 14:46.. [libc] Refactor statfs Linux syscalls and provide 'struct statfs' (#212930) * Extract statfs/fstatfs Linux syscall wrappers to `linux/syscall_wrappers` directory; * Provide our own definition of `struct statfs` type and a corresponding proxy header (to use system type in overlay mode); * Migrate callers (e.g. statfs->statvfs translation) to use the new syscall wrapper. This would allow us to add Linux-specific (non-POSIX) `<sys/statfs.h>` header as a next step. Assisted by: Gemini, human-reviewed https://invent.kde.org/qt/clang/llvm/-/commit/2f08dff5138a4ce908b6d4511a9439e859fedf86 Git commit 11b58f0e4c84437b2c39e0e5cc415077b3fe06d3 by GitHub (on behalf of Hristo Hristov) on 30/07/2026 at 14:57.. [libc++][ranges] P3059R2: Making user-defined constructors of view iterators/sentinels private (#193891) Implements https://wg21.link/P3059R2 (DR) Closes #189599 1. Made constructors of iterator and sentinel types of the following views private: - `iota_view` - `basic_istream_view` - `filter_view` - `transform_view` - `take_view` - `take_while_view` - `join_view` - `lazy_split_view` - `split_view` - `elements_view` 2. Updated all relevant tests to fix the usages of the now private constructor, including: 1. Removed now obsolete tests (files and cases). 2. Updated all relevant tests to get the iterators and the sentinels via `begin()` and `end()`, wherever applicable . 3. Added test cases to confirm that P3059R2 was implemented properly. 4. Minor other (necessary) tweaks. --------- Co-authored-by: Hristo Hristov <[email protected]> Co-authored-by: A. Jiang <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/11b58f0e4c84437b2c39e0e5cc415077b3fe06d3 Git commit 7ccf4e638e3f0106b3c8f36a3e4d9e67c40b8d1d by GitHub (on behalf of Craig Topper) on 30/07/2026 at 15:08.. [RISCV] Improve lowerVECTOR_SHUFFLEAsPPair. (#212895) Allow V1 and V2 to be swapped. Allow V1 or V2 to be used twice. Assisted-by: Claude https://invent.kde.org/qt/clang/llvm/-/commit/7ccf4e638e3f0106b3c8f36a3e4d9e67c40b8d1d Git commit 66d049cdad21a7ad387f358f7593bee91221bd39 by GitHub (on behalf of Kyungtak Woo) on 30/07/2026 at 15:08.. [libc++] Fix std::mt19937 seeding with std::seed_seq under vectorized ABI (#209860) This PR fixes a bug in `std::mersenne_twister_engine::seed(_Sseq&)` where the initialization twist is bypassed when the vectorized engine optimization (`_LIBCPP_ABI_VECTORIZED_MERSENNE_TWISTER_ENGINE`) is enabled. In the vectorized implementation introduced in #206423, the engine state must be pre-twisted during initialization by calling `__update_all_states()` at the end of the `seed` functions. However, in `seed(_Sseq& __q)`, the all-zero state check contains an early `return;` when a non-zero state is verified. This early return bypasses the trailing `__update_all_states()` call. Consequently, the generator is initialized with raw, untwisted seed values (tempered) rather than the standard twisted values. This only manifests when compiled with unstable ABI settings (`_LIBCPP_ABI_VERSION >= 2`) which enables the vectorized implementation. I replaced the early `return;` inside the all-zero state verification block with a loop break, and conditionalized the zero-state fix using the loop index `__i`, ensuring `__update_all_states()` is always executed at the end of the function. Added regression tests to `seed_sseq.pass.cpp` asserting the exact deterministic outputs for both 32-bit and 64-bit engines. https://invent.kde.org/qt/clang/llvm/-/commit/66d049cdad21a7ad387f358f7593bee91221bd39 Git commit e696fb5963f9c9f1e50d1da1bab6430c58ac3da1 by GitHub (on behalf of Benedek Kaibas) on 30/07/2026 at 15:20.. [analyzer] Improve UseAfterLifetimeEnd checker's diagnostic with descriptive names and value tracking (#212158) Currently the `UseAfterLifetimeEnd` checker used `getString()` for constructing error message. However, `getString()` is a debug only stringification and should not be used for emitting reports to the users. That is why I have changed it to `getDescriptiveName()` and also implemented the `getRegionName`(#211552) function to return the region's descriptive name. The `getRegionName()` function got also moved to the modeling checker since both of the reporting checkers consume it (#211818). This PR also uses the `trackStoredValue()` for value tracking path notes, so the report points at where the value's source came from. https://invent.kde.org/qt/clang/llvm/-/commit/e696fb5963f9c9f1e50d1da1bab6430c58ac3da1 Git commit e5bc20b1a810aec0cb7df3f3a834d14a0418ece0 by GitHub (on behalf of Ilia Kuklin) on 30/07/2026 at 15:27.. [lldb] Add bitwise operators to DIL (#209768) Add binary bitwise operators `|`, `^`, `&`, and unary bitwise `~`. https://invent.kde.org/qt/clang/llvm/-/commit/e5bc20b1a810aec0cb7df3f3a834d14a0418ece0 Git commit bf4bafc5595b8ed408121e0c5c695b23d52394fc by GitHub (on behalf of Balázs Benics) on 30/07/2026 at 15:46.. [analyzer] Require x86 target for Analysis/string-search-modeling.c (#213048) This is a fixup to #212124. The Solaris/sparcv9 build bot failure was reported in: https://github.com/llvm/llvm-project/pull/212124#issuecomment-5130635364 Build bot failure: https://lab.llvm.org/buildbot/#/builders/13/builds/14261 ``` # RUN: at line 3 /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/stage1/bin/clang -cc1 -internal-isystem /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/stage1/lib/clang/24/include -nostdsysteminc -analyze -setup-static-analyzer -std=c17 -verify /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c -analyzer-checker=core,unix -analyzer-checker=debug.ExprInspection -analyzer-config eagerly-assume=false # executed command: /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/stage1/bin/clang -cc1 -internal-isystem /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/stage1/lib/clang/24/include -nostdsysteminc -analyze -setup-static-analyzer -std=c17 -verify /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c -analyzer-checker=core,unix -analyzer-checker=debug.ExprInspection -analyzer-config eagerly-assume=false # RUN: at line 10 /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/stage1/bin/clang -cc1 -internal-isystem /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/stage1/lib/clang/24/include -nostdsysteminc -analyze -setup-static-analyzer -triple x86_64-scei-ps4 -std=c17 -verify /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c -analyzer-checker=core,unix -analyzer-checker=debug.ExprInspection -analyzer-config eagerly-assume=false # executed command: /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/stage1/bin/clang -cc1 -internal-isystem /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/stage1/lib/clang/24/include -nostdsysteminc -analyze -setup-static-analyzer -triple x86_64-scei-ps4 -std=c17 -verify /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c -analyzer-checker=core,unix -analyzer-checker=debug.ExprInspection -analyzer-config eagerly-assume=false # .---command stderr------------ # | error: 'expected-warning' diagnostics expected but not seen: # | File /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c Line 528: TRUE # | File /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c Line 539: TRUE # | File /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c Line 551: TRUE # | File /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c Line 565: TRUE # | error: 'expected-warning' diagnostics seen but not expected: # | File /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c Line 528: FALSE [debug.ExprInspection] # | File /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c Line 539: FALSE [debug.ExprInspection] # | File /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c Line 551: FALSE [debug.ExprInspection] # | File /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/clang/test/Analysis/string-search-modeling.c Line 565: FALSE [debug.ExprInspection] # | 8 errors generated. # `----------------------------- # error: command failed with exit status: 1 ``` https://invent.kde.org/qt/clang/llvm/-/commit/bf4bafc5595b8ed408121e0c5c695b23d52394fc Git commit 3d6d0457bbc4698cb515f5d68e981a1ebf3d724e by GitHub (on behalf of vangthao95) on 30/07/2026 at 15:48.. AMDGPU/GlobalISel: Switch some FP opcodes to extended LLTs (#212664) Migrate G_FADD, G_FMUL, G_FMA, and G_FSUB and their strict variants, along with G_FCANONICALIZE to use extended LLTs. Also update the relevant MIR tests. https://invent.kde.org/qt/clang/llvm/-/commit/3d6d0457bbc4698cb515f5d68e981a1ebf3d724e Git commit 0eddedc4e718f05617c8649be78c72eda60d14a2 by GitHub (on behalf of Ian Li) on 30/07/2026 at 15:56.. [clang][DependencyScanning] Return failure upon CompilerInstanceWithContext failure to create target (#211607) This was first pointed out by a static analysis scan: Success/failure results from `CompilerInstance::createTarget` in `CompilerInstanceWithContext::initialize` is currently being discarded. AFAICT, `initialize` should have failed if `CompilerInstance::createTarget` failed, as I noticed that calls in `CompilerInstanceWithContext::computeDependencies` (which is ran right after `initialize`) contains function calls (i.e. `CI.loadModule`) that make references to `CompilerInstance::getTarget`: `getTarget` then tries to obtain a reference to the very `TargetInfo` instance that the earlier `CompilerInstance::createTarget` call failed to create. AFAIK `createTarget` doesn't actually seem to fail currently, but I haven't been able to find a good reason as for why success/failure from `CompilerInstance::createTarget` should be ignored even if it failed. But please let me know if I am not seeing something here! https://invent.kde.org/qt/clang/llvm/-/commit/0eddedc4e718f05617c8649be78c72eda60d14a2 Git commit e4c2875c397861ea45a0cca05107d91d7d785d03 by GitHub (on behalf of Ehren Bendler) on 30/07/2026 at 15:56.. [clang][docs] Update CommandLineUsage and UsersManual with some flags (#209519) The current user-manual is missing implemented options that are useful for machine-readable output, such as `-fdiagnostics-format=sarif` and `-fdiagnostics-absolute-paths`. https://invent.kde.org/qt/clang/llvm/-/commit/e4c2875c397861ea45a0cca05107d91d7d785d03 Git commit 565fdb70e6063e27230f6397d2cbccf1003beaed by GitHub (on behalf of Yoonseo Choi) on 30/07/2026 at 16:01.. [AMDGPU] SIInsertWaitcnts: rebase async marks into the merged frame at CFG joins (#211688) This PR fixes `WaitcntBrackets::mergeAsyncMarks` to call `mergeScore` at CFG join block even when one of its predecessors has no AsyncMark At a CFG join block, the upper bounds of counts from predecessors are merged. Then, `mergeScore` rebase each predecessor’s `Score` by the merged upper bound. Even if a predecessor has no AsyncMark, scores of other predecessors with AsyncMarks should be rebased by `mergeScore`. Suppose a predecessor, bb B, without AsyncMark (Score 0) visited later than another predecessor with AsyncMarks (positive Score), bb A. If merging upper bounds of bb B into that of bb A increases the new global upper bounds to UB’ from UB, bb A’s Score should be rebased by the new UB’. Previously in that case, only UB was merged but Score of bb A was not updated as `mergeScore` was not called due to bb B’s having zero score. Detailed example can be seen in added test, `llvm/test/CodeGen/AMDGPU/asyncmark-merge-rebase-pregfx12.mir`. Here are the descriptions on the test. The join (bb.3) has two predecessors: - (bb.2) an AsyncMark predecessor: one async LDS DMA + ASYNCMARK, so one AsyncMark recorded at LOAD_CNT score 1 (small frame, UB = 1). - (bb.1) a load predecessor: several async LDS DMAs with no ASYNCMARK. These stay outstanding (they write LDS, no VGPR result) and extend the frame to UB = 4, but contribute no async marks. si-insert-waitcnts visits the branch target bb.2 before the fall-through bb.1. So, bb.2 seeds bb.3's incoming state and bb.1 with an empty AsyncMarks list is merged in. When UB of LOAD_CNT is still merged to 4 = max(1,4). If bb.2's Score 1 is not rebased to new UB 4, the vmcnt value wrongly becomes 3 (= 4 - 1), which was the previous behavior. Score 1 must be rebased to 4 (= 1 + (4 - 1)) to make correct vmcnt, 0 (= 4 - 4). That rebase logic is already within `mergeScore`. `mergeScore` should be called even when one of the predecessors has zero Score. Notice that the bug doesn’t show up if bb.1 was visited before bb.2. https://invent.kde.org/qt/clang/llvm/-/commit/565fdb70e6063e27230f6397d2cbccf1003beaed Git commit 75b5df8f0af1000cae8e21fedbc14d0c51a01318 by GitHub (on behalf of Sirraide) on 30/07/2026 at 16:09.. [Clang] Support libstdc++ workarounds when using `-E` (#210802) We have a libstdc++ workaround in place to address a hack in libstdc++15 that is used in the definition of `std::format_kind`. GCC accepts the hack, while Clang does not. libstdc++ was eventually updated to remove the hack, but we still need the workaround for some versions of libstdc++15 (see #139560 for more information). Whether this workaround (and others that address libstdc++ hacks) is active depends on the value of `__GLIBCXX__`. This stops working if someone first preprocesses the input (via `-E`) and then attempts to compile the preprocessed code with Clang (see #160314): since preprocessing has already happened, `__GLIBCXX__` will be undefined and the workaround will not be applied. In case of this particular workaround, this results in `#include <format>` failing to compile on some versions of libstdc++ if you’re using separate preprocessing. To resolve this problem, this patch introduces a new pragma (`#pragma clang __set_pp_state MACRO_NAME INTEGER`). This is intended as a general solution to preserving preprocessor state across runs of the preprocessor. Currently, the only supported value for `MACRO_NAME`is `__GLIBCXX__`. When we encounter this form of the pragma, we update `Preprocessor::CXXStandardLibraryVersion` (we don’t actually define `__GLIBCXX__` or do anything w/ that macro here). In `-E` mode, the pragma is retained in the output, and a pragma is emitted for `#define __GLIBCXX__` if printing macro definitions is disabled. Things like `#undef __GLIBCXX__` and redefinitions of `__GLIBCXX__` are deliberately left unhandled (i.e. you get what you get), since users shouldn’t ever be undefining or redefining this macro anyway (and since it starts w/ `__`, it would also be UB to do so). Fixes #160314. https://invent.kde.org/qt/clang/llvm/-/commit/75b5df8f0af1000cae8e21fedbc14d0c51a01318 Git commit 7850239749970847955a918d731630b35c540af2 by GitHub (on behalf of Jonas Devlieghere) on 30/07/2026 at 16:11.. [lldb][docs] Rewrite the MCP documentation for lldb-mcp (#212821) The docs still describe lldb-mcp as a thin stdio-to-socket bridge that auto-launches an LLDB and exposes a single lldb_command tool. It is now a full featured multiplexer hosting its own sessions, with four tools and pid-qualified URIs. Also restructure the documentation around how it is used, with an explanation of the underlying architecture towards the end. https://invent.kde.org/qt/clang/llvm/-/commit/7850239749970847955a918d731630b35c540af2 Git commit ce7a6f9d239979d9ae7d4c422d830a17dbb4075a by GitHub (on behalf of vangthao95) on 30/07/2026 at 16:12.. AMDGPU/GlobalISel: Switch more FP opcodes to extended LLTs (part 2) (#212909) Migrate G_FPOW, G_FPOWI, G_INTRINSIC_FPTRUNC_ROUND, and FP<->INT conversions opcodes to extended float LLTs. Also update the relevant MIR tests. https://invent.kde.org/qt/clang/llvm/-/commit/ce7a6f9d239979d9ae7d4c422d830a17dbb4075a Git commit f38336987beb7f173e448e50578208b37027c035 by GitHub (on behalf of Jonas Devlieghere) on 30/07/2026 at 16:12.. [lldb][docs] Document the script interpreter plugin build options (#212655) Describe LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS and how it interacts with LLDB_ENABLE_PYTHON_LIMITED_API, including the platform defaults for both and why the Python Limited API requires dynamic script interpreter plugins everywhere but Windows. https://invent.kde.org/qt/clang/llvm/-/commit/f38336987beb7f173e448e50578208b37027c035 Git commit 0cfc5bc3aa10274776306e4a4a179974d3fadb4b by GitHub (on behalf of Ian Tayler Lessa) on 30/07/2026 at 16:18.. [mlir][tosa][tosa-to-linalg] Use 0 weights at skippable RFFT2D locations (#212293) The TOSA specifications indicates that when computing the imaginary output for locations (0,0), (0,W/2), (H/2,0), (H/2, W/2), implementations may choose to skip the computation entirely and return 0, or compute each accumulation term as `-val_real * 0.0`. The previous legalizations used `-val_real * sin(a)` but `sin(a)` may not return exactly 0.0 due to representation error in the input to `sin`. This patch updates the legalization to instead check for indices where `sin(a)` should be replaced by `0.0` and uses a `select` op to match the expected behaviour according to the Specification when tosa_extra_multiplies is set to `true`. Signed-off-by: Ian Tayler Lessa <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/0cfc5bc3aa10274776306e4a4a179974d3fadb4b Git commit 5e3f4038530f54fa80ef2e2e648dcb399d279b70 by GitHub (on behalf of Andy Kaylor) on 30/07/2026 at 16:19.. [CIR] Add fenv attribute to cast operation (#212899) This adds the optional #cir.fenv attribute to the cir.cast operation and updates the verifier to enforce the attribute being present only when the cast involves floating-point values. Assisted-by: Cursor / various models https://invent.kde.org/qt/clang/llvm/-/commit/5e3f4038530f54fa80ef2e2e648dcb399d279b70 Git commit 1dd9687d41e1331996ece0839e58673ab4d8e10f by GitHub (on behalf of Wooseok Lee) on 30/07/2026 at 16:20.. [AMDGPU] Fix fmul/fma legacy sign-of-zero miscompile (#203567) V_MUL_LEGACY_F32 always returns +0.0 when either operand is ±0.0 or a denormal treated as zero, while IEEE fmul XORs operand signs. This makes results observably different when one operand is a runtime ±0.0: fmul.legacy(-2.0, +0.0) = +0.0 (legacy zero clause forces +0.0) fmul (-2.0, +0.0) = -0.0 (IEEE sign XOR: - * + = -) The previous code folded whenever one operand matched m_FiniteNonZero() or both were known never Inf/NaN, without accounting for sign-of-zero divergence on the other operand. Restructure the guard: - Always safe: both operands are known never zero (legacy zero clause cannot fire). Uses isKnownNeverLogicalZero to correctly account for denormals flushed to zero under the function's f32 denormal mode. - With nsz (sign-of-zero is don't-care), two additional cases apply: 1. One operand is not zero or infinity or NaN: zero clause cannot fire on that side, and 0*Inf/0*NaN (where legacy returns +0.0 but IEEE returns NaN) is excluded. 2. Neither operand is infinity or NaN: 0*Inf and 0*NaN cases excluded, nsz covers any sign-of-zero difference from the zero clause. A single condition captures both cases. - Compute Known1 lazily: bail before the second computeKnownFPClass call if Op0 may be zero and nsz is not set, since Op1 cannot help. Update fmul_legacy.ll and fma_legacy.ll to reflect the corrected behavior: cases that previously folded without nsz now require it or require both operands to be provably non-zero. https://invent.kde.org/qt/clang/llvm/-/commit/1dd9687d41e1331996ece0839e58673ab4d8e10f Git commit 665d200b160d15ef7e8ddeb21c7028d774c7e1b1 by GitHub (on behalf of Jianhui Li) on 30/07/2026 at 16:20.. [mlir][xegpu] Handle size-1 broadcast dim in insert_strided_slice layout setup (#211725) This PR enhance `setupInsertStridedSliceResultLayout` to treat a size-1 source dim as a broadcast dim: keep its lane_data at 1 instead of requiring divisibility. Add regression tests for both the layout propagation setup and the subgroup-to-lane distribution of such an op. Assisted-by-claude Co-authored-by: Claude Opus 4.8 <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/665d200b160d15ef7e8ddeb21c7028d774c7e1b1 Git commit 33a5fd88736a9f7b7d266c48827a478629d04604 by GitHub (on behalf of Jacob Crawley) on 30/07/2026 at 16:21.. [AArch64][SME2] Add stridedorcontiguous pseudos for multi-vector-stores (#211551) Select strided-or-contiguous psuedos for SME2 multi-vector stores, allowing register allocation to choose the most profitable tuple layout. The pseudos can then be expanded to choose the appropriate contiguous or strided instruction after allocation. https://invent.kde.org/qt/clang/llvm/-/commit/33a5fd88736a9f7b7d266c48827a478629d04604 Git commit 188aa82fd8d0b9f322f6d5b3812f8cb4a970b60c by GitHub (on behalf of Krzysztof Drewniak) on 30/07/2026 at 16:27.. [AMDGPU] Add ptr.s.buffer.load intrinsic, use it from Clang (#209243) This commit adds a version of the existing s_buffer_load intrinsic that more accurately models the memory semantics of the s_buffer_load instruction, namely that it is, in fact, a memory load. To preserve the existing behavior that the "nomem" s.buffer.load intrinsic was using, Clang and MLIR add !invariant.load metadata when constructing the intrinsic (matching documented requirements on scalarazable buffer loads) and a late codegen pass adds the metadata just to be safe. Tests that were "about" s.buffer.load have been copied to create versions that use the new intrinsic, as was done for the other *.ptr.buffer.* operations. Other tests have been upgraded to use the new intrinsic. This has mainly resulted in minor instruction ordering changes in prologues, if any change at all. However, CodeGen/AMDGPU/dagcombine-fma-fmad.ll has seen a v_fma => v_mad pattern fail to match in one case, I don't know if this is a real regression. While I was here, the s_buffer_load => buffer_load fallback has been updated to preserve cachepolity. AI disclosure: Primarily AI-written code, but I have at least looked at and tried to find the worst of the silliness. --------- Co-authored-by: Codex <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/188aa82fd8d0b9f322f6d5b3812f8cb4a970b60c Git commit ce25b1d727308f07355b9f6aad4f6cd70c60db66 by GitHub (on behalf of Jianhui Li) on 30/07/2026 at 16:33.. [mlir][xegpu] Fix DPAS subgroup layout propagation for broadcast K dim (#211695) This PR fixes an issue in getDpasSubgroupLayouts(): It failed to find valid subgroup layouts for otherwise-legal DPAS ops. It treated the K (contraction) dimension as distributed across subgroups — requiring wgShape % sgLayout == 0 on every dim and gating on a checkAlignedSgDataAB() equality — when K is actually broadcast: its full extent stays in every subgroup. This rejected the only valid candidate, causing layout propagation to bail out. Update the two affected tests, which now propagate successfully instead of failing. assisted-by-claude Co-authored-by: Claude Opus 4.8 <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/ce25b1d727308f07355b9f6aad4f6cd70c60db66 Git commit 94ef6a696069211685027fe4aa65a31ccfbe3453 by GitHub (on behalf of Fangrui Song) on 30/07/2026 at 16:38.. [test] Migrate AArch64 thunk tests to the default thunk order (#212691) Drop -z nosort-thunks (added by #211721 to keep creation order) and update expectations to the default order: forward thunks sorted by descending destination. https://invent.kde.org/qt/clang/llvm/-/commit/94ef6a696069211685027fe4aa65a31ccfbe3453 Git commit 524e0d24b274ad5ae5687558963661196eb1ab87 by GitHub (on behalf of Fangrui Song) on 30/07/2026 at 16:38.. [test] Migrate Arm thunk tests to the default thunk order (#212694) Drop -z nosort-thunks (added by #211721 to keep creation order) and update expectations to the default order: forward thunks sorted by descending destination. Backward-only thunk sections keep creation order and are unchanged. In arm-thunk-re-add.s, retarget beq.w to imported2: sorting places imported's pool thunk just within conditional-branch range, so beq.w imported would reuse it instead of re-adding a thunk. https://invent.kde.org/qt/clang/llvm/-/commit/524e0d24b274ad5ae5687558963661196eb1ab87 Git commit 8223635500c61d10820c011371498b96cd4ffbc7 by GitHub (on behalf of Arseniy Obolenskiy) on 30/07/2026 at 16:51.. [AMDGPU] Fix miscompile in performSelectCombine for fcmp one with NaN (#213029) The fold `select (fcmp one x, K), y, K -> ..., x` returned x instead of K when x was NaN, changing the result https://invent.kde.org/qt/clang/llvm/-/commit/8223635500c61d10820c011371498b96cd4ffbc7 Git commit 75827f0bdc8895e1059b2dfa4ac5b8efdc413809 by GitHub (on behalf of Erich Keane) on 30/07/2026 at 16:59.. [CIR] Fix path generation to understand redecls (#213051) Found this during a self-build, an additional decl was confusing the check between getParent and the currentClass. This patch generalizes it to use the 'isSameEntity' function which makes sure they are the same. Also, as a drive-by, the test had some check-lines that andy submitted a while back, that were accidentially not being tested, so fixed the check-title to be actually checked. https://invent.kde.org/qt/clang/llvm/-/commit/75827f0bdc8895e1059b2dfa4ac5b8efdc413809 Git commit f176fde8c823da74fc9ca1064077056c77846aee by GitHub (on behalf of Alok Kumar Sharma) on 30/07/2026 at 17:04.. [MergeFunctions] Preserve import GUIDs when folding functions (#207003) Computes the union of SamplePGO/ThinLTO import GUIDs from both inputs and attaches it to the surviving function. https://invent.kde.org/qt/clang/llvm/-/commit/f176fde8c823da74fc9ca1064077056c77846aee Git commit 9e43e04108dddff6476152d0fff672fb4c577925 by GitHub (on behalf of Md Abdullah Shahneous Bari) on 30/07/2026 at 17:05.. [mlir][arith] Gate min/max expansion in arith-expand behind include-min-max (#211884) `arith-expand` expanded `arith.maximumf`/`minimumf`/`maxnumf`/`minnumf` and the signed/unsigned integer max/min ops into `cmpf`/`cmpi` + `select` sequences. These ops also have a direct arith-to-llvm lowering to the `llvm.intr.maximum`/`minimum`/... intrinsics, which are a single hardware instruction on many targets. Pipelines that run arith-to-llvm after arith-expand (e.g. the GPU-to-XeVM pipeline) therefore paid a large, avoidable overhead. Add `include-min-max-f` (the float ops maximumf/minimumf/maxnumf/minnumf) and `include-min-max-i` (the signed/unsigned integer ops maxsi/maxui/minsi/minui) option (default `false`, changing the existing behavior) that controls whether these min/max ops are expanded. The min/max converters are factored into new `populateExpandMinMaxFPatterns` and `populateExpandMinMaxIPatterns`; the ceil/floor-div and scaling ext/trunc expansions (which have no LLVM lowering) always run. --------- Co-authored-by: Claude Opus 4.8 <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/9e43e04108dddff6476152d0fff672fb4c577925 Git commit f8eefd3d9d1b083563b1b095a8cf4513026252e0 by GitHub (on behalf of Zibi Sarbinowski) on 30/07/2026 at 17:08.. [libc++] Fix difference_type expectations in range adaptor iterator member_types tests (#201853) This fixes incorrect expectations in: ``` libcxx/test/std/ranges/range.adaptors/range.adjacent/iterator/member_types.compile.pass.cpp libcxx/test/std/ranges/range.adaptors/range.zip.transform/iterator/member_types.compile.pass.cpp libcxx/test/std/ranges/range.adaptors/range.adjacent.transform/iterator/member_types.compile.pass.cpp ``` These iterators define difference_type as `range_difference_t<Base>`. For `ForwardSizedView` and `InputCommonView`, the `difference_type` of the underlying iterators is `std::intptr_t` in `test_iterators.h`. The tests instead assert `std::ptrdiff_t`. That happens to hold on platforms where `std::intptr_t` and `std::ptrdiff_t` are the same type, but fails elsewhere. --------- Co-authored-by: Louis Dionne <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/f8eefd3d9d1b083563b1b095a8cf4513026252e0 Git commit af8e570d9009f398473813e8af7e617d40d87199 by GitHub (on behalf of Erich Keane) on 30/07/2026 at 17:10.. [CIR] Fixup type of no-prototype functions when emitting an alias. (#212308) If a function is first used through a no-prototype declaration, then defined later as an alias, we erased the old declaration and created the new one with the new type. However the earlier references still used the old type, which caused a verification error. This patch just makes sure we replace the uses of it similar to how we do with a similar problem with normal functions. Note: there is a bit of inconsistency in how we're setting the type of the function between OGCG and CIR that I'm not sure of the impact of, but that is prexisting. https://invent.kde.org/qt/clang/llvm/-/commit/af8e570d9009f398473813e8af7e617d40d87199