[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/users/steakhal/csa/output-crashes-4'.
Changed from 2938cfca825444d70e58cbeffeec98549eced337 to 319f0a259a6bca53922ab550f2917fc8b44119c2
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 4414edc7651814bd6453acaf7c324b1804251edf by GitHub (on behalf of Matt Arsenault) on 10/08/2026 at 11:24..
X86: Add baseline test for computeKnownBits poison+vector handling (#213325)
Currently computeKnownBits is too conservative with poison inputs.
https://invent.kde.org/qt/clang/llvm/-/commit/4414edc7651814bd6453acaf7c324b1804251edf
Git commit 9f0e070b34f550318c61bd8dd40c463c3b46ec23 by GitHub (on behalf of Ebuka Ezike) on 10/08/2026 at 11:24..
[lldb] Correct architecture comparison for Arm (#214771)
The arm architecture has different variants (arm64, armv8l e.t.c).
We only check if it starts with the arm prefix.
Follow up to #210946
https://invent.kde.org/qt/clang/llvm/-/commit/9f0e070b34f550318c61bd8dd40c463c3b46ec23
Git commit 878be2fadd3a1695eec2018e7f2001859ff87e4f by GitHub (on behalf of Chuanqi Xu) on 10/08/2026 at 11:37..
[C++20] [Modules] Don't treat non-named-module as interface unit for implementation unit (#215241)
Close https://github.com/llvm/llvm-project/issues/204633
https://invent.kde.org/qt/clang/llvm/-/commit/878be2fadd3a1695eec2018e7f2001859ff87e4f
Git commit 93edd6290c299260fc809f543a57fc0fbb58ecea by GitHub (on behalf of David Spickett) on 10/08/2026 at 11:47..
[lldb][test] Mark some tests as requiring Clang (#214197)
As they use clang specific debug information options.
https://invent.kde.org/qt/clang/llvm/-/commit/93edd6290c299260fc809f543a57fc0fbb58ecea
Git commit 2b6174bf44bc0d8a4ea7c5f73faca08277c35bbf by GitHub (on behalf of Simon Pilgrim) on 10/08/2026 at 11:49..
[X86] Enable pclmul/vpclmulqdq to SSE42+ PDEP/PEXT vector tests (#215244)
https://invent.kde.org/qt/clang/llvm/-/commit/2b6174bf44bc0d8a4ea7c5f73faca08277c35bbf
Git commit cc958e4be42923572cd73d3e64c34ea8a6c1b974 by GitHub (on behalf of Kieran B) on 10/08/2026 at 11:53..
[AArch64][GlobalISel] Avoid cross bank copies for NEON vcvtfp2fx results (#213277)
Currently, patterns to avoid cross bank copies for the intrinsic
vcvtfp2fx only work with SelectionDAG. This patch allows the DAG
patterns to work with GlobalISel.
SelectionDAG PR: #210275
https://invent.kde.org/qt/clang/llvm/-/commit/cc958e4be42923572cd73d3e64c34ea8a6c1b974
Git commit 9d3101b4f1d61906cfbdc7d7f8fcb775ddccf236 by GitHub (on behalf of Mészáros Gergely) on 10/08/2026 at 12:06..
[GlobalISel] Fix vector.deinterleave2 with <1 x float> results (#214718)
`translateVectorDeinterleave2Intrinsic` used to try to build
`G_SHUFFLE_VECTOR`
with a scalar result type, which is not valid.
This was the case because the LLT that corresponds to the `<1 x float>`
IR type is a scalar type, not a vector type.
Add a special case for scalar result types to build
`G_EXTRACT_VECTOR_ELT` instead.
Fixes: #214713
https://invent.kde.org/qt/clang/llvm/-/commit/9d3101b4f1d61906cfbdc7d7f8fcb775ddccf236
Git commit f7e6af8aa89a5a68f7c2877cdf2e3b47685eda01 by GitHub (on behalf of Timm Baeder) on 10/08/2026 at 12:09..
[clang][bytecode] Remove the !Caller case in Ret opcodes (#215226)
The bottom frame is always created via an `EvalEmitter`, which has its
own implementation of the `Ret` opcode. The exception is
`Context::Run`/`isPotentialConstantExpr`.
https://invent.kde.org/qt/clang/llvm/-/commit/f7e6af8aa89a5a68f7c2877cdf2e3b47685eda01
Git commit 975b04bb9ed3197ff5a3b8885c7ff892cff5a368 by GitHub (on behalf of Matt Arsenault) on 10/08/2026 at 12:11..
DAG: Skip poison elements in BUILD_VECTOR computeKnownBits (#213326)
This defends against regressions in future patches. Copies the logic
from the IR version of computeKnownBits's handling of ConstantVector.
I'm not sure why the IR version doesn't directly return a value for
poison, but this follows suit.
Co-authored-by: Claude (Claude-Opus-4.8)
https://invent.kde.org/qt/clang/llvm/-/commit/975b04bb9ed3197ff5a3b8885c7ff892cff5a368
Git commit a325d3d5149a54af530b532e42d998e7220a0c2f by GitHub (on behalf of Simon Pilgrim) on 10/08/2026 at 12:14..
[X86] combineX86ShuffleChain - bail if source inputs aren't simple vector types (#215249)
Fixes #215111
https://invent.kde.org/qt/clang/llvm/-/commit/a325d3d5149a54af530b532e42d998e7220a0c2f
Git commit 6f65ede5cb8bda88514d662b6bef531abff966e4 by GitHub (on behalf of Pankaj Dwivedi) on 10/08/2026 at 12:44..
[AggressiveInstCombine] Don't merge part stores across address spaces (#213677)
https://invent.kde.org/qt/clang/llvm/-/commit/6f65ede5cb8bda88514d662b6bef531abff966e4
Git commit 762d3765e99622584f64e853f92fd98354483da7 by GitHub (on behalf of David Spickett) on 10/08/2026 at 12:53..
[lldb][test] Remove Python <= 3.6 workaround (#215262)
re.Pattern was added in 3.7 and our minimum
is now 3.8.
Python 3.6.15:
>>> import re
>>> re.Pattern
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 're' has no attribute 'Pattern'
Python 3.7.17:
>>> import re
>>> re.Pattern
<class 're.Pattern'>
Python 3.8.20:
>>> import re
>>> re.Pattern
<class 're.Pattern'>
(it does not appear in documentation until 3.11)
https://invent.kde.org/qt/clang/llvm/-/commit/762d3765e99622584f64e853f92fd98354483da7
Git commit 00215059cc71b7a229c2d2fc70797018b927514c by GitHub (on behalf of Louis Dionne) on 10/08/2026 at 12:58..
[libc++] Simplify detection of win32-broken-utf8-wchar-ctype (#214797)
Instead of querying `_LIBCPP_HAS_LOCALIZATION` from Python, do it from
the source program. This fixes a bug where if `_LIBCPP_HAS_LOCALIZATION`
was not defined at all (which is the case for older versions of libc++),
the feature would then be defined immediately, regardless of the
platform we're on. That's because `and` has higher precedence than `or`
in Python, so we'd end up skipping the `_WIN32` check entirely.
https://invent.kde.org/qt/clang/llvm/-/commit/00215059cc71b7a229c2d2fc70797018b927514c
Git commit 45d4f997a664755e96243fbb1da49e22be8fb24e by GitHub (on behalf of Bagodiya) on 10/08/2026 at 13:04..
[InstCombine] Fold uadd.sat(X, C) - C to umin(X, ~C) (#215130)
`uadd.sat(X, C) - C --> umin(X, ~C)` for nonzero `C`.
The saturating add gives `X + C` or `UMAX`, so subtracting `C` leaves
`X` or
`UMAX - C`, which is the unsigned minimum. `UMAX - C == ~C`, so the
constant
is just the inverted `C`.
There was already a test documenting this miss in saturating-add-sub.ll
(`test_scalar_uadd_sub_const`) - it folds now.
https://alive2.llvm.org/ce/z/kLFWy7
Fixes #215103
https://invent.kde.org/qt/clang/llvm/-/commit/45d4f997a664755e96243fbb1da49e22be8fb24e
Git commit 9dfc65d43ae1fb83eda4684e3fe4c9a84a574a14 by GitHub (on behalf of David Spickett) on 10/08/2026 at 13:11..
[lldb] Remove Python 2 compatibility in PythonDataObjects.cpp (#215268)
Our minimum Python is 3.8.
https://invent.kde.org/qt/clang/llvm/-/commit/9dfc65d43ae1fb83eda4684e3fe4c9a84a574a14
Git commit 4aa2d83fa19b11382917eaedfd10a495ac6feede by GitHub (on behalf of Balázs Benics) on 10/08/2026 at 13:11..
[clang][NFC] Extract getExpansionRangeInFile out of the diagnostic renderers (#214460)
Prep for the following commits, which fix crashes in the analyzer's
SARIF and HTML output on ranges that end inside a macro expansion.
Fixing them means mapping such a range into the reported file - the
normalization the frontend text and SARIF renderers already do, and that
the two analyzer consumers each do differently and incorrectly.
Hoist that logic into getExpansionRangeInFile, beside the DiagnosticRenderer
base both frontend renderers derive from, so the fixes reuse one
implementation instead of adding two more copies. TextDiagnostic and
SARIFDiagnostic move onto it here with no behavior change; the analyzer
consumers follow in later commits.
getFileID() replaces SARIFDiagnostic's getDecomposedLoc(...).first - equivalent
here, and what TextDiagnostic has used since c113cbb51005.
Assisted-By: claude
https://invent.kde.org/qt/clang/llvm/-/commit/4aa2d83fa19b11382917eaedfd10a495ac6feede
Git commit ad36a6b5419481f9bfe2d80d8528218f6ca97965 by GitHub (on behalf of Hendrik Hübner) on 10/08/2026 at 13:15..
Fix CGObjCGNU __cxa_rethrow return type (#214496)
PtrTy -> VoidTy
https://invent.kde.org/qt/clang/llvm/-/commit/ad36a6b5419481f9bfe2d80d8528218f6ca97965
Git commit 9d3e53a277723ab5ad56fca8e6069cfe04febc79 by GitHub (on behalf of Louis Dionne) on 10/08/2026 at 13:19..
[libc++] Add tools for gathering historical benchmark data (#212775)
Benchmarking every commit of libc++ is prohibitively expensive: a single
run of the benchmark suite takes hours, and the data has to be
regenerated from scratch whenever the compiler, the OS or the benchmark
machines change. These tools instead sample the history at a coarse
granularity and drive libcxx-benchmark-commit.yml to fill in what is
missing.
Three tools cooperate, meant to be run periodically:
select-anchor-commits picks one commit per calendar bucket from Git
plan-benchmarks diffs that against what LNT already holds
dispatch-benchmarks requests the corresponding workflow runs
They keep no state of their own. They recompute the current and target
states from LNT and the GitHub Actions API, which allows running them in
a CRON. The dispatching of workflows is done using a budget, to avoid
launching tens of jobs and competing with other uses of the CI
resources.
The first pass of these tools was assisted by Claude, but I reviewed and
tweaked everything that needed it.
https://invent.kde.org/qt/clang/llvm/-/commit/9d3e53a277723ab5ad56fca8e6069cfe04febc79
Git commit 786ed0d4d3b337711e2d542369cb03369482a113 by GitHub (on behalf of Brian Cain) on 10/08/2026 at 13:22..
[Hexagon] Fix unusable SCS reg, make it selectable (#213820)
SCS hardcoded r19 as the shadow call stack pointer and required
-ffixed-r19. That was the wrong register to pick: r19 is precisely the
one the intended consumers cannot give up, so the feature was unusable
in practice.
* The Hexagon Linux kernel already reserves r19 for its thread-info
pointer (arch/hexagon/Makefile: "TIR_NAME := r19", documented there as
not configurable because it is hard-coded in several files).
* hexagon-hypervisor reserves r20-r28 (kernel/CMakeLists.txt), with r28
bound to a register global (H2K_gp).
That leaves h2 only r16-r19, so no single hardcoded choice can serve
both consumers.
Intersecting that with the callee-saved regs leaves r1{6,7,8}. So the
new default is r18.
* Add scs-reg-r{16..27} subtarget features
* Add a -mscs-reg=<reg> flag. It's in m_Group instead of
m_hexagon_Features_Group, since the latter is consumed by
handleTargetFeaturesGroup() and would synthesize a bogus "+scs-reg="
feature.
https://invent.kde.org/qt/clang/llvm/-/commit/786ed0d4d3b337711e2d542369cb03369482a113
Git commit c405fd3870aadfce5a9cf1a13f0da8aaeb8d3854 by GitHub (on behalf of Ivan R. Ivanov) on 10/08/2026 at 13:25..
[mlir][acc] Fold present() clauses on device values (#212815)
The compiler must emit acc.device_ptr mapping for device values,
however, an existing present clause prevents that. A present on a device
value always holds, so fold it away to allow implicit data handling to
generate device_ptr mapping.
https://invent.kde.org/qt/clang/llvm/-/commit/c405fd3870aadfce5a9cf1a13f0da8aaeb8d3854
Git commit ef4d4d074570232364982564782c86083d5dcf78 by GitHub (on behalf of Tom Stellard) on 10/08/2026 at 13:27..
release-tasks: Disable lit publishing for release candidates (#214972)
There is no rc in the lit version string, so release candidates get
published using the non-rc version number.
https://invent.kde.org/qt/clang/llvm/-/commit/ef4d4d074570232364982564782c86083d5dcf78
Git commit b6a9f2f765e49740062847a3319a4dc4cc5ebab1 by GitHub (on behalf of Tom Stellard) on 10/08/2026 at 13:29..
workflows/release-task: Stop uploading lit to test.pypi.org (#214979)
The gh-action-pypi-publish action only supports being run once per job.
Running it twice results in the second upload always failing. Rather
than trying to create a complicated job structure to support uploading
to test.pypi.org and pypi.org, we just remove the test.pypi.org upload
for now.
https://invent.kde.org/qt/clang/llvm/-/commit/b6a9f2f765e49740062847a3319a4dc4cc5ebab1
Git commit 9c7ba7b1d12ed3f395a2317c525a98e5bfcf28e9 by GitHub (on behalf of Sean Perry) on 10/08/2026 at 13:32..
[AIX][SystemZ][Support] Check if file is dir on open instead of read (#214815)
See
https://github.ibm.com/compiler/llvm-project/commit/678f19f08296fec299438130cf5943714c590b7e
for the original change.
This original change would run fstat() on the file at every read(). In
the non-error situation that is a lot of redundant checking. Moving the
fstat() check to openNativeFileForRead() will reduce the checks to a
minimum and still produce the same error if someone tries to open a
directory.
https://invent.kde.org/qt/clang/llvm/-/commit/9c7ba7b1d12ed3f395a2317c525a98e5bfcf28e9
Git commit e4f840348ef76cd2857a22880c0b5dc298e99e95 by GitHub (on behalf of Sylvestre Ledru) on 10/08/2026 at 13:43..
[Support] Use block-scope statics for cl::opt registration globals (#215216)
Every static cl::opt constructor references GlobalParser and the
TopLevelSubCommand/AllSubCommands ManagedStatics, namespace-scope
globals in another translation unit. Although these are constant-
initialized in practice, Coverity's GLOBAL_INIT_ORDER checker cannot
prove it and reports one 'Initialization or destruction ordering is
unspecified' finding per option -- 15,356 of the 34,356 outstanding
defects (44.7%) in the LLVM Coverity project.
Move the three registries into block-scope statics behind accessor
functions. Block-scope statics are initialized on first use, so the
cross-TU initialization-order hazard pattern disappears while the
ManagedStatic semantics (lazy construction, destruction via
llvm_shutdown) are preserved unchanged.
https://invent.kde.org/qt/clang/llvm/-/commit/e4f840348ef76cd2857a22880c0b5dc298e99e95
Git commit 067aa365bfafb9c7430ddd2ee1c3f80066aa3a4f by GitHub (on behalf of Alex Duran) on 10/08/2026 at 13:43..
[OFFLOAD][OMP] Move OpenMP kernel argument processing from plugins (#213867)
This PR moves part of the OpenMP specific code that is inside the common
code of the plugins that converts the kernel arguments from the OpenMP
ABI to the expected format by the plugins. Also it handles the
additional argument for the KernelLaunch environment.
It also decouples the plugin interface structs from the OpenMP specific
ABI (KernelArgsTy) so changes to this interface do not require changes
to the OpenMP ABI anymore. This also allows to merge what was
KernelArgsTy and LaunchParamsTy into a single struct with all the
information. Because of this there's a number of small changes scattered
through the plugin infrastructure.
There is still some more OpenMP specific code that should be moved out
eventually (and because of this we had to retain some of that
informationt in the new KernelLaunchArgsTy for now) but I didn't want to
complicate this PR further.
Assisted by Claude-Sonnet-5.
https://invent.kde.org/qt/clang/llvm/-/commit/067aa365bfafb9c7430ddd2ee1c3f80066aa3a4f
Git commit 4ae0a5dc215bbea796192904a15b0083a328559e by GitHub (on behalf of Alex Duran) on 10/08/2026 at 13:44..
[OpenMP] Fix race in setupIndirectCallTable (#215274)
The IndirectCallTable variable where the table is constructed is a local
variable. The copy to the device is right now not synchronized, so the
frame where the table resides can be overwritten before the GPU copy has
accessed the host data which corrupts the device side table.
Fix it by make it a synchronous operation.
https://invent.kde.org/qt/clang/llvm/-/commit/4ae0a5dc215bbea796192904a15b0083a328559e
Git commit efafbede9507d47a992e9a23c8d3eef9082e4d21 by GitHub (on behalf of Charles Zablit) on 10/08/2026 at 13:46..
[lldb-dap] Convert test to use the require decorator (#213462)
This is a follow up to https://github.com/llvm/llvm-project/pull/212753
to convert the `lldb-dap` tests to use the `@require` decorators.
https://invent.kde.org/qt/clang/llvm/-/commit/efafbede9507d47a992e9a23c8d3eef9082e4d21
Git commit dd297590de15d5a9a287425d74c67abb46bf9136 by GitHub (on behalf of ykhatav) on 10/08/2026 at 13:48..
[Clang][OpenMP] Validate prefer_type fr()/attr() arguments in append_args clause (#212307)
The OpenMP 6.0 spec states that append_args(interop(...)) accepts the
same modifier-specification-list as the init clause, which includes
prefer_type. However, the parser rejected prefer_type in append_args,
and the semantic validation for fr()/attr() arguments was only performed
for the init clause. This patch allows prefer_type in the parser for
append_args and adds the corresponding semantic validation of
fr()/attr() arguments to ActOnOpenMPDeclareVariantDirective.
https://invent.kde.org/qt/clang/llvm/-/commit/dd297590de15d5a9a287425d74c67abb46bf9136
Git commit 9b02a8065f9f62eceaf888861077b5d0cd5ded2b by GitHub (on behalf of Simon Pilgrim) on 10/08/2026 at 13:48..
[X86] concatvectors(cvtneps2bf16(x),cvtneps2bf16(y)) -> cvtne2ps2bf16(y,x) (#215215)
Handle cvtne2ps2bf16 operands swap
Fixes #214676
https://invent.kde.org/qt/clang/llvm/-/commit/9b02a8065f9f62eceaf888861077b5d0cd5ded2b
Git commit a33dc5aeb1383dce2d78394deebaea8b8cc714c6 by GitHub (on behalf of Nazar Mokrynskyi) on 10/08/2026 at 13:49..
[X86][SchedModel] Use ZMM zero-idiom class for 512-bit VPSUB/VPCMPGT on Znver4 (#215109)
Fix copy + paste typo:
```
Zn4WriteVZeroIdiomLogicX -> InstRW<[Zn4WriteVZeroIdiomLogicX], ...> ok
Zn4WriteVZeroIdiomLogicY -> InstRW<[Zn4WriteVZeroIdiomLogicY], ...> ok
Zn4WriteVZeroIdiomLogicZ -> InstRW<[Zn4WriteVZeroIdiomLogicZ], ...> ok
Zn4WriteVZeroIdiomALUX -> InstRW<[Zn4WriteVZeroIdiomALUX], ...> ok
Zn4WriteVZeroIdiomALUY -> InstRW<[Zn4WriteVZeroIdiomALUY], ...> ok
Zn4WriteVZeroIdiomALUZ -> InstRW<[Zn4WriteVZeroIdiomALUY], ...> <-- Y, not Z
```
https://invent.kde.org/qt/clang/llvm/-/commit/a33dc5aeb1383dce2d78394deebaea8b8cc714c6
Git commit 635b4166c1bddc03df0aa405cddaa11a2970285d by GitHub (on behalf of Kirill Vedernikov) on 10/08/2026 at 13:53..
[MLIR][NVVM][NVPTX] Add collector_b operand to tcgen05.mma intrinsics (#214280)
Extend `tcgen05.mma`, `disable_output_lane`, and `block_scale` NVVM
intrinsics with a `collector_b` immediate operand.
Update the NVPTX patterns to select `collector::b` forms when the
subtarget supports them, and enable the relevant sm_107f PTX 9.4
predicate.
Auto-upgrade older IR by appending `collector_usage_b=discard` so
existing bitcode keeps the previous behavior.
Extend tcgen05.mma MLIR Ops with `collectorOpB` argument.
https://invent.kde.org/qt/clang/llvm/-/commit/635b4166c1bddc03df0aa405cddaa11a2970285d
Git commit 3e9127ba3a056a787e76d155274e05e3d5f76861 by GitHub (on behalf of Sven van Haastregt) on 10/08/2026 at 13:56..
[GVN] Use SmallDenseSet for visited node tracking (#215258)
Commit 0a321f38147f ("[GVN] Track visited nodes in equality propagation
to avoid OOM (#212265)", 2026-08-05) caused some compilation time
regressions. Use a SmallDenseSet to mitigate the impact of that change.
https://invent.kde.org/qt/clang/llvm/-/commit/3e9127ba3a056a787e76d155274e05e3d5f76861
Git commit a502d2f1a5c8dc678da616184deb9fd1c9bbb4da by GitHub (on behalf of Dimitri Ratz) on 10/08/2026 at 14:01..
[clangd] Add symbol tags in SymbolInformation, WorkspaceSymbol, CallHierarchyItem and TypeHierarchyItem (#170103)
Introduce support for symbol tags in `SymbolInformation`, `WorkspaceSymbol`, `CallHierarchyItem`, and `TypeHierarchyItem`.
As part of this change:
- Calculation of the symbol tags Overrides and Implements
- Calculation of symbol tags during the AST creation and embedding them in `Symbol`.
- Minor change on struct Symbol to minimize paddings and thus reducing memory consumption.
Continuation of PR #167536
Fixes #180843
https://invent.kde.org/qt/clang/llvm/-/commit/a502d2f1a5c8dc678da616184deb9fd1c9bbb4da
Git commit 85ce0f6b4a7c07c5b5dba9803f8635258a91b43c by GitHub (on behalf of David Spickett) on 10/08/2026 at 14:12..
[lldb][test][LUA] Remove Python2 workaround (#215279)
https://invent.kde.org/qt/clang/llvm/-/commit/85ce0f6b4a7c07c5b5dba9803f8635258a91b43c
Git commit 78e582c0dac472c5cc0adfdf6b9fe7f21d148582 by GitHub (on behalf of Harry Ramsey) on 10/08/2026 at 14:18..
[AArch64][GISel] Recover ADDHN from OR comparison masks (#213925)
Add post legalize combine for recovering G_ADDHN from the GISel pattern;
G_TRUNC(G_OR(G_ICMP/G_FCMP, G_ICMP/G_FCMP)).
https://invent.kde.org/qt/clang/llvm/-/commit/78e582c0dac472c5cc0adfdf6b9fe7f21d148582
Git commit f8cc9d03f5f0722727ab84aedcaeb842460ebb71 by GitHub (on behalf of Rajat Bajpai) on 10/08/2026 at 14:19..
[MLIR][NVVM] Add im2col_w mode support in S2G and Reduce ops (#214932)
This change adds support of im2col_w mode in S2G and Reduce NVVM Dialect
Ops.
https://invent.kde.org/qt/clang/llvm/-/commit/f8cc9d03f5f0722727ab84aedcaeb842460ebb71
Git commit 106be2158ee4b9b0444458a71026dd8e20d664a7 by GitHub (on behalf of Björn Pettersson) on 10/08/2026 at 14:20..
[VectorCombine] Fold bitcast(bitreverse(bitcast(x))) to fshl+bitreverse (#214362)
Extend foldBitOrderReverseAndSwap to handle <2 x iN> element bitreverse
patterns. Previously the fold only handled <N x i8> vectors using bswap
to reorder octets. For 2-element vectors, the element swap is a rotate
by half the bitwidth, which can be expressed as fshl(x, x, bitwidth/2).
The transform rewrites:
bitcast(bitreverse(bitcast(x))) -> bitreverse(fshl(x, x, N/2))
when the cost model indicates the scalar form is cheaper.
For <2 x i8> we still prefer to use bswap, and we do not even consider
to check if fshl is cheaper than bswap.
https://invent.kde.org/qt/clang/llvm/-/commit/106be2158ee4b9b0444458a71026dd8e20d664a7
Git commit 53ecb3243ed5ad4ff9d614cc5a117a40e6fce3bc by GitHub (on behalf of Alex Duran) on 10/08/2026 at 14:21..
[OpenMP][NFC] Fix typo (#215281)
https://invent.kde.org/qt/clang/llvm/-/commit/53ecb3243ed5ad4ff9d614cc5a117a40e6fce3bc
Git commit f47fa4e5ab824ef9cbdfca976b96ebc975a7d724 by GitHub (on behalf of Matt Arsenault) on 10/08/2026 at 14:21..
clang/AMDGPU: Require 16-bit-insts for half typed buffer format builtins (#205367)
Typed buffer format load/store operations with 16-bit elements require
d16 support which was introduced in gfx8. These builtins previously had
no required features at all, so they were accepted (and then crashed the
backend) on targets without 16-bit support.
The automatic builtin feature verification is enforced in codegen,
which seems like a layering violation.
Co-Authored-By: Claude (Opus 4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/f47fa4e5ab824ef9cbdfca976b96ebc975a7d724
Git commit 8ef2e8735f8a782fc7f0e82ce399045fb6bccc68 by GitHub (on behalf of Matt Arsenault) on 10/08/2026 at 14:22..
clang/AMDGPU: Require 16-bit-insts for half typed image builtins (#205368)
Typed image load/store operations with 16-bit elements require d16
support which was introduced in gfx8. They were previously gated only
on image-insts, so they were wrongly accepted on targets that have
images but lack 16-bit support (e.g. gfx700), where the backend then
fails to select.
Co-Authored-By: Claude (Opus 4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/8ef2e8735f8a782fc7f0e82ce399045fb6bccc68
Git commit 419a1e6c5fe807397e09ad5ab8d1974f0fe0038e by GitHub (on behalf of Joseph Huber) on 10/08/2026 at 14:49..
[AMDGPU] Mark int64_t and intmax_t as LP64 (#214865)
Summary:
The standalone amdgcn target currently inconsistently sets the bit
widths for things like intptr_t but does not set int64_t and intmax_t.
This diverges from the common Linux definitions, which HIP / OpenMP
currently inherit for most cases, but doesn't correspond to other
targets like Windows either. We should make this consistent with the
Linux target, both so we are not in the in-between state and because
that is what the vast majority of AMDGCN compilations already do through
HIP.
Note, this does not affect OpenCL, HIP, OpenMP, or SPIR-V compilations.
It only affects the raw '--target=amdgcn-amd-amdhsa` without any other
language mode set.
https://invent.kde.org/qt/clang/llvm/-/commit/419a1e6c5fe807397e09ad5ab8d1974f0fe0038e
Git commit 69508569051264ee05d219cdc4ae6d02beb7ab38 by GitHub (on behalf of Alex MacLean) on 10/08/2026 at 14:50..
[NVPTX] Add NewPM boilerplate to NVPTXForwardParams (#215141)
https://invent.kde.org/qt/clang/llvm/-/commit/69508569051264ee05d219cdc4ae6d02beb7ab38
Git commit 0dabaaca31ce29b6d3d2d3bce8266ac86c65c26e by GitHub (on behalf of Michael Kruse) on 10/08/2026 at 14:51..
[Flang][test] Account for FLANG_TEST_Fortran_FLAGS (#213964)
FLANG_TEST_Fortran_FLAGS allows adding additional flags when running
Flang's test. It is typically used for standalone builds of Flang where
the intrinsic modules are not (and cannot be) built using
LLVM_ENABLE_RUNTIMES=flang-rt, but an external location can be specified
using `-fintrinsic-modules-path`. FLANG_TEST_Fortran_FLAGS was not
accounted for in #201278. In this PR, accept (and ignore) any additional
command line arguments in the test.
Also change `flang` -> `%flang` which is what inserts the
FLANG_TEST_Fortran_FLAGS.
https://invent.kde.org/qt/clang/llvm/-/commit/0dabaaca31ce29b6d3d2d3bce8266ac86c65c26e
Git commit 11799583db91db32cbf845686643b336bc955a78 by GitHub (on behalf of David Spickett) on 10/08/2026 at 14:53..
[lldb] Remove Python 2 code in crashlog.py (#215265)
Our minimum Python is 3.8.
https://invent.kde.org/qt/clang/llvm/-/commit/11799583db91db32cbf845686643b336bc955a78
Git commit b5491bbe9c04168f365e52eb39a40cf7ddff14b6 by GitHub (on behalf of Matt Arsenault) on 10/08/2026 at 15:05..
clang/AMDGPU: Require 16-bit-insts for half typed image sample builtins (#213612)
Extend the d16 feature requirement to the half typed image sample
builtins. The sample variants returning 16-bit elements require d16
support (gfx8+) but were gated only on image-insts/extended-image-insts,
so they were wrongly accepted on old targets.
Co-Authored-By: Claude (Opus 4.8) <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/b5491bbe9c04168f365e52eb39a40cf7ddff14b6
Git commit bc59a35a37ca944b87c1f287c86b0ee0586bd129 by GitHub (on behalf of Vlad Serebrennikov) on 10/08/2026 at 15:07..
[OpenMP] Convert AST dump tests for `variant` clause into codegen tests (#204581)
This is another spin-off of #200077 and a complimentary PR to #204493.
Johannes suggested that AST dump tests for the `variant` clause can be
turned into rather short codegen tests that check for the mangled name
of the selected function. This PR implements that.
When #204413 gets fixed, those tests can be further reduced to only use
`-verify`.
https://invent.kde.org/qt/clang/llvm/-/commit/bc59a35a37ca944b87c1f287c86b0ee0586bd129
Git commit 186c16480a65be9a3c2cea33e19fee6db7ee3871 by GitHub (on behalf of Simon Pilgrim) on 10/08/2026 at 15:11..
[X86] Add pdep/pext 256 & 512 bit vector test coverage (#215291)
Baseline tests for #214508
https://invent.kde.org/qt/clang/llvm/-/commit/186c16480a65be9a3c2cea33e19fee6db7ee3871
Git commit 8b04ebbb0bcac9b7ef77c763cb6bc7947f37bab7 by GitHub (on behalf of Pavel Labath) on 10/08/2026 at 15:22..
[libc] Fix HermeticTestUtils signature of operator delete (#215041)
The signed-and-aligned version should take a size_t. It was added to
support rv32 #67457, where it worked presumably because size_t is
defined as `unsigned int`.
This should fix printf_core.parser_test on amdgpu, which failed to link
because it generated a call to the operator (while other targets do
not). I did not try this with a GPU build, but I've verified this fixes
the same error in x86 builds (when deleting an overaligned struct).
https://invent.kde.org/qt/clang/llvm/-/commit/8b04ebbb0bcac9b7ef77c763cb6bc7947f37bab7
Git commit 4f707535369f092eabfa3f7d7fb58c2238e3f9c4 by GitHub (on behalf of Pavel Labath) on 10/08/2026 at 15:24..
[libc] Relax read errno check (#215053)
read_write_test was failing on the libc-arm32-qemu-debian-dbg bot due to
a different errno number. Even though the test has a qemu branch, it did
not kick in because the bot does not set CMAKE_CROSSCOMPILING_EMULATOR
(I assume the tests get run via binfmt_misc).
While we could fix this in the bot config, and the different error
*might* be considered a qemu bug, I don't think this is particularly
relevant for this test, as we're merely forwarding the error number from
the kernel (as such, the errno expectation is more of a test for the
kernel that for libc). I think this okay to relax the check to expect
one of the two reasonable error messages.
https://invent.kde.org/qt/clang/llvm/-/commit/4f707535369f092eabfa3f7d7fb58c2238e3f9c4
Git commit 1b621bb3779680d5740a0ab3adcedd4e5242bf4c by GitHub (on behalf of Kazu Hirata) on 10/08/2026 at 15:35..
[mlir] Remove dead declaration getSCFMinMaxExpr (#215188)
The corresponding function definition was removed on August 25, 2021
in commit 2de2dbef2a9a0c774acc8bf1ce17d024da5c145e.
https://invent.kde.org/qt/clang/llvm/-/commit/1b621bb3779680d5740a0ab3adcedd4e5242bf4c
Git commit dfe2f8aefb47239bfbd11f30906c303ef34a27af by GitHub (on behalf of Jason Van Beusekom) on 10/08/2026 at 15:51..
[Flang][OpenMP][MLIR] Materialize groupprivate for target without teams (#214316)
Prior to this change, `groupprivate` variables were only materialized
for teams constructs. A `groupprivate` variable used inside a bare
target region was not materialized.
This commit materializes the `groupprivate` copy on the target construct
itself when target does not contain a teams construct. Making the
behavior equivalent to target teams num_teams(1).
Assisted-by: Opus 4.8
https://invent.kde.org/qt/clang/llvm/-/commit/dfe2f8aefb47239bfbd11f30906c303ef34a27af
Git commit 3a019ce9e1e536f66d6ba0e537678a823e5a9ca8 by GitHub (on behalf of Shuvam Pandey) on 10/08/2026 at 15:52..
[AArch64] Validate fixed-point SCVTF/UCVTF scale operands (#213490)
The fixed-point SCVTF/UCVTF operands are missing the ParserMatchClass
used by
fixedpoint_i32/i64. Symbolic scales can therefore reach the encoder and
hit
its MO.isImm() assertion, while out-of-range scales can alias valid
encodings.
Use Imm1_32Operand and Imm1_64Operand for these operands and add
diagnostics
for both source widths and symbolic scales.
Addresses the scvtf/ucvtf part of #185358. The ext case is tracked by
#185361.
https://invent.kde.org/qt/clang/llvm/-/commit/3a019ce9e1e536f66d6ba0e537678a823e5a9ca8
Git commit 4a1bea02faba506926869e6ba08902bad30e217a by GitHub (on behalf of Balázs Benics) on 10/08/2026 at 15:55..
[clang] Reject ranges getExpansionRangeInFile cannot represent (#214461)
getExpansionRangeInFile was extracted verbatim and inherited two
shortcomings
of the original loop, fixed here before the analyzer's SARIF and HTML
consumers
depend on it:
- It mapped the end with getExpansionRange(SourceLocation), which always
reports a token range, so a char-range input was widened by a whole
token.
Now using the getExpansionRange(CharSourceRange) overload, which keeps
the flag.
- It passed reversed ranges through. Consumers walk begin->end; now
returning
nullopt for those, as Lexer::makeFileCharRange already does.
Separate from the extraction so that stays NFC, and out of the consumer
fixes
because it changes the shared helper's contract rather than one output.
Both contract changes, plus the invalid- and cross-file-range guards,
are
covered by a GetExpansionRangeInFile unit test in
clang/unittests/Frontend/TextDiagnosticTest.cpp.
Assisted-By: claude
https://invent.kde.org/qt/clang/llvm/-/commit/4a1bea02faba506926869e6ba08902bad30e217a
Git commit d54a0a531dc08d1f19e94b909278280ea35ee5de by Balázs Benics (on behalf of Balazs Benics) on 10/08/2026 at 15:55..
[analyzer] Fix -analyzer-output=sarif crash on macro-expanded ranges
A path piece whose range ends inside a macro expansion aborted the whole
document: https://godbolt.org/z/61vWYcsWj
Cannot create a physicalLocation from invalid SourceRange!
convertTokenRangeToCharRange() built the end with
Lexer::getLocForEndOfToken(), which returns an invalid location for a macro
ID that is not at the end of its expansion, and used it unchecked. The
analyzer's own test corpus hits this in nine files; text and plist output
were unaffected because both already map such ranges to the expansion.
- Use getExpansionRangeInFile(), so the region covers the macro use like the
other two outputs.
- Fall back to a caret when the range is unusable. A thread flow needs a
location per piece, so dropping one would truncate the reported path. This
also stops reversed ranges producing regions with endColumn < startColumn.
Single-token ranges keep their zero-width regions; widening them would churn
every expected-sarif file, so that is left for a separate change.
Assisted-By: claude
https://invent.kde.org/qt/clang/llvm/-/commit/d54a0a531dc08d1f19e94b909278280ea35ee5de
Git commit 319f0a259a6bca53922ab550f2917fc8b44119c2 by Balázs Benics (on behalf of Balazs Benics) on 10/08/2026 at 15:55..
[analyzer] Fix -analyzer-output=html assert on reversed and macro ranges
HTMLDiagnostics::HighlightRange guarded against a reversed range by
comparing line numbers, so a same-line reversal - which is what the piece for
an implicit copy constructor carries - reached html::HighlightRange.
Its scan walks from begin to end, ran off the end of the buffer, and asserted:
https://godbolt.org/z/sTb5qfjjd
Invalid position to insert! (RewriteRope.h)
It also added the end token's length itself and then passed a token range to
html::HighlightRange, which measured the token again, this time from the
interior. For most tokens the two cancel, but where the tail re-lexes longer
the highlight reached past the end of the range, e.g. over a trailing ';'.
Use getExpansionRangeInFile(), which rejects reversed and cross-file ranges,
then convert once and tell html::HighlightRange the range is already
char-granular.
A range ending inside a macro expansion now covers the whole macro use, so
the highlight nests around the 'macro' element rather than ending inside it.
Assisted-By: claude
https://invent.kde.org/qt/clang/llvm/-/commit/319f0a259a6bca53922ab550f2917fc8b44119c2