[qt/clang/llvm-project]: 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-project
Pushed by mirror-service into branch 'upstream/release/23.x'.
Changed from 63b5d9c3115261d3de097baed4c951ac6a302d9e to 493aab374fd960aa776fd0571eb05395a2588e10
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 a8f4b7f31601dc8cb302f27c5cb73ff020d0b8b0 by Tobias Hieta (on behalf of Dan Bonachea) on 23/07/2026 at 05:36..
[flang][docs] Release notes: multi-image updates

Populate flang 23 release notes with multi-image feature updates.
https://invent.kde.org/qt/clang/llvm-project/-/commit/a8f4b7f31601dc8cb302f27c5cb73ff020d0b8b0

Git commit 5868a854a445dfcfaccf742eb6ae33b8162ef77f by Tobias Hieta (on behalf of Jonas Devlieghere) on 23/07/2026 at 05:44..
[DWARFLinker] Fix RefTypeName crash and type-table non-determinism (#209033)

The parallel linker computes DIE placement (artificial type unit vs
plain DWARF) concurrently across compile units.

1. updateDependenciesCompleteness checked the placement of the enclosing
root type (getRootForSpecifiedEntry) instead of the actual referenced
DIE. A nested type can be demoted to plain DWARF while its root stays in
the type table, leaving a type-unit DIE that references a plain DIE and
tripping the RefTypeName assertion in
DIEAttributeCloner::cloneDieRefAttr. Carry the actual referenced DIE on
the worklist item and check its placement.

2. The completeness dependency set was recorded as a side effect of the
concurrent marking traversal, which short-circuits on already-marked
DIEs (isAlreadyMarked) before maybeAddReferencedRoots. When a shared
cross-CU DIE was already marked by a racing CU, the current referencing
root's outgoing dependencies were dropped, so the demotion fixpoint
missed demotions and whole type subtrees were left in the artificial
type unit non-deterministically. Add a RecordDepsOnly mode that, on the
short-circuit, re-walks the already-marked subtree and records the
dependencies directly without marking, scheduling, or following
references (so no cycles). This makes the recorded dependency set
complete and order-independent; the demoted-DIE set now matches the
single-threaded result on every run.

rdar://180584698
(cherry picked from commit cdc31cfa66f0b2da2483854db9c783ddba120c42)
https://invent.kde.org/qt/clang/llvm-project/-/commit/5868a854a445dfcfaccf742eb6ae33b8162ef77f

Git commit af1bc1ffc4e3e2d5beae8993f8502f593b403bc5 by Tobias Hieta (on behalf of AntonyCJ30) on 23/07/2026 at 05:46..
[X86] Fix swapped VPTERNLOG231_imm8/VPTERNLOG312_imm8 SDNodeXForm bodies (#209782)

Fixes #157929

VPTERNLOG231_imm8 and VPTERNLOG312_imm8 had their bodies swapped,
causing ISel to emit the wrong truth-table immediate whenever operand
reordering was needed (-O1+, not -O0).

Test changes:
- **avx512-vpternlog-commute.ll: regenerated with
update_llc_test_checks.py**
  (accounts for the large diff)
- Added 4 new cases: vpternlog231_rmik, vpternlog312_rmik,
  vpternlog231_rmbik, vpternlog312_rmbik

Tested: llvm-lit on llvm/test/CodeGen/X86 (no regressions), original
repro verified correct at -O0 through -O3, -Os, -Oz.

(cherry picked from commit bd38dd0ace19c3b9512da2b37bb9690ee6c9e97f)
https://invent.kde.org/qt/clang/llvm-project/-/commit/af1bc1ffc4e3e2d5beae8993f8502f593b403bc5

Git commit bb709cbce5518899fd64f14a0ecc984ea5864d6e by Tobias Hieta (on behalf of Ben Dunbobbin) on 23/07/2026 at 05:54..
[DTLTO] Add remote compiler option forwarding coverage (#208589)

Add a cross-project DTLTO test that checks the existing LTO
configuration state serialized into the remote Clang command line. The
test uses the validate.py distributor to inspect the generated DTLTO
JSON.

Cover all the existing forwarded options.

Add paired negative checks for optional flags so the test also verifies
they are not emitted when the corresponding configuration state is not
set.

(cherry picked from commit c012610ab9924f465baea5e62397056ea9594567)
https://invent.kde.org/qt/clang/llvm-project/-/commit/bb709cbce5518899fd64f14a0ecc984ea5864d6e

Git commit 5910053397fd94218911be6e6845c2ac8927af0b by Tobias Hieta (on behalf of Ben Dunbobbin) on 23/07/2026 at 05:54..
[DTLTO] Forward loop interchange to DTLTO remote compilations (#208591)

Recent upstream LLVM changes enabled `LoopInterchangePass` by default
through `PipelineTuningOptions`. TLTO observes that state directly from
the LTO config, but DTLTO was not forwarding the equivalent Clang option
to the remote compiler. As a result, TLTO could run loop interchange
pass while DTLTO did not, producing codegen differences for
configurations that exposed profitable/legally interchangeable loops.
Note that this was a pre-existing issue, the change in default has
simply exposed it.

Forward `C.PTO.LoopInterchange` as `-floop-interchange` when
constructing the common DTLTO remote compiler options. Extend the
testing to check that the SN-DBS remote command line includes the
forwarded option.

The code for forwarding such options is only intended as a temporary
measure. A more comprehensive solution is in discussion here:
https://discourse.llvm.org/t/synchronizing-lto-code-generation-configuration-between-clang-and-lld-dtlto

(cherry picked from commit 49d568a8d60d5912a5a7d8b2c3ac1caf58dab3e6)
https://invent.kde.org/qt/clang/llvm-project/-/commit/5910053397fd94218911be6e6845c2ac8927af0b

Git commit 32eed90cb80eb7b88a3d3cf0fed7258d69a65075 by Tobias Hieta (on behalf of Adrian Prantl) on 23/07/2026 at 05:56..
[lldb] Fix Unicode code point formatting to use proper notation  (#211131)

- use uppercase hex digits

- only emit "U+" notation for valid code points (<= U+10FFFF),
zero-padded to a minimum of four digits.

rdar://173817553

Assisted-by: claude
(cherry picked from commit 0cd942fa1b6de94fd6d7fa7ba73f0233293115f8)
https://invent.kde.org/qt/clang/llvm-project/-/commit/32eed90cb80eb7b88a3d3cf0fed7258d69a65075

Git commit 3eed3d7f35e313f3d5b51c695777196126112210 by Tobias Hieta (on behalf of Alexander Kornienko) on 23/07/2026 at 06:03..
Revert "[Clang] Rebuild lambda captures in default member initializers while skipping body (#196597)" (#211001)

This reverts commit 50f30bedaa81919915049474f4350ef19c36b7ca. The commit
causes a crash in clang:
https://github.com/llvm/llvm-project/pull/196597#issuecomment-4997866573

(cherry picked from commit 150aa53d48aa6fdde26e00ea118582eb949f0dca)
https://invent.kde.org/qt/clang/llvm-project/-/commit/3eed3d7f35e313f3d5b51c695777196126112210

Git commit fe4580e97f23cabe4c1664888aad78875ef8b7f1 by Tobias Hieta (on behalf of Daniil Kovalev) on 23/07/2026 at 06:04..
[PAC][libc++] Fix build with `ptrauth_calls` feature (#211033)

After partial revert of #208330 in #209928, the libcxx build started
failing because of missing `<cstdint>` include required for `uintptr_t`
declaration used only by code behind `ptrauth_calls` feature check. See
https://lab.llvm.org/buildbot/#/builders/227/builds/3358

This patch adds the missing include.

(cherry picked from commit 12e1c7f70f34d59c023d05d0fe2c228a4e9aac11)
https://invent.kde.org/qt/clang/llvm-project/-/commit/fe4580e97f23cabe4c1664888aad78875ef8b7f1

Git commit b570122870b6ddce104475f7d6e2441540f6a191 by Tobias Hieta (on behalf of Yuxuan Chen) on 23/07/2026 at 06:05..
[Clang][coro] Fix `coro.free` in `.resume` clones with `[[clang::coro_await_elidable]]` (#207799)

Fixes https://github.com/llvm/llvm-project/issues/188230

CoroAnnotationElide rewrites annotated safe calls to the `.noalloc`
variant. The noalloc frame is caller-owned, but its `.resume` clone is
shared with ordinary heap-allocated instances.

With a `suspend_never` final suspend, normal resumption falls through to
the `coro.free` deallocation path. Regular frontend cleanup has already
run before this point. `coro.free` must therefore produce the frame
pointer for a heap instance and null for a `.noalloc` instance.

Use the frame destroy slot as a per-instance allocation tag. Cache its
value at resume entry, before user code can resume and release the
enclosing caller frame, then compare it with the cleanup clone. Replace
each `coro.free` result with the frame pointer for a heap instance and
null for an elided instance.

Update the CoroSplit and Clang CodeGen checks to cover the conditional
deallocation and the original suspend_never final-suspend shape.

Assisted-By: Codex GPT 5.5
(cherry picked from commit b9e3e6546dcb4b33d023b7a336163d5650cda9d4)
https://invent.kde.org/qt/clang/llvm-project/-/commit/b570122870b6ddce104475f7d6e2441540f6a191

Git commit 6a8bec8771d46e9c1f085eb95e28c3400731ea66 by Tobias Hieta (on behalf of Florian Hahn) on 23/07/2026 at 06:06..
[Matrix] Use incoming terminator as insert point in visitPHI. (#211211)

For some instructions, like invoke, getInsertionPointAfterDef may return
an std::nullopt. Using the insert point after the phi is then incorrect.
Use the incoming terminator as default insert point to fix a crash in
the added test cases.

PR: https://github.com/llvm/llvm-project/pull/211211
(cherry picked from commit 8c556564a2199e13f59dc43bfa5ef4345a89ae3b)
https://invent.kde.org/qt/clang/llvm-project/-/commit/6a8bec8771d46e9c1f085eb95e28c3400731ea66

Git commit 62d4ad9d04ce02a59edd12170418b93ea6334d7a by Tobias Hieta (on behalf of Xing Xue) on 23/07/2026 at 06:06..
[libunwind][AIX] Handle VAPI-based return addresses in stack unwinding for LLU (#209280)

In AIX's implementation of LLU (Live Library Update), the caller of a
Virtual API (VAPI) interface instead calls VAPI glue and the
implementation for a VAPI function is entered from the VAPI glue. If a
VAPI is not already active on the thread, the VAPI calls the
implementation of the VAPI function with the link register (LR) value
set to a return address in the VAPI glue. In this case, the LR (return
address) value on entry to the VAPI glue is saved in the VAPI control
block. This PR checks whether the return address in a stack frame falls
within the VAPI address range. If it does, the unwinder retrieves the LR
value from the VAPI control block and uses it as the return address
during stack unwinding. In addition, before transferring control to a
landing pad, this PR executes the VAPI return glue to clear the VAPI
control block if the VAPI glue was used.

---------

Co-authored-by: Hubert Tong <[email protected]>
(cherry picked from commit 8aa808457c6aeba25ec0e17139c3fcab59923c3c)
https://invent.kde.org/qt/clang/llvm-project/-/commit/62d4ad9d04ce02a59edd12170418b93ea6334d7a

Git commit c1ee0469a29838971c46ec358bba3a6ff0b55e17 by Tobias Hieta (on behalf of Med Ismail Bennani) on 23/07/2026 at 06:09..
[lldb/script] Improve `scripting extension list` output and filtering (#209400)

This patch improves `scripting extension list` in three ways.

First, it groups the output by `ScriptedExtension`: instead of one row
per registered plugin instance, one entry per extension is printed with
a combined `Language` field.

Second, it colorizes and visually separates the output. Each entry is
preceded by a dimmed dashed separator; field labels are printed in bold
green, the extension name value in bold cyan as a mini-heading, and
`None` usage values are dimmed, all via the same
`ansi::FormatAnsiTerminalCodes(..., use_color)` idiom
`Breakpoint::GetDescription` uses elsewhere, gracefully no-op when color
is disabled or unsupported. `ScriptedInterfaceUsages::Dump` takes an
optional `use_color` parameter so its own `API Usages:` / `Command
Interpreter Usages:` labels can match.

Third, it adds `-j`/`--json` to emit a JSON array of `{name,
description, languages, api_usages, command_interpreter_usages}` per
extension, mirroring `plugin list`'s existing `-j`. `DoExecute` now
computes the extension grouping once and branches into
`OutputJsonFormat` or `OutputTextFormat`, sharing a
`GetLanguagesForExtension` helper. It also accepts optional positional
`<extension-name>` arguments to filter the listing to specific
extensions (matched via the same case-insensitive
`ScriptInterpreter::StringToExtension` used by `scripting extension
generate`), with completion wired up via `eScriptedExtensionCompletion`.

Also fix a latent lifetime bug in the shared language-collection helper
so it owns its `std::string` values instead of holding `StringRef`s to
temporaries; the JSON path made it observable.

Signed-off-by: Med Ismail Bennani <[email protected]>
(cherry picked from commit 514b75bbc54f751abdcd32f118f620c3dd2ce4ae)
https://invent.kde.org/qt/clang/llvm-project/-/commit/c1ee0469a29838971c46ec358bba3a6ff0b55e17

Git commit 694db4d29649887af61cdba22bd5c15d3adc180b by Tobias Hieta (on behalf of Med Ismail Bennani) on 23/07/2026 at 06:09..
[lldb/script] Add type hints to scripted extension base classes (#209680)

This patch adds type annotations to every method (parameters and return
types) and every `self.<name>` attribute of the scripted extension base
classes shipped under `lldb/examples/python/templates/`. Extension
authors reading the base classes -- or an IDE navigating them -- can now
see the `lldb.SB*` contract each method exposes without having to
cross-reference the docstring.

`scripting extension generate` also picks the annotations up: derived
class docstrings advertise each inherited attribute together with its
declared type, and the generated method signatures carry their parameter
and return annotations too.

The classes covered are `ScriptedProcess`, `ScriptedThread`,
`ScriptedFrame`, `PassthroughScriptedProcess`,
`PassthroughScriptedThread`, `ScriptedFrameProvider`,
`ScriptedBreakpointResolver`, `ScriptedThreadPlan`, `ScriptedHook`,
`ScriptedPlatform`, and `OperatingSystem`.

Signed-off-by: Med Ismail Bennani <[email protected]>
(cherry picked from commit f10ede511119d7f31f2c6aaca3cbcb1ea00164ce)
https://invent.kde.org/qt/clang/llvm-project/-/commit/694db4d29649887af61cdba22bd5c15d3adc180b

Git commit e28ea20ce0e8e38c2bbb209af8d3d361794be087 by Tobias Hieta (on behalf of Med Ismail Bennani) on 23/07/2026 at 06:09..
[lldb/script] Migrate frame recognizers onto ScriptedPythonInterface  (#209805)

Give `frame recognizer add -l` a formal
ScriptedStackFrameRecognizerInterface, matching the architecture already
used by ScriptedProcess, ScriptedBreakpoint, etc.: a C++ interface
header, a Python-backed implementation built on
ScriptedPythonInterface's CreatePluginObject/Dispatch machinery,
PluginManager registration, and a generatable Python ABC template
(scripted_stackframe_recognizer.py).

get_recognized_arguments' documented contract returns a plain list of
lldb.SBValue (not an lldb.SBValueList), so it bypasses the generic
Dispatch<ValueObjectListSP>() extractor and calls the SWIG bridge
directly, matching the legacy behavior exactly.

ScriptedStackFrameRecognizer now holds a single interface object created
once in its constructor and reused across every RecognizeFrame() call,
same lifecycle as before.

Signed-off-by: Med Ismail Bennani <[email protected]>
(cherry picked from commit a07b91d8243b8a8051dbbe5739eacc7942269c61)
https://invent.kde.org/qt/clang/llvm-project/-/commit/e28ea20ce0e8e38c2bbb209af8d3d361794be087

Git commit 3df0bbdc25cd467192ffafd6500d3404de34cd0e by Tobias Hieta (on behalf of Med Ismail Bennani) on 23/07/2026 at 06:09..
[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]>
(cherry picked from commit c4962f5721a36e198234019b846d3788738f766a)
https://invent.kde.org/qt/clang/llvm-project/-/commit/3df0bbdc25cd467192ffafd6500d3404de34cd0e

Git commit 938bba16d3552561cfaddab1322d065d6c021ffa by Tobias Hieta (on behalf of Med Ismail Bennani) on 23/07/2026 at 06:09..
[lldb/script] Only auto-open the generator template in an editor when interactive (#210808)

`scripting extension generate` always launched the external editor after
writing the template to disk, which is fine when a user types the
command at the prompt but is undesirable when the command runs from the
test suite, a headless driver, or a script -- each invocation spawns an
editor that nobody sees.

Extend `--open-editor` (`-e`) so that the default (`eLazyBoolCalculate`)
now dispatches on `CommandReturnObject::GetInteractive()`, which
`SBCommandInterpreter::HandleCommand` explicitly clears. That's the
accurate signal even when the process' stdin is a TTY inherited from the
parent (e.g. `lldb-dotest` invoked from a terminal). `--open-editor yes`
and `--open-editor no` still force the behavior explicitly.

Signed-off-by: Med Ismail Bennani <[email protected]>
(cherry picked from commit 3d0f18b6210e8cbc9fa04bca91581e25371c5b14)
https://invent.kde.org/qt/clang/llvm-project/-/commit/938bba16d3552561cfaddab1322d065d6c021ffa

Git commit 493aab374fd960aa776fd0571eb05395a2588e10 by Tobias Hieta (on behalf of Med Ismail Bennani) on 23/07/2026 at 06:09..
[lldb/script] Remove verbose comments following c4962f5721a3 (NFC) (#210827)

This removes verbose comments from c4962f5721a3 following a post-merge
comment.

Signed-off-by: Med Ismail Bennani <[email protected]>
(cherry picked from commit e6cde20367a82aca112db73a3d1c76e77fe580f1)
https://invent.kde.org/qt/clang/llvm-project/-/commit/493aab374fd960aa776fd0571eb05395a2588e10
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.