[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 173f268d03cefcaab92b72a0937316a4a37d3ad6 to 702062fafee9d0ce377c547d6ae575b5efa0533f
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 db75e39e977563df8ac247871012e7ca56cdc1cb by GitHub (on behalf of Abhina Sree) on 13/08/2026 at 17:14..
[SystemZ][z/OS] Fix typo in CHECK line in systemz-charset.cpp (#216101)

This patch fixes a typo of `CHECK=UTF8` to `CHECK-UTF8` in the following
testcase
clang/test/CodeGen/systemz-charset.cpp
https://invent.kde.org/qt/clang/llvm/-/commit/db75e39e977563df8ac247871012e7ca56cdc1cb

Git commit 26538e8007591edd6e8b50929657afb0b27d0d03 by GitHub (on behalf of Arseniy Obolenskiy) on 13/08/2026 at 17:16..
[SPIR-V] Drop storage-class MemorySemantics bit for relaxed Vulkan atomics (#215802)

VUID-StandaloneSpirv-MemorySemantics-10871 forbids combining a storage
class semantics bit with a relaxed memory order

The backend unconditionally OR'd the two together, which was untested
until #215634 moved this test under the SPIR-V backend where spirv-val
actually runs

Unblocks the currently failing on main
`llvm/test/CodeGen/SPIRV/hlsl-intrinsics/InterlockedOr-scope.ll` test
https://invent.kde.org/qt/clang/llvm/-/commit/26538e8007591edd6e8b50929657afb0b27d0d03

Git commit 2dd35f8ff91fbea3d898474851f78dfad2332c18 by GitHub (on behalf of Eli Friedman) on 13/08/2026 at 17:29..
[DAGCombine] Fix alignment of store in replaceStoreOfInsertLoad. (#215895)

For the variable index case, the alignment of the original store was
used, which is too large.

Fixes #215530
https://invent.kde.org/qt/clang/llvm/-/commit/2dd35f8ff91fbea3d898474851f78dfad2332c18

Git commit 113256a89baf248e294ea4db32b552ddb9989d0a by GitHub (on behalf of David Meng) on 13/08/2026 at 17:34..
[clang-tidy] Fix `misc-const-correctness` false positive on writes through assigned pointers (#216050)

`ExprPointeeResolve` did not resolve through `=`, so a write such as
`*(p = q) = 0` was not recognized as mutating `p`'s pointee and the
check suggested a `const` pointee that does not compile:

```cpp
void func(int *ptr1) {
  int *ptr2 = ptr1;
  int *ptr3 = ptr1;
  *(ptr2 = ptr3) = 0;   // warning: pointee of 'ptr2' can be declared 'const'
}
```
Godbolt: https://godbolt.org/z/3o8qnEKs3

An assignment yields an lvalue for the LHS holding the value of the RHS,
so
the dereferenced object is reachable through both operands. Resolve
through
both, like the existing additive case.

The RHS is already covered indirectly by AssignToNonConst, so the fix is
the LHS.

Fixes https://github.com/llvm/llvm-project/issues/216048.
https://invent.kde.org/qt/clang/llvm/-/commit/113256a89baf248e294ea4db32b552ddb9989d0a

Git commit 5e4d13ef093458b714c9913eb40199e1f4c45f0a by GitHub (on behalf of Reid Kleckner) on 13/08/2026 at 17:38..
[clang][docs] Migrate AttributeReference to markdown (#215631)

Tracking issue: #201242

This change is a one-off using a different methodology, described here.

AttributeReference.rst is generated, not checked in, so there's no
separate rename PR. The reST markup lives in AttrDocs.td, which is
essentially a tablegen wrapper that we can "join" with Attr.td to
produce complete reference. I can't simply stream AttrDocs.td through
rst2myst to migrate it.

Instead, my agent used Python regexes to match `let Content = [{` and
similar blocks (`code Intro = [{`) through to the closing delimiters
(`}];`). The one-off script imported the `rst_to_myst` module and called
the `rst_to_myst` library function on the inner reST body text. It then
built up a list of alternating fragments of tablegen and markdown
strings that were concatenated to produce the new contents of
AttrDocs.td.

The point of mentioning this is to explain that only 11% of the inserted
lines in this change were agent-generated, based on the split of the
diff state between the two commits:

```
❯ jj diff --stat
...
5 files changed, 526 insertions(+), 537 deletions(-)

❯ jj diff --stat -r @-
...
1 file changed, 4630 insertions(+), 4671 deletions(-)
```

So, if you want to trust rst2myst and only focus on the agentic and
manual cleanups, you can look at the *second commit* in the PR, which is
only +526 lines. If you dig into the second diff, you'll notice that
most of it is just removing block quotes that were caused by bugs from
extra indentation in the original AttrDocs.td reST.

I also have an elaborate new pixel diff strategy that shows me that all
of the visual diffs look good. I paged through the new
AttributeReference.html, but it was too long for me personally visually
diff. The change passed all my other existing validation scripts that
ensure that all the id= anchors are all still present in the new output.
https://invent.kde.org/qt/clang/llvm/-/commit/5e4d13ef093458b714c9913eb40199e1f4c45f0a

Git commit 84f08dbe9135330e1546ad00dcc911ed0c928e75 by GitHub (on behalf of Matt Arsenault) on 13/08/2026 at 17:52..
GlobalISel: Fix missing dependency on TargetParser (#216122)
https://invent.kde.org/qt/clang/llvm/-/commit/84f08dbe9135330e1546ad00dcc911ed0c928e75

Git commit bb123b2208060bf3ec8a5f22f2111bd194c4ad4d by GitHub (on behalf of Nuri Amari) on 13/08/2026 at 17:56..
[Clang][Frontend] Fix fix-it size overflow in emitted .dia (#216075)

When fix-its are emitted into a .dia, we previously stored the fix-it
text in a blob of arbitrary size, but the size of the text was stored in
a separate 16 bit field. For really large fix-its, the size won't fit it
those 16 bits, and the compiler crashes.

Switch to a variable length encoding of the fit-it size. This is similar
to this issue:
https://github.com/llvm/llvm-project/commit/e26aea5b290165f3bccffab662a706d4a56f7540

We also remove a hard coded check in the clang library used to load .dia
files that failed for fix-its whose size doesn't fit in 16 bits.

Generated with codex

Co-authored-by: Nuri Amari <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/bb123b2208060bf3ec8a5f22f2111bd194c4ad4d

Git commit 03e81eabcdb7ef913e5cc0491e9083c2b31fcb39 by GitHub (on behalf of Adrian Prantl) on 13/08/2026 at 17:57..
[LLDB] Add a GetTargetSP() accessor to ObjectFileJITDelegate. (NFC) (#215893)

This is needed to implement the Swift REPL and potentially generally
useful to other expression evaluators.
https://invent.kde.org/qt/clang/llvm/-/commit/03e81eabcdb7ef913e5cc0491e9083c2b31fcb39

Git commit dbac58277733fb87f5df02acf688b92b4b378cf3 by GitHub (on behalf of Adrian Prantl) on 13/08/2026 at 17:57..
[LLDB] Fix tool dependency tracking on windows (#215927)

On Windows $(CXX) is converted into "$(CXX)" which doesn't work as a
path as needed by dependency tracking. Separate the two uses.
https://invent.kde.org/qt/clang/llvm/-/commit/dbac58277733fb87f5df02acf688b92b4b378cf3

Git commit df7a7ee37bf5508e817f3b99473368004875a0b9 by GitHub (on behalf of Louis Dionne) on 13/08/2026 at 18:08..
[libc++] Cache anchor commits in the benchmark cron (#216124)

Selecting the anchor commits is the only step that needs a full monorepo
clone, so we instead cache it and recompute it once per day.

Fixes #215447
https://invent.kde.org/qt/clang/llvm/-/commit/df7a7ee37bf5508e817f3b99473368004875a0b9

Git commit 47f7a590e579ef44c32a1da28fb8b8b01432e1de by GitHub (on behalf of Alex Langford) on 13/08/2026 at 18:13..
[clang] Move DefaultedFunctionKind from Sema to AST (#214846)

I plan on using this to implement DW_AT_defaulted in CGDebugInfo.
Putting this on FunctionDecl itself seems like a better move than
reaching into Sema from CGDebugInfo.

See: https://github.com/llvm/llvm-project/pull/213188
https://invent.kde.org/qt/clang/llvm/-/commit/47f7a590e579ef44c32a1da28fb8b8b01432e1de

Git commit dabc3833ba1d2c9994bcf3a94ee66790f470ba82 by GitHub (on behalf of Joachim) on 13/08/2026 at 18:15..
[OpenMP][OMPT] Make omp_control_tool enums available in omp-tools.h (#216076)

OpenMP 6.1 will introduce this change: the enums must be available by
including either header file, but including both must also be valid.
https://invent.kde.org/qt/clang/llvm/-/commit/dabc3833ba1d2c9994bcf3a94ee66790f470ba82

Git commit 4f4a268a65ba69279fed5f2063ad49eb5d5d89a4 by GitHub (on behalf of Florian Hahn) on 13/08/2026 at 18:19..
[LAA] Add more tests with symblic strides with different scales (NFC) (#216128)

Add more test coverage for various cases with strides with different
scales.
https://invent.kde.org/qt/clang/llvm/-/commit/4f4a268a65ba69279fed5f2063ad49eb5d5d89a4

Git commit 199678b395de15401a7eb751fe3e24c10997b470 by GitHub (on behalf of Jan André Reuter) on 13/08/2026 at 18:20..
[OpenMP][OMPT] Mark dispatch callback as sometimes on registration (#212991)

Recently, multiple issues in the implementation of the `dispatch`
callback have been found (e.g., #212784, #207746). In these, the code
generation done by Clang and Flang does not provide a sufficient amount
of information for the runtime to dispatch the correct amount of flags,
or a callback for a given event at all.

These missing and incorrect events do not satisfy OpenMP's requirement
for `ompt_set_always` as a registration result, as the runtime does not
trace or invoke the correct callback whenever an associated event occurs
(OpenMP v5.2, p. 457, l.5-6).
As such, change the registration result for the `dispatch` callback to
`ompt_set_sometimes` for now, which is fulfilled. Here, an
implementation can dispatch callbacks or trace an implementation-defined
subset of associated event occurrences.

Based on the changed registration result, a tool can then decide if they
are still interested in recording the information provided by the
runtime implementation.

Signed-off-by: Jan André Reuter <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/199678b395de15401a7eb751fe3e24c10997b470

Git commit 98d84e38b867b984d1d33e6f73e0f5c7191f7ccb by GitHub (on behalf of Chinmay Deshpande) on 13/08/2026 at 18:22..
[AMDGPU][GlobalISel] Fix wide multiply with known-zero parts (#215356)

Materialize a zero accumulator when all partial products for a
destination part are skipped, avoiding an invalid null register during
legalization.
https://invent.kde.org/qt/clang/llvm/-/commit/98d84e38b867b984d1d33e6f73e0f5c7191f7ccb

Git commit 31cfad3442ad2f48d454f6551a55b6c100371bcc by GitHub (on behalf of DeanSturtevant1) on 13/08/2026 at 18:42..
Fix Bazel build for cb72195 (#216144)

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=cb721957e5e78875ea1d96dc53d46353e7b98d23

Co-authored-by: Google Bazel Bot <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/31cfad3442ad2f48d454f6551a55b6c100371bcc

Git commit e8ff1d1d93728ba488c8a09023c4554030463ced by GitHub (on behalf of SunilKuravinakop) on 13/08/2026 at 18:45..
[flang][OpenMP] Support for "atomic compare capture" (#202315)

Adding support for "!$omp atomic compare capture".

This also Fixes [#202311](https://github.com/llvm/llvm-project/issues/202311)

Co-authored-by: Sunil Kuravinakop <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/e8ff1d1d93728ba488c8a09023c4554030463ced

Git commit 389da87c52f1db63440f376621f5daee2fabaaf3 by GitHub (on behalf of John McCall) on 13/08/2026 at 18:53..
Document that the swiftcall and swiftasynccall attributes are ABI-unstable (#215915)

...except on platforms where the Swift projects has declared ABI
stability.
https://invent.kde.org/qt/clang/llvm/-/commit/389da87c52f1db63440f376621f5daee2fabaaf3

Git commit e72ba6cf366a3180cbf5a8690d9e50665880ab76 by GitHub (on behalf of forking-google-bazel-bot[bot]) on 13/08/2026 at 19:04..
[Bazel] Fixes e8ff1d1 (#216147)

This fixes e8ff1d1d93728ba488c8a09023c4554030463ced (#202315).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=e8ff1d1d93728ba488c8a09023c4554030463ced

Co-authored-by: Google Bazel Bot <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/e72ba6cf366a3180cbf5a8690d9e50665880ab76

Git commit c2f1191df7b0ff8df29381acb17b7f8259b34c66 by GitHub (on behalf of Simon Pilgrim) on 13/08/2026 at 19:23..
[X86] unaligned-32-byte-memops.ll - add common CHECK/AVX1 check prefixes (#216145)
https://invent.kde.org/qt/clang/llvm/-/commit/c2f1191df7b0ff8df29381acb17b7f8259b34c66

Git commit 8e34eed3b8ede75728b69ce25ab77f23d99e41f2 by GitHub (on behalf of Donát Nagy) on 13/08/2026 at 19:30..
[NFC][analyzer] Clarify that ArrayBound only handles element regions (#216049)

The `security.ArrayBound` checker does not do anything when the value of
the expression that activated its callbacks isn't expressed as an
`ElementRegion`.

Previously this was a sneaky consequence of the logic in
`computeOffset`, but this commit highlights it with a straightforward
early return statement to ensure that the accessed element region is
available within the body of `ArrayBoundChecker::handleAccessExpr`.

(I intend to use this in a follow-up commit.)
https://invent.kde.org/qt/clang/llvm/-/commit/8e34eed3b8ede75728b69ce25ab77f23d99e41f2

Git commit 192399adb590c458f3a52d8a7798087090f3cd1d by GitHub (on behalf of Arseniy Obolenskiy) on 13/08/2026 at 19:36..
[NFC][clang][DebugInfo] Add SPIR-V calling convention test coverage (#216095)
https://invent.kde.org/qt/clang/llvm/-/commit/192399adb590c458f3a52d8a7798087090f3cd1d

Git commit 8a6d4b826c351f1e500c109bfad975f6e9df89c2 by GitHub (on behalf of Simon Pilgrim) on 13/08/2026 at 19:56..
[X86] extractsubvector-load.ll - basic test coverage for various extractsubvector(load) patterns (#216156)

Shows some poor codegen for non-aligned subvector indices

Basic frozen load test coverage for #216115
https://invent.kde.org/qt/clang/llvm/-/commit/8a6d4b826c351f1e500c109bfad975f6e9df89c2

Git commit 551766823bb7b5a6af84e4ec1c1aff6dff431229 by GitHub (on behalf of David Meng) on 13/08/2026 at 20:00..
[clang-tidy] Add `readability-redundant-zero-initializer` (#209367)

Add a check that finds explicit single-element zero initializers of
arrays and rewrites them to empty braces, e.g. `char a[12] = {0};`
becomes `char a[12] = {};`. Empty-brace initialization zero-initializes
every element, so the explicit `{0}` is redundant. The check is only
enabled in C++ and in C23 or later.

The check is conservative and only rewrites a single-element `{0}` list
whose sole element is the integer literal `0` and whose array has an
explicit bound. It leaves alone, among others:
- arrays whose bound is deduced from the initializer (`char a[] = {0};`)
- multi-dimensional arrays (`int m[2][3] = {0};`)
- initializers with more than one element (`int a[3] = {0, 0};`);
- scalars and class/struct types
- zero written in another form such as `'\0'`, `0.0` or `nullptr`

Closes #209139

---------

Co-authored-by: Baranov Victor <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/551766823bb7b5a6af84e4ec1c1aff6dff431229

Git commit 4411918828ea22bfcc2d01177064a296e85de680 by GitHub (on behalf of Sophia Herrmann) on 13/08/2026 at 20:05..
[Offload][Driver] Split frontend CUDA/HIP language assumptions from backend device (#212373)

CUDA and HIP offloading currently assumes that the source language also
implies the device backend: CUDA maps to NVPTX/CUDA and HIP maps to
AMDGPU/HSA. That is too restrictive for the LLVM offload path, where the
language frontend and the device backend can be separate choices.

Using `-foffload-via-llvm` we can split the kernel language from backend
assumptions. When enabled, the driver suppresses the vendor
runtime/header paths, injects the LLVM-provided generic GPU device
headers and language runtime headers, and links the LLVM CUDA/HIP
runtime libraries from #211694 instead. It also provides tests for
#211694 since they require the frontend to run.

Assisted by GPT-5.5, checked and reviewed manually

Co-authored-by: Johannes Doerfert <[email protected]>
Co-authored-by: Jonas Greifenhain <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/4411918828ea22bfcc2d01177064a296e85de680

Git commit cb5775c4091b31bded7c96bf1ed774075e68f9ea by GitHub (on behalf of Raphael Isemann) on 13/08/2026 at 20:06..
[lldb][test] Don't include all SB API headers in TestMultithreaded (#215551)

This test compiles 9 C++ test files and uses the `generateSource`
function to inject includes for every single SB API header. The
`generateSource` call also sets `SOURCE_DIR` so the test knows its
current source directory.

This patch removes the need for `generateSource` by including the SB API
headers we actually need. SOURCE_DIR is now specified using an
environment variable in the test.

The motivation for this patch is that I want to avoid recompiling these
source files unless their source or the included headers change.
Currently, this test is one of the slowest in the test suite and needs
about half a minute to run. In the future, I want to at least avoid the
recompilation time for each test file.

Note that we still have another test that includes all SB API headers
normally and as a framework, so this does not remove test coverage.
https://invent.kde.org/qt/clang/llvm/-/commit/cb5775c4091b31bded7c96bf1ed774075e68f9ea

Git commit 6e6e7a7383fcf4291546f559adfb1b220dc3308d by GitHub (on behalf of Raphael Isemann) on 13/08/2026 at 20:07..
[lldb] Make SBFile::operator bool explicit (#215819)

Every other SB class in the API declares `explicit operator bool()`.
SBFile was the only one with an implicit conversion, which in general is
not something we want.
https://invent.kde.org/qt/clang/llvm/-/commit/6e6e7a7383fcf4291546f559adfb1b220dc3308d

Git commit 02da5ba79cb0bf1d95634ffe060802ff2d4a0292 by GitHub (on behalf of Erich Keane) on 13/08/2026 at 20:07..
[CIR] Implement the 'rest' of the TLS Model types (#215380)

Functionally, the only difference between these models is the tag that
goes onto the variable in the LLVM-IR. This patch changes our "==
GeneralDynamic" checks to just be whether they have a TLS Model defined,
so all the previous logic still holds.

This patch DOES have to add the 'default' model to the module, as the
top-level TLS guard needs to have this model, even if the individual
variables are overridden by the tls_model attribute.

Like the previous inline-printing patch, this ensures we print the
module result attribute as an enum value instead an integral. This
requires some custom parse/printing here, but is pretty routine. We
can't convert GlobalOp without vastly changing how it prints these, as
there isn't really a 'assemblyFormat' that works for this printed as an
'attribute' and a keyword.

We ALSO had to change the name of the enum to be TLSModel, because MLIR
is inconsistent in tablegen where it gets the name from on an enum, so
it would pick up the wrong spelling sometimes.
https://invent.kde.org/qt/clang/llvm/-/commit/02da5ba79cb0bf1d95634ffe060802ff2d4a0292

Git commit 52e3adee1faaa3632427cfedee42ddec6b465742 by GitHub (on behalf of Erich Keane) on 13/08/2026 at 20:07..
[CIR] Implement __builtin_clear_padding (#216126)

__builtin_clear_padding is lowered as an operation, which keeps the list
of the padding sections so that it knows how to clear them later. Rather
than trying to get the casting/etc right earlier to do clearing, this
patch chooses to do the conversion to load/and/store operations during
LowerToLLVM. This also yields identical IR to OGCG, whereas attempts to
do it earlier caused divergence that seemed unnecessary and causes
difficulty in assuring they are compatible.
https://invent.kde.org/qt/clang/llvm/-/commit/52e3adee1faaa3632427cfedee42ddec6b465742

Git commit 83d27d808c85b0fc6f59467d71de2fc1b03a6332 by GitHub (on behalf of Bhavesh M) on 13/08/2026 at 20:11..
[mlir] [memref] [transform] Add alloc_to_global op. (#211141)

This adds a new transform op that creates a `memref.global` op for
each provided `memref.alloc` and replaces `memref.alloc`s with
`memref.get_global`. It also creates a new helper function that contains
the shared logic between the existing `alloca_to_global` op and
`alloc_to_global`. It also checks whether `memref.alloc`s and
`memref.alloca`s are statically shaped since `memref.global` requires
statically shaped buffers.
https://invent.kde.org/qt/clang/llvm/-/commit/83d27d808c85b0fc6f59467d71de2fc1b03a6332

Git commit a0cf5703e3706de4507cd94216148e10dee650d8 by GitHub (on behalf of Florian Hahn) on 13/08/2026 at 20:13..
[VPlan] Use collectEphemeralRecipesForVPlan in calculateRegUse (NFC) (#216047)

Update calculateRegisterUsageForPlan to use
collectEphemeralRecipesForVPlan instead of relying on IR-based set of
instructions.
https://invent.kde.org/qt/clang/llvm/-/commit/a0cf5703e3706de4507cd94216148e10dee650d8

Git commit c42fb4286aa66c71e813e4094ef018499cecef7b by GitHub (on behalf of LU-JOHN) on 13/08/2026 at 20:19..
[AMDGPU] Promote FMA bf16 ops to use v2bf16 (#215805)

Promote FMA bf16 ops to use v2bf16.

---------

Signed-off-by: John Lu <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/c42fb4286aa66c71e813e4094ef018499cecef7b

Git commit c122b2c95c861f2180dea397bd12bb52c90b7bac by GitHub (on behalf of Alex Langford) on 13/08/2026 at 20:19..
[lldb] Disable TestDAP_module.py on Darwin platforms (#216163)

This has been very flaky on Green Dragon.
https://invent.kde.org/qt/clang/llvm/-/commit/c122b2c95c861f2180dea397bd12bb52c90b7bac

Git commit 4d41192f5dd8c6f3a685bea1fc0144ab9247fb13 by GitHub (on behalf of Alexey Bataev) on 13/08/2026 at 20:28..
[SLP][NFC]Add a test for copyable with extractelement, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/216174
https://invent.kde.org/qt/clang/llvm/-/commit/4d41192f5dd8c6f3a685bea1fc0144ab9247fb13

Git commit 2178ebc84f249643199d71445fd4ff3d42ca4164 by GitHub (on behalf of Alexey Samsonov) on 13/08/2026 at 20:41..
[libc][x86] Enable memcpy NTA stores by default. (#216149)

Set `LIBC_COPT_MEMCPY_X86_USE_NTA_STORES` by default, which would enable
NTA stores for `memcpy()` calls at some point when processing large
buffers. We've ran some experiment down-stream that show that this
change is performance-neutral on the majority of regular benchmarks /
server applications and have positive impact on ML workloads that need
to copy large tensors into shared memory.

Co-authored-by: Ilya Tokar <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/2178ebc84f249643199d71445fd4ff3d42ca4164

Git commit 806dbe95e7f05b12afd1c7cc579c42e101921199 by GitHub (on behalf of Wael Yehia) on 13/08/2026 at 20:46..
[Profile] Add a more descriptive message to the bad_header error (#211281)

At the moment, the raw profile reader diagnoses different problem with
the same error message "invalid instrumentation profile data (file
header is corrupt)". On AIX, we had users report such problems thinking
it's a compiler bug, while the real problem was truncated profiles.
The particular case they hit was the condition
[here](https://github.com/llvm/llvm-project/blob/668803fa73bdf2f8d095162a1f81c000d18458c9/llvm/lib/ProfileData/InstrProfReader.cpp#L652):
```
Error RawInstrProfReader<IntPtrT>::readHeader(...) {
  ...
  if (Start + ValueDataOffset > DataBuffer->getBufferEnd())
    return error(instrprof_error::bad_header);
```
This could indicate a corrupted header (large garbage values for some
sections) or a truncated file.
I figured if we print the values and sizes we read in the header, it
will give the user more info.

This PR 
1. adds an extra description for a couple of `bad_header` error points,
and
2. updates `tools/llvm-profdata/insufficient-binary-ids-size.test`: this
test was originally meant to test a truncated BinaryId section, but the
test hasn't been updated to reflect new profile header changes and now
is failing due to a truncated header. But both errors are reported as
`bad_header`, which is probably why it was uncaught by authors that
updated the profile header.

---------

Co-authored-by: Wael Yehia <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/806dbe95e7f05b12afd1c7cc579c42e101921199

Git commit 47d86084abba30e93cef3cdf14c936b9deb2f05a by GitHub (on behalf of Alex MacLean) on 13/08/2026 at 20:48..
[NVPTX] Alphabetize NewPM pass classes and macros (NFC) (#216168)

Also standardize use of `class` and parameter names.
https://invent.kde.org/qt/clang/llvm/-/commit/47d86084abba30e93cef3cdf14c936b9deb2f05a

Git commit 8728bc61b4e39eed747b227e8b9c3b5d7a0ce2cd by GitHub (on behalf of Jonas Devlieghere) on 13/08/2026 at 20:56..
[lldb] Add a unified entry point for locating a binary and its symbols (#215391)

The three-plugin composition that finds a binary and its symbol file is open
coded in several places. Give it one home, as a pure function of a module
spec, so that a caller holding several binaries can search for all of them
before creating any.

Nothing on this path takes a lock, where ModuleList::GetSharedModule holds the
shared module list's lock across the plugin search. That is what will make
searching for several binaries at once worth doing.

A miss that nothing could explain gets its own error type rather than an error
code, because a Status carrying an errno converts to the same llvm::ECError,
and a caller composing its own message for a plain miss must not swallow a
failure to reach a symbol server.

DynamicLoader's search no longer runs twice for a binary that is not already
known, and a module created from a located binary is now registered in the
shared module list, so a second Target asking for the same binary reuses it.

Assisted-by: Claude
https://invent.kde.org/qt/clang/llvm/-/commit/8728bc61b4e39eed747b227e8b9c3b5d7a0ce2cd

Git commit df03daa1900190088a9b3c196ce272d10827ad8a by GitHub (on behalf of Eric Christopher) on 13/08/2026 at 20:59..
[NFC][DebugInfo] Fix a parameter name in calculateFragmentIntersect's docs (#216142)

The docs spell it VarFarg, and the parameter is VarFrag, so the \p
reference resolves to nothing. That line is the one saying when Result
comes back empty, which is the behavior callers most need to look up.
https://invent.kde.org/qt/clang/llvm/-/commit/df03daa1900190088a9b3c196ce272d10827ad8a

Git commit dcc7330c1ac270efe9225b42e9f6d2b574bdbf2c by GitHub (on behalf of Dave Lee) on 13/08/2026 at 21:03..
[lldb] Fix dotest.py --help (#216131)

Fixes the following `--help` bug I ran into:

```
% python3 ./lldb/test/API/dotest.py --help
Traceback (most recent call last):
  File "path/to/llvm-project/lldb/test/API/dotest.py", line 8, in <module>
    lldbsuite.test.run_suite()
  File "path/to/llvm-project/lldb/packages/Python/lldbsuite/test/dotest.py", line 1099, in run_suite
    parseOptionsAndInitTestdirs()
  File "path/to/llvm-project/lldb/packages/Python/lldbsuite/test/dotest.py", line 318, in parseOptionsAndInitTestdirs
    configuration.cmake_build_type = args.cmake_build_type.lower()
AttributeError: 'NoneType' object has no attribute 'lower'
```
https://invent.kde.org/qt/clang/llvm/-/commit/dcc7330c1ac270efe9225b42e9f6d2b574bdbf2c

Git commit 87cd470e2f8308d3fac92767aa058ae815019341 by GitHub (on behalf of Florian Hahn) on 13/08/2026 at 21:04..
[LV] Add test with eliminate-able backedge and tail-folding (NFC) (#216171)

Add test for removing backedge with tail-folding with interleaving only.
https://invent.kde.org/qt/clang/llvm/-/commit/87cd470e2f8308d3fac92767aa058ae815019341

Git commit c38835951d6a6facfe3068a7878e49c98941507d by GitHub (on behalf of Ambrose Leeb) on 13/08/2026 at 21:07..
[Clang] [Docs] Switch back to my personal account but keep my name + work email (#216176)
https://invent.kde.org/qt/clang/llvm/-/commit/c38835951d6a6facfe3068a7878e49c98941507d

Git commit 063aa1c1988e4af49889e58ea222a6988c01793a by GitHub (on behalf of Anthony Latsis) on 13/08/2026 at 21:07..
[Modules] Exclude InstrumentorRuntimeHelper.h from LLVM_Transforms (#215843)

7964b66bf55d53f7a528a8153c005bee0614a3d7
(https://github.com/llvm/llvm-project/pull/199329) added
`llvm/Transforms/IPO/InstrumentorRuntimeHelper.h` under the umbrella
directory of the `LLVM_Transforms` clang module. That header is not a
normal C++ API header: it is read as a string at build time (via
`file(READ)` in CMake) and embedded into the instrumentor runtime, and
it includes the C standard headers
`<stdint.h>`/`<string.h>` inside an `extern "C"` block. In Swift's C++
interoperability mode, the includes resolve to the C++
`std_stdint_h`/`std_string_h` modules, which cannot be imported within
an `extern "C"` linkage specification.

```
InstrumentorRuntimeHelper.h:21:1: error: import of C++ module 'std_stdint_h' appears within extern "C" language linkage specification
 17 | #ifdef __cplusplus
 18 | extern "C" {
    | `- note: extern "C" language linkage specification begins here
 19 | #endif
 20 |
 21 | #include <stdint.h>
    | `- error: import of C++ module 'std_stdint_h' appears within extern "C" language linkage specification
```

Exclude the header from `LLVM_Transforms`, mirroring the existing
exclusion of `InstructionWorklist.h`. Since the header is only consumed
as an embedded string and is not included by any other LLVM header, it
never needs to be part of the module's API surface.
https://invent.kde.org/qt/clang/llvm/-/commit/063aa1c1988e4af49889e58ea222a6988c01793a

Git commit 337408048784556bff775dbbceeeb74962e418f7 by GitHub (on behalf of nudt_yixiao) on 13/08/2026 at 21:09..
[Flang] Avoid crash on invalid EQUIVALENCE objects (#215979)

An invalid EQUIVALENCE statement may introduce a symbol that is not a
data object into later offset computation. ComputeOffsetsHelper assumes
such symbols have ObjectEntityDetails when assigning COMMON block
information, which can cause a crash after a semantic error.

Check for ObjectEntityDetails before accessing object-specific
information to keep error recovery paths safe.

Test coverage
- Add a regression test for using a subroutine name as an EQUIVALENCE
object.

Tests:
- llvm-lit -v flang/test/Semantics/equivalence-non-data-object.f90

Co-authored-by: yixiao <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/337408048784556bff775dbbceeeb74962e418f7

Git commit d0bd708c762538e51e1f1d052e997909edac70a9 by GitHub (on behalf of Aiden Grossman) on 13/08/2026 at 21:22..
[Clang] Fix -Wunused-variable in #212373 (#216175)

Fixes https://lab.llvm.org/buildbot/#/builders/228/builds/7871
https://invent.kde.org/qt/clang/llvm/-/commit/d0bd708c762538e51e1f1d052e997909edac70a9

Git commit f395eb5beec8b6868582c75d620a5b0962bf7da7 by GitHub (on behalf of jinge90) on 13/08/2026 at 21:31..
[compiler-rt] Emit wrapper function for __eqsf2, __eqdf2 for SPIR-V (#215957)
https://invent.kde.org/qt/clang/llvm/-/commit/f395eb5beec8b6868582c75d620a5b0962bf7da7

Git commit 3c6e1331f8852db5eb2f89fe6698e42ea070a29d by GitHub (on behalf of Jonas Devlieghere) on 13/08/2026 at 21:41..
[lldb] Consult the platform before the symbol locator plugins (NFC) (#215392)

A symbol locator plugin has no Platform to consult, so a platform that knows
where its binaries live cannot take part in a search. The only way to reach
one is Platform::GetSharedModule, which also creates the module and registers
it, so the lookup cannot be reused by a caller that wants to search for many
binaries before creating any.

Add a hook that only answers where the files are. An answer ends the search,
so an override owns what the plugins would otherwise have been asked for.

No platform overrides it yet. A follow-up moves PlatformDarwinKernel's kext
and kernel index lookups behind it.

Assisted-by: Claude
https://invent.kde.org/qt/clang/llvm/-/commit/3c6e1331f8852db5eb2f89fe6698e42ea070a29d

Git commit 79ab944455edbf7e1c00914f2ba022f8ced1fecc by GitHub (on behalf of Xaver Fabian) on 13/08/2026 at 21:43..
[GlobalISel] Port computeNumSignBits for G_SAVGFLOOR/G_SAVGCEIL (#216093)

Ports the ISD::AVGCEILS / ISD::AVGFLOORS case from
SelectionDAG::ComputeNumSignBits over to
GISelValueTracking::computeNumSignBits.
Part of #150515.

Unlike the SelectionDAG version, this sets FirstAnswer and breaks rather
than returning directly, so the known-bits fallback at the end of
computeNumSignBits still applies. That matters for the pre-existing
constant-operand tests, where the known bits are fully determined and
yield more sign bits than min() of the operands does; returning early
would regress them.

Claude Code helped me navigate the codebase and write the PR
description.
https://invent.kde.org/qt/clang/llvm/-/commit/79ab944455edbf7e1c00914f2ba022f8ced1fecc

Git commit 29615af77627d502db4344524ad567a56c5e590b by GitHub (on behalf of Craig Topper) on 13/08/2026 at 21:46..
[RISCV] Add mvendorid/marchid/mimpid values for SiFive P870-D. (#216106)

You can double check the numbers against values published here
https://camel-cdr.github.io/rvv-bench-results/sifive_p870/data/cpuinfo.txt

I don't have an official doc link for this from SiFive. These are not
the only possible values for P870-D. We may need to support multiple
values for a CPU in the future.
https://invent.kde.org/qt/clang/llvm/-/commit/29615af77627d502db4344524ad567a56c5e590b

Git commit 3f9b06428f54a1382ff56f0be2f0ba7c70b70e2a by GitHub (on behalf of Craig Topper) on 13/08/2026 at 21:47..
[RISCV] Support -march=native (#215939)

-march=native is how to do a native compilation on X86 so it is included in the
build scripts of many projects. ARM and AArch64 also support this
probably for compatibility with X86.

This patch does the same for RISC-V. If -march=native is provided by
itself, I treat it like -mcpu=native. If -mcpu is also provided then the
-mcpu will be used only for -mtune and the ISA string will derive from
the host CPU.

Assisted-by: Claude
https://invent.kde.org/qt/clang/llvm/-/commit/3f9b06428f54a1382ff56f0be2f0ba7c70b70e2a

Git commit 3ae0d109f87dedd2a3f5bdf517556ba3d44283d6 by GitHub (on behalf of Jonas Devlieghere) on 13/08/2026 at 21:49..
[DWARFLinker] Keep address-independent block attributes in the type unit (#215932)

cloneBlockAttr dropped every block and exprloc attribute whose DIE was
placed in the artificial type unit. The intent was to discard location
expressions that resolve against a single origin compile unit, since a
type unit is shared by every unit referencing the type, but the check
was incorrectly applied to all block-form attributes.

Clang encodes DW_AT_data_member_location as DW_FORM_block1 at DWARF 2
and as a constant from DWARF 3 onward, so at DWARF 2 every member and
inheritance offset of a deduplicated record collapsed to zero. This
caused LLDB to crash when trying to build types using the wrong offsets,
but that's a separate issue.

Drop only expressions that carry a target address or reference a base
type DIE, which are the cases the type unit cannot resolve.
https://invent.kde.org/qt/clang/llvm/-/commit/3ae0d109f87dedd2a3f5bdf517556ba3d44283d6

Git commit ae3ea1b11857e54ea904c79e17b0ddc0a19a8020 by GitHub (on behalf of jimingham) on 13/08/2026 at 21:54..
Use static_pointer_cast to do SyntheticChildrenSP -> ScriptedSyntheticChildrenSP (#216181)

FormatManager::GetSyntheticForType was taking a pointer out one shared
pointer and making a new shared pointer referring to it which messes up
the lifecycle of the object.

This is just a little thinko from the original implementation. We do the
same thing in several other places in the TypeCategory, etc. and it's
done correctly in all the other places.

I'm not adding a test here because trying to guess what you have to do
to cause one or the other shared_pointer to get their reference count to
0 isn't particularly stable.

The testing for SBTypeSynthetic is pretty minimal - it would be better
to write a complete test for this class, which would have tripped this.
But that's a bigger task, and I want to get this obvious crasher fix in
now.

This fixes:

github.com/llvm/llvm-project/issues/213628
https://invent.kde.org/qt/clang/llvm/-/commit/ae3ea1b11857e54ea904c79e17b0ddc0a19a8020

Git commit c98961e3053140b0a4444029425c7e53d73694fa by GitHub (on behalf of Alexey Bataev) on 13/08/2026 at 21:54..
[SLP]Release copyable operand deps on duplicate parent-phi lanes

Non-scheduled entries feeding a phi may repeat a def across lanes. The
scheduler skipped duplicate parent-phi user lanes entirely, so per-column
copyable scheduling data was never released and the copyable bundles never
became ready.

Fixes #216146

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/216186
https://invent.kde.org/qt/clang/llvm/-/commit/c98961e3053140b0a4444029425c7e53d73694fa

Git commit f7f96294e59d289fc0a07a25cacab7d3451ae785 by GitHub (on behalf of Nico Weber) on 13/08/2026 at 21:56..
[gn build] Port 551766823bb7 (#216189)
https://invent.kde.org/qt/clang/llvm/-/commit/f7f96294e59d289fc0a07a25cacab7d3451ae785

Git commit af6d788c7a011f946ffd3cff30b13a3c8e2bdcf5 by GitHub (on behalf of Sophia Herrmann) on 13/08/2026 at 22:08..
[LLVMOffload] Fix LLVMOffload tests from running on Intel in #212373 (#216187)

Offloading via LLVM currently does not support Intel GPUs, this disables
running the tests for them.

Fixes the buildbot error from #212373
https://invent.kde.org/qt/clang/llvm/-/commit/af6d788c7a011f946ffd3cff30b13a3c8e2bdcf5

Git commit 5affffde4e825b8508a235bd611106dc9b33fb14 by GitHub (on behalf of Adam Smith) on 13/08/2026 at 22:22..
[CIR] Stop skipping an indirect cir.try_call in callconv lowering (#214983)

x86_64 calling-convention lowering lowers a callee's signature while
leaving an indirect `cir.try_call` to that callee in the form it was
written in hand-written CIR.

Now the `try_call` reaches the call-site rewriter, which reports it
because it cannot rebuild a `cir.try_call` yet.

Assisted-by: Cursor / claude-opus-5
https://invent.kde.org/qt/clang/llvm/-/commit/5affffde4e825b8508a235bd611106dc9b33fb14

Git commit 5d6030e91052f92a04da327b1f5ac5714606d373 by GitHub (on behalf of Alex Crichton) on 13/08/2026 at 22:28..
[WebAssembly] Fix __init_tls_base global in coop threading  (#208597)

This commit updates how `wasm-ld` initializes the `__init_tls_base`
global during module instantiation. Previously this global was left
entirely unmodified meaning that it was always 0. This change updates
the `__wasm_init_memory` function to set this global dynamically in PIC
mode based on the TLS address calculation, or in non-PIC mode the
generation of `__wasm_init_memory` correctly sets it to the desired TLS
address.

cc https://github.com/WebAssembly/wasi-libc/issues/819
https://invent.kde.org/qt/clang/llvm/-/commit/5d6030e91052f92a04da327b1f5ac5714606d373

Git commit 18847c2d7cfecebfc6684951c853125352b6cb00 by GitHub (on behalf of Reid Kleckner) on 13/08/2026 at 22:38..
[docs] Rename selected Clang docs to Markdown (#214615)

Tracking issue: #201242
See the [migration guide] for more information. 

[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines

This is the initial straight rename commit. It will probably break the
docs build, but it has to be a separate PR for blame preservation
purposes.
https://invent.kde.org/qt/clang/llvm/-/commit/18847c2d7cfecebfc6684951c853125352b6cb00

Git commit f1ce7c97309c466898e7f809b3600219c57439ef by GitHub (on behalf of Reid Kleckner) on 13/08/2026 at 22:38..
[docs] Finish MyST migration for selected Clang docs (#214617)

Tracking issue: #201242
See the [migration guide] for more information. 

[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
This is a stacked PR based on #214615 , which will be a standalone
commit that
renames *.rst -> *.md before this PR lands for history preservation
purposes.

This was prepared with rst2myst plus LLM-assisted cleanup. I paged
through all the generated HTML looking for migration artifacts, and all
of the differences I could find appear to be formatting error
corrections.
https://invent.kde.org/qt/clang/llvm/-/commit/f1ce7c97309c466898e7f809b3600219c57439ef

Git commit 4b209b509e77fcbb16457a03fbde0dabc99144c4 by GitHub (on behalf of Pengxiang Huang) on 13/08/2026 at 22:44..
[libc][Semaphore] Add public sem_t type and entry (#213489)

fix #190847 

Add the public `sem_t` class that operates on the internal `Semaphore`
class.

Assisted-by: Claude Code Fable 5.
https://invent.kde.org/qt/clang/llvm/-/commit/4b209b509e77fcbb16457a03fbde0dabc99144c4

Git commit 517b22f7f0258e1b3d8ce5ba3ee34066cb64d529 by GitHub (on behalf of Helmut Januschka) on 13/08/2026 at 22:48..
[clang] Fix crash on implicit conversion of a reference NTTP bound to a subobject (#215900)

A non-type template parameter of pointer or reference type is substituted
with a ConstantExpr wrapping an OpaqueValueExpr that has no source
expression, see BuildExpressionFromNonTypeTemplateArgumentValue().

When such a parameter appears in a context that needs an implicit
conversion, the -Wconversion machinery inspects the expression, and
TryGetExprRange() recursed into OpaqueValueExpr::getSourceExpr() without
checking for null. The recursive call then dereferenced null in
Expr::IgnoreParens():

  struct S { static bool arr[2]; };
  bool S::arr[2];
  template <bool &Ref> int f() { return Ref; }
  int g() { return f<S::arr[1]>(); }

Only recurse when there is a source expression, matching what
CheckImplicitConversion() already does for OpaqueValueExpr, and otherwise
fall back to the range of the expression's type.
https://invent.kde.org/qt/clang/llvm/-/commit/517b22f7f0258e1b3d8ce5ba3ee34066cb64d529

Git commit 702062fafee9d0ce377c547d6ae575b5efa0533f by GitHub (on behalf of Eric Christopher) on 13/08/2026 at 22:53..
[NFC][DSE][DebugInfo] Say what an empty fragment intersect means (#216123)

calculateFragmentIntersect leaves NewFragment empty when the intersect
covers
everything the record describes, which is an answer rather than a
failure. The
comment here only described the failure, so the case where the dead
slice
covers the whole thing read as something having gone wrong.
https://invent.kde.org/qt/clang/llvm/-/commit/702062fafee9d0ce377c547d6ae575b5efa0533f
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.