[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/cchen/flang-metadirective-loop-core'. Changed from 6b5a5b75257fa112f6e20603ae5bbd25427ef894 to 0508f49423ee0b1b2788a45948ea0167800e9b11 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 41a5357e389b3c04d4c44631360dd3661488c629 by GitHub (on behalf of AZero13) on 27/07/2026 at 17:26.. [clang][Sema] Allow abstract declarators to specify cv-qualified function types as per CWG1417 (#209836) Abstract declarator contexts (specifically `DeclaratorContext::TypeName`) now properly bypass this restricted rule, allowing cv-qualified function types in `__typeof__` while maintaining restrictions in other contexts like `typeid`, `sizeof`, C-style casts, and `new` expressions per CWG1417. https://invent.kde.org/qt/clang/llvm-project/-/commit/41a5357e389b3c04d4c44631360dd3661488c629 Git commit 5565740f2367093b89481ba7371adf820971977d by GitHub (on behalf of Arthur Eubanks) on 27/07/2026 at 17:39.. [lld] Don't drop RELR relocations for late-added GOT entries (#211911) In #208959 we started dropping RELR relocations for late-added GOT entries when reverting x86-64 GOTPCRELX relaxations in X86_64::relaxOnce. There is a separate unrelaxation bug where if the object files didn't have any relocations of a certain type, we'd prune .relr.dyn (or even .rela.dyn). Will be addressed separately. Assisted-by: Gemini https://invent.kde.org/qt/clang/llvm-project/-/commit/5565740f2367093b89481ba7371adf820971977d Git commit ad791f26ef495dbc2c3c6c283518872697210898 by GitHub (on behalf of Christopher Ferris) on 27/07/2026 at 17:49.. [scudo] Test to verify fork and allocate does not deadlock. (#211975) https://invent.kde.org/qt/clang/llvm-project/-/commit/ad791f26ef495dbc2c3c6c283518872697210898 Git commit 751eb22c1b835b675166e4936a93f903b952f28f by GitHub (on behalf of David Green) on 27/07/2026 at 17:54.. [AArch64][GlobalISel] Use integer type for truncating merged call args. (#212208) https://invent.kde.org/qt/clang/llvm-project/-/commit/751eb22c1b835b675166e4936a93f903b952f28f Git commit 02da01251156c831a54417d4882aad7226cdbbe1 by GitHub (on behalf of Matt Arsenault) on 27/07/2026 at 17:57.. TableGen: Use a compact table for CPU aliases (#211952) https://invent.kde.org/qt/clang/llvm-project/-/commit/02da01251156c831a54417d4882aad7226cdbbe1 Git commit b9a7aad4a9d50b9ec60b59d197be43a973a0572c by GitHub (on behalf of Tom Stellard) on 27/07/2026 at 17:58.. workflows/release-tasks: Fix permissions for release-documentation (#212310) https://invent.kde.org/qt/clang/llvm-project/-/commit/b9a7aad4a9d50b9ec60b59d197be43a973a0572c Git commit 0600aeae3ba6c41da80bbb84c10f1cad4c9a58ba by GitHub (on behalf of David Green) on 27/07/2026 at 18:01.. [AArch64][GlobalISel] Use integer types for inline assembly lowering (#212214) If we need to generate a trunc then we can use an integer type for the lowering. https://invent.kde.org/qt/clang/llvm-project/-/commit/0600aeae3ba6c41da80bbb84c10f1cad4c9a58ba Git commit 7336a38e5c6dea03c243bb37b44a2207471e63d3 by GitHub (on behalf of rdevshp) on 27/07/2026 at 18:18.. [clang] Add missing VisitAtomicTypeLoc to TypeLoc.cpp GetContainedAutoTypeLocVisitor (#211752) Adds the missing `VisitAtomicTypeLoc` method to TypeLoc.cpp `GetContainedAutoTypeLocVisitor`. Fixes: https://github.com/llvm/llvm-project/issues/211556 ICE. Assisted-by: Codex https://invent.kde.org/qt/clang/llvm-project/-/commit/7336a38e5c6dea03c243bb37b44a2207471e63d3 Git commit 68e94c904067b1b984c6b337819633aee9f0c7da by GitHub (on behalf of Benedek Kaibas) on 27/07/2026 at 18:20.. [analyzer] Improve dangling value tracking in DanglingPtrDeref (#211818) Improve dangling value tracking in the `DanglingPtrDeref` checker by adding `trackExpressionValue`. The report with this change now tracks the dangling value and shows where the value originated from. Currently the checker only points at the destruction and use sites which isn't always useful for the user. https://invent.kde.org/qt/clang/llvm-project/-/commit/68e94c904067b1b984c6b337819633aee9f0c7da Git commit f83fcfbdc7fc1bee6ebf242b110a5c2b46703ae9 by GitHub (on behalf of Florian Mayer) on 27/07/2026 at 18:41.. [MachineVerifier] do not use !NoPHI to check if a MF has phi nodes (#211941) We were violating the property expressed in MachineFunction.h: ``` The properties are stated in "positive" form; i.e. a pass could require that the property hold, but not that it does not hold. ``` Resolves a false positive "MBB has allocatable live-in, [...]" error in our downstream target. https://invent.kde.org/qt/clang/llvm-project/-/commit/f83fcfbdc7fc1bee6ebf242b110a5c2b46703ae9 Git commit 79ea87c8da20263fa54c9f60b4befb3a9bf962cf by GitHub (on behalf of Yingwei Zheng) on 27/07/2026 at 18:41.. [llubi] Add support for byte types (#200672) This patch implements the support for byte types. The byte order depends on the endianness for better performance in the fast path. For non-byte-sized byte types, high bits are zeroed out. https://invent.kde.org/qt/clang/llvm-project/-/commit/79ea87c8da20263fa54c9f60b4befb3a9bf962cf Git commit a41a3359ec24f019a5a9576631228f0314be38a6 by GitHub (on behalf of Valentin Clement (バレンタイン クレメン)) on 27/07/2026 at 18:42.. [flang][cuda] Do not check dummy in stmt function in device code (#212037) https://invent.kde.org/qt/clang/llvm-project/-/commit/a41a3359ec24f019a5a9576631228f0314be38a6 Git commit 289a2d901a480e3c0ba8aac80c40f2fcd768506f by GitHub (on behalf of Stephen Long) on 27/07/2026 at 18:44.. [mlir][LinalgBlockPackMatmul] Add support for scalable block factors (#211354) Assisted by: Claude Sonnet 4.6 --------- Co-authored-by: Adam Siemieniuk <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/289a2d901a480e3c0ba8aac80c40f2fcd768506f Git commit a950d4a527311fbfe202d563331f133400fd2c5e by GitHub (on behalf of Matt Arsenault) on 27/07/2026 at 19:04.. AMDGPU: Use uint8_t for IsaVersion fields (#212311) https://invent.kde.org/qt/clang/llvm-project/-/commit/a950d4a527311fbfe202d563331f133400fd2c5e Git commit 460dbfc7ec59a89cc80f7c03879f60278ec2a6c4 by GitHub (on behalf of Sean Clarke) on 27/07/2026 at 19:05.. [HashRecognize] Use loop latch to determine step/start for conditional recurrence (#211916) The function `matchConditionalRecurrence` iterates over both PHI inputs and attempts to match each one to determine which is `Start` and which is `Step`. However, some of the failure conditions in the loop `return false`, which has the potential to classify some valid CRC loops as not having a conditional recurrence. The loop here is not really needed at all-- instead, use `L.getLoopLatch()` to determine `Start`/`Step`, since the incoming value from the latch block will always be the `Step`. This also avoids the aforementioned false negative classifications. Assisted-by: Claude Opus 5 https://invent.kde.org/qt/clang/llvm-project/-/commit/460dbfc7ec59a89cc80f7c03879f60278ec2a6c4 Git commit c2b22642d289413e136da29eaa1ce176ce438484 by GitHub (on behalf of Tomer Shafir) on 27/07/2026 at 19:06.. [AArch64][MacroFusion] Add per cluster kind statistic (#212103) So we can easily differentiate between different cluster kinds on AArch64 backend. https://invent.kde.org/qt/clang/llvm-project/-/commit/c2b22642d289413e136da29eaa1ce176ce438484 Git commit bd7bb26108bd86eeeef0962577b52d0f435a7ac3 by GitHub (on behalf of Daniel Paoliello) on 27/07/2026 at 19:15.. [clang] Match MSVC ABI for over-aligned base tail padding on Arm64 (#210461) When targeting aarch64-pc-windows-msvc, clang laid out a base following an over-aligned, non-standard-layout base at the wrong offset. MSVC on Arm64 reuses the over-aligned base's tail padding for the subsequent base, but clang rounded the base up to a full slot, so the two disagreed on member offsets, breaking interop between clang- and MSVC-built binaries. Fix: store each record's natural non-virtual alignment (excluding `alignas`/`__declspec(align)` over-alignment) as `getNonRequiredNVAlignment()`, and on Arm64 fold in a base's natural alignment rather than its full alignment. This is gated to Arm64 only; Arm64EC and x64 follow the x64 rule (no reuse) and are unchanged. Validated against MSVC (Hostx64\arm64\cl.exe /d1reportSingleClassLayout): clang now matches MSVC Arm64 exactly for the reduced repro, the original polymorphic case (vftable + empty base + template), and a range of probe cases covering natural vs. over-alignment padding and field vs. base reuse. Arm64EC and x64 output is byte-identical to before. Fixes #210174 https://invent.kde.org/qt/clang/llvm-project/-/commit/bd7bb26108bd86eeeef0962577b52d0f435a7ac3 Git commit 4d14e9641ddf38d4b6cc2dbb5c882135d94c68c1 by GitHub (on behalf of Arseniy Obolenskiy) on 27/07/2026 at 19:16.. [mlir][MathToSPIRV] Allow math.cttz lowering for non-i32 integer widths (#206400) Co-authored-by: Igor Wodiany <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/4d14e9641ddf38d4b6cc2dbb5c882135d94c68c1 Git commit c881d81f6b189f14c56c9bec8842ddba6255d0e5 by GitHub (on behalf of Rafael Auler) on 27/07/2026 at 19:34.. [BOLT] Release pseudo-probe decoder after emit (#211935) PseudoProbeRewriter builds sizable data structures and then hold onto them after they are needed. PseudoProbeRewriter::postEmitFinalizer() parses the input .pseudo_probe sections into an MCPseudoProbeDecoder whose address-to-probe and GUID-to-function-desc maps can be very large (tens of GiB on big binaries with many probes). This is not used again once probes have been updated, yet they survive into the memory-heavy DWARF rewrite (updateDebugInfo), directly inflating BOLT's peak RSS at the worst possible time. This frees them at the end of the postEmitFinalizer() calls, before updateDebugInfo runs. Stacked on top of the .dwo DIE diff, in large binaries you should observe ~17% peak RSS wins if your build uses pseudo probe maps. https://invent.kde.org/qt/clang/llvm-project/-/commit/c881d81f6b189f14c56c9bec8842ddba6255d0e5 Git commit 63e60a2853b1ff6fdac3cbaf668e2d2a63d51fae by GitHub (on behalf of Rafael Auler) on 27/07/2026 at 19:35.. [BOLT] Fix strict mode bug in removal of block referenced by JT (#211940) Summary: BOLT can create a jump table object from a PC-relative operand reference (e.g. leaq JT(%rip)) whenever the referenced memory looks like a PIC jump table -- see BinaryContext::handleAddressRef. This is independent of whether BOLT recognizes the indirect jump dispatch itself. The jump table annotation is only attached to the jmp instruction later, in BinaryFunction::analyzeIndirectBranch, and only when the target-specific analyzeIndirectBranch matcher recognizes the dispatch pattern. If the matcher does not recognize the pattern, the annotation is never attached to the jmp, even though the jump table object and its entries exist and reference basic blocks in the function. In strict mode BOLT still fully processes such a function: it stays simple, the block is marked as having unknown control flow, and the jump table object is kept intact. Because the terminator carries no jump table annotation, BinaryBasicBlock::hasJumpTable() returns false for it. Later passes then transform the function normally: remove-nops can empty a jump table target block that consists only of nops, and NormalizeCFG then redirects the block's predecessor and deletes the empty block - it does not recognize the block as a jump table target, since the predecessor's hasJumpTable() is false. The jump table object still references the deleted block by label, which produces an "Undefined temporary symbol" error and fails emission. Fix NormalizeCFG so it does not redirect/remove a block whose predecessor ends in an indirect branch, not only one flagged by hasJumpTable(). https://invent.kde.org/qt/clang/llvm-project/-/commit/63e60a2853b1ff6fdac3cbaf668e2d2a63d51fae Git commit 767716657985094ce2e73eafe87d5fa8a24ac843 by GitHub (on behalf of Alex Duran) on 27/07/2026 at 19:44.. [OFFLOAD][L0] Fix zero argurment kernel launch (#212296) PR #205224 changed the path for kernels with no arguments to not use appendLaunchKernelWithArgs, while at the same time it removed zeKernelSetGroupSize which resulted in incorrect sizing of the kernel. This PR removes the alternate path and makes sure all launches go through appendLaunchKernelWithArgs. Alternatively we can restore zeKernelSetGroupSize on the alternate path. https://invent.kde.org/qt/clang/llvm-project/-/commit/767716657985094ce2e73eafe87d5fa8a24ac843 Git commit 6534ceefd231771466abc9c388b93bb8b0913316 by GitHub (on behalf of Sirraide) on 27/07/2026 at 19:49.. [Clang] [NFC] Update OptionalUnsigned ctor to only reject signed integers (#212321) Currently, the `OptionalUnsigned(int) = delete;` constructor means that constructing e.g. an `OptionalOrUnsigned<uint64_t>` from an `unsigned` fails because overload resolution is ambiguous (because `unsigned` -> `int` and `unsigned` -> `uint64_t` are both valid conversions). This patch adds a constraint to make sure the deleted constructor only catches signed integer types. This is needed for #212319. https://invent.kde.org/qt/clang/llvm-project/-/commit/6534ceefd231771466abc9c388b93bb8b0913316 Git commit 864f9a09887559491ef3f7ad39d57c703bc14f40 by GitHub (on behalf of Björn Schäpers) on 27/07/2026 at 20:11.. [clang-format] Correctly annotate C# UTF 8 string literals (#211919) Fixes #210506 https://invent.kde.org/qt/clang/llvm-project/-/commit/864f9a09887559491ef3f7ad39d57c703bc14f40 Git commit 34c7c5ccca260c695d6b212a06c0e620d494adb4 by GitHub (on behalf of Changpeng Fang) on 27/07/2026 at 20:35.. [AMDGPU][NFC] Rename packed instruction helper functions for clarity (#211933) Renames packed instruction helper functions to better reflect their purpose: - isPackedFP32or64BitInst → isSingleSGPRReadInst - isLegalGFX12PlusPackedMathFP32or64BitOperand → isLegalSingleSGPRReadInstOperand https://invent.kde.org/qt/clang/llvm-project/-/commit/34c7c5ccca260c695d6b212a06c0e620d494adb4 Git commit cef8432f7d149ef4e5888e29ff4d39ea580a806c by GitHub (on behalf of Florian Hahn) on 27/07/2026 at 20:41.. [VPlan] Account for masked VPInstructions in getIntrinsicID. (#212234) getIntrinsicID may be called with masked VPInstructions. Update to skip the mask, which is always the last operand. Fixes https://github.com/llvm/llvm-project/issues/212165. PR: https://github.com/llvm/llvm-project/pull/212234 https://invent.kde.org/qt/clang/llvm-project/-/commit/cef8432f7d149ef4e5888e29ff4d39ea580a806c Git commit aa8942dbf406e9e4c0cae84a6567dac37fac57c6 by GitHub (on behalf of Sameer Sahasrabuddhe) on 27/07/2026 at 20:47.. [Docs][AMDGPU] Eliminate incorrect use of double backticks [NFC] (#212343) https://invent.kde.org/qt/clang/llvm-project/-/commit/aa8942dbf406e9e4c0cae84a6567dac37fac57c6 Git commit 30bff76d3a294fe0882a05472234b25bb752b16a by GitHub (on behalf of Valentin Clement (バレンタイン クレメン)) on 27/07/2026 at 20:59.. [flang][cuda] Do not emit cuf.register_variable_static for device/constant under unified mode (#212344) https://invent.kde.org/qt/clang/llvm-project/-/commit/30bff76d3a294fe0882a05472234b25bb752b16a Git commit 295c3a461c7dd9d7f34306a89181ceb7139760ba by GitHub (on behalf of Sophia Herrmann) on 27/07/2026 at 21:30.. [Offload] Decouple CUDA source from NVPTX syncthreads assumption (#212339) With the introduction of offloading via LLVM, the frontend language will not necessarily determine the backend target anymore. Thus it is necessary to guard against NVPTX instead of CUDA, since we could have CUDA-language device code targeting a non-NVPTX backend, where Clang does not provide __syncthreads as an NVPTX builtin and the generic shim is still needed. This also avoids duplicate definitions on NVPTX. Clang already provides `__syncthreads` as an NVPTX target builtin, so `__clang_gpu_device_functions.h` should not also define an inline `__syncthreads` shim for NVPTX targets. https://invent.kde.org/qt/clang/llvm-project/-/commit/295c3a461c7dd9d7f34306a89181ceb7139760ba Git commit 4ca573fb7947b3bebf5c1da512b5142679545905 by GitHub (on behalf of Louis Dionne) on 27/07/2026 at 21:34.. [libc++] Rename the test suite used on LNT (#212347) The LNT instance on http://lnt.llvm.org was wiped since I created the original schema, and we can now start over clean with a new test suite named `libcxx`. https://invent.kde.org/qt/clang/llvm-project/-/commit/4ca573fb7947b3bebf5c1da512b5142679545905 Git commit a22416ba1ec8894ef98a437275e91f0ade3e2ba1 by GitHub (on behalf of Joshua Batista) on 27/07/2026 at 21:40.. [HLSL] Add UsedByAtomic64 shader flag (#211691) This PR adds the `UsedByAtomic64` shader flag. It detects any usage of an atomic instruction with a 64 bit type, and if detected, sets the shader flag to true. This is needed to pass DXIL validation. Fixes https://github.com/llvm/llvm-project/issues/104392 Assisted by: Github Copilot https://invent.kde.org/qt/clang/llvm-project/-/commit/a22416ba1ec8894ef98a437275e91f0ade3e2ba1 Git commit 8a49f8839cdf743af250d3501262da0bb9876c98 by GitHub (on behalf of Arthur Eubanks) on 27/07/2026 at 21:57.. [gn build] Add missing deps (#212352) From e7290b1f1815626c4461d38671d93093590bf405 https://invent.kde.org/qt/clang/llvm-project/-/commit/8a49f8839cdf743af250d3501262da0bb9876c98 Git commit 4f02e1e45c2711a94dae0eac2051ad7c2e5ca8c2 by GitHub (on behalf of Adrian Prantl) on 27/07/2026 at 21:59.. [LLDB] Hide unresolvable children from ObjC tagged pointers (#211936) Foundation's small value inline representations have valid summaries and sometimed synthetic children, but LLDB cannot access any ivars from their base classes (such as [NSObject isa]). Use a synthetic child provider to hide them. rdar://182434208 Assisted-by: claude https://invent.kde.org/qt/clang/llvm-project/-/commit/4f02e1e45c2711a94dae0eac2051ad7c2e5ca8c2 Git commit 2112d7b1ae9208446b6c2de304897045cc7599bf by Chi-Chun, Chen on 27/07/2026 at 22:01.. [flang][OpenMP] Lower DO and SIMD variants in metadirectives Lower DO, SIMD, and DO SIMD replacement directives selected by a metadirective. Support standalone and begin/end forms with static or runtime selection. A standalone metadirective and its associated loop are represented as sibling PFT evaluations. For example: ```fortran !$omp metadirective & !$omp& when(user={condition(flag)}: do) & !$omp& otherwise(nothing) do i = 1, n a(i) = i end do ``` has the following evaluation shape: ```text METADIRECTIVE DO `-- a(i) = i ``` Temporarily associate the DO evaluation with the metadirective so each replacement can reuse the existing OpenMP loop-lowering path. Runtime selection then lowers conceptually as: ```text if (flag) omp.wsloop omp.loop_nest else fir.do_loop ``` This change: - Lowers DO, SIMD, and DO SIMD replacements through the existing loop-lowering path. - Supports static and runtime selection for standalone and begin/end metadirectives. - Lowers the associated DO once in each runtime branch while preserving an ordinary Fortran loop for NOTHING or standalone replacements. - Preserves intervening compiler loop directives and statements following the associated loop. - Restores the evaluation tree when Flang reuses it for alternate ENTRY points. - Applies COLLAPSE and ORDERED to the required loop depth without leaking temporary loop-index attributes between replacements. Determine loop association from directive names before lowering variant clauses. This keeps clause lowering lazy, so a statically inapplicable replacement cannot trigger an unsupported clause. This initial support is intentionally limited to DO, SIMD, and DO SIMD. The following cases produce focused diagnostics instead of potentially incorrect IR: - Replacements such as PARALLEL DO that create a new data environment. - Replacements containing DEFAULT or explicit data-sharing clauses. - Loop variants nested inside an existing OpenMP data environment. - TARGET, mixed block- and loop-associated replacements, and other loop-associated directives. - Unstructured or non-canonical loops and loop nests that are too shallow for COLLAPSE or ORDERED. - Loop indices that are POINTER, ALLOCATABLE, or ASSOCIATE names. Add lowering coverage for selection, fallbacks, DO and SIMD composition, affected loop depth, compiler directives, ENTRY, and unsupported boundaries. Assisted with codex. https://invent.kde.org/qt/clang/llvm-project/-/commit/2112d7b1ae9208446b6c2de304897045cc7599bf Git commit c650bd35cea864a5567d5bd5ade50e3c61023612 by Chi-Chun, Chen on 27/07/2026 at 22:01.. Strengthen metadirective clause-selection tests Verify that unselected ASSUME clauses do not produce llvm.intr.assume. https://invent.kde.org/qt/clang/llvm-project/-/commit/c650bd35cea864a5567d5bd5ade50e3c61023612 Git commit bbb644f4a57b3f21e8172454a0663389c06da958 by Chi-Chun, Chen on 27/07/2026 at 22:01.. Diagnose eager privatization for metadirective loops Metadirective loop IVs do not have the construct-scoped host association required by eager privatization. Emit a focused TODO instead of reaching an assertion or null dereference. https://invent.kde.org/qt/clang/llvm-project/-/commit/bbb644f4a57b3f21e8172454a0663389c06da958 Git commit 6be5be59eb432e60a710a70eb41e42262fec9a48 by Chi-Chun, Chen on 27/07/2026 at 22:13.. Apply metadirective loop checks after variant selection Determine reachable replacements before preparing the associated loop. Apply loop-only limitations only when a loop replacement can actually be selected. Keep candidate-wide loop preparation for runtime cascades, where multiple replacement arms remain reachable. https://invent.kde.org/qt/clang/llvm-project/-/commit/6be5be59eb432e60a710a70eb41e42262fec9a48 Git commit eb129b023259fee375d0520f6a4360e4e3d9e605 by Chi-Chun, Chen on 27/07/2026 at 22:13.. Reject interrupted metadirective loop associations Treat an intervening OpenMP declarative directive as the end of a pending loop association, matching ordinary loop-directive handling. Preserve pending variants from enclosing scopes. https://invent.kde.org/qt/clang/llvm-project/-/commit/eb129b023259fee375d0520f6a4360e4e3d9e605 Git commit 0508f49423ee0b1b2788a45948ea0167800e9b11 by Chi-Chun, Chen on 27/07/2026 at 22:13.. Check metadirective loop iteration variables Apply the ordinary affected-loop iteration-variable restrictions to statically applicable metadirective replacements. Diagnose noninteger and THREADPRIVATE iteration variables and invalid explicit data-sharing clauses, including collapsed nests. https://invent.kde.org/qt/clang/llvm-project/-/commit/0508f49423ee0b1b2788a45948ea0167800e9b11