[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 3fbb037d03e7ff1ef1cd9156363e895af7caaf98 to 6a33b69d8bae737e5e1d60c7b7776a0b1f885bfa
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 dbab04510ee89e5e9ed03cb6aff63fd218fb3042 by GitHub (on behalf of Teresa Johnson) on 17/07/2026 at 23:13..
[TailCallElim] Optionally suppress tail call elim for cold calls (#209642)

Since eliminated tail calls result in missing frames when collecting
various types of profiles, provide an option for disabling the
elimination for cold non-musttail calls. By default the new handling is
disabled.

Since the new checks require BFI to be built in more cases, I have moved
UpdateFunctionEntryCount and ForceDisableBFI (renamed to
DisableEntryCountRecompute to match the flag and description), to
actually guard the function entry count update.
https://invent.kde.org/qt/clang/llvm/-/commit/dbab04510ee89e5e9ed03cb6aff63fd218fb3042

Git commit c4962f5721a36e198234019b846d3788738f766a by GitHub (on behalf of Med Ismail Bennani) on 17/07/2026 at 23:21..
[lldb/script] Add scripting extension template generator (#209647)

This patch adds a `scripting extension generate <ExtensionType>...`
command that introspects a Python extension base class and emits a
skeleton subclass with `# TODO: Implement` stubs for its abstract
methods (or, with `-a`, every method), then opens the result in an
editor.

Generated imports use `from <module> import <class>`, and the generated
`__init__` forwards its arguments to `super().__init__(...)` since every
base class relies on its constructor to set up attributes
(`self.target`, `self.process`, ...) that inherited, non-overridden
methods depend on. When the host can't open an external editor (e.g.
non-macOS), the command reports that as a message rather than an error,
since the file is already written.

To catch regressions in the generator itself instead of just checking
that a file was produced, this patch adds
`TestScriptingExtensionGenerate.py`, which generates a template for
every extension kind on the fly and drives it through a live lldb
session (`process launch -C`, `breakpoint set -P`, `target stop-hook add
-P`, etc.).

Signed-off-by: Med Ismail Bennani <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/c4962f5721a36e198234019b846d3788738f766a

Git commit ccd75bb4b9c6d9c2e149d355c35193ca554c99a0 by GitHub (on behalf of Andy Kaylor) on 17/07/2026 at 23:24..
[CIR] Introduce loop cleanup regions (#210212)

For loops and while loops can create variables in their condition
regions that require per-iteration cleanup. The CIR dialect previously
had no clean way to represent these cleanups while maintaining a
separate condition region for the loop operation.

This change introduces an optional cleanup region to these loop ops and
updates the relevant region successor handling to reflect the insertion
of the cleanup region in the control flow when a non-empty cleanup
region is present.

The CFG flattening pass will handle routing the control flow through the
cleanup region in both the normal and EH unwind cases, but this is not
yet implemented. That will be added in a follow-up change, as will
creation of the cleanup region when it is needed during IR generation.

Assisted-by: Cursor / various models
https://invent.kde.org/qt/clang/llvm/-/commit/ccd75bb4b9c6d9c2e149d355c35193ca554c99a0

Git commit ab6ef5680eb79e102414740198f5aa1015c5c254 by GitHub (on behalf of Jonas Devlieghere) on 17/07/2026 at 23:35..
[lldb] Contribute the GDB-remote packet history to diagnostics bundles (#210418)

Register a Diagnostics artifact provider from ProcessGDBRemote so a
diagnostics bundle captures the GDB-remote packet history, the same data
"process plugin packet history" prints.
https://invent.kde.org/qt/clang/llvm/-/commit/ab6ef5680eb79e102414740198f5aa1015c5c254

Git commit 03b9039147cca65e2b4fa3adcbbbf40f73e3a3c9 by GitHub (on behalf of Reid Kleckner) on 18/07/2026 at 00:00..
[docs] Update the commit review admin task with process details (#210420)

As discussed in the infra area team meeting. Mostly this serves as a
place to stash helpful links.

I picked an arbitrary two week timeout for requests. We can re-evaluate at any time.
It seems less than ideal that one needs issue tracker labelling
privileges to reopen the issue, but I think that's accurate.
https://invent.kde.org/qt/clang/llvm/-/commit/03b9039147cca65e2b4fa3adcbbbf40f73e3a3c9

Git commit 42eb7db188f23625872b6f1d722979a3100d170e by GitHub (on behalf of Haowei) on 18/07/2026 at 00:17..
Revert "Skipping host target exports during cross-compilation" (#210468)

Reverts llvm/llvm-project#209922
It broke runtimes build on amdgpu-amd-amdhsa
https://invent.kde.org/qt/clang/llvm/-/commit/42eb7db188f23625872b6f1d722979a3100d170e

Git commit d00710093a3d2795200dbf065836220345aa9e9d by GitHub (on behalf of Igor Kudrin) on 18/07/2026 at 00:20..
[lldb-dap][test] Avoid a hang on a test failure (#209988)

Tests in `TestDAP_server.py` create `DebugAdapterServer`, passing a
connection string. `DebugAdapterServer.__init__()` creates a socket and
passes the associated input and output streams to its parent class,
`DebugCommunication`. `DAPTestCaseBase.launch()`, which is called from
`TestDAP_server.run_debug_session()`, adds a teardown hook that
eventually calls `DebugCommunication.terminate()`. If the socket is not
closed when this hook executes, it waits indefinitely for the receiving
thread to join.

In the normal case, when a test passes, the connection is closed by
calling `self.dap_server.request_disconnect()` at the end of
`TestDAP_server.run_debug_session()`. If a test fails, the cleanup hook
is called while the connection is still active, which results in a hang.
This can be reproduced by removing the call to `request_disconnect()` or
by changing the condition in the `assertEqual()` on the previous line.

The fix passes the opened socket to 'DebugCommunication' and closes the
socket explicitly in 'DebugCommunication.terminate()'.
https://invent.kde.org/qt/clang/llvm/-/commit/d00710093a3d2795200dbf065836220345aa9e9d

Git commit fb2fa0b0f0a8b061401f6cfa3c2fadd3fbfb3b35 by GitHub (on behalf of Lucas Ribeiro Lima) on 18/07/2026 at 00:50..
[clang][clangIR]: X86 upstream avx psrldqi/pslldqi (#208025)

This PR upstreams the implementation and corresponding test suites for
X86 byte-shift intrinsics (pslldqi / psrldqi) spanning 128, 256, and
512-bit vector variants from the incubator.

I consolidated both left and right shifts into a single code path since
the underlying lane topology is identical, extracting the
direction-specific index arithmetic into clean variables at the top. Let
me know if you prefer this unified data-driven approach or if explicit
split functions for left/right shifts would be preferred for local
readability.

All integrated tests from the incubator have been upstreamed and are
currently passing.

Minimal compile case
```cpp
#include <emmintrin.h>
#include <iostream>

struct DataLayout {
  alignas(16) int values[4];
};

#define INDEX 1

int main(int argc, char **argv) {
  DataLayout data{8, 4, 2, 1};

  std::cout << "Value before: " << data.values[INDEX] << '\n';

  __m128i reg128i =
      _mm_load_si128(reinterpret_cast<__m128i const *>(data.values));
  __m128i reg_right_shift = _mm_bsrli_si128(reg128i, 4);
  __m128i reg_left_shift = _mm_bslli_si128(reg128i, 4);

  DataLayout result_right;
  _mm_store_si128(reinterpret_cast<__m128i *>(result_right.values),
                  reg_right_shift);

  DataLayout result_left;
  _mm_store_si128(reinterpret_cast<__m128i *>(result_left.values),
                  reg_left_shift);

  std::cout << "Value after left: " << result_left.values[INDEX] << '\n';
  std::cout << "Value after right: " << result_right.values[INDEX] << '\n';

  return 0;
}
```
Addresses #167752.
https://invent.kde.org/qt/clang/llvm/-/commit/fb2fa0b0f0a8b061401f6cfa3c2fadd3fbfb3b35

Git commit b0440cb55a22e979e81934e0c031c9d46e71f9da by GitHub (on behalf of Fangrui Song) on 18/07/2026 at 01:28..
[CycleInfo] Reference cycles by preorder index, not pointer. NFC (#210271)

The block-to-innermost-cycle map (BlockMap) and each cycle's parent link
hold a GenericCycle pointer. Store the cycle's preorder index instead,
so no raw cycle pointer remains in the stored representation: BlockMap
becomes a SmallVector<unsigned>, four bytes per block rather than eight,
and the parent link becomes ParentIndex.

The flat Cycles array does not exist during construction, so both hold
creation-order indices into the temporary forest until flatten()
resolves them to preorder indices.

Aided by Claude Opus 4.8
https://invent.kde.org/qt/clang/llvm/-/commit/b0440cb55a22e979e81934e0c031c9d46e71f9da

Git commit ee5d6f537da4bc81b956b4813afbc0877f82b59d by GitHub (on behalf of forking-google-bazel-bot[bot]) on 18/07/2026 at 01:29..
[Bazel] Fixes c1c278e (#210451)

This fixes c1c278e7484038f1d14314f38736532975fafd20.

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

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

Git commit 1ef8ba9a00e16423d711ddbf16c7a45fb7fd570b by GitHub (on behalf of Luc Forget) on 18/07/2026 at 02:59..
[MLIR][WasmSSA] Instruction parser refactoring of WasmSSA importer (#195500)

Refactored WasmSSA importer mechanism to dispatch control flow to
relevant parser based on op code.
This is to prepare for instructions with multi-bytes opcodes (e.g.
vector instruction and some scalar instructions extensions) which will
be able to reuse the same mechanism.

It also replaces the bit tree to find the address by a jump table.

---------

Co-authored-by: Luc Forget <[email protected]>
Co-authored-by: Ferdinand Lemaire <[email protected]>
Co-authored-by: Ferdinand Lemaire <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/1ef8ba9a00e16423d711ddbf16c7a45fb7fd570b

Git commit cf11eef1c9476c8778055d7963fdac34b6628582 by GitHub (on behalf of Reid Kleckner) on 18/07/2026 at 04:14..
[docs] Rename selected LLVM docs to Markdown (#208800)

Tracking issue: https://github.com/llvm/llvm-project/issues/201242
Migration guide docs:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
RFC:
https://discourse.llvm.org/t/rfc-make-myst-markdown-the-llvm-docs-format-rip-rest/90840

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/cf11eef1c9476c8778055d7963fdac34b6628582

Git commit cddf2069ded94cb47048ad2a5f340d12c35f1651 by GitHub (on behalf of Reid Kleckner) on 18/07/2026 at 04:23..
[docs] Rewrite 19 LLVM docs from reST to markdown (#208798)

Tracking issue: #201242
[Migration
guide](https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines)

This is a stacked PR based on #208800, which does the file rename to
preserve history.

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/cddf2069ded94cb47048ad2a5f340d12c35f1651

Git commit a623e8d4381e26eceff29209e6db411617d95f83 by GitHub (on behalf of Nico Weber) on 18/07/2026 at 04:50..
[gn build] Port 2dbcd7d10f94 (#210484)
https://invent.kde.org/qt/clang/llvm/-/commit/a623e8d4381e26eceff29209e6db411617d95f83

Git commit 605b6d73214cf253fc5fb9d5befe99857bd480cf by GitHub (on behalf of Nico Weber) on 18/07/2026 at 04:50..
[gn build] Port 986cdd8618e3 (#210485)
https://invent.kde.org/qt/clang/llvm/-/commit/605b6d73214cf253fc5fb9d5befe99857bd480cf

Git commit 56fc7bf0c364ab210c49c3b95e7130d337490b78 by GitHub (on behalf of Nico Weber) on 18/07/2026 at 04:52..
[gn build] Port c1c278e74840 (#210488)
https://invent.kde.org/qt/clang/llvm/-/commit/56fc7bf0c364ab210c49c3b95e7130d337490b78

Git commit 2e1c934fea272654ab2b00f60b6d3dba93123190 by GitHub (on behalf of Nico Weber) on 18/07/2026 at 04:53..
[gn build] Port a12cbbcc94a8 (#210487)
https://invent.kde.org/qt/clang/llvm/-/commit/2e1c934fea272654ab2b00f60b6d3dba93123190

Git commit 3be5663001465e74c7b879ad4d4cbfc3c94caeba by GitHub (on behalf of Nico Weber) on 18/07/2026 at 04:53..
[gn build] Port 9b096bb7abf7 (#210486)
https://invent.kde.org/qt/clang/llvm/-/commit/3be5663001465e74c7b879ad4d4cbfc3c94caeba

Git commit 6a33b69d8bae737e5e1d60c7b7776a0b1f885bfa by GitHub (on behalf of Kazu Hirata) on 18/07/2026 at 05:09..
[SampleProfile] Support MD5-based ProfileSymbolList (#210235)

This patch speeds up sample profile loading by introducing an
MD5-based ProfileSymbolList (cold symbol list) in extensible binary
profiles.

The sample profile loader spends about a third of its time on loading
and decoding the symbol names in the Profile Symbol List section, yet
we use them only for membership checking purposes via
ProfileSymbolList::contains.

This patch teaches the writer to emit the section as an array of
64-bit GUIDs in the Eytzinger layout.  The reader checks the
SecFlagMD5 section flag and sets up an EytzingerTableSpan
pointing into the mmap memory.  This achieves both space efficiency
and runtime efficiency.

The new flag, md5-prof-sym-list, is off by default for now.

Profile merging is supported only from strings to an MD5-based
Eytzinger array.

RFC:
https://discourse.llvm.org/t/rfc-faster-sample-profile-loading/90957/7

Assisted-by: Antitygravity
https://invent.kde.org/qt/clang/llvm/-/commit/6a33b69d8bae737e5e1d60c7b7776a0b1f885bfa
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.