[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/users/paschalis-mpeis/bolt-release-notes'. Changed from 0000000000000000000000000000000000000000 to 794f7d5daffaba96445a5051683f429fe6c4d052 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 Git commit 794f7d5daffaba96445a5051683f429fe6c4d052 by Paschalis Mpeis on 23/07/2026 at 10:58.. [docs] Add BOLT release notes https://invent.kde.org/qt/clang/llvm-project/-/commit/794f7d5daffaba96445a5051683f429fe6c4d052