[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/arsenm/x86/simplify-eh-label-condition'. Changed from 0000000000000000000000000000000000000000 to bdf0e78f4ee45662cf88b790e173667c6dedd1aa 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 0cf29309fd12668307f39bd540100618de626e94 by GitHub (on behalf of Erich Keane) on 30/07/2026 at 17:14.. [CIR]Implement lowering for simple sin/cos/tan/exp10 builtins. (#211614) Discovered these just looking around, they are pretty simple/trivial translations to LLVM-IR intrins, and the infrastructure to do so is already in place, so this is a bit of simple wiring up! Implements f/h/hl versions of sin/cos/tan. Also implements base-10 exponent, since it is also trivial. https://invent.kde.org/qt/clang/llvm-project/-/commit/0cf29309fd12668307f39bd540100618de626e94 Git commit 3ce0df7ca8027229618de9802eeffe1f0023bf74 by GitHub (on behalf of Volodymyr Sapsai) on 30/07/2026 at 17:15.. [Modules] Handle decl attributes on deserialization the same as during parsing. (#208348) Replace manual handling of 2 attributes with `Sema::mergeDeclAttributes`, which is called during parsing too. Also propagate attributes not from a previous redeclaration but from a previous redeclaration outside of the current module. This is done to avoid double propagation because attributes from a previous decl in the same module are already handled when a module is built. Call `ASTDeclReader::attachLatestDecl` after each decl is added to a redeclaration chain, not once per `ASTReader::loadPendingDeclChain` call. This is done to maintain correct redeclaration chain for each `ASTDeclReader::attachPreviousDecl` call because [newly added] `mergeDeclAttributes` requires a correct redeclaration chain. Separated `Parser::Initialize` and `Parser::ConsumeToken` so can move the initialization earlier, into `Parser` constructor. This way `Parser::Initialize`, `Sema::Initialize`, `ASTReader::InitializeSema` are executed before deserialization. This specific case is verified by "Modules/decl-attr-merge-explicit-modules.c". The change can cause compilation errors for downstream `Parser` clients. Instead of calling `Parser::Initialize` now you need to call `Parser::ConsumeToken`. rdar://175997317 https://invent.kde.org/qt/clang/llvm-project/-/commit/3ce0df7ca8027229618de9802eeffe1f0023bf74 Git commit 97ff9fc6daee52427f64ba9f11c1c6f268fab4fa by GitHub (on behalf of Erich Keane) on 30/07/2026 at 17:15.. [CIR] Allow cir.copy to work across address spaces- (#211873) LLVM Memcpy supports copying across address spaces, so we should too. IN C, this is legal, and there are no associated AST nodes to reasonably put in a cast, so this patch just legalizes it to match the LLVM behavior. Note: I've added a 'CopyTypes' printer/parser as well, because it seems unfortunate to make EVERY copy have to show all of its types. https://invent.kde.org/qt/clang/llvm-project/-/commit/97ff9fc6daee52427f64ba9f11c1c6f268fab4fa Git commit 4dd8a2972273d9613b3004516c6bc9d7cf525f68 by GitHub (on behalf of Alexey Bataev) on 30/07/2026 at 17:25.. [SLP]Release scheduling deps of copyable reassoc operands only once A flattened reassoc node may have a scalar that is both a modeled copyable tree operand (child entry) and a direct IR operand of a node member. Scheduling such a member released its ScheduleCopyableData dependency twice - in the per-lane operand scan and again in the reassoc operand cleanup - driving UnscheduledDeps negative. Dedup the cleanup release through the same Checked set the operand scan uses. Reviewers: Pull Request: https://github.com/llvm/llvm-project/pull/213079 https://invent.kde.org/qt/clang/llvm-project/-/commit/4dd8a2972273d9613b3004516c6bc9d7cf525f68 Git commit 57a38f251bbb1e443642d4972c88550c750510cb by GitHub (on behalf of Matt Arsenault) on 30/07/2026 at 17:26.. IR: Use LongDoubleFormat enum for long-double-type module flag (#213056) Add parse/print helpers for the LongDoubleFormat enum, and route the "long-double-type" module flag producers and consumers through them instead of hardcoded strings in every location. Also clean up some unnecessary failure checks guaranteed by the verifier. Co-authored-by: Claude (Claude-Opus-4.8) <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/57a38f251bbb1e443642d4972c88550c750510cb Git commit 2e838bf84da94760fa49e132108e954a62815573 by GitHub (on behalf of Alexey Samsonov) on 30/07/2026 at 17:29.. [libc] Fix aligned_alloc used in hermetic tests. (#213041) Use the provided alignment for the pointer to the returned memory chunk instead of the size. This fixes occasional segfaults in `hsearch` tests after ce62aab97e58c52e6bb0972c49d6fd1aaa6a08a0, since hash-table bitmask implementation uses SSE2 intrinsics with 16-byte alignment. https://invent.kde.org/qt/clang/llvm-project/-/commit/2e838bf84da94760fa49e132108e954a62815573 Git commit 056dae16f7d219f0dc943828dccd6cc3773d2674 by GitHub (on behalf of Ivan R. Ivanov) on 30/07/2026 at 17:30.. [mlir][gpu] Add stream-based async mode to gpu.launch (#213031) Currently, only gpu.launch_func supports stream-based asynchronicity. This patch adds the same mode to gpu.launch, and makes kernel outlining preserve that when converting to gpu.launch_func. This patch also documents the stream-based model in the operations description, which was previously missing. This patch changes the builders for the two launch operations: To retain the current behavior for gpu.launch one needs to add a `nullptr` for the new `Value asyncObject` argument after the `ValueRange asyncDependencies`, and make sure to pass a valid type for the `Type asyncTokenType` parameter if dependency-based async behavior is intended. For gpu.launch_func, both stream-based and dependency-based async models now go through the same builders, which take all three `Type asyncTokenType, ValueRange asyncDependencies, Value asyncObject` arguments. To retain stream-based behavior, pass `nullptr, {}` to the first two parameters, while to retain dependency-based behavior, pass `nullptr` to the third parameter. Assisted-by: Claude Code https://invent.kde.org/qt/clang/llvm-project/-/commit/056dae16f7d219f0dc943828dccd6cc3773d2674 Git commit 44cf7e37312967a0538501cc8ac044f6a72c9efb by GitHub (on behalf of Daniel Chen) on 30/07/2026 at 17:32.. Fix test case failure due to Commit aa50eb69 DwarfDebug: Move emission of types from beginModule() to endModule() (#212805) Commit `aa50eb69 ("DwarfDebug: Move emission of types from beginModule() to endModule()") ` added new CHECK lines to `debug-info-qualifiers.ll` that broke on XCOFF/AIX in two ways: (1) `CHECK-NOT: DW_TAG_subprogram` tripped on abbrev table entries printed before .debug_info, and (2) the pattern `{{.*}} "g")` had a space/paren mismatch against the AIX dwarfdump output format This PR is fix that by adding `; CHECK: .debug_info contents: ` anchor and changed the pattern to `{{.*}}"g"` in the test file https://invent.kde.org/qt/clang/llvm-project/-/commit/44cf7e37312967a0538501cc8ac044f6a72c9efb Git commit 2f238db9da1cec04f7e143fb264aa1c0fd4578ef by GitHub (on behalf of Zhen Wang) on 30/07/2026 at 17:38.. [flang][cuda] Treat unified data as host data in assignments (#212912) Unified data was counted as managed data in the data transfer predicate, so assignments between unified sides, or between unified and host data, became synchronous copies. Unified data is host memory that the device can also access, so it now takes the place of host data there: the assignment is a copy only when the other side is device or constant data, or a whole managed array, and is done on the host otherwise. This matches the reference compiler for whole arrays, sections, elements, scalars, allocatables, components and expressions. https://invent.kde.org/qt/clang/llvm-project/-/commit/2f238db9da1cec04f7e143fb264aa1c0fd4578ef Git commit c486d28c1ec80f832a0e3cb3173d1940e632742c by GitHub (on behalf of Bar Soloveychik) on 30/07/2026 at 17:51.. [lldb] Make missing DWO diagnostics customizable (#212338) Adds a default-empty `LLDB_DWO_DIAGNOSTIC_SUFFIX` macro and appends it to both missing-DWO diagnostics. The idea is companies or build engineers can build with an extra cmake -D flag to include internal URL links or troubleshooting tips when dwo files are missing. tested with: ``` bin/llvm-lit -sv tools/lldb/test/Shell/SymbolFile/DWARF/x86/dwo-not-found-warning.cpp ``` added `GetDwoDiagnosticSuffix()` because a macro has no runtime symbol. The function lets lldb-test read the exact value compiled into the DWARF plugin. --------- Co-authored-by: Bar Soloveychik <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/c486d28c1ec80f832a0e3cb3173d1940e632742c Git commit 730b803ed05e307d635b6b2764fad833629042c2 by GitHub (on behalf of Kareem Ergawy) on 30/07/2026 at 17:53.. [flang][Transforms] Add `SelectOpsConversion` pass (#212977) Introduces `--fir-select-ops-conversion`, which lowers `fir.select`, `fir.select_case`, and `fir.select_rank` to the control-flow dialect (`cf.switch` / `cf.cond_br` / `cf.br`) while preserving the CFG shape. `fir.select_case` becomes an if-then-else ladder of `arith.cmpi` + `cf.cond_br`; Fortran `UNSIGNED` selectors use `ule`. Signed / unsigned FIR integer values are normalized to signless via `fir.convert` first. `fir.select_type` is not handled here — it is already lowered by `--fir-polymorphic-op` (`PolymorphicOpConversion`). The pass runs in the default FIR optimizer pipeline right after `PolymorphicOpConversion`. Pipeline-check tests are updated to expect `SelectOpsConversion` in the sequence; `Fir/select.fir` and `Lower/volatile3.f90` are relaxed to accept the newly-canonicalized form of the lowered output. The main purpose of moving these conversion pattern earlier in the MLIR pipeline and target `cf` instead of directly `llvm` is to be able to later on use control-flow to structured-control-flow lifting: https://github.com/llvm/llvm-project/blob/main/mlir/include/mlir/Conversion/Passes.td#L402. Co-Authored-By: Claude Sonnet 4.6 (1M context) <[email protected]> PR Stack: * ▶️ https://github.com/llvm/llvm-project/pull/212977 * https://github.com/llvm/llvm-project/pull/212978 --------- Co-authored-by: Claude Sonnet 4.6 (1M context) <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/730b803ed05e307d635b6b2764fad833629042c2 Git commit 4f705acc388ab2c627fb263d89d1d60468f8a97b by GitHub (on behalf of Luke Lau) on 30/07/2026 at 17:54.. [VPlan] Fix optimizeFindIVReductions not negating condition of blend (#213050) Fixes #212993 #194729 made the m_Select a m_SelectLike, so FindLastSelect could now be a blend. However we were checking the first operand to see if the Cond needed inverted. A select has `select %cond, %true, %false`, a blend is `blend %false, %cond, %true`, so we were failing to negate the condition. https://invent.kde.org/qt/clang/llvm-project/-/commit/4f705acc388ab2c627fb263d89d1d60468f8a97b Git commit 005b3858f602ec5a193740cb166244d5234ce98f by GitHub (on behalf of Andy Kaylor) on 30/07/2026 at 17:55.. [CIR] Add fenv attribute to compare operations (#213072) This adds the #cir.fenv attribute to the cir.cmp and cir.vec.cmp and adds verfiers to enforce that the attribute is only present when the comparison involves floating-point values. The cir.vec.cmp operation has an existing folder which is skipped in this change when the fenv attribute is present. In most circumstance, this folding could still be done, but the implementation is intentionally conservative at this point. Proper checking of the conditions under which folding would be legal will be added later. The cir.cmp operation does not currently have a folder. Assisted-by: Cursor / various models https://invent.kde.org/qt/clang/llvm-project/-/commit/005b3858f602ec5a193740cb166244d5234ce98f Git commit b1cf39d2db1fbc644c46e6783d022e274884fda9 by GitHub (on behalf of David Green) on 30/07/2026 at 18:19.. [GlobalISel] Use integer type for LOAD_STACK_GUARD (#212202) https://invent.kde.org/qt/clang/llvm-project/-/commit/b1cf39d2db1fbc644c46e6783d022e274884fda9 Git commit 63b3eb10e5f5807bf4c9c0f9ec582f03582c58fe by GitHub (on behalf of Benedek Kaibas) on 30/07/2026 at 18:37.. Revert "[clang][docs] Update CommandLineUsage and UsersManual with some flags (#209519)" (#213092) This PR reverts commit e4c2875c397861ea45a0cca05107d91d7d785d03. Reverting because of: https://github.com/llvm/llvm-project/actions/runs/30559163159/job/90927389811#step:10:822 https://invent.kde.org/qt/clang/llvm-project/-/commit/63b3eb10e5f5807bf4c9c0f9ec582f03582c58fe Git commit 6162922a8d7cef0cf2e27b91c980197d371c89b9 by GitHub (on behalf of Prabhu Rajasekaran) on 30/07/2026 at 18:37.. Revert "[HIPSPV] Add in-tree SPIR-V backend support for chipStar" (#213088) Reverts llvm/llvm-project#206910 which broke buildbot: https://lab.llvm.org/buildbot/#/builders/144/builds/60707 https://invent.kde.org/qt/clang/llvm-project/-/commit/6162922a8d7cef0cf2e27b91c980197d371c89b9 Git commit 6c5dfef69069230264b3aa7c90656726cc9eac1c by GitHub (on behalf of Ramkumar Ramachandra) on 30/07/2026 at 18:38.. [PatternMatchHelpers] Introduce m_Unless (NFC) (#212454) Introduce m_Unless from PatternMatch, that inverts a match, in PatternMatchHelpers. https://invent.kde.org/qt/clang/llvm-project/-/commit/6c5dfef69069230264b3aa7c90656726cc9eac1c Git commit 5b897d9b57494ef37615cd9af88507a212ab5703 by GitHub (on behalf of vsimion26) on 30/07/2026 at 18:52.. Fix classof implementation for QuantizedType (#213014) This PR aims to fix the misleading implementation of `classof` which accepted as a `QuantizedType` every type registered under the `QuantDialect.` The now updated implementation makes the checks more restrictive, allowing only direct subtypes of `QuantizedType` to be recognized as a `QuantizedType,` therefore preventing `QuantileType` and other types that are registered under `QuantDialect` to be seen as a subtype of `QuantizedType` and wrongfully use its methods which might lead to potential crashes. https://invent.kde.org/qt/clang/llvm-project/-/commit/5b897d9b57494ef37615cd9af88507a212ab5703 Git commit 0e42c871c2c8a40926ad929cfa334fd1d3c98dfa by GitHub (on behalf of Matt Arsenault) on 30/07/2026 at 18:57.. NVPTX: Add target names in TargetParser (#212734) Track the canonical sm name and other target information. This will eventually be used to reduce the pain of maintaining OffloadArch in clang; all of the disjoint targets share an enum which makes target specific covered switches annoying. Co-authored-by: Claude (Claude-Opus-4.8) <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/0e42c871c2c8a40926ad929cfa334fd1d3c98dfa Git commit 1562871d4191f39de7ed0ae53f8ca48b8e2d4242 by GitHub (on behalf of Matt Arsenault) on 30/07/2026 at 18:59.. clang: Use NVPTX TargetParser for OpenMP unified-addressing check (#212746) processRequiresDirective enumerated every OffloadArch value in a switch only to error on nvptx architectures older than sm_60. Replace it with NVPTX::supportsUnifiedAddressing() applied to the parsed target CPU so we don't need to keep adding cases here every time a new target is added. Co-authored-by: Claude (Claude-Opus-4.8) <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/1562871d4191f39de7ed0ae53f8ca48b8e2d4242 Git commit 6e92d6d0577cbe102bd48f396301ea5cd0ebf247 by GitHub (on behalf of Rainer Orth) on 30/07/2026 at 19:11.. [tsan] Fix buildgo.sh on FreeBSD/NetBSD (#213047) This patch fixes the remaining compile errors when running `ninja check-all` on FreeBSD and NetBSD: - `sanitizer_linux.cpp` doesn't compile on NetBSD, so this patch adds a cast: ``` sanitizer_common/sanitizer_linux.cpp:2492:10: error: format specifies type 'unsigned long long' but the argument has type '__greg_t' (aka 'unsigned long') [-Werror,-Wformat] ``` - `tsan_interface_atomic.cpp` doesn't compile on both FreeBSD and NetBSD, so this patch disables the warning: ``` tsan_interface_atomic.cpp:353:12: error: unused function template 'NoTsanAtomic' [-Werror,-Wunused-template] tsan_interface_atomic.cpp:358:12: error: unused function template 'Atomic' [-Werror,-Wunused-template] tsan_interface_atomic.cpp:389:12: error: unused function template 'NoTsanAtomic' [-Werror,-Wunused-template] tsan_interface_atomic.cpp:394:12: error: unused function template 'Atomic' [-Werror,-Wunused-template] tsan_interface_atomic.cpp:401:12: error: unused function template 'NoTsanAtomic' [-Werror,-Wunused-template] tsan_interface_atomic.cpp:406:12: error: unused function template 'Atomic' [-Werror,-Wunused-template] ``` - `sanitizer_linux_libcdep.cpp` doesn't compile on NetBSD: ``` sanitizer_linux_libcdep.cpp:527:27: error: use of undeclared identifier '__lwp_getprivate_fast'; did you mean '_lwp_getprivate'? ``` This is the same issue already handled in `tsan_platform_linux.cpp`: to expose the `__lwp_getprivate_fast` definition in `<machine/mcontext.h>`, `_RTLD_SOURCE` needs to be defined before `<machine/mcontext.h>` is included (indirectly from `<signal.h>` in this case). It also needs to include `<sys/types.h>` to get a definition of the `__aligned` macro. Tested on `amd64-pc-freebsd15.1` and `amd64-pc-netbsd10.1`. https://invent.kde.org/qt/clang/llvm-project/-/commit/6e92d6d0577cbe102bd48f396301ea5cd0ebf247 Git commit 40e33eb35417f565e2ed8a6c0dba63cbd618a926 by GitHub (on behalf of Florian Hahn) on 30/07/2026 at 19:12.. [VPlan] Set correct VPIRFlags for FP selects when sinking stores. (#212973) Selects of floats carry fast-math flags. Update getDefaultFlags to take the result type and use it to handle selects. I am planning on extending this to other similar opcodes, including PHIs. Then update sinkPredicatedStores to pass through the correct default flags. This fixes a crash in cse when intersecting common metadata. Fixes https://github.com/llvm/llvm-project/issues/212811. PR: https://github.com/llvm/llvm-project/pull/212973 https://invent.kde.org/qt/clang/llvm-project/-/commit/40e33eb35417f565e2ed8a6c0dba63cbd618a926 Git commit 5f10bade30ec9e73f19349df7eb833aae323a2e3 by GitHub (on behalf of Joel E. Denny) on 30/07/2026 at 19:13.. [LoopUnroll] Fix freqs for unconditional latches: N>2, uniform (#182405) This patch introduces the command-line option `-unroll-uniform-weights`. When computing probabilities for the remaining N conditional latches in the unrolled loop after converting some iterations' latches to unconditional, LoopUnroll now supports the following three strategies: - A. If N <= 2, use a simple formula to compute a single uniform probability across those latches. - B. Otherwise, if `-unroll-uniform-weights` is not specified, apply the original loop's probability to all N latches and then, as needed, adjust as few of them as possible. - C. Otherwise, bisect the range [0,1] to find a single uniform probability across all N latches. This patch implements this strategy. An issue with C is that it could impact compiler performance, so this patch makes it opt-in. Its appeal over B is that it treats all latches the same given that we have no evidence showing that any latch should have a higher or lower probability than any other. A has neither problem, but I do not know how to apply it for N > 2. More experience or feedback from others might determine that some strategies are not worthwhile to maintain. This patch depends on PR #182404. https://invent.kde.org/qt/clang/llvm-project/-/commit/5f10bade30ec9e73f19349df7eb833aae323a2e3 Git commit 3d94aebde11a6410fc1ee93f12622114c60ace3d by GitHub (on behalf of Rainer Orth) on 30/07/2026 at 19:14.. [flang] Fix POSIX.1/XPG checks in intrinsics-library.cpp (#201072) PR #201063 breaks the `flang` build on Solaris: ``` flang/lib/Evaluate/intrinsics-library.cpp:225:26: error: address of overloaded function 'acos' does not match required type '__float128 (__float128)' flang/lib/Evaluate/intrinsics-library.cpp:225:26: error: address of overloaded function 'acos' does not match required type '_Complex __float128 (_Complex __float128)' ``` There are two problems here: - The `__float128` support in `intrinsics-library.cpp` is guarded by the POSIX.1 >= 2001/XPG >= 6 check, but only depends on `HAVE_QUADMATHLIB`. - That check is done incorrectly: it tests for `_POSIX_C_SOURCE >= 200112L` or `_XOPEN_SOURCE >= 600`, which are no longer defined on Solaris after the PR above. This check is due a misunderstanding of those feature test macros: as detailed in [The Open Group Base Specifications Issue 8, 2.2.1 POSIX.1 Symbols](https://pubs.opengroup.org/onlinepubs/9799919799/functions/V2_chap02.html), those macros are expected to be **defined** by the user to ensure that the features introduced by a particular version of POSIX.1 or XPG are enabled, and only be checked by system headers. To test if they actually are supported, the values of `_POSIX_VERSION` or `_XOPEN_VERSION` need to be checked instead, as explained in [2.1.3.1 POSIX System Interfaces](https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap02.html). The feature test macros being defined by the system headers is a non-portable glibc/AIX extension, it seems. If the XPG6 features required for `flang` are present by default in a compilation environment, `_POSIX_VERSION` or `_XOPEN_VERSION` will be defined to the required values even without defining `_POSIX_C_SOURCE` or `_XOPEN_SOURCE`. Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`, and `x86_64-pc-linux-gnu`. https://invent.kde.org/qt/clang/llvm-project/-/commit/3d94aebde11a6410fc1ee93f12622114c60ace3d Git commit bb7c7d1e2a6b4a3487df8604f94e0b981e873899 by GitHub (on behalf of satyanarayana reddy janga) on 30/07/2026 at 19:23.. [lldb][minidump] Fix Memory64List DataSize over-counting on a failed read (#212861) **Issue:** save-core records each range's DataSize from the value ReadMemoryInChunks returns. That value counts bytes read from the inferior even when the callback dropped them: a chunk that errors part-way returns Stop before AddData, so the partially-read bytes are counted but never written. Because the Memory64List locates every range by the cumulative DataSize of the preceding ranges, an over-counted DataSize desyncs the shared data blob: the descriptors claim more bytes than the file holds and every later range reads back corrupted. **Fix** Record the bytes actually written (total_bytes_read) as the range's size so the descriptor DataSize matches the data in the blob. **Test** Add an API test that custom-saves a fully-readable region alongside a region whose tail is unreadable (a file mapped larger than the file), and checks the Memory64List does not claim more data than the file holds and that the readable region round-trips byte-for-byte. https://invent.kde.org/qt/clang/llvm-project/-/commit/bb7c7d1e2a6b4a3487df8604f94e0b981e873899 Git commit bdf0e78f4ee45662cf88b790e173667c6dedd1aa by Matt Arsenault on 30/07/2026 at 20:09.. X86: Simplify the EH_LABEL Expand condition Re-express the opt-out handling of EH_LABEL. The special case is 32-bit non-GNU Windows, and the net result is to skip printing unused labels. Try to make this more comprehensible to help figure out where this logic should really be. I want to eliminate use of the TargetOptions::ExceptionModel, which ideally wouldn't be needed in a TargetLowering constructor. Co-authored-by: Claude (Claude-Opus-4.8) <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/bdf0e78f4ee45662cf88b790e173667c6dedd1aa