[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/ziqingluo/PR-171209196'. Changed from 718a361f4b56277afc48ea8360ac90b4257e1f49 to 525aa545ba0b4801a2db06ff70ebf65c7e66fc6b 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 8d933f7478435d35b6f3b6123318f1e353adea88 by GitHub (on behalf of Joshua Batista) on 23/07/2026 at 17:13.. Add InterlockedAdd resource methods (#208128) This PR builds upon the work merged in https://github.com/llvm/llvm-project/pull/195742, and completes the implementation of the InterlockedAdd functions in HLSL, by adding these methods to the existing resource types. Fixes: https://github.com/llvm/llvm-project/issues/99122 Assisted by: Github Copilot https://invent.kde.org/qt/clang/llvm/-/commit/8d933f7478435d35b6f3b6123318f1e353adea88 Git commit 710cca19f0d1d95174cc52bc41df56c26b9f19d2 by GitHub (on behalf of Florian Hahn) on 23/07/2026 at 17:15.. [LV] Use planner's TTI in executePlan instead of CM.TTI (NFC) (#211588) LoopVectorizationPlanner already holds TTI, no need to go through CM. https://invent.kde.org/qt/clang/llvm/-/commit/710cca19f0d1d95174cc52bc41df56c26b9f19d2 Git commit 89e637a8dca75d4a71e4a1ce669397d59ce77ab7 by GitHub (on behalf of Shilei Tian) on 23/07/2026 at 17:15.. [NFC][AMDGPU] Remove reundant run lines from two test cases (#211575) https://invent.kde.org/qt/clang/llvm/-/commit/89e637a8dca75d4a71e4a1ce669397d59ce77ab7 Git commit 7f140055b724bfd0759807b79ee1b8544f023340 by GitHub (on behalf of Louis Dionne) on 23/07/2026 at 17:21.. [libc++] Pin down the compiler in the various benchmark scripts and jobs (#211563) We have various scripts that build and test the library at pinpointed commits: benchmark-historical, run-benchmarks, build-at-commit and test-at-commit. They were handling the compiler in different ways: some scripts would just run the libc++ build (or test suite configuration) without specifying the compiler, which means the $CXX environment variable was used if present. Other scripts (e.g. run-benchmarks) would accept the compiler as an argument, but would fail to pass it down when configuring the test suite, which led to issues. This patch passes the compiler explicitly in all scripts: this removes any potential confusion around how the compiler should be specified (env var or argument). The only exception is build-at-commit, where the compiler is still specified by passing the appropriate CMake arguments. The reason for this exception is that passing arguments to CMake is actually the way we want to configure aspects of the build (and the test suite) in the long term, it's just that the test suite doesn't support this cleanly due to the CMake/Lit split at the moment. In the longer term, `test-at-commit` should also lose its `--compiler` argument in favour of being able to pass CMake parameters to the test suite configuration, but we are not there yet. https://invent.kde.org/qt/clang/llvm/-/commit/7f140055b724bfd0759807b79ee1b8544f023340 Git commit 36916031c97477f8d865488185cfb7da89aa5d21 by GitHub (on behalf of Farzon Lotfi) on 23/07/2026 at 17:23.. [SPIRV][Matrix] Change Matrix Shader legalization to largest common divisor (#207768) fixes #186864 New process for matrix legalization documented here: https://github.com/llvm/wg-hlsl/pull/446 The current Matrix legalization strategy is to take a vector of and expanded to a larger power of 2 vector and then split it into vectors of size 4. For example a vector of size 6 is expanded to 8, and then split. This creates uniform 4-lane chunks but requires padding. For example `<12>`-->`<16>`, `<6>`-->`<8>`, `<9>`-->`<16>`. These forces an illegal wide `G_BUILD_VECTOR` with undef lanes. This padding wastes lanes and adds undef bookkeeping the backend must then clean up. Instead This PR splits both operands into `W`-lane chunks, where `W` is the largest divisor of the element count in `[2, MaxVectorSize]` shared by source and destination (`<12>`-->3×`<4>`, `<6>`-->2×`<3>`, `<9>`-->3×`<3>`), and emit chained per-chunk `OpVectorShuffle`s. This keeps every chunk a legal SPIR-V vector with no undef padding and preserves vectorized `OpDot`/`OpSelect` downstream. Assisted with Claude Opus 4.8 via Co-pilot https://invent.kde.org/qt/clang/llvm/-/commit/36916031c97477f8d865488185cfb7da89aa5d21 Git commit c98ace924d8bd6ce357a993832c9dffde0806823 by GitHub (on behalf of Valery Pykhtin) on 23/07/2026 at 17:34.. [NFC][AMDGPU] Use SIInstrFlags predicates in AMDGPUAsmParser (#210998) https://invent.kde.org/qt/clang/llvm/-/commit/c98ace924d8bd6ce357a993832c9dffde0806823 Git commit 04b71a38393a85db49047d547fd9d94aafa1857b by GitHub (on behalf of vangthao95) on 23/07/2026 at 17:48.. [AMDGPU] Regenerate failing packed-fp64.ll test (#211616) Missed this one in https://github.com/llvm/llvm-project/pull/211598. https://invent.kde.org/qt/clang/llvm/-/commit/04b71a38393a85db49047d547fd9d94aafa1857b Git commit 8f64a4806ffbf577a91390750c2701de2c6496af by GitHub (on behalf of Ian.han) on 23/07/2026 at 17:50.. [sanitizer_common] Don't crash in fopen64 interceptor when path is NULL (#211468) `fopen` was fixed to tolerate a NULL `path` in 2015 (1d1be3dd8822), and `freopen`/`freopen64` carry the same `if (path)` guard. `fopen64` was missed, so `fopen64(NULL, mode)` dereferences NULL inside the interceptor and crashes under sanitizers, even though real `fopen64` would just return NULL/EFAULT. Add the missing `if (path)` guard, plus a regression test mirroring `fopen_nullptr.c`. Since `fopen64` is only intercepted on glibc (`SANITIZER_INTERCEPT_FOPEN64`), the test is placed under `Linux/` and gated with `// REQUIRES: glibc`. https://invent.kde.org/qt/clang/llvm/-/commit/8f64a4806ffbf577a91390750c2701de2c6496af Git commit 88d17fa88fb58d8b2d64e923dc4dc7b043201b87 by GitHub (on behalf of Jessica Clarke) on 23/07/2026 at 18:00.. [NFC][test][ELF] Check DSO's ifunc2 is in .iplt in aarch64-ifunc-bti.s (#210618) This mirror's the PIE's CHECK lines, which were already stricter. --- <sub>Stack created with <a href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub> https://invent.kde.org/qt/clang/llvm/-/commit/88d17fa88fb58d8b2d64e923dc4dc7b043201b87 Git commit 50ce5f724db70b9b520002fda1098dc19a87ff07 by GitHub (on behalf of Jessica Clarke) on 23/07/2026 at 18:00.. [NFC][test][ELF] Improve ppc32-ifunc-nonpreemptible-(no)pic.s (#210611) Firstly, the nopic test had an unused HEX check line when it should have been checking .got.plt, and the pic test was only checking .got2, also ignoring .got.plt. Secondly, the indentation for instructions was inconsistent within a single file. Thirdly, neither test was actually checking the code for func's IPLT entry in .glink, only that the symbol existed as a normal function that wasn't the same as the resolver, and the nopic test wasn't even testing the full contents of the PLT call stub, which was inconsistent with the pic test. Fourthly, the pic test used the same output file for two different links, which can be confusing when debugging. Finally, the comment at the start of the pic test's PLT call stub had no bearing on the immediate in use, instead being the same as the nopic's one with the 4 subtracted from both sides (presumably trying to account for the nopic test not having the extra .got2 entry, but neglecting the fact that it's not using absolute addressing, and even if it were, the addresses are entirely different). --- <sub>Stack created with <a href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub> https://invent.kde.org/qt/clang/llvm/-/commit/50ce5f724db70b9b520002fda1098dc19a87ff07 Git commit 81820b5112017197045418813457dd6eb35aac08 by GitHub (on behalf of Jonas Devlieghere) on 23/07/2026 at 18:04.. [lldb] Skip the WebAssembly function header when setting a breakpoint (#211289) A WebAssembly function begins with a local variable declaration header that is part of the function but is not an executable instruction. A breakpoint at a raw function start, such as one added by a scripted resolver, landed on the header and could never be hit. Name and file-and-line breakpoints already move past it, because that is handled at the line-table level. The disassembler already skipped this header inline. Move that logic behind a new Architecture:: SkipFunctionHeader hook, implemented by a new WebAssembly architecture plugin, and call it from both the disassembler and Breakpoint::AddLocation so any breakpoint resolves to the first instruction. https://invent.kde.org/qt/clang/llvm/-/commit/81820b5112017197045418813457dd6eb35aac08 Git commit df68991c067e505233856f7399772d424f89478f by GitHub (on behalf of Vijay Kandiah) on 23/07/2026 at 18:05.. [flang][cuda] Fix CUFPredefinedVarToGPU for a shared builtin address_of (#211628) `CUFPredefinedVarToGPU` rewrites references to the predefined CUDA builtins (`threadidx`/`blockidx`/`blockdim`/`griddim`) into GPU special-register reads. For each predefined-var `fir.declare` it also erased the declare's backing `fir.address_of`. That assumed every declare owns a private `address_of`, which is only true before CSE. Once a single `fir.address_of` of a builtin is shared by several `fir.declare`s — e.g. after a `device` routine is inlined into a `global` kernel and CSE coalesces the duplicated `address_of` ops — the pass queued that one op for deletion once per declare and erased it while another declare still used it, thus aborting compilation with `'fir.address_of' op operation destroyed but still has uses` error. With this PR, the backing ops are collected into a de-duplicated set and erased after all predefined declares are gone, and only when `use_empty()`. This makes the deletion safe regardless of how many declares share an `address_of`, and leaves it untouched if any other user remains. https://invent.kde.org/qt/clang/llvm/-/commit/df68991c067e505233856f7399772d424f89478f Git commit 2f730a82cc6cb71d2b1a86dbb67927a72a54aec6 by GitHub (on behalf of Matt Arsenault) on 23/07/2026 at 18:10.. llvm-mca: Stop defaulting to "native" for the CPU (#211612) This would warn whenever using a triple that isn't for the host architecture. Other tools don't do this. Copy what llc does and default to no cpu. https://invent.kde.org/qt/clang/llvm/-/commit/2f730a82cc6cb71d2b1a86dbb67927a72a54aec6 Git commit ac61623826d858333039ff56ef60e91afd295c5f by GitHub (on behalf of Amr Hesham) on 23/07/2026 at 18:11.. [CIR] Implement convert to atomic intptr through temp alloca (#210794) Implement the conversion to atomic int pointer through temp alloca https://invent.kde.org/qt/clang/llvm/-/commit/ac61623826d858333039ff56ef60e91afd295c5f Git commit aa00eae9f05129c05a39446a85746502b0f7bd9b by GitHub (on behalf of Alexey Bataev) on 23/07/2026 at 18:17.. [SLP][NFC]Add a test with the reassociative fma, NFC Reviewers: Pull Request: https://github.com/llvm/llvm-project/pull/211635 https://invent.kde.org/qt/clang/llvm/-/commit/aa00eae9f05129c05a39446a85746502b0f7bd9b Git commit d8f7777f4030ba7b4d0643399c87a0fcc17f648a by GitHub (on behalf of syhhyl) on 23/07/2026 at 18:21.. [clang][test] Add Darwin pragma weak alias IR coverage (#211499) Add Clang IR coverage for `#pragma weak alias = target` on Darwin. The test verifies that Clang: - emits the alias with weak linkage; - keeps calls referencing the alias instead of replacing them with the aliasee. This is a test-only follow-up to #198148 and covers the Clang lowering path used by #111321. https://invent.kde.org/qt/clang/llvm/-/commit/d8f7777f4030ba7b4d0643399c87a0fcc17f648a Git commit 777bc94e1020c760466f074c1cc6837a2dc64f98 by GitHub (on behalf of Tim Besard) on 23/07/2026 at 18:22.. [NVPTX] Lower allocas to the local address space (#204346) Alternative to #201772. When SelectionDAG expands a small memcpy/memmove/memset it can raise the alignment of the destination stack object, but only when the destination is a bare FrameIndex. Since #121710, NVPTX treats allocas as assumed-local, and InferAddressSpaces rewrites the intrinsic operands to addrspacecasts. ISel no longer sees the frame index, the alignment isn't raised, and small unaligned copies are expanded byte-by-byte. We observed up to 1.9x slower kernels in JuliaGPU/CUDA.jl#3162. #201772 fixed this in SelectionDAG by looking through addrspacecasts to recover the stack object. Per review feedback there, this PR takes a different approach: NVPTXLowerAlloca now turns each generic alloca into an equivalent addrspace(5) alloca plus one cast back to the generic address space for existing users. The normal InferAddressSpaces pass then propagates the local address space into loads/stores and folds the cast away where possible. At -O0, the cast remains, but the underlying frame object is still local, so stack lowering addresses it correctly. Making allocas actually local requires NVPTX stack lowering changes: - eliminateFrameIndex resolves addrspace(5) frame indices against the local frame pointer %SPL. Previously every frame index used the generic %SP, which mis-addresses local stores and double-converts escapes. - LowerDYNAMIC_STACKALLOC returns the local pointer instead of always casting to generic when the requested result type is already local. NVPTX still declares the alloca address space as 0, so allocas are generic by default and the pass must enforce locality, including at -O0. This PR is compatible with making the DL actually put allocas in AS5: the stack-lowering changes (%SPL frame indices, local LowerDYNAMIC_STACKALLOC) are needed regardless of how an alloca became local and stay correct under A5, while the scaffolding that only enforces the invariant becomes unnecessary and can be dropped. cc @arsenm --------- Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/777bc94e1020c760466f074c1cc6837a2dc64f98 Git commit 6a230696441d7b2fa51e2887ef7664d2a73ae04d by GitHub (on behalf of Greg Clayton) on 23/07/2026 at 18:24.. Fix ProcessELFCore::GetProcessInfo() to return expected results. (#210807) Getting the process info from ProcessELFCore would always return the information from the prpsinfo.pr_psargs from the NT_PRPSINFO. This meant if the process was launched with a symlink, the process info would always claim the main executable was the symlink. We want the process info's executable to always be the resolved executable when possible. The DynamicLoaderPOSIXDYLD was using the process info to load the main executable if it wasn't set, or it was comparing if the main executable's module spec matched the process info, and if it didn't match it would end up trying to load the main executable using the process info. We also ask for the UUID from the process before trying to use the process info to replace the executable in DynamicLoaderPOSIXDYLD::ResolveExecutableModule(). https://invent.kde.org/qt/clang/llvm/-/commit/6a230696441d7b2fa51e2887ef7664d2a73ae04d Git commit f7f9cc95db8d6447312bc45fc83ae81621a07213 by GitHub (on behalf of nvptm) on 23/07/2026 at 18:33.. [acc] Refine launch-dim handling for sequential block-redundant ancestors (#211153) Sequential `gpu_block_redundant` ancestors need selective launch-dim handling in `getAncestorParDims`: including them always widens gang-private to per-thread; omitting them always can predicate block-redundant bodies on `blockIdx` after partition. Include launch dims when the block-redundant loop is worksharing or is the innermost parallel parent; skip them for an outer sequential block-redundant wrapper around nested worksharing. https://invent.kde.org/qt/clang/llvm/-/commit/f7f9cc95db8d6447312bc45fc83ae81621a07213 Git commit ee96eb78c540a0dbb5a5e03777ab69492c0350c7 by GitHub (on behalf of Matt Arsenault) on 23/07/2026 at 18:35.. AMDGPU: Convert new tests to subarch triples (#211584) These are tests added after the recent batch migration to new triples. https://invent.kde.org/qt/clang/llvm/-/commit/ee96eb78c540a0dbb5a5e03777ab69492c0350c7 Git commit 52bc4102acb630610c495107f5704c8321bd6548 by GitHub (on behalf of Mohammed Ashraf) on 23/07/2026 at 18:44.. [BoundsSafety] Introduce LateParsedAttrType AST placeholder type (#204125) Split out from #179612 to make review easier. No functional change. This introduces `LateParsedAttrType`, a new AST placeholder type used during late parsing of type attributes. The actual late parsing mechanism that uses this type is in #179612 and will be split into a follow-up PR. https://invent.kde.org/qt/clang/llvm/-/commit/52bc4102acb630610c495107f5704c8321bd6548 Git commit 1f93f282d476076fd8ce963d8b26b07f8587266b by GitHub (on behalf of Soham Karandikar) on 23/07/2026 at 18:45.. [Clang] [Sema] Added a check for `NameInfo` not being empty after template instantiation (#210610) Fixes #210234 As per my investigation (mostly following stack traces and dumping variable values), a default empty `DeclarationNameInfo` was being returned after template substitution [over here](https://github.com/llvm/llvm-project/blob/c45b4e4d00bed488d6ece5608560561732ae5b9e/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp#L3270). ```cpp // D-.>getNameInfo() has actual data here DeclarationNameInfo NameInfo = SemaRef.SubstDeclarationNameInfo(D->getNameInfo(), TemplateArgs); // NameInfo has default values ``` This was being passed on directly to `CXXDestructorDecl::Create` leading to the assertion being hit. This PR adds a check that ensures `NameInfo` actually contains a valid destructor name before constructing a `CXXDestructorDecl`. This fixes the assertion being hit in the reproducer from the linked issue. https://invent.kde.org/qt/clang/llvm/-/commit/1f93f282d476076fd8ce963d8b26b07f8587266b Git commit 77e879f967294d76376bf7a022092a1d6f3ed583 by GitHub (on behalf of Jon Roelofs) on 23/07/2026 at 18:46.. [libunwind][AArch64] Support .cfi_set_ra_state (#209950) This new CFI directive directly assigns an RA signing state to the RA_SIGN_STATE DWARF pseudo-register for use when unwinding, to indicate whether the value of PC has been used as a diversifier for return address signing. The new directive subsumes and replaces .cfi_negate_ra_state_with_pc, which was found to be unsuitable for descibing some block layouts [1], particularly in hot-cold-split functions. 1: https://github.com/ARM-software/abi-aa/pull/346 https://invent.kde.org/qt/clang/llvm/-/commit/77e879f967294d76376bf7a022092a1d6f3ed583 Git commit 943972575711ceb999b3ee8ba98ce7b8df5a9581 by GitHub (on behalf of Matt Arsenault) on 23/07/2026 at 18:49.. AMDGPU: Migrate disassembler tests to use subarch triples (#211596) https://invent.kde.org/qt/clang/llvm/-/commit/943972575711ceb999b3ee8ba98ce7b8df5a9581 Git commit b63032380268e9a9f32755d9ed146ed5ad3c591a by GitHub (on behalf of Hardik Kumar) on 23/07/2026 at 19:01.. [clang][Driver]Fix opencl -cl-fast-relaxed-math flag to have similar behaviour as ffast-math (#208709) Previously when using `-cl-fast-relaxed-math` flag along with `fhonor-nans` or `fhonor-infinities` the honor flags did not override the relaxed math flag. This behaviour is something that is not seen in case of ffast-math for general targets. This patch makes adjustments to how the driver and cc1 handles the relaxed math flag for opencl. The flag was in the path of `fast-math` so when someone used the `-cl-fast-relaxed-math` flag they were ultimately overriding everything with fast-math. This was the main reason why honor flags were not overriding relaxed math (atleast that's what I have understood from my time working on this). I have added tests for this as well and modified CodeGen cc1 tests according to the changes in the patch. I have personally not tested this on any AMD targets myself yet. So I am unsure about this breaking anything (hopefully it should rather fix). closes #178514 https://invent.kde.org/qt/clang/llvm/-/commit/b63032380268e9a9f32755d9ed146ed5ad3c591a Git commit ea233a005b3a828affa482c1684f6f76d650a9c1 by GitHub (on behalf of Alexey Samsonov) on 23/07/2026 at 19:22.. [libc] Silence sanitizer OOB reports in SIMD read/write helpers. (#211148) Use `LIBC_NO_SANITIZE_OOB_ACCESS` for small SIMD helper functions (load/store/gather/scatter/expand/compress). Even though the actual functions which have logical OOB reads (such as `clang_vector::string_length`) already have `LIBC_NO_SANITIZE_OOB_ACCESS` attribute to ignore OOB reads, it's not enough - as we see downstream reports from ASan builds of llvm-libc (using tip-of-trunk Clang), both with `-O1` and `-O2`. We simply can't rely on the SIMD helpers being inlined into the caller function, with their memory reads/writes ignored. Thus, apply the `no_sanitize` attribute to the helpers themselves. This is clearly suboptimal, as we're effectively disabling sanitizer checks for *all* the code using SIMD to read/write from memory, but it seems to be the easiest reasonable fix. After all, code using SIMD (like code using explicit intrinsics or inline assembly) should be written only in special cases, with author knowing what they're doing. https://invent.kde.org/qt/clang/llvm/-/commit/ea233a005b3a828affa482c1684f6f76d650a9c1 Git commit 52ab62e4d073e01e81a8b62811f345ac52375198 by GitHub (on behalf of Jun Wang) on 23/07/2026 at 19:26.. [AMDGPU][Docs] Remove docs for AMDGPU instruction syntax (#211421) Docs for AMDGPU instruction syntax under llvm/docs/AMDGPU are being moved out of LLVM. They can be found at the [ROCm LLVM Compiler Infrastructure website](https://rocm.docs.amd.com/projects/llvm-project/en/latest/index.html) https://invent.kde.org/qt/clang/llvm/-/commit/52ab62e4d073e01e81a8b62811f345ac52375198 Git commit 8b0eab156025a55819868daf76ff32e28829d06a by GitHub (on behalf of Nikita Kornev) on 23/07/2026 at 19:28.. [SSAF] Fix Expected return type in TypeConstrainedPointers deserialization (gcc 7.5.0) (#211331) GCC 7.5.0 fails to compile this code. Use explicit upcasts from std::unique_ptr<Derived> to std::unique_ptr<Base> in deserializeSummary and deserializeAnalysisResult. This resolves a compilation error where llvm::Expected<std::unique_ptr<Base>> could not be constructed from unique_ptr of derived summary/result types. https://invent.kde.org/qt/clang/llvm/-/commit/8b0eab156025a55819868daf76ff32e28829d06a Git commit 535fa5789c87e240ca718e5311fd4420110e012c by GitHub (on behalf of Jianhui Li) on 23/07/2026 at 19:34.. [mlir][gpu] Add VectorToXeGPU and adjust VectorToSCF placement in XeVM pipeline (#210539) Add convert-vector-to-xegpu (nested under gpu.module) to lower kernel-side vector ops to XeGPU. Move convert-vector-to-scf from the pre-GPU common pipeline into the post-GPU pipeline, so host transfer ops (and any SCF the pass emits) are lowered to loops before the vector-to-LLVM conversion. --------- Co-authored-by: Claude Opus 4.8 <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/535fa5789c87e240ca718e5311fd4420110e012c Git commit 1a7ece827ab3543387ee1adf1eb4c8878905b577 by GitHub (on behalf of Matt Arsenault) on 23/07/2026 at 19:45.. AMDGPU: Mostly migrate mc tests to subarch triples (#211590) Migrate cases by script that don't fail https://invent.kde.org/qt/clang/llvm/-/commit/1a7ece827ab3543387ee1adf1eb4c8878905b577 Git commit 43bbb5b696cd2d91ce8d54c0e85362c5fa9a4603 by GitHub (on behalf of Florian Hahn) on 23/07/2026 at 19:52.. [LV] Remove unused cost model from InnerLoopVectorizer (NFC) (#211594) InnerLoopVectorizer stored a LoopVectorizationCostModel pointer (Cost) but all users have been removed. https://invent.kde.org/qt/clang/llvm/-/commit/43bbb5b696cd2d91ce8d54c0e85362c5fa9a4603 Git commit 2ace5adba8656a6306d6550939d06fed42f068db by GitHub (on behalf of Matt Arsenault) on 23/07/2026 at 19:57.. AMDGPU: Migrate llvm-mca tests to subarch triples (#211477) https://invent.kde.org/qt/clang/llvm/-/commit/2ace5adba8656a6306d6550939d06fed42f068db Git commit 581235be99da65cefadc12f584b3234718b79e8b by GitHub (on behalf of Ryan Buchner) on 23/07/2026 at 20:07.. [LICM] Allow hoisting of InsertElementInst's past non-hoistable InsertElementInsts (#211414) When building vectors from multiple scalars in a loop, allow the insertions using invariant data to be hoisted, even if blocked by the variant insertions. In the SLP vectorizer, c1b37eacbf makes the assumption that these build vectors will properly be hoisted, when they are not leads to regressions such as #195497. Reland of #200532. Assisted By: Codex Co-authored-by: Luke Lau <[email protected]> Co-authored-by: Nikita Popov <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/581235be99da65cefadc12f584b3234718b79e8b Git commit fde8e81d98e48b90092bdd8a88b76939f6f12060 by GitHub (on behalf of nvptm) on 23/07/2026 at 20:21.. [mlir][acc] Allow for existing declare globals in GPU module under unified memory. (#211650) OpenACC declare globals may already exist in the GPU module from earlier GPU lowering. Under unified memory, this pass expects those device copies as declarations, but a pre-existing global may still have an initializer and therefore not match. This change adapts an otherwise equivalent existing GPU global to declaration form and reuses it; A lit test covers a host/GPU declare global that should be reused as a declaration in the GPU module. https://invent.kde.org/qt/clang/llvm/-/commit/fde8e81d98e48b90092bdd8a88b76939f6f12060 Git commit b1ff288ecd340f19a43cfd330f215c0a4cef49c8 by GitHub (on behalf of Vijay Kandiah) on 23/07/2026 at 20:22.. [mlir][OpenACC] Emit multi-IV tile and element loops from ACCLoopTiling (#211651) `ACCLoopTiling` used to lower an N-dimensional `tile()` clause by *uncollapsing* the fused loop into a deep nest of single-IV `acc.loop`s (`tile_1 → … → tile_N → elem_1 → … → elem_N`). This discards the natural grouping of the tile clause: the 2N single-IV loops no longer express "these are the tile iterations" and "these are the in-tile iterations" as collapsible units, and gang/vector end up spread across a deep nest where only the outermost loop of each group carries the attribute. This could potentially lead to poor parallelism assignment. With this MR: `tileACCLoops` now rewrites the single fused `acc.loop` in-place into exactly two multi-IV loops, each carrying all the tiled induction variables: - a **tile-group** loop whose steps are the original steps scaled by the tile sizes, and - a nested **element-group** loop that walks the iterations within one tile, with upper bounds clamped to `min(origUB, tileStart + tileExtent)`. Keeping each group as a single multi-IV `acc.loop` preserves the tile/element structure as two collapsible units instead of a 2N-deep single-IV nest, which is a simpler canonical form. The gang/worker/vector distribution across the two groups is unchanged from before. This change also diagnoses `tile` + `collapse` on the same loop because these clauses give conflicting loop-association counts. The pass now emits a NYI diagnostic instead of silently dropping the `collapse` clause. Added a new invalid-input test to verify this. With the pass no longer uncollapsing, `uncollapseLoops` and the vector-of-loops `tileACCLoops(SmallVector<LoopOp>&, …)` overload (and the now-orphaned `createInnerLoop` helper) are deleted, along with their unit tests. New unit tests are added to cover the surviving fused-loop overload. https://invent.kde.org/qt/clang/llvm/-/commit/b1ff288ecd340f19a43cfd330f215c0a4cef49c8 Git commit 4a6858aecce9a6a570ea12f655aa513f73ab20f6 by GitHub (on behalf of Jianhui Li) on 23/07/2026 at 20:36.. [mlir][xegpu] Support N-D block transfers in VectorToXeGPU (#210527) Extend the vector.transfer_read/transfer_write lowerings so they can produce N-D xegpu.load_nd/store_nd, not just 1D/2D, and relax the out-of-bounds handling to match load_nd's implicit-zero padding. Restructure both patterns as "block first, then scatter as fallback. --------- Co-authored-by: Claude Opus 4.8 <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/4a6858aecce9a6a570ea12f655aa513f73ab20f6 Git commit afe3fe0448cd65ddd57d4d0d2a1f353a9a0b89cb by GitHub (on behalf of Florian Hahn) on 23/07/2026 at 20:39.. [LV] Use planner's Legal in executePlan instead of CM.Legal (NFC) (#211600) Remove an unnecessary level of indirection. https://invent.kde.org/qt/clang/llvm/-/commit/afe3fe0448cd65ddd57d4d0d2a1f353a9a0b89cb Git commit 2422128af28694ab576171e9ba5c58fe33f0ee5b by GitHub (on behalf of Arseniy Obolenskiy) on 23/07/2026 at 20:42.. [NFC][AMDGPU] Remove unused -SDAG test suffixes from minimumnum/maximumnum (#211634) Test checks diff is automatically generated using `update_llc_test_checks.py` Discussed in https://github.com/llvm/llvm-project/pull/207896 https://invent.kde.org/qt/clang/llvm/-/commit/2422128af28694ab576171e9ba5c58fe33f0ee5b Git commit c2a3cbedb5434a25de2f6b80fd24e05a1481a61b by GitHub (on behalf of Ziqing Luo) on 23/07/2026 at 20:50.. [SSAF] Fix a stage2 test failure with ASan-instrumented clang (#211432) ASan emits a symbol for a static global in `TestTransformation.cpp` that causes link issues in green dragon. Added `__attribute__((no_sanitize("address")))` to that static global to fix the test. rdar://182623740 https://invent.kde.org/qt/clang/llvm/-/commit/c2a3cbedb5434a25de2f6b80fd24e05a1481a61b Git commit 88d625d5487f95adade70d5c301272b619a1e300 by GitHub (on behalf of forking-google-bazel-bot[bot]) on 23/07/2026 at 20:52.. [Bazel] Fixes 4a6858a (#211661) This fixes 4a6858aecce9a6a570ea12f655aa513f73ab20f6 (#210527). Buildkite error link: https://buildkite.com/llvm-project/upstream-bazel/builds?commit=4a6858aecce9a6a570ea12f655aa513f73ab20f6 Co-authored-by: Google Bazel Bot <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/88d625d5487f95adade70d5c301272b619a1e300 Git commit bdb0fd5ced0e83bbc5c2b1f962ac4179e874e95a by GitHub (on behalf of Alexey Bataev) on 23/07/2026 at 20:59.. [SLP]Remove accidental commenting out the code Removed the accindentally commented out code, causing regressions with ordered reductions Reviewers: Pull Request: https://github.com/llvm/llvm-project/pull/211662 https://invent.kde.org/qt/clang/llvm/-/commit/bdb0fd5ced0e83bbc5c2b1f962ac4179e874e95a Git commit 79c5cb730ce996fa059a50f264f31a2deef3d71d by GitHub (on behalf of Simon Pilgrim) on 23/07/2026 at 21:01.. [X86] isFMAddSubOrFMSubAdd - remove unused SelectionDAG argument. NFC. (#211613) https://invent.kde.org/qt/clang/llvm/-/commit/79c5cb730ce996fa059a50f264f31a2deef3d71d Git commit 59b3a0ce7829aeda7f40efdfb3fa004a48fc2ba9 by GitHub (on behalf of Arthur Eubanks) on 23/07/2026 at 21:06.. [x86] Handle implicit sections when determining if a global is large (#206210) Just like explicit sections. We were seeing globals with implicit sections marked large under the medium code model. Reland of #204247, with a fix to not crash on declarations with an explicit section. Implicit sections are not applied to declarations, so don't check isDeclarationForLinker() globals for implicit sections. Assisted-by: Gemini https://invent.kde.org/qt/clang/llvm/-/commit/59b3a0ce7829aeda7f40efdfb3fa004a48fc2ba9 Git commit bb17e718bc419b46bb2596c2f25c9cc0f76a2d5a by GitHub (on behalf of Jonas Devlieghere) on 23/07/2026 at 21:37.. [DWARFLinker] Treat DW_AT_LLVM_alloc_type as a type reference (#211655) The parallel linker's getODRAttributes() did not list `DW_AT_LLVM_alloc_type`, so the dependency tracker treated it as a live reference rather than a type reference. A type reachable only through DW_AT_LLVM_alloc_type was therefore never kept: the enclosing subprogram is marked live, and its type-table-candidate children are skipped during live marking on the assumption they are retained through the type path. The attribute then resolved to offset 0, landing on the compile unit header, which got correctly caught by the DWARF verifier. The classic linker already lists `DW_AT_LLVM_alloc_type` in isODRAttribute(), so this PR restores parity between the two. Assisted-by: Claude rdar://182715403 https://invent.kde.org/qt/clang/llvm/-/commit/bb17e718bc419b46bb2596c2f25c9cc0f76a2d5a Git commit 2b84fdeeeb67d4be308be5e6a7aa103a1797a7a9 by GitHub (on behalf of Florian Hahn) on 23/07/2026 at 21:41.. [LV] Regenerate check lines for bounded load tests (NFC). (#211664) Re-generate test checks to reduce diff for upcoming PR. https://invent.kde.org/qt/clang/llvm/-/commit/2b84fdeeeb67d4be308be5e6a7aa103a1797a7a9 Git commit f4b5fb1569eb944ebe18e52c83e6ad9b0239f53c by GitHub (on behalf of Matsu) on 23/07/2026 at 21:54.. [mlir][OpenACC] Support partial ThreadX reduction launches (#211665) Example: ```fortran !$acc parallel loop collapse(2) num_gangs(10) reduction(+:a) do i = 1, n do j = 1, n do k = 1, m a(k) = a(k) + x(k,i) * y(k,j) end do end do end do ``` In this code, ACCCG pads ThreadX to the subgroup size because `gpu.all_reduce` uses subgroup shuffles. This unnecessarily increases private reduction storage when only one Y/Z row is active. Fix: preserve partial ThreadX launches for a single row, while retaining alignment when Y/Z rows could share a subgroup. https://invent.kde.org/qt/clang/llvm/-/commit/f4b5fb1569eb944ebe18e52c83e6ad9b0239f53c Git commit cdfa687cd2eb6b412b36cf5a71ba5303c59a4ac8 by GitHub (on behalf of Yaxun (Sam) Liu) on 23/07/2026 at 21:59.. [Driver] Print C++ standard library info (#207798) Users and tools sometimes need to know which C++ standard library Clang selected, and which include directories the driver added for it. Today they have to inspect verbose or `-###` output. Add options to print this information directly: `--print-cxx-stdlib` `--print-cxx-stdlib-include-dirs` For MSVC targets, the default printed library is `msvcstl`. Explicit `-stdlib=` values are still reported as requested. The include-dir query reuses toolchain logic, including the MSVC STL include path for the default MSVC case. https://invent.kde.org/qt/clang/llvm/-/commit/cdfa687cd2eb6b412b36cf5a71ba5303c59a4ac8 Git commit 1ca413a2703fb09e9e57686b64373fa2c97588c5 by GitHub (on behalf of Joshua Batista) on 23/07/2026 at 22:09.. Add InterlockedOr resource methods (#211639) This PR builds upon the work merged in https://github.com/llvm/llvm-project/pull/180804, and completes the implementation of the InterlockedOr functions in HLSL, by adding these methods to the existing resource types. This PR also reflects the same implementation strategy used in https://github.com/llvm/llvm-project/pull/208128 Fixes: https://github.com/llvm/llvm-project/issues/99126 Assisted by: Github Copilot https://invent.kde.org/qt/clang/llvm/-/commit/1ca413a2703fb09e9e57686b64373fa2c97588c5 Git commit 0cd2bd1c19725a00e403ee9d773687d0f54382f0 by GitHub (on behalf of Farzon Lotfi) on 23/07/2026 at 22:11.. Revert "[SPIRV][Matrix] Change Matrix Shader legalization to largest common divisor" (#211660) Reverts llvm/llvm-project#207768 https://invent.kde.org/qt/clang/llvm/-/commit/0cd2bd1c19725a00e403ee9d773687d0f54382f0 Git commit 2748955f1bd904f7b16a6cf3df1ef10892804564 by Ziqing Luo on 23/07/2026 at 22:15.. address comments https://invent.kde.org/qt/clang/llvm/-/commit/2748955f1bd904f7b16a6cf3df1ef10892804564 Git commit c231e00b290669e51dab0c69477aef36455cbfba by GitHub (on behalf of Scott Manley) on 23/07/2026 at 22:24.. [OpenACC] set CollapseCountAttr for scf.parallel (#211676) During compute lowering, also set the collapse count attribute when creating scf.parallel ops from acc.loop ops. While this collapse count is implied by the number of IVs, later canonicalizations may use this information to decide whether or not to collapse the loop nest further https://invent.kde.org/qt/clang/llvm/-/commit/c231e00b290669e51dab0c69477aef36455cbfba Git commit fee5637ec189e829286a534da4f4abc921e50ee1 by Ziqing Luo on 23/07/2026 at 22:25.. address comments https://invent.kde.org/qt/clang/llvm/-/commit/fee5637ec189e829286a534da4f4abc921e50ee1 Git commit 525aa545ba0b4801a2db06ff70ebf65c7e66fc6b by GitHub (on behalf of Ziqing Luo) on 23/07/2026 at 22:26.. Merge branch 'main' into users/ziqingluo/PR-171209196 https://invent.kde.org/qt/clang/llvm/-/commit/525aa545ba0b4801a2db06ff70ebf65c7e66fc6b