[all-commits] [llvm/llvm-project] f5437c: [clang][NFC] Refactor flag enum caching (#210632)
Daniil Kovalev via All-commits
all-commits at lists.llvm.org
Wed Jul 29 13:20:33 PDT 2026
Branch: refs/heads/users/kovdan01/pauthtest-elf-got
Home: https://github.com/llvm/llvm-project
Commit: f5437c4d4f2e9920614d856158d9683d650acffa
https://github.com/llvm/llvm-project/commit/f5437c4d4f2e9920614d856158d9683d650acffa
Author: Matthias Wippich <mfwippich at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaDecl.cpp
Log Message:
-----------
[clang][NFC] Refactor flag enum caching (#210632)
Extracts cache insertion logic from `IsValueInFlagEnum`. This allows us
to drop `mutable` on `FlagBitsCache` while making it reusable as work
list for additional flag_enum diagnostics.
Commit: b53f2d57b086d93dc8421c74c17913951122e9d9
https://github.com/llvm/llvm-project/commit/b53f2d57b086d93dc8421c74c17913951122e9d9
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 1e1274b (#212405)
This fixes 1e1274b2ddfe4643eefdd1c6c83d6c2d61dace1d (#212318).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=1e1274b2ddfe4643eefdd1c6c83d6c2d61dace1d
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 39549cd7c62e9a2db44d186e0fe5d99e1473cb24
https://github.com/llvm/llvm-project/commit/39549cd7c62e9a2db44d186e0fe5d99e1473cb24
Author: StefanPaulet <tudor.stefan.paulet at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/include/clang/Sema/ScopeInfo.h
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaLambda.cpp
M clang/lib/Sema/TreeTransform.h
M clang/test/SemaCXX/source_location.cpp
Log Message:
-----------
[clang] Fixed predefined expressions after lambda parameters (#211811)
After the parameter declaration of a lambda expression, `Sema` enters
the declaration context of the lambda call operator (in
`ActOnLambdaClosureParameters`), so the lambda specifiers and the
trailing return type are analyzed within that context. Because of this,
predefined expressions such as `__func__` resolve to the lambda call
operator, and not to the possibly enclosing function. (issue #122657)
Added a member to `LambdaScopeInfo` to mark whether or not the compound
statement of the lambda expression has been entered, to be used when
resolving a `PredefinedExpr`
Commit: 0bcff14b1740cf32f9e0983726238dcf353c6ac8
https://github.com/llvm/llvm-project/commit/0bcff14b1740cf32f9e0983726238dcf353c6ac8
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libc/test/src/sys/mman/linux/CMakeLists.txt
M libc/test/src/sys/mman/linux/pkey_test.cpp
Log Message:
-----------
[libc] Make <sys/mman.h> tests hermetic (#210697)
The only issue was in pkey_test, which uses function-local static to do
lazy initialization. This requires the c++ runtime
(__cxa_guard_acquire/release).
There are no threads in this test, so we can just use the
(non-thread-safe) hand-rolled version of that. This is currently our
only test with such a pattern.
This would be something that in gtest would go into a SetUpTestSuite
method, but our test framework currently doesn't have an equivalent.
Commit: 7c58d4de4af550ba3d54bf217f27a1e6b3736dbc
https://github.com/llvm/llvm-project/commit/7c58d4de4af550ba3d54bf217f27a1e6b3736dbc
Author: Igor Kudrin <ikudrin at accesssoftek.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lldb/source/Host/linux/HostInfoLinux.cpp
M lldb/unittests/Host/HostInfoTest.cpp
Log Message:
-----------
[lldb][AArch64] Fix launching Arm32 applications on AArch64 Linux (#211692)
When LLDB runs on an AArch64 Linux, it adds both 64- and 32-bit
architectures as supported; see `PlatformLinux` ctor. The triple for the
32-bit variant is computed by replacing the architecture while keeping
all other fields; i.e., for the main host triple
`aarch64-unknown-linux-gnu`, the generated 32-bit triple is
`arm-unknown-linux-gnu`.
When a 32-bit target is created, its triple would be something like
`arm--linux-eabihf`. This triple is incompatible with the one added to
the supported architectures per condition in `ArchSpec::IsMatch()`,
which checks for compatibility between environments. As a result, LLDB
fails to launch this target:
```
> arm-linux-gnueabihf-g++ -g test.cpp -o test.out
> lldb
(lldb) file test.out
Current executable set to '/tmp/test.out' (arm).
(lldb) run
error: failed to launch or debug process
```
Clearing the environment of the computed triple for Arm32 allows the
compatibility check to pass.
---------
Co-authored-by: David Spickett <david.spickett at arm.com>
Commit: 162cdf496003e9bed7e7c7d0cbbd507365443b85
https://github.com/llvm/llvm-project/commit/162cdf496003e9bed7e7c7d0cbbd507365443b85
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/test/Analysis/ScalarEvolution/backedge-taken-count-guard-info-apply-to-adds.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
M llvm/test/Analysis/ScalarEvolution/trip-count-minmax.ll
M llvm/test/Transforms/IndVarSimplify/canonicalize-cmp.ll
M llvm/test/Transforms/LoopIdiom/add-nsw-zext-fold.ll
M llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll
M llvm/test/Transforms/LoopVectorize/runtime-checks-difference.ll
Log Message:
-----------
[SCEV] Rewrite more SCEVAddExpr when applying guards. (#159942)
When re-writing SCEVAddExprs to apply information from guards, check if
we have information for the expression itself. If so, apply it.
When we have an expression of the form (Const + A), check if we have
have guard info for (Const + 1 + A) and use it. This is needed to avoid
regressions in a few cases, where we have BTCs with a subtracted
constant.
Rewriting expressions could cause regressions, e.g. when comparing 2
SCEV expressions where we are only able to rewrite one side, but I could
not find any cases where this happens more with this patch in practice.
Depends on https://github.com/llvm/llvm-project/pull/160012.
Proofs for some of the test changes: https://alive2.llvm.org/ce/z/RPX6t_
This comes with a slight compile-time increase, mostly due to changes in
downstream optimizations (like extra unrolling).
stage1-O3: +0.03%
stage1-ReleaseThinLTO: +0.02%
stage1-ReleaseLTO-g: +0.04%
stage1-aarch64-O3: +0.04%
stage2-O3: +0.03%
https://llvm-compile-time-tracker.com/compare.php?from=42b4ee6383e340c4c3ab4cfddd17f864ab331e0d&to=7b5221e21c2c18152dcb72a82122730690153aed&stat=instructions%3Au
Improves optimizations end-to-end in a number of cases on real-world workloads
(dtcxzyw/llvm-opt-benchmark-nightly#802).
PR: https://github.com/llvm/llvm-project/pull/159942
Commit: 8e9802b45829d473bce51197ce95f3ab40d94426
https://github.com/llvm/llvm-project/commit/8e9802b45829d473bce51197ce95f3ab40d94426
Author: David Spickett <david.spickett at arm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lldb/test/API/functionalities/gdb_remote_client/TestGdbClientModuleLoad.py
Log Message:
-----------
[lldb][test] Do not return a PID in TestGdbClientModuleLoad (#212256)
This test has been flaky on x86 Github CI. It expects:
[ 0] {{.*}} 0x0000000000ee0000 {{.*}}module_load
[ 1] {{.*}} 0x0000000000ef0000 {{.*}}[vdso]
However in one run it got:
[ 0] 98FC07B8 0x0000000000ef0000 [vdso] (0xef0000)
[ 1] 75B11BBB-EF8B-5645-B9B1-A7261EC8ABCF-05413284 0x0000000000ed8ed0
/home/gha/actions-runner/bin/Runner.Worker
This happened because the responder says it's debugging PID 0x47, which
is usually some root process that we cannot read the /proc/pid/exe link
for. However when it is readable, we will assume that is the program
file and it replaces the "module_load" entry (this never happened on
AArch64 because an AArch64 program file is never compatible with an x86
triple).
In the failing case, 0x47 happened to be a github runner process that
lldb could get the exe for. I was able to reproduce this by putting a
long sleep in the background and replacing 0x47 with that sleep's PID.
To fix this I am returning the value of `PID_MAX_LIMIT` which is the
limit of what `pid_max` can be set to. This should be parsed by lldb
into an invalid PID and cause it to give up looking at the host.
I tried returning 0, this found a process somehow, returning no PID at
all, again it found a process. The only other way is to make this test
connect to a fake remote linux platform first, but this would take much
more code to set up.
Commit: 697f9892bef88f22f630e7e78541dd29d3cd716b
https://github.com/llvm/llvm-project/commit/697f9892bef88f22f630e7e78541dd29d3cd716b
Author: David Green <david.green at arm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/GlobalISel/reg-bank-128bit.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-assert-sext.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-assert-zext.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-ceil.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-dup.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-extract-vector-elt.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-extract.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-fcmp.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-fma.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-fmaximum.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-fminimum.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-fp-use-def.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-inlineasm.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-insert-vector-elt.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-intrinsic-round.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-intrinsic-trunc.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-intrinsic.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-llround.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-lround.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-maxnum.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-minnum.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-nearbyint.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-select.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-shift-imm-64.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-trunc-s128.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-build-vector.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-dbg-value.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-default.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-fp-loads.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-reductions.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-reg_sequence.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-unmerge-vec.mir
Log Message:
-----------
[AArch64][GlobalISel] Update regbank tests with concrete types. NFC (#212367)
Commit: 6aeeec83ec1d979ea2a2e3f4629ac361b5cdb70e
https://github.com/llvm/llvm-project/commit/6aeeec83ec1d979ea2a2e3f4629ac361b5cdb70e
Author: David Spickett <david.spickett at arm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lldb/test/API/commands/gui/spawn-threads/TestGuiSpawnThreads.py
Log Message:
-----------
[lldb][test] Skip TestGuiSpawnThreads.py on Linux (#212431)
See https://github.com/llvm/llvm-project/issues/209874.
We are still hitting the larger timeout.
Commit: c6603cce864078da43741e36fb9586a6c72782fe
https://github.com/llvm/llvm-project/commit/c6603cce864078da43741e36fb9586a6c72782fe
Author: Matthias Wippich <mfwippich at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/include/clang/Basic/TokenKinds.h
M clang/utils/TableGen/ClangTraitsEmitter.cpp
Log Message:
-----------
[clang][NFC] generate TokenKey from tablegen (#210857)
Currently the enumerator constants of `TokenKey` are duplicated between
TokenKinds.h and Traits.td. This patch generates the `TokenKey` enum
from tablegen.
This is a followup patch for
https://github.com/llvm/llvm-project/pull/201491#discussion_r3567423553
Commit: 564be89eaee5227ec21980ca2054f00d595044c7
https://github.com/llvm/llvm-project/commit/564be89eaee5227ec21980ca2054f00d595044c7
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/test/OffloadTools/clang-offload-bundler/asserts-on.c
M clang/test/OffloadTools/clang-offload-bundler/basic.c
Log Message:
-----------
clang: Fix subarchless amdgpu triples in offload bundler tests (#212424)
Commit: 10d1b41f8cd9aa327fb15f698a0b564a3d5c4118
https://github.com/llvm/llvm-project/commit/10d1b41f8cd9aa327fb15f698a0b564a3d5c4118
Author: Lang Hames <lhames at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/Core.cpp
Log Message:
-----------
[ORC] Fix buildSimpleReexportsAliasMap signature. (#212420)
The header declared a `const SymbolNameSet&` argument, but the
implementation took a `SymbolNameSet` by value. Update the
implementation to also take a `const SymbolNameSet&`.
No testcase. The corrected implementation will be used in an upcoming
commit.
Commit: 437b42f23250660f9a3f262ca6626324cd32a094
https://github.com/llvm/llvm-project/commit/437b42f23250660f9a3f262ca6626324cd32a094
Author: Kevin Bravo <kbravjr at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/TableGen/TGParser.cpp
M llvm/test/TableGen/eof-after-endif.td
Log Message:
-----------
[TableGen] don't print redundant diagnostic when parser sees Error token at end of file. (#212410)
Fixes #151476.
Currently TableGen parser emits `error: Unexpected token at top level`
when it sees `tgtok::Error` token after failing to parse the object
list, even though that token's corresponding diagnostics were already
emitted during lexing. This change makes `ParseFile` return true when it
sees `tgtok::Error` at end of file, thereby avoiding the redundant
diagnostic.
Commit: b349bef025f294ef100d02ac8c928836cd979f3f
https://github.com/llvm/llvm-project/commit/b349bef025f294ef100d02ac8c928836cd979f3f
Author: David Green <david.green at arm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-cttz.mir
M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
Log Message:
-----------
[AArch64][GlobalISel] Use integer type for cttz icmp type. (#212327)
Commit: 6520ac73f22d53e93e5ae8da6351a1714723497c
https://github.com/llvm/llvm-project/commit/6520ac73f22d53e93e5ae8da6351a1714723497c
Author: David Spickett <david.spickett at arm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
A lldb/test/API/linux/aarch64/aarch32_compat/Makefile
A lldb/test/API/linux/aarch64/aarch32_compat/TestAArch64LinuxAArch32Compat.py
A lldb/test/API/linux/aarch64/aarch32_compat/main.s
Log Message:
-----------
[lldb][test][AArch64] Add test for AArch32 compatibility execution (#211793)
This should catch obvious problems like the one in #211692 in
future.
To run AArch32 programs on AArch64 you need a few things:
* Hardware that has AArch32 mode at EL0.
* A kernel built with CONFIG_COMPAT on.
* (usually) A bunch of 32-bit libraries installed.
We are dodging the 3rd one by compiling a standalone assembly
program that doesn't use any other libraries.
With clang being a cross-compiler and lld a cross-linker,
we should be able to do this without any 32-bit compatibility
libraries being installed.
To check for the first 2, we run that program normally.
If it fails to run, we don't have them. If it does run,
we have to double check that it's not being emulated. If
it is not being emulated, finally we can run it with lldb to
check that lldb works correctly.
Inside of lldb we place a breakpoint and read some
registers. GPRs are set to their own register number,
and FPR to their register number plus 1. So if we mixed
up the set order, we would know about it.
Tested on a Graviton 3 which allowed AArch32 execution and a Graviton 5
which did not. For the latter, the error without an emulator is:
```
$ ~/test.o
-bash: /home/davspi01/test.o: cannot execute binary file: Exec format error
```
This we detect when `Popen` fails. If you install qemu and setup
binfmt_misc, we detect that via. the exe path:
```
$ ~/test.o &
[2] 433187
$ ls -la /proc/433187/exe
lrwxrwxrwx 1 davspi01 davspi01 0 Jul 27 11:47 /proc/433187/exe -> /usr/bin/qemu-arm
```
Commit: 2d7aaf670d704bbb4bfb3ef023f18ba0b85b58c7
https://github.com/llvm/llvm-project/commit/2d7aaf670d704bbb4bfb3ef023f18ba0b85b58c7
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libc/test/src/semaphore/linux/CMakeLists.txt
M libc/test/src/semaphore/linux/semaphore_test.cpp
M libc/test/src/unistd/CMakeLists.txt
M libc/test/src/unistd/chown_test.cpp
M libc/test/src/unistd/syscall_test.cpp
M libc/test/src/unistd/truncate_test.cpp
Log Message:
-----------
[libc] Fix path collisions between unit and hermetic tests (#212425)
Use the APPEND_LIBC_TEST macro to ensure each test gets a unique path to
operate on. Enable the affected tests in hermetic mode.
Commit: 636d8a253e71651ffa75f3bb515a14de0f20341d
https://github.com/llvm/llvm-project/commit/636d8a253e71651ffa75f3bb515a14de0f20341d
Author: David Spickett <david.spickett at arm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
Log Message:
-----------
[lldb][AArch64][Linux] Track all register cache validity in one place (#197113)
In this change I've expanded the existing RegisterSetType enum
to be used as part of a singular cache tracking object which replaces
all the separate booleans. These booleans were hard to track and
set/reset in the right places.
This new validity object can be reset by default constructing,
and uses a member initialiser so everything starts out as invalid.
RegisterSetType is now a bitmask enum for easier storage.
It's 32-bit now which is enough for now. Just in case we expand it.
(and I previously updated all sizeof calls to use RegisterSetType
instead of the raw type)
The SME and SME 2 entries have been renamed to ZA and ZT
as this is what ptrace calls them. Note that SME's pseudo registers
are still managed in their own unique way, I hope to address that
later.
Over time, RegisterSetType will become the key for all the
operations in the register context. You can see a preview of
that "vision" in #193174.
For instance getting the buffer location and size, looking up
the ptrace set number, finding out what a set write invalidates,
and so on.
I did consider using optional for the register storage. I think this
could work if we had done it from the beginning but starting from
this point it has too many issues with it.
* We cannot assume that sizeof(buffer) == sizeof(buffer_type). Which
leads to some places where you have to write sizeof(some_generic_type).
Which is not ideal. Being able to use the member variable name is
clearer.
* We have to make the buffer "valid" before trying to read, then make it
invalid if it fails. Rather than read and if it succeeds mark it valid.
3 steps vs. 2.
* Some things like SVE resize the buffer when we get the new vector
length, then at some point later assume the buffer can hold the result
of a read. We'd have to track the expected size separately, and use that
to resize it just before read. Which is not difficult, but it's a
different strategy and I don't want to disturb all the SVE/SME handling
at this stage.
* Though our buffer + bool is in theory an optional, the way the class
is designed where one thing fills the buffer and another reads from it
later, the flexibility of when to set the bool does help us. Versus the
automatic handling optional does.
Once this whole class has been simplified and I can see the "unusual"
code paths more easily, I might revisit the optional idea.
Commit: a1194be1baefa99d20a09bd04b16056be0ab7225
https://github.com/llvm/llvm-project/commit/a1194be1baefa99d20a09bd04b16056be0ab7225
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVInstPrinter.cpp
M llvm/test/CodeGen/SPIRV/literals.ll
Log Message:
-----------
[SPIR-V] Fix hex float exponent for f64 Inf/NaN literals (#212295)
The asm printer hardcoded the f32 exponent (+128) when printing Inf/NaN
as hex floats, so f64 Inf/NaN literals were misencoded and silently
reassembled as finite values by consumers
Derive the exponent from the operand actual semantic instead
Commit: 7e1719546578ed523f5deb4ac499cdc833280d9c
https://github.com/llvm/llvm-project/commit/7e1719546578ed523f5deb4ac499cdc833280d9c
Author: Wenju He <wenju.he at intel.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Analysis/IVDescriptors.cpp
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M llvm/test/Transforms/LoopUnroll/runtime-unroll-reductions-min-max.ll
M llvm/unittests/Analysis/IVDescriptorsTest.cpp
Log Message:
-----------
[LoopUnroll] Allow vector types for minmax reductions (#207630)
Our downstream patched RecurrenceDescriptor in IVDescriptors.cpp to
recognize min/max reductions on vector-typed phis. After ffa02793,
vector min/max intrinsic reductions now flow into getReductionIdentity()
with vector type and then runtime-unroll-reductions-min-max.ll test
crashed.
This PR upstreams our RecurrenceDescriptor change to avoid further
downstream change to LoopUtils.cpp (in this PR) that fixes the crash.
LIT change in runtime-unroll-reductions-min-max.ll shows a long serial
reduction chain now breaks into two independent ones, which is the
purpose of unroll-add-parallel-reductions.
---------
Co-authored-by: skozhukh <sergey.s.kozhukhov at intel.com>
Commit: b626ec036e8551c4aa7d548e718bc5aa91562be0
https://github.com/llvm/llvm-project/commit/b626ec036e8551c4aa7d548e718bc5aa91562be0
Author: Peng Sun <peng.sun at arm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
M mlir/test/Dialect/Tosa/availability.mlir
M mlir/test/Dialect/Tosa/invalid.mlir
M mlir/test/Dialect/Tosa/invalid_extension.mlir
M mlir/test/Dialect/Tosa/ops.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p0-invalid.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p1-valid.mlir
M mlir/test/Dialect/Tosa/verifier.mlir
Log Message:
-----------
[mlir][tosa] Add FP8 and MXFP support to RESIZE (#212276)
- Added FP8 and all six MXFP extension/type combinations
- Updated RESIZE availability and enforced NEAREST_NEIGHBOR for MXFP
- Added positive, negative, version, extension, mixed-type, and verifier
tests.
Signed-off-by: Peng Sun <peng.sun at arm.com>
Commit: 74aae4e43edbf1843b886516893fd2b880d70dfa
https://github.com/llvm/llvm-project/commit/74aae4e43edbf1843b886516893fd2b880d70dfa
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
Log Message:
-----------
[VPlan] Eta-reduce fn in pullOutPermutations (NFC) (#212439)
fun x => f x can be eta-reduced to just f.
Commit: b443896c13aded8b40d7bae4a5a9adbc96fd0d31
https://github.com/llvm/llvm-project/commit/b443896c13aded8b40d7bae4a5a9adbc96fd0d31
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
Log Message:
-----------
[VPlan] Use pointee-range in blocksOnly (NFC) (#212441)
The map_range can be replaced by make_pointee_range.
Commit: 6bb30c03650c9ebc816d089ea78b36a246116f07
https://github.com/llvm/llvm-project/commit/6bb30c03650c9ebc816d089ea78b36a246116f07
Author: Matthias Wippich <mfwippich at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/include/clang/AST/Expr.h
M clang/include/clang/AST/ExprCXX.h
M clang/include/clang/AST/Stmt.h
M clang/include/clang/ASTMatchers/ASTMatchers.h
A clang/include/clang/Basic/BuiltinTraits.h
R clang/include/clang/Basic/ExpressionTraits.h
R clang/include/clang/Basic/TypeTraits.h
M clang/include/clang/Sema/Sema.h
M clang/lib/AST/ExprConstShared.h
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/ASTMatchers/Dynamic/Marshallers.h
A clang/lib/Basic/BuiltinTraits.cpp
M clang/lib/Basic/CMakeLists.txt
R clang/lib/Basic/ExpressionTraits.cpp
R clang/lib/Basic/TypeTraits.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
M clang/lib/Sema/SemaTypeTraits.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp
M clang/utils/TableGen/ClangTraitsEmitter.cpp
M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
Log Message:
-----------
[clang][NFC] fold ExpressionTraits and TypeTraits helpers into BuiltinTraits (#210838)
ExpressionTraits.h defines utilities such as `getTraitName`,
`getTraitSpelling` and an enumeration for expression traits. All other
overloads of these utilities can be found in TypeTraits.h - this patch
combines them to BuiltinTraits.h/cpp.
This is a followup patch for
https://github.com/llvm/llvm-project/pull/201491#discussion_r3460883247
Commit: 840060f2f85c2d3f8ebe1c9304770d682e4141f6
https://github.com/llvm/llvm-project/commit/840060f2f85c2d3f8ebe1c9304770d682e4141f6
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/test/CodeGen/RISCV/rvv/vmerge-peephole.mir
Log Message:
-----------
[RISCV] Don't move memory instructions across calls in isSafeToMove (#212236)
RISCVInstrInfo::isSafeToMove scans the instructions between From and To
to decide whether a memory instruction can be moved, but it only treated
mayStore() instructions as barriers. Calls on RISC-V are modeled with
isCall() and a register mask rather than mayStore(), so a load could be
moved across a call even though the callee may clobber the loaded
memory.
RISCVVectorPeephole::foldVMergeToMask uses this helper via ensureDominates()
to sink a load into a masked load when folding it into a vmerge, which
produced wrong code when the load was sunk past a call.
Instead of hand-rolling the barrier check, call MachineInstr::isSafeToMove
on each intervening instruction to populate SawStore. That is the same
helper used on From below, and it already treats calls (as well as PHIs
and ordered memory references) as stores.
This fixes #212226.
Assisted-by: TRAE CLI (DeepSeek V4 Pro)
Commit: ff46298372dc64d8fb56f1397c2914772b815605
https://github.com/llvm/llvm-project/commit/ff46298372dc64d8fb56f1397c2914772b815605
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
M mlir/test/Conversion/GPUToSPIRV/reductions.mlir
Log Message:
-----------
[mlir][SPIR-V] Support bitwise and/or/xor in gpu reduction lowering (#202351)
Commit: bcdff65a953758e3a72cf99586c6ce809d4aaf9e
https://github.com/llvm/llvm-project/commit/bcdff65a953758e3a72cf99586c6ce809d4aaf9e
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libcxx/include/tuple
Log Message:
-----------
[libc++] Simplify some meta-programming in tuple (#212436)
This does two things:
- replace `_Not<T>::value` with `!T::value` when we already evaluate
lazily
- remove `_And`s that aren't useful because they only have a single
argument
Commit: 321642826552ff4e4c7d67ea236f8669d4598c9f
https://github.com/llvm/llvm-project/commit/321642826552ff4e4c7d67ea236f8669d4598c9f
Author: A. Jiang <de34 at live.cn>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libcxx/test/support/test_macros.h
Log Message:
-----------
[libc++][test] Disable test coverage for `_BitInt` for non-libc++ implementations (#212435)
Currently, library support for `_BitInt(N)` is an extension explicitly
supported by libc++. However, when using Clang with other standard
library implementations, `TEST_HAS_BITINT` is currently `1` as the
condition only detects compiler support of `_BitInt`.
This patch disables `_BitInt` coverage for other implementations for
now.
Commit: abd3b3a1445b5a8eeffae5c3912883faa9287fb7
https://github.com/llvm/llvm-project/commit/abd3b3a1445b5a8eeffae5c3912883faa9287fb7
Author: A. Jiang <de34 at live.cn>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libcxx/test/support/test_macros.h
Log Message:
-----------
[libc++][test][NFC] Format `test_macros.h` (#212442)
Avoiding errors about untouched lines from clang-format when modifying
conditions in `test_macros.h`.
Commit: 391d298c2ae471c28e7db8538d867a017f9d08df
https://github.com/llvm/llvm-project/commit/391d298c2ae471c28e7db8538d867a017f9d08df
Author: Zichen Lu <mikaovo2000 at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M mlir/lib/Target/LLVM/NVVM/Target.cpp
M mlir/test/Integration/GPU/CUDA/command-line-arg.mlir
Log Message:
-----------
[mlir][Target] Make nvptxcompiler passed options high priority to keep consistent with ptxas behavior (#121036)
When using `ptxas` to do ptx->cubin, the options passed (via `cmd`) have
higher priority than the gpuModule target (such as `opt-level`). When
using `nvptxcompiler`, it is the opposite and we need to be consistent.
Commit: f11d740e204f0551ac72ab1a2cacd72ae5c41b26
https://github.com/llvm/llvm-project/commit/f11d740e204f0551ac72ab1a2cacd72ae5c41b26
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libc/test/src/__support/CMakeLists.txt
M libc/test/src/__support/hash_test.cpp
Log Message:
-----------
[libc] Make hash_test hermetic (#212428)
Aligned allocation is now supported, but the test burns through our 1MB
never-freeing bump pointer allocation buffer. I tweak the test to reuse
the buffer between loop iterations, reducing its memory usage by about
300x :P.
Commit: 2a50c95322bc0ff3bbd976564914ce297b251a1a
https://github.com/llvm/llvm-project/commit/2a50c95322bc0ff3bbd976564914ce297b251a1a
Author: Jameson Nash <vtjnash at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/Analysis/ThreadSafety.cpp
M clang/test/Sema/warn-thread-safety-analysis.c
M clang/test/SemaCXX/warn-thread-safety-analysis.cpp
Log Message:
-----------
Thread Safety Analysis: Honor try-lock branches of a void conditional (#211973)
Try-locks are not acquired on the arms of a `?:`, because the arms would
then disagree about whether the capability is held and warn where they
join. That reasoning assumes the `?:` produces a result that is branched
on later, which is where the acquisition is handled instead.
A void `?:` has no such result. Its branch is all there is to interpret,
and its arms might not join at all because one of them does not return
(this is how glibc before 2.32 spells `assert()`).
So asserting that a try-lock succeeded left the capability unheld on
every path, and a function documented to acquire it warned that it did
not, if written like so:
void lock(void) ACQUIRE(mu) {
int got = trylock();
assert(got); // warning: expecting mutex 'mu' to be held at the end of
function
}
Only bail out for a `?:` that has a result to be used, so that a void
`?:` acquires on its branch like any other terminator (for example,
including `&&` and `||`).
Assisted-by: Claude Opus 5
Commit: ac8b30c74b595dd8dfa612912663e57dafcf3355
https://github.com/llvm/llvm-project/commit/ac8b30c74b595dd8dfa612912663e57dafcf3355
Author: A. Jiang <de34 at live.cn>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libcxx/test/std/language.support/support.types/byteops/lshift.assign.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/lshift.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/rshift.assign.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/rshift.pass.cpp
Log Message:
-----------
[libc++][test] Suppress warning on bitwise shift with `bool` operands in `std::byte` tests for MSVC (#212433)
It was intentional in https://llvm.org/PR204116 that tests for
`operator<<`, `operator<<=`, `operator>>`, `operator>>=` used `bool`
operands, because `bool` is an integral type and thus satisfies the
constraints of these operators.
However, MSVC considers `bool` is unsafe as an operand of bitwise shift
operators and emits warning C4804. So this patch suppresses the warning
for MSVC.
Commit: c273220275a7cbb8384812e1a4c84e773e1dd820
https://github.com/llvm/llvm-project/commit/c273220275a7cbb8384812e1a4c84e773e1dd820
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp
M mlir/test/Conversion/SCFToSPIRV/for.mlir
Log Message:
-----------
[mlir][SCFToSPIRV] Fix iter_args returning undef on zero trip scf.for (#206280)
Commit: 584734513c63b309b46a945cddbf0a516a9d133c
https://github.com/llvm/llvm-project/commit/584734513c63b309b46a945cddbf0a516a9d133c
Author: Lang Hames <lhames at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
M llvm/lib/ExecutionEngine/Orc/COFFPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/ReOptimizeLayer.cpp
M llvm/lib/ExecutionEngine/Orc/SelfExecutorProcessControl.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
M llvm/lib/ExecutionEngine/Orc/SimpleRemoteEPC.cpp
Log Message:
-----------
[ORC] Drop ExecutorProcessControl::JITDispatchInfo. (#212434)
The JIT-dispatch mechanism lets JIT'd code call handlers in an ORC
ExecutionSession, via the "__orc_rt_jit_dispatch" and
"__orc_rt_jit_dispatch_ctx" symbols. Until now ExecutorProcessControl
carried the addresses backing those symbols in a dedicated
JITDispatchInfo struct, which every EPC had to populate and each
Platform read back to define the symbols.
That detour couples ExecutorProcessControl to the shape of the dispatch
mechanism -- two symbols with fixed names -- and forces every EPC to
provide the addresses whether or not a given JIT setup uses dispatch.
Represent the two addresses as ordinary bootstrap symbols instead. EPCs
that support dispatch add __orc_rt_jit_dispatch(_ctx) to their bootstrap
symbols; Platforms reexport them from the bootstrap JITDylib rather than
reading JITDispatchInfo. EPCs that don't use dispatch provide nothing,
and ExecutorProcessControl no longer references the mechanism at all.
Commit: 8c8cc1cfb9f04fc57716b9ccc3ea74c9a5495bf7
https://github.com/llvm/llvm-project/commit/8c8cc1cfb9f04fc57716b9ccc3ea74c9a5495bf7
Author: Akash Agrawal <akashag at qti.qualcomm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Parse/ParseDecl.cpp
A clang/test/Parser/decltype-crash.cpp
Log Message:
-----------
[Clang][Parse] Fix assertion when annotating a failed decltype-specifier (#211221)
`ParseDeclaratorInternal's` member-pointer special case enters a
speculative scope-specifier parse whenever it sees `decltype`, without
checking that `( `follows:
```
if (getLangOpts().CPlusPlus &&
(Tok.is(tok::coloncolon) || Tok.is(tok::kw_decltype) || ...)) {
```
But `decltype-specifier` is always `decltype ( expression ) — decltype`
not followed by `(` can never be valid. When that happens,
`ParseOptionalCXXScopeSpecifier` still tries to parse it as one, fails,
and error recovery skips tokens. The EndLoc returned is then stale by
the time `AnnotateExistingDecltypeSpecifier` uses it to annotate, which
trips the invariant in `Preprocessor::AnnotatePreviousCachedTokens`:
```
int decltype; // crashed
int *decltype = 0; // crashed
```
Fix: only take this path when decltype is followed by (.
`(Tok.is(tok::kw_decltype) && NextToken().is(tok::l_paren)) ||`
`ParseDecltypeSpecifier` already requires `(` right after `decltype` or
bails with `TST_error`, so this check drops no valid parse —
`decltype(expr)` (including as a member-pointer scope, e.g.` int
decltype(obj)::*p = &S::m;) `is unaffected.
Fixes #211207
Co-authored - Claude-Sonnet
Commit: ad6cb6dedc9dc1d965d60e1a34289c2bb30e7cec
https://github.com/llvm/llvm-project/commit/ad6cb6dedc9dc1d965d60e1a34289c2bb30e7cec
Author: Nikita Taranov <nikita.taranov at clickhouse.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
M llvm/test/CodeGen/X86/lea-opt-cse1.ll
M llvm/test/CodeGen/X86/lea-opt-cse2.ll
M llvm/test/CodeGen/X86/lea-opt-cse4.ll
M llvm/test/CodeGen/X86/lea-recursion.ll
A llvm/test/CodeGen/X86/lea-reuse-rip-relative.ll
A llvm/test/CodeGen/X86/pr51707.ll
Log Message:
-----------
[X86] Reapply #210739 with a fix (#212020)
This reapplies #210739, which was reverted in #211958 because it could
crash the backend with "Invalid rip-relative address" when an LEA added
a RIP-relative global and an already-materialized value.
Fixes #51707
Commit: 9572596c3951a5fef5eecc011c617c1b264357b7
https://github.com/llvm/llvm-project/commit/9572596c3951a5fef5eecc011c617c1b264357b7
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
A llvm/test/CodeGen/AArch64/sve-fixed-length-bf16-vselect.ll
Log Message:
-----------
[LLVM][CodeGen] Clean up uses of useSVEForFixedLengthVectorVT(). (#211605)
During lowering `useSVEForFixedLengthVectorVT` only serves to separate
NEON sized vectors from those made legal for SVE VLS. When no separation
is required there is no reason to call the function. That means
`useSVEForFixedLengthVectorVT(VT, /*OverrideNEON=*/true)` is largely
synonymous to `isSVEorStreamingSVEAvailable()`.
`useSVEForFixedLengthVectorVT` is not a per operation property. For this
reason I have removed the AllowBF16 parameter and replaced it by a
command line option that can be used during SVE VLS bfloat bringup. The
one existing use has been removed because it falls under the previous
issue in there being no need to call `useSVEForFixedLengthVectorVT`.
Commit: c154f4aa5483915702d8447d541d5d9a4dfaac46
https://github.com/llvm/llvm-project/commit/c154f4aa5483915702d8447d541d5d9a4dfaac46
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/Basic/Targets/AMDGPU.h
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
Log Message:
-----------
AMDGPU: Remove dead FEATURE_FP64/FEATURE_LDEXP from ArchFeatureKind (#212479)
No GPU ever sets these bits, and clang's hasFP64()/hasLDEXPF()
short-circuit on isAMDGCN() before testing them, so the bits are
never observed.
Co-authored-by: Claude (Claude-Opus-4.8)
Commit: e432cb12962f1619bc73c50a2dc4d2ad5ac6b44c
https://github.com/llvm/llvm-project/commit/e432cb12962f1619bc73c50a2dc4d2ad5ac6b44c
Author: Natanael Cintean <natanael.cintean at intel.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M mlir/test/IR/invalid-properties.mlir
M mlir/test/IR/properties.mlir
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/test/mlir-tblgen/op-format.td
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
Log Message:
-----------
[mlir]Add resultSegmentSizes/operandSegmentSizes to prop-dict. (#211222)
`setPropertiesFromParsedAttr` (generated by `OpFormatGen.cpp` for ops
using a custom `assemblyFormat`) rejects the trait-injected
`operandSegmentSizes` /. `resultSegmentSizes` properties when they
appear in a `prop-dict`, even though the printer emits them there for ops
whose format uses a bulk operand/result type directive
(`type(operands)`, `type(results)`, `functional-type(operands, results)`).
This breaks round-tripping: any op combining `AttrSizedOperandSegments`
/ `AttrSizedResultSegments` with such a bulk directive fails to re-parse
its own printed output, because printer-side elision of these keys
(introduced in #115930) is intentionally skipped in that case — the
sizes can't be reconstructed from individually-typed operand/result
groups, so they must survive in the text, but the custom parser was never
taught to read them back.
`setPropertiesFromAttr` (used by the generic-form parser, bytecode, and
C++ construction) already special-cases these two keys, so this change
makes `setPropertiesFromParsedAttr` mirror that behavior: keys are
accepted from the dictionary attr when the corresponding trait is present,
and required exactly when the format can't reconstruct the sizes itself
(i.e. when `fmt.allOperands` / `fmt.allResultTypes` is true). Otherwise the
key remains optional, since `genParserVariadicSegmentResolution`
overwrites it with the sizes inferred from the parsed operand/result
groups.
The contents of the PR as well as description has been made using
github-copilot. However I've reviewed the contents and tested locally
the change.
Fixes #211220
Commit: 89d39f69cb18f21d92b261cc0ca2a2314453b1fe
https://github.com/llvm/llvm-project/commit/89d39f69cb18f21d92b261cc0ca2a2314453b1fe
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/SimplifyCFG/branch-nested.ll
Log Message:
-----------
[SimplifyCFG] Bail out on trivial cases in `mergeNestedCondBranch` (#212309)
Closes https://github.com/llvm/llvm-project/issues/212300.
When BB3 is identical to BB4, it is no longer profitable to perform this
fold, since it creates an unused xor instruction. The DomTree update
issue is also easy to fix. But I think this solution is better.
The following IR was dumped just before this function:
```
define void @func(i1 %cond1, i1 %cond2, i1 %cond3) {
entry:
br i1 %cond1, label %bb2, label %else
else: ; preds = %entry
br i1 %cond2, label %bb0, label %common.ret
bb0: ; preds = %else
br i1 %cond1, label %bb1, label %bb2
bb2: ; preds = %bb0, %entry
br i1 %cond3, label %common.ret, label %common.ret
bb1: ; preds = %bb0
br i1 %cond3, label %common.ret, label %common.ret
common.ret: ; preds = %bb2, %bb1, %bb2, %bb1, %else
ret void
}
```
The previous functions will simplify it. So the reproducer cannot be
further reduced.
Commit: 857746b37949a87faa42faff4fae12c35b34db51
https://github.com/llvm/llvm-project/commit/857746b37949a87faa42faff4fae12c35b34db51
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/test/CIR/CodeGenHIP/builtins-amdgcn-extended-image.hip
M clang/test/CodeGen/amdgpu-builtin-is-invocable.c
M clang/test/CodeGen/amdgpu-builtin-processor-is.c
M clang/test/CodeGen/builtins-extended-image.c
M clang/test/CodeGen/link-builtin-bitcode.c
M clang/test/CodeGenCXX/dynamic-cast-address-space.cpp
M clang/test/SemaOpenCL/builtins-extended-image-param-gfx1100-err.cl
M clang/test/SemaOpenCL/builtins-extended-image-param-gfx942-err.cl
A clang/test/SemaOpenCL/builtins-extended-image-supported.cl
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
Log Message:
-----------
AMDGPU: Fix missing extended-image-insts missing from feature map (#212418)
Unsurprisingly, this manually maintained table is buggy.
fillAMDGCNFeatureMap never set extended-image-insts, so clang's builtin
feature check rejected every case. The tests were working around this
with manually specified -target-features flags.
Co-authored-by: Claude (Claude-Opus-4.8)
Commit: 34be3a62bf9a309fb00a4a2ec2150fa87750ad96
https://github.com/llvm/llvm-project/commit/34be3a62bf9a309fb00a4a2ec2150fa87750ad96
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M offload/unittests/OffloadAPI/queue/olLaunchHostFunction.cpp
Log Message:
-----------
[OFFLOAD][L0][NFC] Mark as skip unittest with driver issue (#212466)
Commit: 8d632c0a8eef06b7be509d10a6d87c9bd814a10e
https://github.com/llvm/llvm-project/commit/8d632c0a8eef06b7be509d10a6d87c9bd814a10e
Author: Akshay K <iit.akshay at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/X86/X86FloatingPoint.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86InsertX87Wait.cpp
M llvm/test/CodeGen/X86/zero-call-used-regs.ll
Log Message:
-----------
[X86] Don't clobber x87 return values when zeroing call-used registers (#211129)
### Summary
`-fzero-call-used-regs=all` / `zero_call_used_regs("all")`
unconditionally push eight `fldz` onto the x87 stack before returning.
When a value is live in `ST0` (`long double`) or `ST0:ST1` (`_Complex
long double`), the pushes overflow the 8-slot x87 stack and the return
value becomes an indefinite NaN. Reproduces on x86-64 at every
optimization level, via both the flag and the attribute.
```c++
__attribute__((zero_call_used_regs("all")))
long double g(long double a) { return a + 1; }
// g(1.0L) returns nan, expected 2.0
```
### Root cause
The x87 return value lives in `ST0` (and `ST1` for `_Complex long
double`), but the FP stackifier's `handleReturn` deletes the `RET`'s FP
register operands after stackification (the `FP0`-`FP6` pseudos no
longer exist) without recording that the top of the x87 stack is live.
The scrub in `emitZeroCallUsedRegs` therefore has nothing telling it
`ST0` is occupied, so it pushes a zero over the return value.
### Fix
`handleReturn` now re-records the returned values as implicit
`ST0`/`ST1` uses on the return instruction — the same way every other
return register (`RAX`, `XMM0`, ...) is modeled — and
`emitZeroCallUsedRegs` pushes only `8 - live` zeros, filling the dead
slots and leaving the return value intact. This matches GCC.
Note: the implicit `ST0`/`ST1` operands are recorded on every
x87-returning `RET`, not only under `zero-call-used-regs`. One
consequence is that a `RET` now satisfies `isX87Instruction`, so
`X86InsertX87Wait` is adjusted so a return no longer suppresses the
strict-FP `wait` (a return performs no exception sync).
### Secondary fix (i386)
The old count was hardcoded `ST.is64Bit() ? 8 : 7`. On i386, a function
with no x87 value live at the return (e.g. an integer return) cleared
only seven of the eight physical x87 registers, so `"all"` silently left
one call-used register uncleared. The unified `8 - live` formula fixes
this too: i386 with no x87 return now pushes 8 (previously 7).
### Tests
`zero-call-used-regs.ll` adds `all_x87_return` (`x86_fp80`, 1 live -> 7
pushes), `all_x87_complex_return` (`_Complex long double`, 2 live -> 6
pushes), and `all_no_x87_live` (no x87 live -> 8 pushes, guarding the
i386 secondary fix). The full X86 CodeGen suite passes.
Fixes #211064
Assisted-by: Cursor
Commit: 2c01f3cb3caf2dfcdcd65ced4ec124a672465cb5
https://github.com/llvm/llvm-project/commit/2c01f3cb3caf2dfcdcd65ced4ec124a672465cb5
Author: Sohaib Iftikhar <sohaibiftikhar at google.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Transforms/BUILD.bazel
Log Message:
-----------
[BUILD]Fixes 9a543446 (#212499)
[BUILD]Fixes 9a543446
Commit: 3d325269ece14bfb98af65443c8d345d6434bdee
https://github.com/llvm/llvm-project/commit/3d325269ece14bfb98af65443c8d345d6434bdee
Author: Nick Sarnie <nick.sarnie at intel.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M offload/test/CMakeLists.txt
Log Message:
-----------
[offload][lit] Run check-offload as part of check-all (#212500)
It's unclear why these were excluded from `check-all`, but we made all
tests pass on Level Zero and our local testing shows they pass on AMD
and NVIDIA too, so enable it by default.
Context: https://github.com/llvm/llvm-project/pull/211633
Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
Commit: 7d4160e52ba0e06d1450fa8e9c31518c0e58895c
https://github.com/llvm/llvm-project/commit/7d4160e52ba0e06d1450fa8e9c31518c0e58895c
Author: Frederik Harwath <frederik.harwath at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/test/CodeGen/AMDGPU/extra-lds-size.ll
M llvm/test/CodeGen/AMDGPU/lds-size-hsa-gfx950.ll
M llvm/test/CodeGen/AMDGPU/pal-metadata-3.0.gfx950.ll
Log Message:
-----------
[AMDGPU] Stop rounding up LDS block size for gfx950 (#208046)
The AMDGPUAsmPrinter::getSIProgramInfo function calculates the number of
LDS blocks in a somewhat indirect way: It obtains the LDS granularity
from another function, determines an "LDSAlignShift" based on this and
then uses shifts to determine the alignment and for division. The use of
shifts forces the alignment to be a power of two which works for all LDS
granularity values except for the value of 1280 bytes used for gfx950.
For this, the function uses LDSAlignShift = 11 which means that the
block size gets rounded up to 2048. This implies that the computed
number of LDS blocks is too small.
Remove the use of LDSAlignShift from getSIProgramInfo and use the LDS
granularity directly for alignment and division.
Commit: 298355525c28343fecdee28b0cf75c8d94e96952
https://github.com/llvm/llvm-project/commit/298355525c28343fecdee28b0cf75c8d94e96952
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/Driver/hip-link-offload-binary.c
Log Message:
-----------
[HIP] Support device-only linking of bitcode offload binaries (#212342)
The new offload driver packages multi-architecture bitcode in LLVM
offload binaries. A later `--hip-link --offload-device-only`
invocation treated these `.bc` inputs as host LLVM IR and dropped
them before linking.
Pass these inputs directly to clang-linker-wrapper when producing a
device fat binary. The wrapper can then extract and link each
requested GPU architecture.
Commit: b976ce0867d1f828863c61899c5d779f2bd4bfff
https://github.com/llvm/llvm-project/commit/b976ce0867d1f828863c61899c5d779f2bd4bfff
Author: Nick Sarnie <nick.sarnie at intel.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M offload/test/CMakeLists.txt
Log Message:
-----------
Revert "[offload][lit] Run check-offload as part of check-all" (#212506)
Reverts llvm/llvm-project#212500
Commit: 56fd82467c5b5a98411c02df1957528aaf57b487
https://github.com/llvm/llvm-project/commit/56fd82467c5b5a98411c02df1957528aaf57b487
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/test/Verifier/AMDGPU/alloca.ll
M llvm/test/Verifier/AMDGPU/reqd-work-group-size.ll
Log Message:
-----------
AMDGPU: Migrate verifier tests to subarch triples (#212494)
Commit: 55076d312e30e28c9440fc25b9e60bb7764c1540
https://github.com/llvm/llvm-project/commit/55076d312e30e28c9440fc25b9e60bb7764c1540
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/adaptive_constant_global_redzones.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/adaptive_global_redzones.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_do_not_instrument_lds.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_do_not_instrument_scratch.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_instrument_constant_address_space.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_instrument_generic_address_space.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_instrument_global_address_space.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/global_metadata_addrspacecasts.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/no_redzones_in_lds_globals.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/no_redzones_in_scratch_globals.ll
Log Message:
-----------
AMDGPU: Migrate asan tests to subarch triples (#212496)
Commit: 455ef3684fae3273b3423bb0229e33584745c6cc
https://github.com/llvm/llvm-project/commit/455ef3684fae3273b3423bb0229e33584745c6cc
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libcxx/include/fstream
M libcxx/src/ios.instantiations.cpp
A libcxx/test/extensions/libcxx/input.output/file.streams/fstreams/filebuf.members/test.dat
A libcxx/test/extensions/libcxx/input.output/file.streams/fstreams/filebuf.members/xsgetn.buffer.pass.cpp
M libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/xsgetn.pass.cpp
Log Message:
-----------
[libc++] Fix ungetc failing after xsgetn (#210951)
After #206453 we don't correctly handle `unget()` anymore. This fixes
the issue by updating the internal buffer to contain the tail of the
read data.
Fixes #210203
Commit: 371b78a9638d4fcea397af5a318b1f3d562b20fa
https://github.com/llvm/llvm-project/commit/371b78a9638d4fcea397af5a318b1f3d562b20fa
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/test/MC/AMDGPU/amdgcn-target-directive-triple-env.s
M llvm/test/MC/AMDGPU/hsa-exp.s
M llvm/test/MC/AMDGPU/hsa-gfx12-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx1250-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx1251-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx13-v4.s
M llvm/test/MC/AMDGPU/hsa-tg-split.s
M llvm/test/MC/AMDGPU/hsa-v4.s
M llvm/test/MC/AMDGPU/hsa-v5-uses-dynamic-stack.s
M llvm/test/MC/AMDGPU/user-sgpr-count.s
Log Message:
-----------
AMDGPU: Migrate assembler tests with content changes to subarch triples (#212495)
Convert tests which failed after converting the arguments due to content
changes from checking the emitted target id string.
Commit: 5a650306e4e1069d194d8fcfeee821d7e424f9b3
https://github.com/llvm/llvm-project/commit/5a650306e4e1069d194d8fcfeee821d7e424f9b3
Author: Srividya Sundaram <srividya.sundaram at intel.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/lib/Driver/ToolChains/SYCL.cpp
M clang/lib/Driver/ToolChains/SYCL.h
A clang/test/Driver/Inputs/spirv64-sycl/lib/spirv64-unknown-unknown/libclang_rt.builtins.bc
A clang/test/Driver/sycl-device-lib-spirv64.cpp
M clang/test/Driver/sycl-offload-jit-unix.cpp
M clang/test/Driver/sycl-offload-jit-xarch.cpp
M clang/test/Driver/sycl-offload-jit.cpp
M clang/test/Driver/sycl-print-internal-defines.cpp
M clang/test/Driver/sycl-rtlib-sysroot-mismatch.cpp
M clang/test/Driver/sycl-std-default.cpp
M clang/test/Driver/sycl-windows.cpp
M clang/test/Driver/sycl.cpp
M compiler-rt/lib/builtins/CMakeLists.txt
Log Message:
-----------
[Driver][SYCL] Add compile-time device library linking for SPIR-V targets (#196656)
This PR implements compile-time device library linking for SYCL
offloading to SPIR-V targets, using `libclang_rt.builtins.bc` - an
in-tree compiler-rt artifact produced alongside the existing
`libclang_rt.builtins.a` for `SPIRV64`.
## Motivation
SYCL device compilations targeting SPIR-V need access to compiler
builtins (integer arithmetic, floating-point helpers, etc.) at compile
time so the compiler can optimize across user code and builtins, inline
aggressively, and eliminate dead code. This PR lays the foundation by
wiring up the first in-tree device library : `libclang_rt.builtins.bc` -
using the same `-mlink-builtin-bitcode` mechanism already used by
`libclc` and `HIP`.
## Changes
**compiler-rt (compiler-rt/lib/builtins/CMakeLists.txt)**
For the `spirv64` target, after building
`libclang_rt.builtins-spirv64.a`, runs `llvm-link` to merge all bitcode
objects into a single `libclang_rt.builtins.bc`. This file is installed
to `<ResourceDir>/lib/spirv64-unknown-unknown/` alongside the static
archive. The `-mlink-builtin-bitcode` flag requires raw LLVM IR and
cannot unpack a static archive directly, hence the extra step.
**Clang Driver (clang/lib/Driver/ToolChains/SYCL.cpp)**
`SYCLToolChain::getDeviceLibs()` now constructs the path to
`libclang_rt.builtins.bc` under the clang resource directory and returns
it for `-mlink-builtin-bitcode` injection during `spirv64` device
compilation. If the file is absent (e.g. compiler-rt was not built with
spirv64 support), a specific diagnostic is emitted. Linking is
suppressed when `--no-offloadlib` is passed.
**Diagnostics (clang/include/clang/Basic/DiagnosticDriverKinds.td)**
Added `err_drv_no_compiler_rt_builtins_bc`, following the
`err_drv_libclc_not_found` community pattern, with actionable guidance
on how to build compiler-rt with SPIR-V support.
### Test Infrastructure
1. `clang/test/Driver/sycl-device-lib-spirv64.cpp` - new test verifying
-mlink-builtin-bitcode is passed for spirv64, suppressed with
--no-offloadlib, and that a missing .bc produces the correct diagnostic.
2. `clang/test/Driver/Inputs/spirv64-sycl/` - dummy resource-dir fixture
used by driver tests.
3. All existing SYCL driver tests updated to pass -`resource-dir
%S/Inputs/spirv64-sycl `on -fsycl RUN lines, making them independent of
the installed clang resource directory on CI runners.
## Behavior
### Default
```bash
clang -fsycl myprogram.cpp
# Device compilation includes:
# "-mlink-builtin-bitcode" "<ResourceDir>/lib/spirv64-unknown-unknown/libclang_rt.builtins.bc"
```
Automatically links device libraries from `<clang-install>/lib/` during
device compilation.
### Without device libraries
```bash
clang -fsycl --no-offloadlib myprogram.cpp
# -mlink-builtin-bitcode is suppressed
```
Missing .bc (compiler-rt not built with spirv64 support)
```bash
error: no compiler-rt builtins bitcode library '...' found in the clang resource directory;
build compiler-rt with SPIR-V support or pass '--no-offloadlib' to compile without it ```
Commit: e362f3c8466dfb4021d409f50eae179b9b0b1957
https://github.com/llvm/llvm-project/commit/e362f3c8466dfb4021d409f50eae179b9b0b1957
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/stdlib.yaml
M libc/src/stdlib/CMakeLists.txt
M libc/src/stdlib/environ_internal.cpp
M libc/src/stdlib/environ_internal.h
M libc/src/stdlib/linux/CMakeLists.txt
A libc/src/stdlib/linux/putenv.cpp
A libc/src/stdlib/putenv.h
M libc/test/integration/src/stdlib/CMakeLists.txt
A libc/test/integration/src/stdlib/putenv_test.cpp
Log Message:
-----------
[libc][stdlib] Add putenv (#208339)
Added the POSIX putenv() function and its internal support.
Implemented EnvironmentManager::put() to insert caller-provided
"name=value" strings directly into the environment array, managing
ownership correctly (caller retains ownership).
Registered for x86_64, aarch64, and riscv. Integration tests cover basic
operations, ownership semantics, validation, and edge cases.
Assisted-by: Automated tooling, human reviewed.
Commit: 7cf62f99cd707d09f4dab5f999cb1ce5d57d25a5
https://github.com/llvm/llvm-project/commit/7cf62f99cd707d09f4dab5f999cb1ce5d57d25a5
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libc/config/linux/aarch64/headers.txt
M libc/config/linux/riscv/headers.txt
M libc/config/linux/x86_64/headers.txt
M libc/include/CMakeLists.txt
A libc/include/memory.yaml
A libc/include/sys/fcntl.yaml
A libc/include/sys/poll.yaml
A libc/include/sys/signal.yaml
A libc/include/sys/unistd.yaml
Log Message:
-----------
[libc] Add POSIX redirection header specifications in YAML (#211859)
Add header YAML specifications for memory.h, sys/poll.h, sys/unistd.h,
sys/fcntl.h, and sys/signal.h using public_includes.
POSIX.1-2017 and historical X/Open System Interfaces (XSI) standards
define these headers as alternate or legacy header locations that
forward to string.h, poll.h, unistd.h, fcntl.h, and signal.h
respectively. The YAML header specs allow hdrgen to generate the public
headers automatically with proper license headers and guards.
Updated Linux target headers.txt configuration files to register the new
public header targets for installation.
Assisted-by: Automated tooling, human reviewed.
Commit: 557dcec6258aac87f9c2bb6d651ec7e774f7d09d
https://github.com/llvm/llvm-project/commit/557dcec6258aac87f9c2bb6d651ec7e774f7d09d
Author: Luke Lau <luke at igalia.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/VE/VEInstrPatternsVec.td
M llvm/test/CodeGen/VE/Packed/vp_mul.ll
Log Message:
-----------
[VE] Fix crash when splitting all-ones v512i1 mask (#212489)
The added test case crashes because we try to extract a subreg from vmp0
when selecting vec_unpack_*, but vmp0 has no subregisters, see
d46e49838e17800cb72d95db1b23c04bbca610e2
vmp0 is hardwired to all ones, so it gets selected for an all ones mask.
Fix it by adding an explicit pattern for an all ones mask that selects
vm0, the v256i1 version of vmp0, instead of creating an invalid subreg
extract.
Commit: b6b9603c7675fff5ec9befacf54391a516fc723c
https://github.com/llvm/llvm-project/commit/b6b9603c7675fff5ec9befacf54391a516fc723c
Author: Paschalis Mpeis <paschalis.mpeis at arm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/test/AArch64/long-jmp-one-stub.s
Log Message:
-----------
[RFC][BOLT] Enable lite mode by default on AArch64 (#205545)
Commit: 760fc017332d4d5a5cdf1b6cf754f40774a97821
https://github.com/llvm/llvm-project/commit/760fc017332d4d5a5cdf1b6cf754f40774a97821
Author: Nick Sarnie <nick.sarnie at intel.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M offload/test/CMakeLists.txt
Log Message:
-----------
[offload][lit] Run check-offload-unit as part of check-all (#212513)
I tried to do `check-offload` instead but that
[caused](https://github.com/llvm/llvm-project/pull/212500) a bloodbath,
so just enable `check-offload-unit` as part of `check-all`.
Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
Commit: 034f0f1ad4badc02d9d26b6f1ae3324a09276c4a
https://github.com/llvm/llvm-project/commit/034f0f1ad4badc02d9d26b6f1ae3324a09276c4a
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M flang/include/flang/Optimizer/Passes/CommandLineOpts.h
M flang/include/flang/Optimizer/Passes/Pipelines.h
M flang/lib/Optimizer/Passes/CommandLineOpts.cpp
M flang/lib/Optimizer/Passes/Pipelines.cpp
M flang/test/Driver/bbc-mlir-pass-pipeline.f90
M flang/test/Driver/mlir-debug-pass-pipeline.f90
M flang/test/Driver/mlir-pass-pipeline.f90
R flang/test/Fir/arrexp.fir
M flang/test/Fir/basic-program.fir
Log Message:
-----------
[flang] Stop running array-value-copy in the default pipeline (#211816)
Since the removal of the legacy expression lowering (#210385, #210621,
#210639, #210873), nothing in flang produces the array-value operations
(fir.array_load and friends) that the array-value-copy pass legalizes,
so the pass runs as a guaranteed no-op on every function. Remove it from
the default pipeline (addAVC and the disable-avc mlir option); the pass
itself and its fir-opt tests remain and still run via fir-opt
--array-value-copy.
The array-value operations themselves and the pass are planned for
removal in follow-up patches.
flang/test/Fir/arrexp.fir is deleted rather than updated: it feeds
legacy array-value ops through tco's full pipeline, which no longer
legalizes them (the ops have no codegen patterns), and the file
exercises no live feature beyond that legalization.
Assisted-by: AI
Commit: 807de2dc44794205b336ed8b2ca4731bc3ab865b
https://github.com/llvm/llvm-project/commit/807de2dc44794205b336ed8b2ca4731bc3ab865b
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/idot4-test.ll
M llvm/test/CodeGen/AMDGPU/no-corresponding-integer-type.ll
Log Message:
-----------
[AMDGPU] Stop iDot4 chain walker at non-ADD nodes (#198412)
The loop body in performAddCombine dot4 matcher unconditionally treats
TempNode operands as the next link's addends, so the chain only works
when TempNode is an `ISD::ADD`
The old getNumOperands() guard let AND/OR/XOR/etc. through, leaking
their non-addend operands (e.g. a constant mask) into the dot4
accumulator and miscompiling kernels
Commit: 1c31d28d1a1e746db9070c90ff40f8a6f53ff0db
https://github.com/llvm/llvm-project/commit/1c31d28d1a1e746db9070c90ff40f8a6f53ff0db
Author: Sirui Mu <msrlancern at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/CIR/Dialect/IR/CIRMemorySlot.cpp
M clang/test/CIR/Transforms/mem2reg.cir
Log Message:
-----------
[CIR] Disallow mem2reg for volatile/atomic loads and stores (#212262)
Current mem2reg implementation for `cir.load` and `cir.store` does not
check whether the load/store is volatile or atomic. Fix this.
Commit: df89bcad92cd1a8539d85b200e89182f26743b6f
https://github.com/llvm/llvm-project/commit/df89bcad92cd1a8539d85b200e89182f26743b6f
Author: Kevin Bravo <kbravjr at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/TableGen/TGLexer.cpp
A llvm/test/TableGen/ifdef-cr-instead-of-newline.td
Log Message:
-----------
[TableGen] Treat carriage return as line end in prepSkipRegion (#212411)
`prepSkipRegion` currently only treats newline and EOF as end of line.
However, in the TableGen Programmer's Reference:
LineEnd ::= newline | return | EOF
So carriage return is a valid end-of-line, but `prepSkipRegion` ignores
it and skips code after the carriage return that it shouldn't. This
change fixes the end-of-line check in `prepSkipRegion` so that it also
treats carriage return as end of line.
Related issue: #151476.
Commit: 62f429ec6e85224a0f7fa6d4e51595b27e5ac9c1
https://github.com/llvm/llvm-project/commit/62f429ec6e85224a0f7fa6d4e51595b27e5ac9c1
Author: Emery Conrad <conrade.ctc at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/CodeGen/CodeGenModule.cpp
A clang/test/Interpreter/used-global-after-error.cpp
Log Message:
-----------
[clang][CodeGen] Skip deleted globals in emitUsed (#210959)
A global on the `llvm.used`/`llvm.compiler.used` list can be deleted
before the module is released: CodeGen erases an unreferenced
`GlobalValue` without RAUW when the same mangled name is redefined with
a different type (`GetOrCreateLLVMGlobal`), which nulls the
`WeakTrackingVH` on the used list — value handles are not uses, so the
`use_empty()` guard does not protect them.
In whole-TU compilation this is unobservable because the accompanying
`err_duplicate_mangled_name` suppresses `Release()`. The incremental
interpreter, however, clears the diagnostic state after the failed parse
and keeps building the same module, so the next successful parse runs
`Release()` and crashes in `emitUsed` dereferencing the dead handle:
```
clang-repl> __attribute__((used)) int a asm("sym") = 1; float b asm("sym") = 2.0f;
clang-repl> int ok = 0;
clang-repl: .../ValueHandle.h:95: llvm::Value& llvm::ValueHandleBase::operator*() const: Assertion `V && "Dereferencing deleted ValueHandle"' failed.
```
Out-of-tree incremental clients hit the same crash through other routes
that delete an emitted used global before module release (e.g.
CppInterOp's force-emission of reflection queries, see
compiler-research/CppInterOp#1068).
Fix: skip null handles when building the used array. The repro above is
included as a lit test; `clang/test/Interpreter`, `clang/test/CodeGen`,
and `clang/test/CodeGenCXX` pass locally.
🤖 Done with the help of [Claude Code](https://claude.com/claude-code)
(Fable 5, human in the loop)
Co-authored-by: Emery Conrad <emery.conrad at chicagotrading.com>
Commit: 0fc8ce3bb59ba1ebbb0aecf564158a0c145eeb50
https://github.com/llvm/llvm-project/commit/0fc8ce3bb59ba1ebbb0aecf564158a0c145eeb50
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libcxx/include/optional
Log Message:
-----------
[libc++][optional][NFC] Use variable templates instead of class templates (#212443)
Modernizing similar to: https://github.com/llvm/llvm-project/pull/199481
Commit: a69addf4fb640c34fa8249543003c375247c4933
https://github.com/llvm/llvm-project/commit/a69addf4fb640c34fa8249543003c375247c4933
Author: Lucas Mellone <github.snugness349 at passinbox.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libcxx/include/__math/traits.h
M libcxx/include/cmath
M libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-clang.pass.cpp
M libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-gcc.pass.cpp
A libcxx/test/std/numerics/c.math/isgreater.pass.cpp
A libcxx/test/std/numerics/c.math/isgreaterequal.pass.cpp
A libcxx/test/std/numerics/c.math/isless.pass.cpp
A libcxx/test/std/numerics/c.math/islessequal.pass.cpp
A libcxx/test/std/numerics/c.math/islessgreater.pass.cpp
A libcxx/test/std/numerics/c.math/isunordered.pass.cpp
Log Message:
-----------
[libc++][math] Add `constexpr` to comparison functions (#210075)
Implement `constexpr` to all comparison functions (`std::isgreater`,
`std::isgreaterequal`, `std::isless`, `std::islessequal`,
`std::islessgreater`, `std::isunordered`) as defined by
[P0533R9](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0533r9.pdf).
Towards https://github.com/llvm/llvm-project/issues/105174. Follows-up
https://github.com/llvm/llvm-project/pull/94118.
Commit: 1cfc77fdd6368dd6527c620645ec6f351e1c658f
https://github.com/llvm/llvm-project/commit/1cfc77fdd6368dd6527c620645ec6f351e1c658f
Author: Petr Kurapov <petr.kurapov at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/include/llvm/CodeGen/MIR2Vec.h
M llvm/lib/CodeGen/MIR2Vec.cpp
A llvm/test/CodeGen/MIR2Vec/Inputs/mir2vec_classless_vocab.json
A llvm/test/CodeGen/MIR2Vec/classless-physreg.mir
A llvm/test/CodeGen/MIR2Vec/classless-vreg.mir
Log Message:
-----------
[MIR2Vec] Handle registers without a register class (#212280)
getRegisterOperandIndex() hit an llvm_unreachable for registers in no
register class. That is a supported outcome, not an error: tablegen
emits InvalidRegClassID for such registers and getMinimalPhysRegClass()
returns nullptr. It hits classless physregs (X86 $mxcsr/$fpcw, AMDGPU
$mode), which crashed any function with FP math, and generic vregs
before ISel, where MRI.getRegClass() asserts -- so use
getRegClassOrNull().
Return std::nullopt instead. Both callers already handle the analogous
NoRegister and stack-slot cases, so the vocabulary layout is unchanged.
We could avoid the special casing by adding a special value for such
registers. It would actually hold some meaningful information for
models. I didn't include it in this patch since it would require seed
vocab re-generation.
Commit: 511502bfd869ebb74448bd3f67c6c0162507ef85
https://github.com/llvm/llvm-project/commit/511502bfd869ebb74448bd3f67c6c0162507ef85
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Log Message:
-----------
[VPlan] Strip dead code in optimizeEarlyExitIndUser (NFC) (#212463)
The check is already present in getOptimizableIVOf, and is an
impossiblity in the IVInc case.
Commit: 9876e0469e315b767c4ba114e7f51207d198e762
https://github.com/llvm/llvm-project/commit/9876e0469e315b767c4ba114e7f51207d198e762
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
M mlir/test/Conversion/SPIRVToLLVM/arithmetic-ops-to-llvm.mlir
Log Message:
-----------
[mlir][SPIR-V] Add SPIRVToLLVM conversion for VectorTimesScalar (#206949)
Commit: 88d26e71960579c5a7b40856664b1f57791597ce
https://github.com/llvm/llvm-project/commit/88d26e71960579c5a7b40856664b1f57791597ce
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
A llvm/test/Transforms/ConstraintElimination/ne-tightening.ll
A llvm/test/Transforms/ConstraintElimination/srem.ll
Log Message:
-----------
[ConstraintElim] Add tests with SRem and NE predicates. (NFC (#212511)
Precommit tests for improved reasoning about SRem and NE predicates.
Commit: 326d563cf70d7f43d8c15eb78f65dd22c1fbdf87
https://github.com/llvm/llvm-project/commit/326d563cf70d7f43d8c15eb78f65dd22c1fbdf87
Author: dmaclach <dmaclach at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/include/clang/AST/ExprObjC.h
M clang/include/clang/Sema/SemaObjC.h
M clang/lib/Parse/ParseObjc.cpp
M clang/lib/Sema/SemaExprObjC.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/unittests/AST/SourceLocationTest.cpp
Log Message:
-----------
Tracks source location of the selector name within ObjCSelectorExpr (#211623)
Store selector name location alongside the existing @-sign and paren locations, exposed via getSelectorLoc(), so tools and diagnostics can reference the name rather than the @selector keyword. While here, rename things to disambiguate locations.
Commit: 98fb5dae73c3887e6659ee126b131b004d12592d
https://github.com/llvm/llvm-project/commit/98fb5dae73c3887e6659ee126b131b004d12592d
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libc/src/stdio/scanf_core/CMakeLists.txt
M libc/src/stdio/scanf_core/vfscanf_internal.h
M libc/test/src/stdio/CMakeLists.txt
M libc/test/src/stdio/fscanf_test.cpp
Log Message:
-----------
[libc] Fix EOF handling in fscanf (#211982)
`fscanf` family of functions should return EOF if:
- end of input is reached before either the first successful conversion
or a matching failure occurs;
- a read error occurs.
This wasn't handled correctly before - in "system FILE" mode (in overlay
build) `EOF` return value from `getc` was passed through to parser,
violating `Reader` interface, which triggered infinite loops on
"while-not-EOF" `fscanf` loops. In llvm-libc-FILE mode `fscanf` simply
returned zero instead of EOF, because the code only checked error
indicator on a stream.
This PR removes _any_ lookups of eof/error indicators on an input stream
- instead we can simply rely on the `getc` (system or internal) function
behavior, which returns `EOF` on unsuccessful reads.
Extend the test cases for `fscanf` to cover various return values in
cases when `EOF` is reached (before or after conversions / matching
errors).
Commit: 687818b3fbab242132b91ed2a1815507a7b2a371
https://github.com/llvm/llvm-project/commit/687818b3fbab242132b91ed2a1815507a7b2a371
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
R llvm/docs/BugpointRedesign.md
M llvm/docs/GettingInvolved.md
Log Message:
-----------
[Docs] Delete BugpointRedesign (#212518)
Bugpoint was removed recently, so this does not make sense to keep
around.
Commit: 8efaaf1811f13ea3255ec352a812af949e216d99
https://github.com/llvm/llvm-project/commit/8efaaf1811f13ea3255ec352a812af949e216d99
Author: Mishal Shah <mishal_shah at apple.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M .github/workflows/premerge.yaml
Log Message:
-----------
[premerge] Build and check runtimes on macOS premerge (#210852)
Compute and pass through LLVM_ENABLE_RUNTIMES and the corresponding
check targets for the macOS premerge job, mirroring existing support for
projects.
Commit: 9ec13f1b2b8701167d428124048cb2cec2366bfa
https://github.com/llvm/llvm-project/commit/9ec13f1b2b8701167d428124048cb2cec2366bfa
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/test/src/stdio/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 98fb5da (#212522)
This fixes 98fb5dae73c3887e6659ee126b131b004d12592d (#211982).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=98fb5dae73c3887e6659ee126b131b004d12592d
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 8ea8a288d3a4a446c2229c9d8f682723dd33eee5
https://github.com/llvm/llvm-project/commit/8ea8a288d3a4a446c2229c9d8f682723dd33eee5
Author: Keno Fischer <keno at juliahub.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/include/llvm/Transforms/Utils/LoopConstrainer.h
M llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
M llvm/lib/Transforms/Utils/LoopConstrainer.cpp
M llvm/test/Transforms/IRCE/compound-loop-bound.ll
A llvm/test/Transforms/IRCE/expansion-cleanup-analysis-invalidation.ll
Log Message:
-----------
[IRCE] Discard speculative SCEV expansions when bailing out (#211089)
LoopStructure::parseLoopStructure materializes SCEVs in the preheader
while merely analyzing the loop, and LoopConstrainer::run expands its
exit limits before all of its bail-out points have been passed. When a
later check failed, those expansions were left behind: the pass mutated
the IR while reporting the function unchanged, which leaves stale
analyses behind (observable with -verify-analysis-invalidation) and
produces dead instructions that differ depending on how far the analysis
got.
Fix this by having callers own the SCEVExpander passed to
parseLoopStructure and wrapping both expanders (IRCE's and
LoopConstrainer::run's) in a SCEVExpanderCleaner whose result is only
marked used once the transformation is guaranteed to proceed. Value
names ("indvar.start", "exit.preloop.at") are now applied only at that
point, since the expander may have reused pre-existing values that must
not be renamed when the transformation is abandoned.
Also return the correct Changed value from
InductiveRangeCheckElimination::run when subrange computation fails,
since earlier steps may already have modified the function.
Co-authored-by: Claude Fable 5 <noreply at anthropic.com>
Commit: 9a7284cedd2c75a7d53e44a49bfa03bfc0c27cae
https://github.com/llvm/llvm-project/commit/9a7284cedd2c75a7d53e44a49bfa03bfc0c27cae
Author: satyanarayana reddy janga <satyajanga at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lldb/test/API/commands/trace/TestTraceDumpInfo.py
M lldb/test/API/commands/trace/TestTraceDumpInstructions.py
M lldb/test/API/commands/trace/TestTraceExport.py
M lldb/test/API/commands/trace/TestTraceSave.py
M lldb/test/API/commands/trace/TestTraceStartStop.py
Log Message:
-----------
[lldb] Fix trace test assertions after error-message style change (#212372)
Commit 820f4402745d ([lldb] Correct style of error messages, #156774)
changed the "process is not being traced" error emitted by
CommandObject::CheckRequirements from "Process is not being traced." to
"process is not being traced" (lowercase, no trailing period), but did
not update the trace API tests that assert on that string.
These tests only run when the intel-pt plugin is enabled and the host
has Intel PT support (TraceIntelPTTestCaseBase.setUp skips otherwise),
so they are skipped on most buildbots and the stale assertions went
unnoticed. Update all five affected tests to match the new message.
Commit: 4b1cd29ffb39ea94590869657e9170230155a979
https://github.com/llvm/llvm-project/commit/4b1cd29ffb39ea94590869657e9170230155a979
Author: Jameson Nash <vtjnash at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/docs/ThreadSafetyAnalysis.md
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Analysis/ThreadSafety.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/test/Sema/warn-thread-safety-analysis.c
M clang/test/SemaCXX/warn-thread-safety-analysis.cpp
M clang/test/SemaCXX/warn-thread-safety-parsing.cpp
Log Message:
-----------
Thread Safety Analysis: Don't treat function pointer parameters as scoped capabilities (#211885)
Capability attributes on a parameter mean one of two unrelated things:
on a scoped-lockable parameter they describe the locks the passed scope
object holds, while on a function pointer parameter they describe the
requirements of the function called through the pointer. Since #191187
allowed the latter, both of the scoped-lockable code paths have been
misreading function pointer parameters as scope objects.
At a call site, the argument bound to the parameter was translated into
a capability and required to be held, so passing a callback that
requires a capability was reported as a missing lock named after the
callback:
```
void apply(fn_t fn EXCLUSIVE_LOCKS_REQUIRED(mu));
static int my_fn() EXCLUSIVE_LOCKS_REQUIRED(mu);
...
apply(my_fn); // warning: requires holding mutex 'fn'
```
In the callee, the same confusion seeded the parameter's capabilities
into the function's entry lockset, so they were considered held
throughout the body and the calls made through the pointer went
unchecked -- the opposite of what the annotation asks for.
Skip function pointer parameters in both places; their attributes are
already checked at the indirect call sites (by #191187), the same way as
for annotated function pointer variables and fields.
Assisted-by: Claude Opus 5
Commit: 54eb229d48a45b61cd93a795c7e95443c3a73c26
https://github.com/llvm/llvm-project/commit/54eb229d48a45b61cd93a795c7e95443c3a73c26
Author: zhijian lin <zhijian at ca.ibm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
R llvm/test/CodeGen/PowerPC/fp-classify-nan.ll
Log Message:
-----------
Revert "[PowerPC] improve performance on the isNan and !isNan function in case of -ffp-model=strict" (#212509)
The PR https://github.com/llvm/llvm-project/pull/204170 cause a
regression on the test_suite fail as
Check '!__builtin_issignaling(X)' in file
'/home/buildbots/llvm-external-buildbots/workers/ppc64le-clang-test-suite/clang-ppc64le-test-suite/test/test-suite/SingleSource/UnitTests/Float/classify-f32.h'
at line 101 failed for the value '7fffffff'
This patch reverts the PR
https://github.com/llvm/llvm-project/pull/204170.
, we will reland a new version fix of "improve performance on the isNan
and !isNan function in case of -ffp-model=strict" later after the
regression is fixed.
Commit: 40d457bf353c9f5f3e9a187ee8f24327ab61fe1a
https://github.com/llvm/llvm-project/commit/40d457bf353c9f5f3e9a187ee8f24327ab61fe1a
Author: Nico Weber <thakis at chromium.org>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/include/llvm/TargetParser/BUILD.gn
M llvm/utils/gn/secondary/llvm/utils/TableGen/Basic/BUILD.gn
Log Message:
-----------
[gn] Port 1e1274b2ddfe (R600TargetParserDef.inc) (#212525)
Commit: ec1015a98216f83bb93b46935f4d096b80ba88e8
https://github.com/llvm/llvm-project/commit/ec1015a98216f83bb93b46935f4d096b80ba88e8
Author: Nico Weber <thakis at chromium.org>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port de962dda1251 (#212526)
Commit: 2db6978f724bfb0f9ae6f37b8ea585c707e65ce8
https://github.com/llvm/llvm-project/commit/2db6978f724bfb0f9ae6f37b8ea585c707e65ce8
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/tools/lldb_dap/session.py
A lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_win_debug_heap.py
M lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py
M lldb/test/API/tools/lldb-dap/runInTerminal/main.c
M lldb/tools/lldb-dap/Handler/RequestHandler.cpp
Log Message:
-----------
[lldb-dap][Windows] Respect debug-heap setting when launching (#212290)
In #212126, a setting was added to control the heap used when debugging
on Windows. By default, we disable the debug-heap with
`_NO_DEBUG_HEAP=1`. When launching a program from lldb-dap with
`integratedTerminal` or `externalTerminal`, we need to tell the client
about that variable.
This adds the variable in the runInTerminal reverse request if needed.
Closes #201690.
Commit: 3a30af978df0b6f39505fd702f4bfd55b3adb96c
https://github.com/llvm/llvm-project/commit/3a30af978df0b6f39505fd702f4bfd55b3adb96c
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M openmp/device/include/DeviceTypes.h
Log Message:
-----------
[OpenMP][offload] Fix Global addrspace (#212529)
Commit: 65e373abbb7bd39b242ae3c0e9ce647c1aedf607
https://github.com/llvm/llvm-project/commit/65e373abbb7bd39b242ae3c0e9ce647c1aedf607
Author: Steven Wu <stevenwu at apple.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/cmake/config-ix.cmake
M llvm/test/lit.cfg.py
M llvm/test/lit.site.cfg.py.in
Log Message:
-----------
[Darwin] Improve ld64 based configs (#212329)
Improve and fix the llvm configurations so that:
* Do not look for ld64 when building or testing. The new apple linker is
compatible with the classic ld64 and the ld64 is removed in Xcode 27.
Build and test should not fall back to ld64 or use `-ld-classic`.
* For LTO lit tests, they will fail if `CMAKE_OSX_SYSROOT` is not
specified. Fix the tests so that inferred SYSROOT also work with those
tests.
Commit: 4674ce3fe91a0edea6cf780332891575af0884e9
https://github.com/llvm/llvm-project/commit/4674ce3fe91a0edea6cf780332891575af0884e9
Author: Alok Kumar Sharma <AlokKumar.Sharma at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Utils/Local.cpp
A llvm/test/Transforms/SimplifyCFG/switch-default-fold-weight-overflow.ll
Log Message:
-----------
[SimplifyCFG] Fix branch-weight overflow when folding switch case into default (#212520)
The overflow guard added in #178964 for merging a switch case's weight
into the default's calls fitWeights() to downscale the weights, but the
returned value was never assigned back to Weights, so the downscale
didn't take effect. As a result, a default+case sum that overflows
uint64_t would wrap around, turning a dominant default weight into a
small, incorrect one.
Assign fitWeights()'s result back to Weights before the addition so the
downscale takes effect as intended.
Commit: 462b109cbcfe5d8adb46af4e6f82dc96c0a5c9f7
https://github.com/llvm/llvm-project/commit/462b109cbcfe5d8adb46af4e6f82dc96c0a5c9f7
Author: Patryk Stefanski <patryk.stefanski at protonmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
A clang/test/ExtractAPI/invalid_utf8_doc_comment.c
Log Message:
-----------
[clang][ExtractAPI] Fix assertion on invalid UTF-8 in doc comments (#212394)
A doc comment can contain invalid UTF-8. The raw bytes reach
serializeDocComment, which assigned them to a llvm::json::Value,
tripping its valid-UTF-8 assertion. This is hit by legacy headers that
are not UTF-8 encoded, which compile fine but crash -extract-api.
Sanitize with json::isUTF8/fixUTF8 before serializing.
Fixes #212393
Commit: 4d575e790fef3995b23d6838e4ce557d2f9b5b98
https://github.com/llvm/llvm-project/commit/4d575e790fef3995b23d6838e4ce557d2f9b5b98
Author: Fangrui Song <i at maskray.me>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/Relocations.cpp
M lld/ELF/SyntheticSections.cpp
M lld/ELF/SyntheticSections.h
M lld/test/ELF/aarch64-thunk-align.s
M lld/test/ELF/aarch64-thunk-bti-execute-only.s
M lld/test/ELF/aarch64-thunk-bti-multipass.s
M lld/test/ELF/aarch64-thunk-bti.s
M lld/test/ELF/aarch64-thunk-script.s
A lld/test/ELF/aarch64-thunk-sort.s
M lld/test/ELF/arm-bl-v4t.s
M lld/test/ELF/arm-branch-rangethunk.s
M lld/test/ELF/arm-force-pi-thunk.s
M lld/test/ELF/arm-thumb-condbranch-thunk.s
M lld/test/ELF/arm-thumb-interwork-shared.s
M lld/test/ELF/arm-thumb-interwork-thunk.s
M lld/test/ELF/arm-thumb-mix-range-thunk-os.s
M lld/test/ELF/arm-thumb-plt-range-thunk-os.s
M lld/test/ELF/arm-thumb-range-thunk-os-no-ext.s
M lld/test/ELF/arm-thumb-range-thunk-os.s
M lld/test/ELF/arm-thunk-arm-thumb-reuse.s
M lld/test/ELF/arm-thunk-linkerscript-dotexpr.s
M lld/test/ELF/arm-thunk-linkerscript-orphan.s
M lld/test/ELF/arm-thunk-linkerscript.s
M lld/test/ELF/arm-thunk-re-add.s
M lld/test/ELF/hexagon-thunk-range-b22rel.s
M lld/test/ELF/ppc32-call-stub-nopic.s
M lld/test/ELF/ppc32-call-stub-pic.s
M lld/test/ELF/ppc32-long-thunk.s
M lld/test/ELF/ppc64-call-reach.s
M lld/test/ELF/ppc64-ifunc.s
M lld/test/ELF/ppc64-long-branch-pi.s
M lld/test/ELF/ppc64-long-branch-rel14.s
M lld/test/ELF/ppc64-long-branch.s
Log Message:
-----------
[ELF] Sort forward thunks by destination to prevent convergence failures (#211721)
A thunk's distance to a forward destination grows when a thunk after it
grows.
For
```
[forward A B C] dstA dstB dstC
```
When all thunks are initially short, promoting C can push B to be
enlarged on the following pass, which in turn pushes A to be promoted on
the following pass. Promoting just one thunk on a pass can therefore
trigger "address assignment did not converge".
Sort each ThunkSection once pass 0 has created its thunks. A forward
thunk's distance grows only when a thunk after it grows, so order
forward thunks by descending destination. A backward thunk's distance
grows only with a promotion before it, already applied when we reach
it, so backward thunks need no ordering; partition them ahead of the
forward thunks in creation order.
Tests that depend on creation order are pinned with -z nosort-thunks;
they can be migrated individually, after which the option can be
removed.
Fixes #61250
Co-authored-by: Pranav Kant <prka at google.com>
Commit: eae09240391b592e89719ca53c1b45ab4e124772
https://github.com/llvm/llvm-project/commit/eae09240391b592e89719ca53c1b45ab4e124772
Author: AZero13 <gfunni234 at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Sema/SemaType.cpp
A clang/test/SemaCXX/ms-ptr-qualifiers.cpp
M clang/test/SemaCXX/wasm-funcref.cpp
Log Message:
-----------
[clang][Sema] Preserve CV qualifiers when applying pointer and funcref attributes (#211709)
This patch fixes a bug in handleMSPointerTypeQualifierAttr and
HandleWebAssemblyFuncrefAttr where applying these pointer attributes
would implicitly drop top-level CV qualifiers (like `const`, `volatile`,
and `restrict`) from the pointer type.
Commit: d5c35335fbd694e254294fbafd25ce7926230a3e
https://github.com/llvm/llvm-project/commit/d5c35335fbd694e254294fbafd25ce7926230a3e
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[lldb][Windows] Cleanup release notes (#212527)
The other release notes were meant for the 23 release.
Commit: 8ea9597ccb04253c5b46b3c967ee7b5092d6dd7c
https://github.com/llvm/llvm-project/commit/8ea9597ccb04253c5b46b3c967ee7b5092d6dd7c
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libcxx/docs/ReleaseNotes/24.rst
M libcxx/include/__memory/allocator.h
M libcxx/include/bitset
Log Message:
-----------
[libc++] Defer removal of two escape hatches to LLVM 25 (#211553)
Rather than removing the escape hatches for trivially default
constructible allocator and bitset's const reference type in LLVM 24,
keep them around for another release since they have not been widely
deployed yet.
Commit: 15b9ee4ee263e8c6c98e89ed7b33ff35cf540255
https://github.com/llvm/llvm-project/commit/15b9ee4ee263e8c6c98e89ed7b33ff35cf540255
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libcxx/test/benchmarks/containers/string.bench.cpp
Log Message:
-----------
[libc++] Drop char8_t instantiation from string benchmarks (#212283)
The string benchmarks instantiated every benchmark for char, char8_t and
wchar_t. char8_t exercises the same code paths as char, so drop it to
get roughly a 30% speedup on this benchmark time.
Commit: 583a958f83d813da3e2d9e801304d58de2493b62
https://github.com/llvm/llvm-project/commit/583a958f83d813da3e2d9e801304d58de2493b62
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libcxx/test/benchmarks/containers/sequence/sequence_container_benchmarks.h
Log Message:
-----------
[libc++] Reduce sequence container benchmark size ladder (#212281)
The sequence containers were registered for 32, 1024 and 8192. This
patch drops the mid-size point to get roughly a 30% speedup when running
the benchmarks.
Commit: 2db82ed13cce7d09a32053030965e404ca63cfcf
https://github.com/llvm/llvm-project/commit/2db82ed13cce7d09a32053030965e404ca63cfcf
Author: Shoaib Meenai <smeenai at fb.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M mlir/test/CMakeLists.txt
M mlir/test/Unit/lit.site.cfg.py.in
M mlir/test/lit.site.cfg.py.in
Log Message:
-----------
[mlir] Make lit site configs relocatable (#212406)
Follow the same pattern as all the other test suites where the PATHS
option to configure_lit_site_cfg and the path() function in the lit site
config are used to make site configs relocatable.
Commit: 266f2b372453463b6ff8d281d4c9fbdb640eaa1a
https://github.com/llvm/llvm-project/commit/266f2b372453463b6ff8d281d4c9fbdb640eaa1a
Author: Nico Weber <thakis at chromium.org>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/test/BUILD.gn
Log Message:
-----------
[gn] port 65e373abbb7b (#212548)
Commit: 65418144ffa87d65d99d649b215f6376b6fad4a7
https://github.com/llvm/llvm-project/commit/65418144ffa87d65d99d649b215f6376b6fad4a7
Author: Andrei Elovikov <andrei.elovikov at sifive.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/cmp_cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/synthesize-mask-for-call.ll
M llvm/test/Transforms/LoopVectorize/ARM/mve-icmpcost.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/call-decisions.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/partial-reduce-usabs.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/single-scalar-cast.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve-tail-folding-forced.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve2-histcnt-vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/vplan-memory-op-decisions.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/vplan-printing.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/widen-call-with-intrinsic-or-libfunc.ll
M llvm/test/Transforms/LoopVectorize/VPlan/PowerPC/vplan-force-tail-with-evl.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-riscv-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics-fixed-order-recurrence.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics-reduction.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/VPlan/X86/scalarize-wide-load-for-address-use.ll
M llvm/test/Transforms/LoopVectorize/VPlan/X86/vplan-vp-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/VPlan/conditional-scalar-assignment-vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/dissolve-replicate-regions.ll
M llvm/test/Transforms/LoopVectorize/VPlan/early_exit_with_stores_vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/find-last.ll
M llvm/test/Transforms/LoopVectorize/VPlan/first-order-recurrence-chains-vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/interleave-conditional-scalar-assignment-vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/phi-with-fastflags-vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/print-attributes.ll
M llvm/test/Transforms/LoopVectorize/VPlan/scalarize-irregular-type-memops.ll
M llvm/test/Transforms/LoopVectorize/VPlan/simplify-reverse-reverse.ll
M llvm/test/Transforms/LoopVectorize/VPlan/uncountable-early-exit-vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-dot-printing.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-iv-transforms.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-alias-mask.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-before-execute.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions-tail-folded.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-sink-scalars-and-merge.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-widen-struct-return.ll
M llvm/test/Transforms/LoopVectorize/VPlan/widen-canonical-iv-register-pressure.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/vpinstruction-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/reduction-small-size.ll
M llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/vplan.ll.expected
Log Message:
-----------
[NFC][VPlan] Print element type for vector[-end]-pointer recipes (#212332)
Commit: 833951e349498bbe81721620ca549699117f7040
https://github.com/llvm/llvm-project/commit/833951e349498bbe81721620ca549699117f7040
Author: Pranav Kant <prka at google.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/test/Instrumentation/Instrumentor/inline_runtime.ll
Log Message:
-----------
[test] Use temp directory for output (#212379)
Test was added in #208072
Some test environment run tests in a readonly directory. Writing is only
allowed in temp directory.
Commit: db534dccb2ea151cf8ac1b4f92a656402e71c968
https://github.com/llvm/llvm-project/commit/db534dccb2ea151cf8ac1b4f92a656402e71c968
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libc/src/__support/GPU/utils.h
Log Message:
-----------
[libc] Fix Global addrspace (#212531)
Commit: a0a18e45b16e82000c7cb8a1e39469ac8897ab0a
https://github.com/llvm/llvm-project/commit/a0a18e45b16e82000c7cb8a1e39469ac8897ab0a
Author: Andrei Elovikov <andrei.elovikov at sifive.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/VPlan/vplan-based-stride-mv.ll
A llvm/test/Transforms/LoopVectorize/vplan-based-stride-mv.ll
Log Message:
-----------
[NFC][VPlan] Add initial tests for future VPlan-based stride MV (#182594)
I tried to include both the features that current
LoopAccessAnalysis-based transformation supports (e.g., trunc/sext of
stride) but also cases where the current implementation behaves poorly,
e.g., https://godbolt.org/z/h31c3zKxK; as well as some other potentially
interesting scenarios I could imagine.
The are two test files with the same content. One is for VPlan dump
change of the future transformation alone (I'll update
`-vplan-print-after` in the next PR), another is for the full vectorizer
pipeline. The latter has two `RUN:` lines:
* No multiversioning, so the next PR diff can show the transformation
itself
* Stride multiversionin performed in LAA, so that we can compare next
PR's
VPlan-based transformation vs old behavior.
Commit: f27602f77d2bccdd1ab17e6afc4b48fc0a32b993
https://github.com/llvm/llvm-project/commit/f27602f77d2bccdd1ab17e6afc4b48fc0a32b993
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Utils/Local.cpp
R llvm/test/Transforms/SimplifyCFG/switch-default-fold-weight-overflow.ll
Log Message:
-----------
Revert "[SimplifyCFG] Fix branch-weight overflow when folding switch case into default" (#212540)
Commit: 98568f6567999d03e15a611b3fed1abcfab2f123
https://github.com/llvm/llvm-project/commit/98568f6567999d03e15a611b3fed1abcfab2f123
Author: adams381 <adams at nvidia.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
A clang/test/CIR/Transforms/abi-lowering/x86_64-int-nyi.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-scalars.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-struct-direct.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-struct-indirect.cir
Log Message:
-----------
[CIR] Accept __int128 in x86_64 calling-convention lowering (#211142)
The x86_64 calling-convention bridge rejected every integer wider than 64
bits, so a function taking or returning `__int128` hit `errorNYI` even though
its ABI treatment is simple.
On x86_64 `__int128` is Direct and passes in a pair of integer registers,
matching an i128 argument or return in classic CodeGen. `isSupportedType` now
accepts non-bitint integers of width 128 alongside the register-sized widths.
A struct holding a single `__int128` is exactly two eightbytes, so it reaches
the aggregate path and is Direct-coerced to i128; a struct spanning more than
two eightbytes stays Indirect (byval/sret).
`_BitInt` stays rejected pending its register-pair coercion and padding
handling, including `_BitInt(128)`. Non-C intermediate widths (65..127) stay
rejected too: the scalar Direct branch would pass them through unchanged,
without the register-pair coercion they would need.
Commit: 7ac6b9ff31dbd3a028585ccd18d8a7a290303d58
https://github.com/llvm/llvm-project/commit/7ac6b9ff31dbd3a028585ccd18d8a7a290303d58
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lldb/source/Plugins/Process/wasm/RegisterContextWasm.cpp
M lldb/source/Plugins/Process/wasm/ThreadWasm.cpp
M lldb/source/Plugins/Process/wasm/ThreadWasm.h
Log Message:
-----------
[lldb] Report the unwound PC for WebAssembly caller frames (#212326)
RegisterContextWasm delegated the PC register read to
GDBRemoteRegisterContext, which reports the live innermost PC for every
frame. Resolving a variable whose DWARF location is a location list in a
caller frame therefore chose the entry using the innermost frame's PC
instead of the caller's, so the variable read back as unavailable even
though its location covered the caller's PC.
Return the program counter the WebAssembly unwinder recorded for the
frame (from qWasmCallStack) when reading a caller frame's PC, so the
location list entry uses the correct frame.
Commit: d4d007b581bef93d6b7cee4bf9d621804826a9d6
https://github.com/llvm/llvm-project/commit/d4d007b581bef93d6b7cee4bf9d621804826a9d6
Author: Jinseok Kim <always.starving0 at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M compiler-rt/lib/asan/asan_poisoning.cpp
Log Message:
-----------
[asan][NFC] Fix comments in asan_poisoning.cpp (#212449)
Remove duplicated wording and fix typos in comments.
Signed-off-by: Jinseok Kim <always.starving0 at gmail.com>
Commit: 488ba8b8d28fbab361a56111591acb1bf8c33371
https://github.com/llvm/llvm-project/commit/488ba8b8d28fbab361a56111591acb1bf8c33371
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/Basic/TargetID.cpp
M clang/lib/Basic/Targets/AMDGPU.h
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/lib/Target/AMDGPU/AMDGPUTargetParser.td
M llvm/lib/Target/AMDGPU/R600Processors.td
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/unittests/TargetParser/TargetParserTest.cpp
M llvm/utils/TableGen/Basic/AMDGPUTargetDefEmitter.cpp
Log Message:
-----------
AMDGPU: Split R600 feature bitmask into separate enum from amdgcn (#212484)
Commit: a4a9b6864c6f185500f08a5a037d93b5e67657dc
https://github.com/llvm/llvm-project/commit/a4a9b6864c6f185500f08a5a037d93b5e67657dc
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
Log Message:
-----------
[SimplifyCFG] Handle degenerate conditional branch (#212552)
IR before entering the function:
```
define void @func(i1 %cond) {
entry:
br i1 %cond, label %exit, label %exit
exit: ; preds = %entry, %entry
%phi = phi i1 [ false, %entry ], [ false, %entry ]
tail call void @llvm.assume(i1 %phi)
ret void
}
```
The original code only removes one edge. There is still an edge from
entry to exit, triggering the `Deleted edge still exists in the CFG`
assertion.
Closes https://github.com/llvm/llvm-project/issues/212542
Commit: ee25d3ec23a8b612ae3fa3eed8f8b88b00f582df
https://github.com/llvm/llvm-project/commit/ee25d3ec23a8b612ae3fa3eed8f8b88b00f582df
Author: Faijul Amin <md.faijul.amin at intel.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp
M llvm/test/CodeGen/SPIRV/legalization/signed-narrow-int.ll
Log Message:
-----------
[SPIRV] Preserve sign-sensitive width record across G_TRUNC replacement (#211626)
**Summary**
Follow-up to #203661. When the `G_TRUNC` handler in `SPIRVPreLegalizer`
collapses source and destination to the same widened width, it calls
`MRI.replaceRegWith(DstReg, MaskedReg)` and drops the original
`G_TRUNC`. The `SignSensitiveInfo.OrigWidth` map, however, was still
keyed on `DstReg`, so `widenSignSensitiveOps` no longer found the narrow
original width and skipped the `shl/ashr` sign extension for signed
users of the truncated value.
Rekey `OrigWidth` from `DstReg` to `MaskedReg` before the
`replaceRegWith` so signed ops fed by the truncated value still receive
`G_SEXT_INREG` on the widened type.
**Test plan**
New test case is added to
`llvm/test/CodeGen/SPIRV/legalization/signed-narrow-int.ll`: `trunc i8 →
i4` feeding `icmp slt` — src and dst both widen to `i8`, exercising the
same-width `replaceRegWith` path. Checks that the widened `i8` compare
is preceded by matching `OpShiftLeftLogical / OpShiftRightArithmetic`
pairs on both operands.
Commit: b0960bd33024c6e22b680df5d4fb675f61b64ad0
https://github.com/llvm/llvm-project/commit/b0960bd33024c6e22b680df5d4fb675f61b64ad0
Author: Fangrui Song <i at maskray.me>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/include/llvm/CodeGen/MachinePipeliner.h
M llvm/include/llvm/CodeGen/MachineScheduler.h
M llvm/lib/CodeGen/LiveDebugVariables.cpp
M llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
M llvm/lib/CodeGen/MachinePipeliner.cpp
M llvm/lib/CodeGen/MachineScheduler.cpp
M llvm/lib/CodeGen/PostRASchedulerList.cpp
M llvm/lib/CodeGen/StaticDataSplitter.cpp
M llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
M llvm/lib/Target/AMDGPU/R600Packetizer.cpp
M llvm/lib/Target/ARM/ARMParallelDSP.cpp
M llvm/lib/Target/ARM/MVETailPredication.cpp
M llvm/lib/Target/Hexagon/HexagonCopyHoisting.cpp
M llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp
M llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
M llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
M llvm/lib/Target/PowerPC/PPCGenScalarMASSEntries.cpp
M llvm/lib/Target/PowerPC/PPCLowerMASSVEntries.cpp
M llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp
M llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp
M llvm/lib/Target/SPIRV/SPIRVMergeRegionExitTargets.cpp
M llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
M llvm/test/CodeGen/PowerPC/O3-pipeline.ll
Log Message:
-----------
[CodeGen] Stop requiring analyses that no pass reads (#212430)
Remove analysis requirements whose pass never calls getAnalysis for
them, and MachineSchedContext::MDT, which no scheduler reads. Also remove
addPreserved calls subsumed by setPreservesCFG (MachineDominatorTree and
MachineLoopInfo are CFG-only analyses) and a now-unpaired INITIALIZE_PASS_DEPENDENCY.
The PowerPC, Hexagon and R600 pipelines each drop a MachineDominatorTree
construction.
Aided by Claude Opus 5
Commit: 0db95253f93987e4c37594883208a42d3ebee563
https://github.com/llvm/llvm-project/commit/0db95253f93987e4c37594883208a42d3ebee563
Author: Taimuraz Kaitmazov <5769345+atassis at users.noreply.github.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/test/ClangScanDeps/logging-two-threads.c
Log Message:
-----------
[clang][ClangScanDeps] Relax logging-two-threads for duplicate module validation (#210587)
`ClangScanDeps/logging-two-threads.c` is flaky. It asserts each module's
timestamp is written exactly once, but under
`-fmodules-validate-once-per-build-session` two workers scanning
different TUs can both notice the shared module is unvalidated this
session and each validate and record it before the other's write lands,
so its timestamp is written once or twice depending on the interleaving.
The double write is harmless: the timestamp field is atomic and both
workers store the same session time. Only the exact-count assertion was
wrong.
Relax the test to the real invariant: the shared module A is written
once or twice and the single-TU module B exactly once. Module compile
and pcm write stay exactly once (the in-memory cache builds each module
once) and the per-module event ordering is still checked by the sequence
blocks.
The redundant validation itself (two workers validating the same module)
is a separate, pre-existing issue noted by the validation-lock TODO in
`ModuleCache.h`; I plan to look at that separately.
AI assistance: drafted with AI help; reviewed and validated by me.
Commit: 6d59a24272b7d0ffbf5c04b8878dfcc08c0bc0d9
https://github.com/llvm/llvm-project/commit/6d59a24272b7d0ffbf5c04b8878dfcc08c0bc0d9
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/test/CodeGen/AMDGPU/mad-mix-bf16.ll
M llvm/test/CodeGen/AMDGPU/packed-fp32.ll
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3p.s
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3p.txt
Log Message:
-----------
[AMDGPU] Generate literal32 operand for packed fp32 instructions (#212530)
Literal32 operand is supported for gfx1250+ for v_pk_*_f32
Commit: 9d4eb0a855242a37a7541682934a6dd811474d11
https://github.com/llvm/llvm-project/commit/9d4eb0a855242a37a7541682934a6dd811474d11
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/CodeGen/Targets/PPC.cpp
R clang/test/CodeGen/ppc64-float-abi-attr.c
A clang/test/CodeGen/ppc64-long-double-type-attr.c
M llvm/docs/LangRef.md
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
A llvm/test/Assembler/module-flags-long-double-type.ll
A llvm/test/Bitcode/upgrade-ppc-float-abi.ll
M llvm/test/CodeGen/PowerPC/gnu-attribute.ll
A llvm/test/Linker/module-flags-long-double-type.ll
A llvm/test/Verifier/module-flags-long-double-type.ll
Log Message:
-----------
PowerPC: Rename "float-abi" module flag to "long-double-type" (#210817)
PPC was emitting a "float-abi" module flag for indicating the type of
long double. The "float ABI" naming is already widely taken by soft vs.
hard float controls (e.g., the clang flag is called -mfloat-abi), so this
shouldn't have taken it. This should also not be PPC specific; x86 has
the same problem. Rename the flag to the more specific
long-double-type, and add appropriate verification and documentation
(which was also missing). Also changes the value names to match the IR
type names.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: 3919897e1b1b2c4f4327e9a8a9eebfb91bc75616
https://github.com/llvm/llvm-project/commit/3919897e1b1b2c4f4327e9a8a9eebfb91bc75616
Author: Srividya Sundaram <srividya.sundaram at intel.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/lib/Driver/ToolChains/SYCL.cpp
M clang/lib/Driver/ToolChains/SYCL.h
R clang/test/Driver/Inputs/spirv64-sycl/lib/spirv64-unknown-unknown/libclang_rt.builtins.bc
R clang/test/Driver/sycl-device-lib-spirv64.cpp
M clang/test/Driver/sycl-offload-jit-unix.cpp
M clang/test/Driver/sycl-offload-jit-xarch.cpp
M clang/test/Driver/sycl-offload-jit.cpp
M clang/test/Driver/sycl-print-internal-defines.cpp
M clang/test/Driver/sycl-rtlib-sysroot-mismatch.cpp
M clang/test/Driver/sycl-std-default.cpp
M clang/test/Driver/sycl-windows.cpp
M clang/test/Driver/sycl.cpp
M compiler-rt/lib/builtins/CMakeLists.txt
Log Message:
-----------
Revert "[Driver][SYCL] Add compile-time device library linking for SPIR-V targets" (#212550)
Reverts llvm/llvm-project#196656
The CI does not yet build compiler-rt with SPIR-V support, so
libclang_rt.builtins.bc is absent on that bot. This change made the
missing file a hard error, breaking all libsycl functional tests that
compile with -fsycl.
Re-landing after CI is updated to build compiler-rt for SPIR-V.
Commit: 1a2691c3d3ff24dc5dc52a80b3e1ed3f8ee1706a
https://github.com/llvm/llvm-project/commit/1a2691c3d3ff24dc5dc52a80b3e1ed3f8ee1706a
Author: Abhinav Gaba <abhinav.gaba at intel.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
A clang/test/OpenMP/target_map_nested_ptr_member_mapper_codegen.cpp
M offload/test/mapping/declare_mapper_nested_mappers.cpp
M offload/test/mapping/declare_mapper_target.cpp
M offload/test/mapping/declare_mapper_target_data.cpp
M offload/test/mapping/declare_mapper_target_data_enter_exit.cpp
M offload/test/mapping/declare_mapper_target_update.cpp
A offload/test/mapping/mapper_enter_data_always_present_ptee.c
A offload/test/mapping/mapper_map_always_from.c
A offload/test/mapping/mapper_map_always_to_enter_data.c
A offload/test/mapping/mapper_map_mbr_ptee_then_present_mbr_ptee.c
A offload/test/mapping/mapper_map_mbr_then_present_mbr_ptee.c
A offload/test/mapping/mapper_map_present_ptee.c
A offload/test/mapping/mapper_map_ptee_only.c
A offload/test/mapping/mapper_map_ptee_only_2_ptr_indirections.c
A offload/test/mapping/mapper_map_ptee_only_2_ptr_indirections_array.c
A offload/test/mapping/mapper_map_ptee_only_2ndlevel.c
A offload/test/mapping/mapper_map_ptee_only_2ndlevel_array.c
A offload/test/mapping/mapper_map_ptee_only_always_array.c
A offload/test/mapping/mapper_map_ptee_only_array.c
A offload/test/mapping/mapper_map_ptee_then_present_absent_mbr.c
A offload/test/mapping/mapper_map_ptr_ptee_nomapper_del_ptee.c
A offload/test/mapping/mapper_map_ptr_ptee_nomapper_del_ptr.c
A offload/test/mapping/mapper_target_update_present_ptee.c
A offload/test/mapping/multiple_deletes_within_one_struct.c
A offload/test/offloading/fortran/mapper-map-always-to-enter-data.f90
Log Message:
-----------
[NFC][OpenMP] Add mapper-specific tests exercising pointee section mapping. (#204269)
* Add a few tests for when a mapper does something like `map(s.p[0:10])`
where `p` is a pointer.
* Add a few tests that require propagation of bits like `present/always`
into a mapper.
* Fix a few tests that were expecting `p` to be mapped when the mapper
only said `map(s.p[0:10])`.
The output of a few tests is different from what we expect. They have
been annotated with FIXMEs, and the expected output for when the
follow-up changes in this stack to propagate the map-type-modifier bits
and using attach-style mapping for mappers get merged.
---------
Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>
Commit: 16f45b7f184c776b40a6893c8d6f6f02d5185c47
https://github.com/llvm/llvm-project/commit/16f45b7f184c776b40a6893c8d6f6f02d5185c47
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M flang/include/flang/Optimizer/Transforms/Passes.td
M flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
M flang/test/Fir/CUDA/cuda-constructor.f90
Log Message:
-----------
[flang][cuda] Add option to set priority to the CUDA Fortran constructor (#212561)
Commit: 8aceb2f64b33f3c70b712ccd464774fa7d620d19
https://github.com/llvm/llvm-project/commit/8aceb2f64b33f3c70b712ccd464774fa7d620d19
Author: Alexander Johnston <14348472+Alexander-Johnston at users.noreply.github.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/CodeGenHLSL/builtins/InterlockedXor.hlsl
M clang/test/CodeGenHLSL/builtins/RWBuffer-Interlocked.hlsl
A clang/test/CodeGenHLSL/builtins/RWByteAddressBuffer-InterlockedXor.hlsl
A clang/test/CodeGenHLSL/builtins/RasterizerOrderedByteAddressBuffer-InterlockedXor.hlsl
A clang/test/SemaHLSL/BuiltIns/InterlockedXor-errors.hlsl
Log Message:
-----------
[HLSL] Implement HLSL InterlockedXor (#209254)
Follows existing HLSL InterlockedOp implementations to provide
InterlockedXor in HLSL, with DirectX and SPIRV support.
https://github.com/llvm/llvm-project/issues/99127
Commit: 6bf2f466c1a77c1e97175dc14a11564133a0638b
https://github.com/llvm/llvm-project/commit/6bf2f466c1a77c1e97175dc14a11564133a0638b
Author: Petr Kurapov <petr.kurapov at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/CodeGen/MIR2Vec.cpp
A llvm/test/CodeGen/MIR2Vec/empty-machine-function.mir
Log Message:
-----------
[MIR2Vec] Handle machine functions with no basic blocks (#212294)
depth_first() asserts on an empty MachineFunction, since getEntryNode()
dereferences the block list sentinel via front(). Return the zero vector
instead, as IR2Vec does for declarations.
Commit: 26643a89ddf98e48e986d25ceb10f673735bc7d7
https://github.com/llvm/llvm-project/commit/26643a89ddf98e48e986d25ceb10f673735bc7d7
Author: Anatoly Trosinenko <atrosinenko at accesssoftek.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/Headers/ptrauth.h
Log Message:
-----------
[PAC][Headers] Fix incorrect comment in ptrauth.h (#207265)
The discriminator which is used to sign pointers to v-tables
is not always zero.
Commit: 85305ba2b67ea806e1e04b61dcc8743b19f51fc8
https://github.com/llvm/llvm-project/commit/85305ba2b67ea806e1e04b61dcc8743b19f51fc8
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ballot.i32.wave64.err.ll
Log Message:
-----------
[AMDGPU] Fix llvm.amdgcn.ballot with return width != wavefront size (#211493)
Before wave mask was emitted directly in the requested return type,
which failed to select for i32 ballots on wave64 (and vice versa)
Compute the mask at the wavefront width and then zext or trunc it to the
result type
Commit: e146c04973fc3faf6dbf74bacdf8d62553f6fed5
https://github.com/llvm/llvm-project/commit/e146c04973fc3faf6dbf74bacdf8d62553f6fed5
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
M llvm/test/CodeGen/AMDGPU/elf-header-flags-sramecc.ll
M llvm/test/CodeGen/AMDGPU/sramecc-subtarget-feature-any.ll
Log Message:
-----------
[AMDGPU] Add SRAMECC to feature list for gfx12-5-generic (#212573)
Commit: 34e04039fd7c5341b964443659c2e1677d97c55e
https://github.com/llvm/llvm-project/commit/34e04039fd7c5341b964443659c2e1677d97c55e
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/docs/LangRef.md
M llvm/lib/IR/Verifier.cpp
M llvm/test/Assembler/module-flags-long-double-type.ll
Log Message:
-----------
IR: Accept x86_fp80 and float as a long-double-type value (#210818)
Prepare to emit long-double-type for all targets. x86 obviously needs
x87, and AVR uses float.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: ed591cc9d78a73eef2fffa93510bd99c3a7170df
https://github.com/llvm/llvm-project/commit/ed591cc9d78a73eef2fffa93510bd99c3a7170df
Author: Shoaib Meenai <smeenai at fb.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/utils/lit/CMakeLists.txt
M llvm/utils/lit/tests/lit.site.cfg.in
Log Message:
-----------
[lit] Switch tests to using path function (#212381)
All the other test suites use the PATHS option to configure_lit_site_cfg
and the path() function in lit.site.cfg to make the site configs
relocatable. Apply the same pattern to lit's own suite as well.
Commit: 7ae83531cb7cfcfb266ba6aa927caf77745995bf
https://github.com/llvm/llvm-project/commit/7ae83531cb7cfcfb266ba6aa927caf77745995bf
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUFeatures.td
M llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/test/MC/AMDGPU/vop3-literal.s
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_wave64_feature.s
Log Message:
-----------
AMDGPU: Add dedicated features for wavesize support (#212581)
Previously we had features for which wavesize is active,
and unstructured checks for which targets support which
wavesize.
One assembler test changes because it was artificially
forcing wave64 on gfx1250 for test simplification, and
the supportsWave32 helper function was buggy.
Co-authored-by: Claude (Claude-Opus-4.8)
Commit: 531445c572936b72864f377b02b96001fa0fa799
https://github.com/llvm/llvm-project/commit/531445c572936b72864f377b02b96001fa0fa799
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
M mlir/test/Conversion/SPIRVToLLVM/arithmetic-ops-to-llvm.mlir
Log Message:
-----------
[mlir][SPIR-V] Add SPIRVToLLVM conversions for IAddCarry and ISubBorrow (#203605)
Commit: ab5f244f0f043c138d4d9ee7e0bbdea2309d2010
https://github.com/llvm/llvm-project/commit/ab5f244f0f043c138d4d9ee7e0bbdea2309d2010
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/include/llvm/Support/CodeGen.h
M llvm/include/llvm/TargetParser/Triple.h
M llvm/lib/TargetParser/Triple.cpp
M llvm/unittests/TargetParser/TripleTest.cpp
Log Message:
-----------
Triple: Add query for the default long double format (#211239)
The long double format changes the library call info, which needs
to be computed independently of codegen. Implement this based on the
clang target code.
---------
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Commit: 617dd98854c1f436a90e457f38f8d90643c0b641
https://github.com/llvm/llvm-project/commit/617dd98854c1f436a90e457f38f8d90643c0b641
Author: Yi Zhang <cathyzhyi at google.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
[bazel] fix #212406 (#212585)
Commit: bd69a84b5618922f776d14710221b8ca7bf58758
https://github.com/llvm/llvm-project/commit/bd69a84b5618922f776d14710221b8ca7bf58758
Author: earnol <earnol at users.noreply.github.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/Format/WhitespaceManager.cpp
M clang/unittests/Format/FormatTestComments.cpp
Log Message:
-----------
[clang-format] Fix OverEmptyLines aligning trailing comments across block boundaries (#208324)
Fix `AlignTrailingComments` with `OverEmptyLines` aligning trailing
comments across block boundaries (e.g., between two functions or
structs). The alignment sequence now breaks at block-type braces
(`BK_Block`).
This is an `OverEmptyLines` bug exposed by
bae9ddca423145baf0c35e31898b723aa273f85c (#206393).
Fixes https://github.com/llvm/llvm-project/issues/208266
(https://github.com/llvm/llvm-project/issues/208266).
Commit created with the help of kiro-cli.
Co-authored-by: Vladislav Aranov <vladislav.aranov at ericsson.com>
Commit: 592b344b377db4a81ac6930ae6c0131730b0432c
https://github.com/llvm/llvm-project/commit/592b344b377db4a81ac6930ae6c0131730b0432c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/test/MC/AMDGPU/amdgcn-target-directive-conflict.s
M llvm/test/MC/AMDGPU/hsa-diag-v4.s
M llvm/test/MC/AMDGPU/isa-version-pal.s
M llvm/test/MC/AMDGPU/isa-version-unk.s
Log Message:
-----------
AMDGPU: Migrate target ID diagnostic tests to subarch triples (#212588)
Commit: 255162ae0ebe805df151c5c4b48e1a47a5dd74f0
https://github.com/llvm/llvm-project/commit/255162ae0ebe805df151c5c4b48e1a47a5dd74f0
Author: Nemanja Ivanovic <nemanja.i.llvm at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVPushPopOptimizer.cpp
A llvm/test/CodeGen/RISCV/shadow-stack-zcmp.ll
M llvm/test/CodeGen/RISCV/shadowcallstack.ll
Log Message:
-----------
[RISC-V] Do not emit cm.popret[z] with zicfiss (#196267)
When emitting shadow call stack protection instructions, the push/pop
optimization needs to be turned off because an sspopchk before a
cm.popret[z] is guaranteed to fail in a non-leaf function. In addition,
the sspopchk must be emitted after a cm.pop so that the ra has the
correct value when the check is performed.
Fixes: https://github.com/llvm/llvm-project/issues/196261
Co-authored-by: Nemanja Ivanovic <nemanja at synopsys.com>
Commit: 810062e9771d8b47c25a89311139c621c13bbf9f
https://github.com/llvm/llvm-project/commit/810062e9771d8b47c25a89311139c621c13bbf9f
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M .github/workflows/libcxx-benchmark-commit.yml
Log Message:
-----------
[libc++] Require selecting a machine when dispatching the benchmark workflow (#212591)
This resolves a TODO to allow selecting which machine we're running on.
As I am working on automation to dispatch these benchmarking jobs, it
turns out that we always want to specify the machine, and we always want
to specify a single machine to run per workflow, since this is the only
way we can track which commits have been attempted (or are still in
flight) on a given machine.
Therefore, the ability to run benchmarks on all machines at once is
removed from this workflow (but not from the related PR A/B benchmarking
workflow).
This patch also includes the machine name and the commit being
benchmarked into the runs's name, which is necessary for automation to
know what the workflow was benchmarking.
Commit: 83dfacdbda1a8b87c1f170ec6ce4e240e1fa79db
https://github.com/llvm/llvm-project/commit/83dfacdbda1a8b87c1f170ec6ce4e240e1fa79db
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libc/src/__support/CPP/CMakeLists.txt
M libc/src/__support/CPP/type_traits.h
A libc/src/__support/CPP/unique_ptr.h
M libc/src/__support/macros/attributes.h
M libc/test/src/__support/CPP/CMakeLists.txt
A libc/test/src/__support/CPP/unique_ptr_test.cpp
Log Message:
-----------
[libc] Implement cpp::unique_ptr utility (#206701)
[libc] Implement cpp::unique_ptr utility
Implemented cpp::unique_ptr and cpp::default_delete in
libc/src/__support/CPP/unique_ptr.h for internal use within LLVM-libc.
* Added cpp::default_delete and its array specialization.
* Implemented cpp::unique_ptr with support for custom deleters and
array specialization.
* Applied LIBC_TRIVIAL_ABI to unique_ptr and LIBC_NO_UNIQUE_ADDRESS to
the
deleter to enable empty member optimization and register-passing ABI.
* Defined portable LIBC_NO_UNIQUE_ADDRESS and LIBC_TRIVIAL_ABI macros in
attributes.h.
* Included is_assignable.h in type_traits.h to support conversion
assignment constraints.
* Modernized template constraints using enable_if_t and
is_convertible_v.
* Added comprehensive unit tests in
libc/test/src/__support/CPP/unique_ptr_test.cpp, including coverage for
reset sequencing, custom deleters, and conversion constructors.
This is a simplified implementation with the following limitations:
* No support for custom pointer types (hardcoded to T*).
* No support for reference deleter types or array conversion.
Adding this to LLVM libc because some things (like regex) require
dynamic
memory allocation, and this will help with correct memory management.
Assisted-by: Automated tooling, human reviewed.
Commit: 6084459105d2d022122508cfbcae990d7516488b
https://github.com/llvm/llvm-project/commit/6084459105d2d022122508cfbcae990d7516488b
Author: Pankaj Gode <pgode at qti.qualcomm.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/include/llvm/TargetParser/SubtargetFeature.h
M llvm/lib/Target/RISCV/RISCVMacroFusion.td
A llvm/lib/Target/RISCV/RISCVMacroFusionXQCI.td
M llvm/test/CodeGen/RISCV/features-info.ll
A llvm/test/CodeGen/RISCV/macro-fusions-xqci.mir
Log Message:
-----------
[RISCV] Add macro fusion support for the Xqci extension instructions (#209542)
Add macro fusion definitions for the Qualcomm Xqci extension covering
movimm-alu, movimm-mul, movimm-ldst, movimm-jump, movimm-longlogical,
movimm-mov, mov-mov, mov-longlogical fusions.
The fusion definitions live in a new RISCVMacroFusionXQCI.td which is
included from RISCVMacroFusion.td. A MIR test and the feature list test
are updated accordingly.
To accomodate additional features, increased MAX_SUBTARGET_FEATURES to
448 (from 384).
Signed-off-by: Pankaj Gode <pgode at qti.qualcomm.com>
Commit: d814f55809820baee51a23eab92c24df8f5824ce
https://github.com/llvm/llvm-project/commit/d814f55809820baee51a23eab92c24df8f5824ce
Author: Md Abdullah Shahneous Bari <md.abdullah.shahneous.bari at intel.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M mlir/include/mlir/Conversion/Passes.td
M mlir/lib/Conversion/MathToXeVM/CMakeLists.txt
M mlir/lib/Conversion/MathToXeVM/MathToXeVM.cpp
M mlir/test/Conversion/MathToXeVM/math-to-xevm.mlir
Log Message:
-----------
[mlir][MathToXeVM] Convert fastmath math ops on size-1 vectors (#211921)
SPIR-V has no size-1 vector type, so `convert-math-to-xevm` previously
rejected `math.exp fastmath<fast> : vector<1xf32>` (and the other native
OCL patterns), leaving them as unconverted `math.exp`. These degenerate
size-1 vectors are the result of the XeGPU pipeline distributing and
linearizing larger vectors down to a single element per lane, so in
practice fastmath exps in e.g. flash-attention softmax were never
lowered to `__spirv_ocl_native_exp`, hurting performance.
Handle size-1 vectors by unwrapping them to the scalar element type:
`vector.extract [0]` -> scalar native intrinsic -> `vector.broadcast`
back. `vector::ExtractOp`/`BroadcastOp` are marked legal in the
conversion target so the partial conversion does not roll back, and the
pass now depends on the Vector dialect.
---------
Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>
Commit: f5c5aee722763817448fcd0f7951853ea456be04
https://github.com/llvm/llvm-project/commit/f5c5aee722763817448fcd0f7951853ea456be04
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/test/MC/AMDGPU/ds-err.s
M llvm/test/MC/AMDGPU/flat.s
M llvm/test/MC/AMDGPU/regression/bug28538.s
M llvm/test/MC/AMDGPU/sop1-err.s
M llvm/test/MC/AMDGPU/sop2.s
M llvm/test/MC/AMDGPU/sopk-err.s
M llvm/test/MC/AMDGPU/sopp-err.s
M llvm/test/MC/AMDGPU/trap.s
M llvm/test/MC/AMDGPU/vop2-err.s
M llvm/test/MC/AMDGPU/vopc-errs.s
Log Message:
-----------
AMDGPU: Remove some assembler tests using dummy target (#212595)
In the future it will be illegal to do anything with a binary
without a specific subarch. Most of these were redundant with an
existing run line.
Commit: e5ac0f33554dbeca8b809a38b0aa228e4655bd18
https://github.com/llvm/llvm-project/commit/e5ac0f33554dbeca8b809a38b0aa228e4655bd18
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes d814f55 (#212610)
This fixes d814f55809820baee51a23eab92c24df8f5824ce (#211921).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=d814f55809820baee51a23eab92c24df8f5824ce
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 3b26f265c9608750c9f912b41e038a27fd595860
https://github.com/llvm/llvm-project/commit/3b26f265c9608750c9f912b41e038a27fd595860
Author: Wooseok Lee <wolee at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteKernelArguments.cpp
Log Message:
-----------
[AMDGPU][NFC] Document flat-to-global promotion assumption in AMDGPUP… (#212590)
…romoteKernelArguments
AMDGPUPromoteKernelArguments promotes flat pointer kernel arguments to
global by inserting a round-trip addrspacecast (flat -> global -> flat)
as a hint to InferAddressSpaces. Add a comment explaining why this is
valid: in the HSA offload model, the host populates kernarg slots at
dispatch time and can only supply global-aperture addresses, so any flat
pointer reachable from a kernel argument can be assumed to be in the
global aperture. This mirrors the same assumption made by
getAssumedAddrSpace in AMDGPUTargetMachine.cpp, which independently
promotes flat kernel arguments to global via InferAddressSpaces.
Commit: 93d45dce2fc704e28bacb1eea399fb9900385418
https://github.com/llvm/llvm-project/commit/93d45dce2fc704e28bacb1eea399fb9900385418
Author: Moazin K. <mkhatti at nvidia.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
M mlir/lib/Dialect/OpenACC/Transforms/ACCRoutineLowering.cpp
M mlir/test/Dialect/OpenACC/acc-routine-lowering.mlir
Log Message:
-----------
[OpenACC] Do not clean up nohost routines in `ACCRoutineLowering`. (#212534)
The design of the ACC routine lowering supports multiple device side
specializations of an ACC routine function. Earlier in the pipeline, all
calls to the function are expected to refer the original host function
and not their device side specialized versions. Once there is enough
parallelism context, the calls can be changed to point to the
appropriate specialized routine.
The nohost handling in `ACCRoutineLowering` goes against this design.
This change removes the special handling of nohost routines and this
clean up should be done in later passes.
Assisted-by: Codex
Commit: 2031237267b8fa2f7e3840de33fdb305963d7adf
https://github.com/llvm/llvm-project/commit/2031237267b8fa2f7e3840de33fdb305963d7adf
Author: Alex Langford <alangford at apple.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lldb/source/Plugins/Language/ObjC/CF.cpp
M lldb/source/Plugins/Language/ObjC/Cocoa.cpp
M lldb/source/Plugins/Language/ObjC/NSArray.cpp
M lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
M lldb/source/Plugins/Language/ObjC/NSError.cpp
M lldb/source/Plugins/Language/ObjC/NSException.cpp
M lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
M lldb/source/Plugins/Language/ObjC/NSSet.cpp
Log Message:
-----------
[lldb] Stop creating ConstStrings for ObjC framework type names (#211679)
For a given ObjC framework type (e.g. NSArray from Foundation), LLDB may
need to do something different to format the type correctly depending on
its backing implementation type. Many of these types have well known
variants that LLDB knows how to handle, but they need to be identified
on a case-by-case basis.
These type names were stored into ConstStrings but don't need to be.
Instead we can statically create a StringLiteral to avoid repeated
StringRef creation for these type names.
Commit: 7a3aa7da4c0254483ae32c6fa7f65d756026d56c
https://github.com/llvm/llvm-project/commit/7a3aa7da4c0254483ae32c6fa7f65d756026d56c
Author: Abhay Kanhere <a_kanhere at apple.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/test/Transforms/ConstraintElimination/reproducer-remarks.ll
M llvm/test/Transforms/ConstraintElimination/sub.ll
Log Message:
-----------
[ConstraintElim] decompose subtract with guard as precondition (#209615)
ConstraintElimination's unsigned constraint system already decomposes
`sub nuw a, b` into `a − b` (nuw guarantees b ≤ a),
The fix decomposes 'sub nsw a, b' or 'sub a , b' into 'a − b'
with precondition b u≤ a provided by dominating guard.
Motivating example is a bound check of the form that reaches CE.
```
int f(const int *a, int len, int k, unsigned n) {
if ((unsigned)k <= (unsigned)len && (unsigned)len <= n) {
int off = len - k; // sub nsw i32
if ((unsigned)off <= n) // survives instcombine; CE folds via off<=len<=n
return a[off];
}
return -1;
}
```
https://alive2.llvm.org/ce/z/e8vka7
Commit: 96d7cb506f1df1fb3e1f0fa3fa40610c62bc1d88
https://github.com/llvm/llvm-project/commit/96d7cb506f1df1fb3e1f0fa3fa40610c62bc1d88
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/X86/CostModel/store-scalarization-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/replicating-load-store-costs.ll
Log Message:
-----------
[LV] Add cost tests for store scalarization (NFC). (#212592)
Extra test coverage for tests where legacy cost model incorrectly
assumes predication.
Commit: 8dc4bb72970097b5cb9013d67537f0647707b179
https://github.com/llvm/llvm-project/commit/8dc4bb72970097b5cb9013d67537f0647707b179
Author: Sunil Shrestha <sunil.shrestha at hpe.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/test/Lower/OpenMP/interop.f90
M flang/test/Parser/OpenMP/interop-construct.f90
M flang/test/Semantics/OpenMP/init-clause.f90
M flang/test/Semantics/OpenMP/interop-construct.f90
Log Message:
-----------
[Flang][OpenMP] Fix interop-var handling and diagnostics (#203959) (#211693)
This change builds on top of the work done in PR #203959
- Diagnose interop destroy without an interop variable
- Lower array-element / derived-component interop-vars via their
designator
- Require interop-var to be a scalar integer of omp_interop_kind
- Remove "hsa" prefer_type (no omp_ifr_hsa in the runtime)
- Fix a latent bug in Parser/OpenMP/interop-construct.f90
Commit: 1cfa9292e38de7e66f5d6d1ef40eab1c8e02dca2
https://github.com/llvm/llvm-project/commit/1cfa9292e38de7e66f5d6d1ef40eab1c8e02dca2
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
Log Message:
-----------
[VPlan] Prepare replaceSymbolicStrides to handle plain CFG (NFC). (#212609)
Update replaceSymbolicStrides to use general getPlainCFGHeaderAndLatch
helper to make it more robust w.r.t. to pipeline changes.
Also tighten check for phis to skip replacement if loop executes
unconditionally.
Commit: c7c4ecea10bedd55d3ef8c8b9136f5d592d87c9e
https://github.com/llvm/llvm-project/commit/c7c4ecea10bedd55d3ef8c8b9136f5d592d87c9e
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
Log Message:
-----------
[VPlan] Prepare replaceSymbolicStrides to handle plain CFG (NFC). (#212609)
Update replaceSymbolicStrides to use general getPlainCFGHeaderAndLatch
helper to make it more robust w.r.t. to pipeline changes.
Also tighten check for phis to skip replacement if loop executes
unconditionally.
Commit: 74a90e28db0878a01583cd32de4269014c8ecb78
https://github.com/llvm/llvm-project/commit/74a90e28db0878a01583cd32de4269014c8ecb78
Author: dmaclach <dmaclach at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang-tools-extra/include-cleaner/lib/LocateSymbol.cpp
M clang-tools-extra/include-cleaner/unittests/LocateSymbolTest.cpp
Log Message:
-----------
[include-cleaner] Support ObjC interface and protocol declarations in LocateSymbol (#212617)
Treats forward declarations of Objective-C interfaces
(ObjCInterfaceDecl) and protocols (ObjCProtocolDecl) as incomplete,
allowing the symbol locator to prefer their definitions.
Also updates the unit tests to support Objective-C and adds test cases
for these declarations.
Also update the unit tests for forward declarations of enums and enum
classes.
Commit: 9b9dc9d501d9bff70208056439490f9987e2b38b
https://github.com/llvm/llvm-project/commit/9b9dc9d501d9bff70208056439490f9987e2b38b
Author: dmaclach <dmaclach at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/Tooling/Inclusions/HeaderIncludes.cpp
M clang/unittests/Tooling/HeaderIncludesTest.cpp
Log Message:
-----------
[include-cleaner]Support #import directives in HeaderIncludes (#212582)
This change updates HeaderIncludes to recognize #import directives in
addition to #include when parsing existing headers. It also fixes up an
existing issue parsing include/import statements that may have contained
tabs.
Commit: 8adefe858549981181c4fae81d77277047696f2e
https://github.com/llvm/llvm-project/commit/8adefe858549981181c4fae81d77277047696f2e
Author: dmaclach <dmaclach at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/Tooling/Inclusions/HeaderIncludes.cpp
Log Message:
-----------
[include-cleaner] Cleanup Headers and Warnings (#212570)
Add missing headers and get rid of warning about param name mismatch.
Commit: d8fb9ea73bb68e3d86a3fb7fffd2e038449af2c2
https://github.com/llvm/llvm-project/commit/d8fb9ea73bb68e3d86a3fb7fffd2e038449af2c2
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
A mlir/lib/Dialect/OpenACC/Transforms/ACCEmitRemarksData.cpp
M mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
A mlir/test/Dialect/OpenACC/acc-emit-remarks-data.mlir
Log Message:
-----------
[mlir][acc] Add pass to emit remarks for openacc data mapping (#212623)
This pass emits MLIR remarks for all OpenACC data mapping actions.
Intended to be used when all the data actions are committed (typically
right before codegen to call runtime).
Commit: 575898b60d805e6a7259a5db0a2d0ee9913f6790
https://github.com/llvm/llvm-project/commit/575898b60d805e6a7259a5db0a2d0ee9913f6790
Author: satyanarayana reddy janga <satyajanga at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lldb/source/Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp
A lldb/test/API/functionalities/process_save_core_minidump_size_of_image/Makefile
A lldb/test/API/functionalities/process_save_core_minidump_size_of_image/TestMinidumpSizeOfImage.py
A lldb/test/API/functionalities/process_save_core_minidump_size_of_image/main.c
A lldb/test/API/functionalities/process_save_core_minidump_size_of_image/testlib.c
Log Message:
-----------
[lldb][Minidump] Fix wrong variable in getModuleFileSize loop (#188363)
Use next_sect_sp instead of sect_sp when getting the byte size inside
the section-walking loop. Using the original sect_sp meant sect_size
never changed between iterations, producing an incorrect SizeOfImage and
risking an infinite loop when sections have different sizes.
Commit: 0eee6132fcccedd0ac9be9e445f74c62af537fbe
https://github.com/llvm/llvm-project/commit/0eee6132fcccedd0ac9be9e445f74c62af537fbe
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/X86/reassociate-ops.ll
Log Message:
-----------
[SLP][NFC]Add extra test for operand reassociation, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/212631
Commit: dc7e9df5d2d43db18bfccadb0e1bcc05a0ac8b84
https://github.com/llvm/llvm-project/commit/dc7e9df5d2d43db18bfccadb0e1bcc05a0ac8b84
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M .github/workflows/release-sources.yml
Log Message:
-----------
workflows/release-sources: Make sure to checkout all the composite actions (#212544)
Commit: b43247627d628ea5d901f0faebf15a099fa99d91
https://github.com/llvm/llvm-project/commit/b43247627d628ea5d901f0faebf15a099fa99d91
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/test/Driver/cuda-cross-compiling.c
Log Message:
-----------
[NVPTX] Fix typo 'pxtas-path' -> 'ptxas-path' in tool invocation (#212599)
Commit: e0a970988cd8fe749e24c21f9c4c833dab70ec03
https://github.com/llvm/llvm-project/commit/e0a970988cd8fe749e24c21f9c4c833dab70ec03
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Frontend/Offloading/Utility.cpp
M llvm/test/tools/llvm-offload-wrapper/offload-wrapper.ll
Log Message:
-----------
[LinkerWrapper] Retain the offloading entries section under --gc-sections (#212614)
Summary:
These sections are generated for 'relocatable' linking. Under
`--gc-sections` this could be stripped and then fail following links. We
sould mark it as used to ensure that these sections are retained.
Commit: efe202c769aa2cc772d50bed87af30199bb6b239
https://github.com/llvm/llvm-project/commit/efe202c769aa2cc772d50bed87af30199bb6b239
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libc/src/__support/CPP/new.cpp
M libc/src/__support/CPP/new.h
Log Message:
-----------
[libc][CPP] Fix ASan alloc-dealloc-mismatch in custom operator delete (#212629)
Bypass custom operator delete redirection in new.h and new.cpp when
building with AddressSanitizer (LIBC_HAS_ADDRESS_SANITIZER).
cpp::unique_ptr is the first heap-owning utility in src/__support/CPP/
that executes delete/delete[] expressions. Previously, new.h redirected
operator delete via asm-renaming to __llvm_libc_delete (calling free()),
which caused ASan to report an alloc-dealloc-mismatch (operator new vs
free) when objects allocated via host operator new were deleted by
cpp::unique_ptr.
Guarding the custom operator delete implementations under ASan enables
ASan deallocation tracking while preserving hermetic libc behavior for
non-ASan builds.
Assisted-by: Automated tooling, human reviewed.
Commit: 9f761055cfdb4ffed8c7f70a1c896837490df691
https://github.com/llvm/llvm-project/commit/9f761055cfdb4ffed8c7f70a1c896837490df691
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
A llvm/test/CodeGen/AMDGPU/GlobalISel/fptrunc.bf16.ll
M llvm/test/CodeGen/AMDGPU/fmed3-cast-combine.ll
M llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll
Log Message:
-----------
AMDGPU/GlobalISel: Lower bf16 G_FPTRUNC from f32 and f64 (#212302)
Port the SDAG bf16 fptrunc lowering to GlobalISel.
Commit: c6f775c5fa370eb2b97f7047781654337134eb10
https://github.com/llvm/llvm-project/commit/c6f775c5fa370eb2b97f7047781654337134eb10
Author: Kewen Meng <Kewen.Meng at amd.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
R llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ballot.i32.wave64.err.ll
Log Message:
-----------
Revert "[AMDGPU] Fix llvm.amdgcn.ballot with return width != wavefront size" (#212628)
Reverts llvm/llvm-project#211493
unblock bot: https://lab.llvm.org/buildbot/#/builders/232
Commit: 33d2c6ad8c342d40aa443afb7dd03ad0af0e103c
https://github.com/llvm/llvm-project/commit/33d2c6ad8c342d40aa443afb7dd03ad0af0e103c
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libc/include/CMakeLists.txt
Log Message:
-----------
[libc] Add missing type dependencies to sys_types header target (#212601)
Add missing type dependencies to the sys_types header target in
libc/include/CMakeLists.txt for types defined in sys/types.yaml,
including __off_t, __off64_t, __uint64_t, off64_t, and BSD/System V
types added in commit 39df67d0edef.
Without these DEPENDS entries, CMake and Ninja do not copy the
corresponding type headers into the build and install directories,
causing missing header includes (e.g. __off64_t.h) when consuming
generated <sys/types.h>.
Assisted-by: Automated tooling, human reviewed.
Commit: 2a58643cc3b00c8904a6dcc8f3a12ee6444ddf68
https://github.com/llvm/llvm-project/commit/2a58643cc3b00c8904a6dcc8f3a12ee6444ddf68
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes efe202c (#212637)
This fixes efe202c769aa2cc772d50bed87af30199bb6b239 (#212629).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=efe202c769aa2cc772d50bed87af30199bb6b239
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 4361bc96c73bc85592d19a5aab504ee1a97525c7
https://github.com/llvm/llvm-project/commit/4361bc96c73bc85592d19a5aab504ee1a97525c7
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M flang/test/Parser/acc-unparse.f90
M flang/test/Semantics/OpenACC/acc-loop.f90
M llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
Log Message:
-----------
[flang][openacc] Allow blank around ':' in generated clause parser with keyword (#212638)
Follow up to https://github.com/llvm/llvm-project/pull/210446 to also
allow the space in the parser generated by TableGen.
Commit: 6d1ace547c9f9ecf7df9ab87e2db74b5bd3f199d
https://github.com/llvm/llvm-project/commit/6d1ace547c9f9ecf7df9ab87e2db74b5bd3f199d
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M libc/src/__support/CPP/CMakeLists.txt
M libc/src/__support/CPP/new.cpp
M libc/src/__support/CPP/new.h
M libc/src/__support/CPP/type_traits.h
R libc/src/__support/CPP/unique_ptr.h
M libc/src/__support/macros/attributes.h
M libc/test/src/__support/CPP/CMakeLists.txt
R libc/test/src/__support/CPP/unique_ptr_test.cpp
Log Message:
-----------
Revert "[libc] Implement cpp::unique_ptr utility" (#212644)
Reverts efe202c769aa2cc772d50bed87af30199bb6b239 and
83dfacdbda1a8b87c1f170ec6ce4e240e1fa79db.
Reverts #212629 and #206701.
Commit: c35bdc99a36bd518ff59b6cb209e84a5c7df24e1
https://github.com/llvm/llvm-project/commit/c35bdc99a36bd518ff59b6cb209e84a5c7df24e1
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lldb/bindings/python/CMakeLists.txt
M lldb/bindings/python/python-wrapper.swig
M lldb/docs/CMakeLists.txt
A lldb/examples/python/templates/scripted_command.py
M lldb/include/lldb/API/SBCommandReturnObject.h
M lldb/include/lldb/API/SBDebugger.h
A lldb/include/lldb/Interpreter/Interfaces/ScriptedCommandInterface.h
M lldb/include/lldb/Interpreter/ScriptInterpreter.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/include/lldb/lldb-forward.h
M lldb/source/API/SBCommandReturnObject.cpp
A lldb/source/API/SBCommandReturnObjectImpl.h
M lldb/source/Commands/CommandObjectCommands.cpp
M lldb/source/Interpreter/ScriptInterpreter.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptInterpreterPythonInterfaces.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptInterpreterPythonInterfaces.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedCommandPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedCommandPythonInterface.h
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h
M lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
M lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp
Log Message:
-----------
[lldb/script] Migrate ParsedCommand & raw commands onto ScriptedPythonInterface (#210430)
Give both `command script add -c` (raw class) and `-p` (ParsedCommand) a
single, shared
`ScriptedCommandInterface`/`ScriptedCommandPythonInterface`, built on
the existing `ScriptedPythonInterface` machinery: `CreatePluginObject`
delegates to the base template, and every other method goes through
`Dispatch`.
Add a lighter `ScriptedCommand` ABC template (`scripted_command.py`) for
raw mode; the existing `ParsedCommand`/`LLDBOptionValueParser` classes
are kept as-is.
Extend `ScriptedPythonInterface` with a few `Transform` overloads
(`DebuggerSP`, `std::vector<std::string>`, `CommandReturnObject &`) so
those argument types route through `Dispatch` without extra plumbing.
Delete the standalone SWIG bridge functions this plugin was the sole
caller of. `CommandObjectScriptingObjectRaw` and
`CommandObjectScriptingObjectParsed` now hold a
`ScriptedCommandInterfaceSP` instead of a raw
`StructuredData::GenericSP`; `command script add`'s `DoExecute`
constructs the interface once via
`CreateScriptedCommandInterface()->CreatePluginObject` for either flag.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Commit: a13822ff14b6e4082caa553b230beb1a7252cb8e
https://github.com/llvm/llvm-project/commit/a13822ff14b6e4082caa553b230beb1a7252cb8e
Author: hulxv <hulxxv at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M compiler-rt/lib/builtins/CMakeLists.txt
A compiler-rt/lib/builtins/adddf3.cpp
A compiler-rt/lib/builtins/addsf3.cpp
M compiler-rt/lib/builtins/addtf3.cpp
A compiler-rt/lib/builtins/divdf3.cpp
A compiler-rt/lib/builtins/divsf3.cpp
A compiler-rt/lib/builtins/divtf3.cpp
M compiler-rt/lib/builtins/fp_lib.h
A compiler-rt/lib/builtins/muldf3.cpp
A compiler-rt/lib/builtins/mulsf3.cpp
A compiler-rt/lib/builtins/multf3.cpp
A compiler-rt/lib/builtins/negdf2.cpp
A compiler-rt/lib/builtins/negsf2.cpp
M compiler-rt/lib/builtins/subdf3.c
A compiler-rt/lib/builtins/subdf3.cpp
M compiler-rt/lib/builtins/subsf3.c
A compiler-rt/lib/builtins/subsf3.cpp
A compiler-rt/lib/builtins/subtf3.cpp
M libc/shared/builtins.h
A libc/shared/builtins/negdf2.h
A libc/shared/builtins/negsf2.h
M libc/src/__support/builtins/CMakeLists.txt
A libc/src/__support/builtins/negdf2.h
A libc/src/__support/builtins/negsf2.h
M libc/test/shared/CMakeLists.txt
M libc/test/shared/shared_builtins_test.cpp
Log Message:
-----------
[compiler-rt][builtins] add libc-backed arithmetic builtins (#207092)
Add libc-backed arithmetic builtins
Depends on #197950
Part of #197824
Commit: f1ba92abeffcd4d262d70843fa083c10b179cb4d
https://github.com/llvm/llvm-project/commit/f1ba92abeffcd4d262d70843fa083c10b179cb4d
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedCommandPythonInterface.cpp
Log Message:
-----------
[lldb] Include `Debugger.h` in `ScriptedCommandPythonInterface.cpp` (NFC) (#212662)
Commit c35bdc99a36b passes a `lldb::DebuggerSP` to the
`ScriptedPythonInterface` base template, whose `Transform` overload is
constrained on `std::is_base_of_v` and so needs `Debugger` to be
complete. This patch includes `lldb/Core/Debugger.h` since the
translation unit only saw the forward declaration.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Commit: b3607548955c1ad318ea5b2019ea95b64c93ebe8
https://github.com/llvm/llvm-project/commit/b3607548955c1ad318ea5b2019ea95b64c93ebe8
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes c35bdc9 (#212659)
This fixes c35bdc99a36bd518ff59b6cb209e84a5c7df24e1 (#210430).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=c35bdc99a36bd518ff59b6cb209e84a5c7df24e1
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: e73371acbc8f0eb70e8392d9a560fe0445486571
https://github.com/llvm/llvm-project/commit/e73371acbc8f0eb70e8392d9a560fe0445486571
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
A .ci/monolithic-macos.sh
M .github/workflows/premerge.yaml
Log Message:
-----------
[premerge] Route macOS build through a monolithic script to enable Job Summary (#211565)
The macOS premerge job built inline instead of via a `monolithic-*.sh`
script, so it never emitted a GitHub Job Summary or JUnit XML like
Linux/Windows do on failure
Commit: 1d4e04f7a7c2669dd652861e7dccc22f67ab3355
https://github.com/llvm/llvm-project/commit/1d4e04f7a7c2669dd652861e7dccc22f67ab3355
Author: Demetrius Kanios <demetrius at kanios.net>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M clang/lib/CodeGen/CGException.cpp
M clang/test/CodeGen/WebAssembly/wasm-eh.ll
M libcxxabi/src/cxa_personality.cpp
M libunwind/include/unwind.h
A libunwind/include/unwind_wasm.h
M libunwind/src/Unwind-wasm.c
M llvm/include/llvm/IR/RuntimeLibcalls.td
M llvm/lib/CodeGen/WasmEHPrepare.cpp
M llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll
M llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.mir
M llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll
M llvm/test/CodeGen/WebAssembly/eh-lsda.ll
M llvm/test/CodeGen/WebAssembly/exception-legacy.ll
M llvm/test/CodeGen/WebAssembly/exception-legacy.mir
M llvm/test/CodeGen/WebAssembly/exception.ll
M llvm/test/CodeGen/WebAssembly/function-info.mir
M llvm/test/CodeGen/WebAssembly/lower-wasm-ehsjlj-phi.ll
M llvm/test/CodeGen/WebAssembly/lower-wasm-ehsjlj.ll
M llvm/test/CodeGen/WebAssembly/wasm-eh-em-sjlj-error.ll
M llvm/test/CodeGen/WebAssembly/wasm-eh-invalid-personality.ll
M llvm/test/CodeGen/WebAssembly/wasm-eh-prepare.ll
M llvm/test/CodeGen/WebAssembly/wasm-eh-sjlj-setjmp-within-catch.ll
M llvm/test/Transforms/ExpandVariadics/invoke.ll
M llvm/test/Transforms/InstCombine/catchswitch-phi.ll
M llvm/test/Transforms/PGOProfile/memop_profile_funclet_wasm.ll
M llvm/test/Transforms/SROA/phi-catchswitch.ll
M llvm/test/Transforms/SimpleLoopUnswitch/catchswitch.ll
M llvm/test/Transforms/SimplifyCFG/cleanup-phis.ll
Log Message:
-----------
[WebAssembly] Call EH personality function instead of `Unwind_CallPersonality` (#209282)
On Wasm, it's not currently possibly to change which `personality` is
attached to a given IR function. This is primarily because no matter
what `personality` is attached, codegen creates a call to a
`Unwind_CallPersonality` wrapper hard-coded to call c++abi's
personality.
In order to allow alternative personalities without introducing bloat at
each personality call site, this PR adjusts the ABI of the personality
on Wasm. `Unwind_CallPersonality` is moved to `libcxxabi` under the name
`__gxx_wasm_personality_v0`, with the "real" personality code renamed
`__gxx_personality_imp` and called by `__gxx_wasm_personality_v0` (after
resetting the landing pad context).
The signature of EH personalities on Wasm is now `int personality(void*
exception_object)` (where the int return is `_Unwind_Reason_Code` and
the `void*` is `_Unwind_Exception*`), and personalities are expected to
`__wasm_lpad_context.selector = 0;`.
Based on #175202
Commit: 78f84b6ded1f30703faa148ab2c9fd6d0c5a40b7
https://github.com/llvm/llvm-project/commit/78f84b6ded1f30703faa148ab2c9fd6d0c5a40b7
Author: Pradeep Kumar <pradeepku at nvidia.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/lib/AST/MicrosoftMangle.cpp
M llvm/include/llvm/ADT/APFloat.h
M llvm/lib/Support/APFloat.cpp
M llvm/unittests/ADT/APFloatTest.cpp
Log Message:
-----------
[LLVM][APFloat] Add APFloat support for 8-bit UE5M3 type (#210720)
This commit adds APFloat support for UE5M3 type and the associated tests. It is an 8 bit FP type with no sign bit, 5 exponent and 3 mantissa bits
| Property | Value |
|-----------------|------------|
| Max exponent | 31 |
| Bias | 15 |
| Zero encoding | 00000 000 |
| Smallest denorm | 00000 001 |
| Largest denorm | 00000 111 |
| Smallest norm | 00001 000 |
| Largest norm | 11111 110 |
| Canonical NaN | 11111 111 |
Please refer [PTX ISA](https://docs.nvidia.com/cuda/developer-preview/13.4/parallel-thread-execution/index.html#alternate-floating-point-data-formats) for more info
Assisted by: Claude Code (Opus 4.8)
Commit: fd364511f721451771970b39c3d61593eda508c9
https://github.com/llvm/llvm-project/commit/fd364511f721451771970b39c3d61593eda508c9
Author: Lang Hames <lhames at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/Core.h
M llvm/lib/ExecutionEngine/Orc/Core.cpp
M llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
Log Message:
-----------
[ORC] Remove SymbolInstance class. (#212665)
This class had only one user, and no tests. Remove it for now and update
the single user to call ExecutionSession::lookup directly.
Commit: bb33de72920a7a62633af0f1ab484d114a07fe7f
https://github.com/llvm/llvm-project/commit/bb33de72920a7a62633af0f1ab484d114a07fe7f
Author: Heejin Ahn <aheejin at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M lld/test/wasm/lto/libcall-archive-bitcode.ll
M llvm/test/CodeGen/WebAssembly/immutable-global-alias.ll
M llvm/test/CodeGen/WebAssembly/imported-const-global.ll
Log Message:
-----------
[WebAssembly] Add a newline at end of file (#212674)
Some tests files lack a newline at end of file. This adds it.
Commit: e91c8a4c204340ef344916dc1007cc538170e0f4
https://github.com/llvm/llvm-project/commit/e91c8a4c204340ef344916dc1007cc538170e0f4
Author: Fangrui Song <i at maskray.me>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
M llvm/lib/CodeGen/DetectDeadLanes.cpp
M llvm/lib/CodeGen/ExpandPostRAPseudos.cpp
M llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
M llvm/lib/CodeGen/InitUndef.cpp
M llvm/lib/CodeGen/LiveRangeShrink.cpp
M llvm/lib/CodeGen/MachineCSE.cpp
M llvm/lib/CodeGen/MachineCombiner.cpp
M llvm/lib/CodeGen/MachineCopyPropagation.cpp
M llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp
M llvm/lib/CodeGen/MachineScheduler.cpp
M llvm/lib/CodeGen/MachineSink.cpp
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
M llvm/lib/CodeGen/PostRASchedulerList.cpp
M llvm/lib/CodeGen/ProcessImplicitDefs.cpp
M llvm/lib/CodeGen/PrologEpilogInserter.cpp
M llvm/lib/CodeGen/RegAllocBasic.cpp
M llvm/lib/CodeGen/RegAllocGreedy.cpp
M llvm/lib/CodeGen/RegAllocPBQP.cpp
M llvm/lib/CodeGen/RegisterCoalescer.cpp
M llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp
M llvm/lib/CodeGen/RenameIndependentSubregs.cpp
M llvm/lib/CodeGen/StackSlotColoring.cpp
M llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
M llvm/lib/CodeGen/TypePromotion.cpp
M llvm/lib/CodeGen/XRayInstrumentation.cpp
M llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
M llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp
M llvm/lib/Target/AArch64/AArch64PTrueCoalescing.cpp
M llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp
M llvm/lib/Target/AArch64/AArch64SRLTDefineSuperRegs.cpp
M llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
M llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPURewriteUndefForPHI.cpp
M llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
M llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp
M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
M llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
M llvm/lib/Target/ARC/ARCOptAddrMode.cpp
M llvm/lib/Target/ARM/MVETailPredication.cpp
M llvm/lib/Target/Hexagon/HexagonLiveVariables.cpp
M llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
M llvm/lib/Target/Mips/MipsPostLegalizerCombiner.cpp
M llvm/lib/Target/RISCV/GISel/RISCVPostLegalizerCombiner.cpp
M llvm/lib/Target/RISCV/GISel/RISCVPreLegalizerCombiner.cpp
M llvm/lib/Target/RISCV/RISCVDeadRegisterDefinitions.cpp
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
M llvm/lib/Target/SPIRV/SPIRVPreLegalizerCombiner.cpp
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyPostLegalizerCombiner.cpp
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyPreLegalizerCombiner.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
M llvm/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp
M llvm/lib/Target/X86/GISel/X86PostLegalizerCombiner.cpp
M llvm/lib/Target/X86/GISel/X86PreLegalizerCombiner.cpp
M llvm/lib/Target/X86/X86ExpandPseudo.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
M llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
M llvm/lib/Transforms/Scalar/Reassociate.cpp
M llvm/lib/Transforms/Scalar/Sink.cpp
M llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
M llvm/lib/Transforms/Utils/LCSSA.cpp
M llvm/lib/Transforms/Utils/MoveAutoInit.cpp
Log Message:
-----------
Remove analysis preservations subsumed by CFG preservation. NFC (#212672)
Legacy PM: setPreservesCFG() adds every pass registered as CFG-only
(dominator/post-dominator trees, loop/cycle info, block frequency,
register class info, BasicAA, ...) to the preserved set, so a separate
addPreserved<X> for such X is a no-op, as is
addPreservedID(MachineDominatorsID) / addPreservedID(MachineLoopInfoID).
New PM: preserveSet<CFGAnalyses>() keeps every result whose invalidate()
accepts the CFGAnalyses set, making an explicit preserve<X>() on the
same PreservedAnalyses redundant. SLPVectorizer, AggressiveInstCombine
and SROA keep their explicit preserves, which are load-bearing on paths
that change the CFG.
Suggested by jmmartinez in
https://github.com/llvm/llvm-project/pull/212430#discussion_r3664131067
Aided by Claude Fable 5
Commit: 10ce0f74886f04a78b1183b598a656cb0957b15a
https://github.com/llvm/llvm-project/commit/10ce0f74886f04a78b1183b598a656cb0957b15a
Author: Congzhe Cao <congzhe.cao at huawei.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
A llvm/test/Transforms/PGOProfile/icp_hot_func_threshold.ll
Log Message:
-----------
[ICP] Introduce a hot function cutoff threshold for ICP (#208060)
Introduce a new hot function cutoff threshold specific to Indirect Call
Promotion (ICP) that can enable promotion of more indirect call targets.
Currently by default the threshold value is the same as the general
threshold `ProfileSummaryCutoffHot` that had also been used for ICP, so
by default the ICP behavior stays exactly the same unless users
specify some other value for the new threshold `-hot-func-cutoff-for-icp`.
Commit: c2fa4128681863d92b2fe1615beb73e2ed62876f
https://github.com/llvm/llvm-project/commit/c2fa4128681863d92b2fe1615beb73e2ed62876f
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/lib/Basic/Targets/AMDGPU.cpp
M clang/lib/Sema/CMakeLists.txt
R llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/include/llvm/TargetParser/CMakeLists.txt
M llvm/include/module.install.modulemap
M llvm/include/module.modulemap
M llvm/lib/Target/AMDGPU/AMDGPUTargetParser.td
M llvm/lib/Target/AMDGPU/GCNProcessors.td
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/test/TableGen/AMDGPUTargetDefErrors.td
M llvm/utils/TableGen/Basic/AMDGPUTargetDefEmitter.cpp
Log Message:
-----------
AMDGPU: Generate TargetParser table from TableGen (#212353)
Migrate .def file to tablegen. The initial TargetParser
AMDGPU backend only handled R600. Extend to modern targets.
Stub out some tablegen definitions which will be used in future
changes.
Co-authored-by: Claude (Claude-Opus-4.8)
Commit: ab993800519301853d4dfebcf4aa454d95938ee4
https://github.com/llvm/llvm-project/commit/ab993800519301853d4dfebcf4aa454d95938ee4
Author: AZero13 <gfunni234 at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/X86/X86InstrAVX512.td
M llvm/lib/Target/X86/X86InstrSSE.td
M llvm/test/CodeGen/X86/fp-strict-scalar-inttofp-fp16.ll
M llvm/test/CodeGen/X86/stack-folding-fp-avx1.ll
A llvm/test/CodeGen/X86/vector-sint-to-fp-zero.ll
A llvm/test/CodeGen/X86/vector-uint-to-fp-zero.ll
Log Message:
-----------
[X86] Fix redundant zeroing operations when casting ints to FP vectors (#212065)
Commit: 4e326b492aadea4b65f19b5581b0b3e52e8aaed3
https://github.com/llvm/llvm-project/commit/4e326b492aadea4b65f19b5581b0b3e52e8aaed3
Author: Fangrui Song <i at maskray.me>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
Log Message:
-----------
[BFI] Remove redundant getHeaderIndex lookup in adjustLoopHeaderMass. NFC (#212679)
getHeaderIndex(Loop.Nodes[H]) is H.
Commit: cf8b0ad96a57570695fba02013590939ffe36af9
https://github.com/llvm/llvm-project/commit/cf8b0ad96a57570695fba02013590939ffe36af9
Author: Anutosh Bhat <andersonbhat491 at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
A llvm/test/Analysis/CostModel/WebAssembly/cast.ll
Log Message:
-----------
[WebAssembly] Fix v8i16-to-v8f32 uitofp cost (#212501)
I think there was a wrong duplication here. The WebAssembly SIMD
conversion cost table accidentally duplicated the
`UINT_TO_FP` entry for `v8i8` to `v8f32`. As a result, the unsigned
`v8i16` to `v8f32` conversion missed the target-specific table entry and
fell back to the generic cost of 5 instead of the intended cost of 10.
I've added ` llvm/test/Analysis/CostModel/WebAssembly/cast.ll` which I
think is good here as it would help test other casting errors in the
future too.
Commit: 40f95afe42db06e2f4226353039de96d66b5d18e
https://github.com/llvm/llvm-project/commit/40f95afe42db06e2f4226353039de96d66b5d18e
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes c2fa412 (#212688)
This fixes c2fa4128681863d92b2fe1615beb73e2ed62876f (#212353).
Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=c2fa4128681863d92b2fe1615beb73e2ed62876f
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: f4382bedc245a22ea7c354d08eb13543166a5f0d
https://github.com/llvm/llvm-project/commit/f4382bedc245a22ea7c354d08eb13543166a5f0d
Author: dong jianqiang <dongjianqiang2 at huawei.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
M llvm/test/CodeGen/ARM/elf-preemption.ll
Log Message:
-----------
[ARM] Exclude TLS symbols from the .reloc/R_ARM_REL32 path (#212549)
The .reloc branch in emitMachineConstantPoolValue fired for any
isWeakForLinker() + isDSOLocal() symbol, including TLS (thread_local)
weak symbols. R_ARM_REL32 is wrong for TLS: TLS symbols need
TLS-specific relocations (R_ARM_TLS_GD32 etc.). Using R_ARM_REL32 for a
TLS symbol produces a wrong address at runtime.
This broke the 2-stage ARM 32-bit buildbots: stage 1 (with the .reloc
branch) miscompiled stage 2's BPF codegen (BTFDebug.cpp references
llvm::sys::sandbox::Enabled, an inline thread_local weak variable),
causing a SIGSEGV in the BPF Assembly Printer.
Add a regression test (tls_weak_var in elf-preemption.ll) verifying that
TLS weak symbols get TLSGD/TPOFF, not R_ARM_REL32.
Fix #212545
Commit: ad300a7712f3506e702501097ddfe6b322cfa0fb
https://github.com/llvm/llvm-project/commit/ad300a7712f3506e702501097ddfe6b322cfa0fb
Author: Marc Auberer <marc.auberer at chillibits.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/include/llvm/IR/Instruction.h
M llvm/lib/IR/Instruction.cpp
Log Message:
-----------
[IR] Remove deprecated InsertPosition(Instruction*) constructor (#212640)
This implicit constructor has been marked deprecated since almost 2
years in favor of constructing an InsertPosition from a
BasicBlock::iterator.
Remove it now that in-tree users no longer rely on it.
Co-authored-by: Claude <noreply at anthropic.com>
Commit: 9cdb4219e8edb617076a8c1a118cce119179e288
https://github.com/llvm/llvm-project/commit/9cdb4219e8edb617076a8c1a118cce119179e288
Author: lorenzo chelini <l.chelini at icloud.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M mlir/test/IR/invalid-ops.mlir
M mlir/test/lib/Dialect/Test/TestOpsSyntax.td
M mlir/test/mlir-tblgen/op-format.mlir
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
Log Message:
-----------
[MLIR] Validate directly parsed optional operand types (#212493)
Commit 6c51938067fa ([MLIR] Guard optional operand resolution in
generated op parsers) guarded resolution of every optional operand to
avoid indexing an empty inferred type range. The guard also skipped
resolveOperands when an optional operand was absent but an independently
optional type directive was present. This accepted malformed assembly
and silently discarded the orphan type when printing the operation.
Keep the guard for inferred type resolutions, which may access an empty
optional type vector, but always resolve directly parsed type ranges so
resolveOperands validates operand/type cardinality. Add coverage for
both valid forms and a type-only negative reproducer.
Commit: 52f6c88c2c1b6f0c10b9c8fb09ec35e147c593e3
https://github.com/llvm/llvm-project/commit/52f6c88c2c1b6f0c10b9c8fb09ec35e147c593e3
Author: David Green <david.green at arm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/include/llvm/CodeGen/ValueTypes.h
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/NVPTX/NVPTXUtilities.h
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Transforms/Utils/LoopUnroll.cpp
Log Message:
-----------
[Codegen] Replace any_of with is_contained. NFC (#212289)
A new operator== for SVT and EVT was apparently needed with reverse
operands.
Commit: 3df3102da5c0ebb5d32a9146f6b0aec925bc4742
https://github.com/llvm/llvm-project/commit/3df3102da5c0ebb5d32a9146f6b0aec925bc4742
Author: Fangrui Song <i at maskray.me>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M lld/test/ELF/hexagon-thunk-range-b22rel.s
M lld/test/ELF/ppc32-call-stub-nopic.s
M lld/test/ELF/ppc32-call-stub-pic.s
M lld/test/ELF/ppc32-long-thunk.s
M lld/test/ELF/ppc64-call-reach.s
M lld/test/ELF/ppc64-ifunc.s
M lld/test/ELF/ppc64-long-branch-pi.s
M lld/test/ELF/ppc64-long-branch-rel14.s
M lld/test/ELF/ppc64-long-branch.s
Log Message:
-----------
[test] Migrate Hexagon/PowerPC thunk tests to the default thunk order (#212693)
Drop -z nosort-thunks (added by #211721 to keep creation order) and
update expectations to the default order: forward thunks sorted by
descending destination.
Commit: a7b2a20f01681186bb6872c077a52e22632db9ad
https://github.com/llvm/llvm-project/commit/a7b2a20f01681186bb6872c077a52e22632db9ad
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticASTKinds.td
M clang/lib/AST/ByteCode/InterpHelpers.h
M clang/lib/AST/ByteCode/InterpState.cpp
M clang/lib/AST/ByteCode/State.cpp
M clang/lib/AST/ByteCode/State.h
M clang/lib/AST/ExprConstant.cpp
M clang/test/AST/ByteCode/constexpr-steps.cpp
M clang/test/AST/ByteCode/dynalloc-limits.cpp
M clang/test/SemaCXX/constexpr-function-recovery-crash.cpp
M clang/test/SemaCXX/constexpr-steps.cpp
M clang/test/SemaCXX/cxx2a-constexpr-dynalloc-limits.cpp
M clang/test/SemaCXX/cxx2c-expansion-stmts.cpp
Log Message:
-----------
[clang] Improve diagnostics around constexpr limits (#212091)
1) Mention the limit in the "constexpr evaluation hit maximum step
limit" diagnostic as well
2) Move the "use -fconstexpr-steps" instruction to its own note so we
can reuse it for two different diagnostics
For
```c++
struct S {
constexpr S() {}
};
constexpr S foo[1'500'000] = {};
```
we used to emit
```console
array.cpp:1028:13: error: constexpr variable 'foo' must be initialized by a constant expression
1028 | constexpr S foo[1'500'000] = {};
| ^ ~~
array.cpp:1026:17: note: constexpr evaluation hit maximum step limit; possible infinite loop?
1026 | constexpr S() {}
| ^
array.cpp:1028:31: note: in call to 'S()'
1028 | constexpr S foo[1'500'000] = {};
| ^
```
and now we emit
```console
array.cpp:1028:13: error: constexpr variable 'foo' must be initialized by a constant expression
1028 | constexpr S foo[1'500'000] = {};
| ^ ~~
array.cpp:1026:17: note: constexpr evaluation hit maximum step limit of 1048576; possible infinite loop?
1026 | constexpr S() {}
| ^
array.cpp:1028:31: note: in call to 'S()'
1028 | constexpr S foo[1'500'000] = {};
| ^
array.cpp:1026:17: note: use -fconstexpr-steps= to increase this limit (=0 will remove the limit)
1026 | constexpr S() {}
```
Commit: 8c5193b41f2f1f5fb704a70e1f4bb7c0153d2d9d
https://github.com/llvm/llvm-project/commit/8c5193b41f2f1f5fb704a70e1f4bb7c0153d2d9d
Author: Raul Tambre <raul at tambre.ee>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M lldb/test/Shell/Settings/TestCxxFrameFormatRecursive.test
Log Message:
-----------
[lldb][test] Use C++ frontend for building C++ test file (#212611)
Commit: 9ba969c46204e4723cf4b5720a34fc537ce2d458
https://github.com/llvm/llvm-project/commit/9ba969c46204e4723cf4b5720a34fc537ce2d458
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_tensor_float32_conversion/tf32-conv.ll
A llvm/test/CodeGen/SPIRV/get-global-id-non-integer-dim.ll
Log Message:
-----------
[SPIR-V] Reject builtin calls if mangled argument types do not match the IR (#208152)
Commit: 83ed1d0925ef5523e3be4f182db1df712ed490fa
https://github.com/llvm/llvm-project/commit/83ed1d0925ef5523e3be4f182db1df712ed490fa
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
Log Message:
-----------
[NFC][SPIR-V] Add constrainSelectedInstRegOperands helper to dedup repeating pattern in global registry (#208703)
Commit: f193d19d2127023966cbeb6ccf1487f975f53acc
https://github.com/llvm/llvm-project/commit/f193d19d2127023966cbeb6ccf1487f975f53acc
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/test/CodeGen/SPIRV/hlsl-resources/NonUniformIdx/RWBufferNonUniformIdxLoop.ll
Log Message:
-----------
[SPIR-V] Fix OpDecorate insertion point for non-PHI defs in decorateUsesAsNonUniform (#212524)
Inserting before the defining instruction placed the decoration ahead of
its own operand, breaking dominance for the loop-carried case
Fix machine code errors from
https://github.com/llvm/llvm-project/pull/208224#issuecomment-5095074660
Commit: b2b5c13f69e4cfcba339967e0c16b06b081b5e2e
https://github.com/llvm/llvm-project/commit/b2b5c13f69e4cfcba339967e0c16b06b081b5e2e
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang-tools-extra/docs/clang-tidy/checks/modernize/redundant-void-arg.md
Log Message:
-----------
[clang-tidy][docs] Fix broken redundant-void-arg documentation. NFC. (#212692)
Commit: acd22eec9e79b69515aa2204dc96dcfa3ff0d387
https://github.com/llvm/llvm-project/commit/acd22eec9e79b69515aa2204dc96dcfa3ff0d387
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Record.cpp
M clang/lib/AST/ByteCode/Record.h
Log Message:
-----------
[clang][bytecode][NFC] Add Record::findField to look up fields by offset (#212697)
Commit: 9cd13c11bacc9a5b83640a7168ab0f51160e4ee0
https://github.com/llvm/llvm-project/commit/9cd13c11bacc9a5b83640a7168ab0f51160e4ee0
Author: 222rohan <rohanshenoy405 at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/X86/X86.td
Log Message:
-----------
[X86] Remove TuningFastSHLDRotate from BMI2 targets (#211217)
This flag has no effect at `x86-64-v3` or `v4`. It only enables a pseudo
that lowers `rotl`/`rotr` by immediate to `shld $imm, %reg, %reg`, but a
higher-priority `RORX` pattern matches the same case and always wins the
iSel tie.
Both patterns match `rotl(GR64, imm)`; only their `AddedComplexity`
differs:
```
// X86InstrShiftRotate.td:507 -- SHLD-rotate pseudo, complexity 5
let Predicates = [HasFastSHLDRotate], AddedComplexity = 5, ... in {
def SHLDROT64ri : ... [(set GR64:$dst, (rotl GR64:$src1, (i8 imm:$shamt)))]>;
}
// X86InstrShiftRotate.td:602 -- RORX pattern, complexity 10, only needs BMI2
let AddedComplexity = 10 in {
def : Pat<(rotl GR64:$src, (i8 imm:$shamt)),
(RORX64ri GR64:$src, (ROT64L2R_imm8 imm:$shamt))>;
}
```
LLVM's iSel always picks `RORX`, and it only requires BMI2, which is
part of `x86-64-v3` and up, so it is picked unconditionally on every
v3/v4 build regardless of `TuningFastSHLDRotate`.
No codegen change; existing lit tests unaffected.
Commit: 17df4290daed63acd8171af570fa8b6190d758f0
https://github.com/llvm/llvm-project/commit/17df4290daed63acd8171af570fa8b6190d758f0
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/test/AST/ByteCode/builtin-object-size-codegen.cpp
Log Message:
-----------
[clang][bytecode][NFC] Add CHECK markers for functions in test (#212699)
We aren't testing the existence of the function in the output here, but
without these markers, debugging test failures here can become very
cumbersome.
Commit: a6614ee07b916785321eb046d525374a022b8ebb
https://github.com/llvm/llvm-project/commit/a6614ee07b916785321eb046d525374a022b8ebb
Author: StoeckOverflow <95052643+StoeckOverflow at users.noreply.github.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/include/clang/APINotes/APINotesReader.h
M clang/include/clang/APINotes/Types.h
M clang/include/clang/Sema/Sema.h
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/APINotes/APINotesReader.cpp
M clang/lib/APINotes/APINotesTypes.cpp
M clang/lib/APINotes/APINotesYAMLCompiler.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaAPINotes.cpp
A clang/lib/Sema/SemaAPINotesInternal.h
A clang/test/APINotes/where-parameters-diagnostics.cpp
Log Message:
-----------
[APINotes] Diagnose invalid Where.Parameters selectors (#209408)
This PR adds diagnostics for exact `Where.Parameters` selectors on top
of the existing parsing, serialization, and Sema matching support.
It diagnoses duplicate exact selectors during API notes conversion,
including duplicate `Where.Parameters: []`, while still allowing broad
name-only entries and same-name entries with different selectors.
It also adds reader/Sema support to warn under `-Wapinotes` when an
exact selector in API notes does not match any visible overload. The
reader can now enumerate stored exact selectors for global functions and
C++ methods, and Sema compares those against the selector candidates
derived from the visible overload set.
The diagnostic path follows the same matching policy as Sema, including
the desugared alias fallback, so valid matched selectors do not produce
false warnings.
Tests cover duplicate selector errors, unmatched selector warnings for
globals and C++ methods, broad-plus-exact coexistence, exact notes not
silently applying on mismatch, and no false warnings for matched or
alias-fallback selectors.
Reviewers: @Xazax-hun @j-hui @egorzhdan
---------
Co-authored-by: John Hui <updog at j-hui.com>
Commit: 005c18eac0a70158c2db4611bf824af6e0bc80ac
https://github.com/llvm/llvm-project/commit/005c18eac0a70158c2db4611bf824af6e0bc80ac
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
A flang/include/flang/Optimizer/Transforms/AllocationPlacementPolicy.h
M flang/include/flang/Optimizer/Transforms/Passes.h
M flang/include/flang/Optimizer/Transforms/Passes.td
A flang/lib/Optimizer/Transforms/AllocationPlacement.cpp
M flang/lib/Optimizer/Transforms/CMakeLists.txt
A flang/test/Transforms/allocation-placement-budget.fir
A flang/test/Transforms/allocation-placement-stack-arrays-mode.fir
A flang/test/Transforms/allocation-placement.fir
Log Message:
-----------
[flang] Add policy-driven allocation-placement pass - memory passes unification [2/5] (#210742)
Introduce a new function-level pass, allocation-placement, that unifies
the stack/heap placement decisions currently split between the
stack-arrays and memory-allocation-opt passes. For each array allocation
it consults a policy to decide whether it should live on the stack
(fir.alloca) or the heap (fir.allocmem) and rewrites it accordingly,
reusing fir::replaceAllocas for stack-to-heap and the StackArrays
analysis/rewrite for heap-to-stack (so heap-to-stack only happens where
it is provably safe).
The default policy (AllocationPlacementPolicy.h) is threshold-driven:
- small constant-size arrays go on the stack within a per-function stack
budget, otherwise on the heap;
- big constant-size arrays: user variables stay on the stack,
temporaries go on the heap;
- runtime-sized arrays go on the heap;
- an aggressive mode places all arrays on the stack (best effort). User
variables are distinguished from compiler temporaries via the presence
of a uniqued name. A hook lets downstream users override the thresholds
per allocation (e.g. for device routines or parallel regions).
The pass is not wired into any pipeline yet; it is reachable through
fir-opt and covered by isolated tests.
Assisted-by: AI
Commit: ebc5778e5dc9e195311911595c0b1a415f807c7f
https://github.com/llvm/llvm-project/commit/ebc5778e5dc9e195311911595c0b1a415f807c7f
Author: Weronika Lewandowska <weronika.lewandowska at intel.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M offload/test/CMakeLists.txt
Log Message:
-----------
[Offload] Enable offload test on Windows (#212480)
Description:
This change enables the offload test build on Windows by adding
compatibility guards around libomptarget test suites.
Why:
libomptarget is not available on Windows. Without these guards, CMake
fails when referencing the missing omptarget target. With these guards,
Windows builds complete successfully and run available tests (using
check-offload-unit), while Linux/macOS builds remain unaffected.
Commit: b95ce5ed68edad82e766ee8a7e9dae7809bc84dc
https://github.com/llvm/llvm-project/commit/b95ce5ed68edad82e766ee8a7e9dae7809bc84dc
Author: Sohaib Iftikhar <sohaibiftikhar at google.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/include/llvm/CodeGenTypes/MachineValueType.h
Log Message:
-----------
[LLVM] Disambiguate MVT and SVT comparisons (#212711)
[LLVM] Disambiguate MVT and SVT comparisons
Without this:
```
error: use of overloaded operator '==' is ambiguous (with operand types 'MVT' and 'llvm::MVT::SimpleValueType')
167 | if (VT == MVT::Untyped)
| ~~ ^ ~~~~~~~~~~~~
llvm/include/llvm/CodeGenTypes/MachineValueType.h:62:10: note: candidate function
62 | bool operator==(const MVT& S) const { return SimpleTy == S.SimpleTy; }
| ^
llvm/include/llvm/CodeGen/ValueTypes.h:598:15: note: candidate function (with reversed parameter order)
598 | inline bool operator==(MVT::SimpleValueType SVT, EVT VT) { return VT == SVT; }
| ^
1 error generated.
```
Fixes 52f6c88c2c1b6f0c10b9c8fb09ec35e147c593e3
Commit: 61d6e494e97a8fda6946291fd3bc6bb648c86e93
https://github.com/llvm/llvm-project/commit/61d6e494e97a8fda6946291fd3bc6bb648c86e93
Author: vsimion26 <vlad.simion at intel.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M mlir/include/mlir/Dialect/Quant/IR/QuantTypes.h
M mlir/lib/Dialect/Quant/IR/QuantTypes.cpp
M mlir/test/Dialect/Quant/invalid-quantile-types.mlir
M mlir/test/Dialect/Quant/quantile-types.mlir
Log Message:
-----------
QuantileType relax quantileType conditions and inheritance issue (#204793)
# Recategorize QuantileType as Storage Format, Not Quantization Scheme
## Summary
Reclassify `QuantileType` from inheriting `QuantizedType` to functioning
as a pure storage type.
## Motivation
### QuantileType is a Storage Format, Not a Quantization Scheme
After careful consideration, there was a conclusion reached that
**QuantileType should not be registered as a subtype of QuantizedType**.
The architectural distinction is critical:
- **QuantizedType** represents different quantization schemes (uniform,
per-axis, etc.), semantic operations that map values into a
lower-precision domain
- **QuantileType** is purely a **storage format** that specifies how to
interpret indices within a lookup table (LUT)
QuantileType was never meant to function as a quantization scheme on its
own. Instead, its purpose is to indicate **how to interpret indices
based on the given LUT**. It is an orthogonal concern to quantization
semantics; it describes data organization, not mathematical
transformation.
### Relaxed Type Conditions
The previous implementation restricted the LUT values to float types
only. However, float types are not the only types that can exist inside
a LUT, integer types are valid as well.
This PR removes the type restriction, allowing **both floating-point and
integer-based LUT interpretations** to coexist, better matching actual
use cases.
## Changes
- **Removed**: Incorrect inheritance of `QuantizedType` by
`QuantileType`
- **Relaxed**: Type constraints to accept both float and integer LUT
value types
Commit: e062a29cf865bb7cadea6cb605c9f3515e5b883f
https://github.com/llvm/llvm-project/commit/e062a29cf865bb7cadea6cb605c9f3515e5b883f
Author: Yordan Vásquez <vyordangiovani at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M libcxx/docs/Status/Cxx20Issues.csv
M libcxx/test/std/numerics/numarray/template.valarray/valarray.access/access.pass.cpp
M libcxx/test/std/numerics/numarray/template.valarray/valarray.access/const_access.pass.cpp
Log Message:
-----------
[libc++] Mark LWG3133 as Complete and add valarray operator[] safety tests (#208145)
This verifies that libc++ has implemented the resolution of LWG3133,
which modernizes the requirements on `T` for `std::complex<T>` and
`std::valarray<T>` in [numeric.requirements].
- No code changes were needed for `std::valarray<T>`: its `operator[]`
already indexes through a raw pointer and never relies on a
user-overloadable `operator&`, so it already conforms to the revised
wording.
- Added o`perator_hijacker`-based tests to `valarray`'s
`access.pass.cpp`/`const_access.pass.cpp`, confirming `operator[]`
doesn't rely on a user-overloadable `operator&`.
Commit: 0cce7a09237402359113036e9fe6469301e53a9c
https://github.com/llvm/llvm-project/commit/0cce7a09237402359113036e9fe6469301e53a9c
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/bool-legalization.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.fmas.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-add.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ballot.i64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.div.fmas.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.kill.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.wqm.demote.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-and-s1.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-regbanklegalize.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-or.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-sadde.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-select.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ssube.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-sub.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-uadde.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-usube.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-xor.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.ll
M llvm/test/CodeGen/AMDGPU/mixed-vmem-types.ll
Log Message:
-----------
AMDGPU/GlobalISel: Fix Vcc reg bank apply method for sgpr i1 input (#212532)
Need to clean up high bits on sgpr bool use, simlar to Sgpr32AExtBoolInReg.
G_AMDGPU_COPY_VCC_SCC assumes clean (zero) high bits in sgpr i32 input.
This should be combined away in most cases, for example if input is result
of a compare. But should stay for example for truncated input from s_load.
Commit: 9df6ca12f24bd35b02f5eae7a27cc92533482e03
https://github.com/llvm/llvm-project/commit/9df6ca12f24bd35b02f5eae7a27cc92533482e03
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/AArch64/SVEInstrFormats.td
M llvm/test/CodeGen/AArch64/sve-ptrue-coalesce.mir
Log Message:
-----------
[LLVM][CodeGen][SVE] Add ElementSize information to fp compare, continuous/replicating load and store instructions (#204821)
This information was originally used to implement MOVPFRX support.
However https://github.com/llvm/llvm-project/pull/204820 uses the same
information to determine which bits of an instruction's predicate
operand are used so that PTRUE instructions can be coalesced.
MOVPRFXable instructions are a subset of all predicated instructions, so
this patch extends some non-MOVPRFXable instructions with ElementSize
information.
Commit: 3120980d24f67f5754742c1dc8865e30307529ce
https://github.com/llvm/llvm-project/commit/3120980d24f67f5754742c1dc8865e30307529ce
Author: Hassnaa Hamdi <hassnaa.hamdi at arm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV][NFC]: Use CostCtx.CM instead of CM in precomputeCosts (#212287)
Commit: 462602de4245031e363b80a208f595826e738831
https://github.com/llvm/llvm-project/commit/462602de4245031e363b80a208f595826e738831
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
A llvm/test/CodeGen/AMDGPU/soft-waitcnt-deletion.mir
Log Message:
-----------
[AMDGPU] Fix incorrect VM_VSRC simplification after async instruction (#212481)
Add ASYNC_CNT to the list of VMEM counters. The implication is that only
if all these counters are zero can we know that there are no outstanding
VMEM instructions, so VM_VSRC must be zero.
Commit: e7db113dca5582f512e95053dd1b770f594ae2e8
https://github.com/llvm/llvm-project/commit/e7db113dca5582f512e95053dd1b770f594ae2e8
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/test/MachineVerifier/AMDGPU/verify-ds-vdata-vdst-both-agpr-or-vgpr.mir
Log Message:
-----------
[AMDGPU] Remove redundant AGPR/VGPR register class verification (#212721)
Commit: 3757c5d331d5d4781a7325ea890b2754c6dad5bb
https://github.com/llvm/llvm-project/commit/3757c5d331d5d4781a7325ea890b2754c6dad5bb
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64RegisterInfo.td
M llvm/test/CodeGen/AArch64/GlobalISel/split-wide-shifts-multiway.ll
M llvm/test/CodeGen/AArch64/clmul-fixed.ll
M llvm/test/CodeGen/AArch64/clmul.ll
A llvm/test/CodeGen/AArch64/misched-reg-pressure-limits.mir
M llvm/test/CodeGen/AArch64/neon-dotreduce.ll
M llvm/test/CodeGen/AArch64/neon-extadd.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-masked-expandloads.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-mulh.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-trunc.ll
M llvm/test/TableGen/aarch64-register-info-stats.td
Log Message:
-----------
[AArch64] Mark FIXED_REGS register class as non-allocatable (#212250)
FIXED_REGS is not used for register allocation, but since it overlaps
the GPR classes via FP and SP, TableGen merges VG and FFR into the GPR
pressure set, giving it a static limit of 35.
The underlying GPR32all class has 33 registers: W0-W30, WZR, and WSP.
WZR and WSP are always reserved, leaving up to 31 allocatable registers
depending on whether W29 (FP) and W30 (LR) are reserved.
Marking FIXED_REGS non-allocatable removes VG and FFR from the pressure
set, reducing its static limit from 35 to 33 and its dynamic limit from
33 to 31. The corrected limit changes scheduling decisions made by the
register-pressure heuristics, which explains the test churn.
Assisted-by: codex
Commit: 9c9e12c80a421d6454c49869fdf14aa78d11078b
https://github.com/llvm/llvm-project/commit/9c9e12c80a421d6454c49869fdf14aa78d11078b
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
M llvm/lib/Target/AMDGPU/SIProgramInfo.cpp
M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-attr.mir
M llvm/test/MC/Disassembler/AMDGPU/gfx9_smem.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_smem_features.txt
Log Message:
-----------
[AMDGPU] Fix typos SGRP and VGRP. NFC. (#212732)
Commit: 29bc0749034c4f2bda0752360ecacd4e89d7439c
https://github.com/llvm/llvm-project/commit/29bc0749034c4f2bda0752360ecacd4e89d7439c
Author: Ebuka Ezike <e_ezike at apple.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M lldb/source/API/SBTarget.cpp
M lldb/source/Target/Target.cpp
Log Message:
-----------
[lldb] Fix crash on creating string error (#212503)
It crashes because the `default` error string may not be a format string
compared to the `fallback` error string
Commit: 5989d40ab1d0db8333b5976d957a49525d36cf35
https://github.com/llvm/llvm-project/commit/5989d40ab1d0db8333b5976d957a49525d36cf35
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M flang/include/flang/Optimizer/Passes/CommandLineOpts.h
M flang/include/flang/Optimizer/Passes/Pipelines.h
M flang/lib/Optimizer/Passes/CommandLineOpts.cpp
M flang/lib/Optimizer/Passes/Pipelines.cpp
M flang/lib/Optimizer/Transforms/AllocationPlacement.cpp
A flang/test/Fir/allocation-placement-pipeline.fir
Log Message:
-----------
[flang] Wire allocation-placement into the optimizer pipeline (default off) - memory passes unification [3/5] (#210745)
Add a hidden -enable-allocation-placement flag that, when set, replaces
the stack-arrays and memory-allocation-opt passes in the default FIR
optimizer pipeline with the unified allocation-placement pass. The flag
is off by default, so the legacy passes remain the default path and
behavior is unchanged.
When enabled, the pass runs with its default byte-size thresholds; the
-fstack-arrays strategy is forwarded through the new stackArrays option.
Assisted-by: AI
Commit: 6e116760ca4010be890b7fa39c93f2c902ab2a31
https://github.com/llvm/llvm-project/commit/6e116760ca4010be890b7fa39c93f2c902ab2a31
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/fmuladd-copyable-add-part.ll
M llvm/test/Transforms/SLPVectorizer/X86/resized-bv-values-non-power-of2-node.ll
Log Message:
-----------
[SLP]Initial support for copyables in fmuladd intrinsic
Adds llvm.fmuladd as a main operation for copyable elements. A
non-fmuladd lane V is modeled as fmuladd(0.0, -0.0, V), which equals
-0.0 + V == V for every V. Only the addend operand is supported for
now; multiplicand operands may be added later.
Reviewers: bababuck, hiraditya, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/211245
Commit: a41d59740625948c6b334abbf921d0888b6f0377
https://github.com/llvm/llvm-project/commit/a41d59740625948c6b334abbf921d0888b6f0377
Author: Hui <hui.xie1990 at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M libcxx/test/libcxx/atomics/clear_padding.pass.cpp
Log Message:
-----------
[libc++][test][NFC] remove old UNSUPPORTED clang from clear_padding.pass.cpp (#212690)
Follow up PR for comment
https://github.com/llvm/llvm-project/pull/211258/changes#r3663614103
I think I must have made an oversight while resolving a merge conflict
Commit: 2545a108f4d173ed509e3eea33753227bdd6f847
https://github.com/llvm/llvm-project/commit/2545a108f4d173ed509e3eea33753227bdd6f847
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/cmp_cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/fully-unrolled-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions-unusual-types.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/vpinstruction-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/cost-model-i386.ll
M llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll
M llvm/test/Transforms/LoopVectorize/induction-cost.ll
Log Message:
-----------
[VPlan] Compute cost of some VPWidenIntOrFpInductions in VPlan (#202232)
Add initial implementation of VPWidenIntOrFpInductionRecipe::computeCost,
handling un-truncated inductions.
For the first patch, only compute costs in VPlan if there are no
truncated inductions (in that case, there are additional differences for
the cost model, as previously we would not cost the truncate properly)
and the vector loop won't get unrolled (no induction cost).
Note that some decision change. This is due to the legacy cost model
computing the cost of the original IR, where the induction is scaled in
the loop in each iteration (e.g. with mul), while in the vector loop we
scale the increment, and there is just an add to increment the
induction. This is more accurate than the legacy cost computation.
PR: https://github.com/llvm/llvm-project/pull/202232
Commit: 6314c9731eafa68837bbbab65e347922134b004a
https://github.com/llvm/llvm-project/commit/6314c9731eafa68837bbbab65e347922134b004a
Author: firmiana <firmiana402 at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M lldb/source/Expression/DWARFExpression.cpp
M lldb/unittests/Expression/DWARFExpressionTest.cpp
Log Message:
-----------
[lldb][NFC] Explicitly list unsupported DWARF expression opcodes (#210363)
This PR addresses
[#202251](https://github.com/llvm/llvm-project/issues/202251).
Several opcodes recognized by LLDB's DWARF expression decoding logic
currently have no explicit `case` in `DWARFExpression::Evaluate`. They
therefore reach the generic default path, which makes it unclear whether
their evaluator status is intentional or an omission.
Explicitly list the affected opcodes and group them with the existing
`DW_OP_xderef`, `DW_OP_xderef_size`, `DW_OP_call2`, and `DW_OP_call4`
cases. All twelve known but unsupported opcodes now share an
`unimplemented opcode` return, while `default` remains responsible for
unknown and vendor-handled opcodes. No opcode evaluation semantics
change.
The affected opcodes are `DW_OP_call_ref`, `DW_OP_constx`,
`DW_OP_const_type`, `DW_OP_regval_type`, `DW_OP_deref_type`,
`DW_OP_xderef_type`, `DW_OP_reinterpret`, and
`DW_OP_GNU_implicit_pointer`.
## Tests
The existing per-opcode status-locking tests in
`DWARFExpressionTest.cpp` cover all affected cases and are updated to
check the unified diagnostic.
Commit: d630025295d5ef6724ec9deab162b983ffee6638
https://github.com/llvm/llvm-project/commit/d630025295d5ef6724ec9deab162b983ffee6638
Author: Felix Ye <felixyjs at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M mlir/test/Examples/Toy/Ch6/llvm-lowering.mlir
M mlir/test/Examples/Toy/Ch7/llvm-lowering.mlir
Log Message:
-----------
[mlir][toy] Fix Ch6/Ch7 llvm-lowering tests (#212118)
Add missing `| FileCheck %s` to `RUN` lines so `CHECK` lines can be
verified. Also correct the expected result from `30` to `36`. The result
should be `6*6=36`.
The example in the tutorial is correct (`3.600000e+01`).
https://mlir.llvm.org/docs/Tutorials/Toy/Ch-6/
Signed-off-by: Felix Ye <felixyjs at gmail.com>
Commit: c53789fcf54979f7986d2e396920b725ce88f3e4
https://github.com/llvm/llvm-project/commit/c53789fcf54979f7986d2e396920b725ce88f3e4
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M libcxx/src/include/atomic_support.h
Log Message:
-----------
[libc++][NFC] Clean up atomic_support.h (#212464)
We don't support any compilers which don't have the atomic builtins, so
we don't need to check whether they exist. There is also no need for an
anonymous namespace, since all the functions are inline.
Commit: 25cc0d29e2c34966116f897e0db496d94cf91acf
https://github.com/llvm/llvm-project/commit/25cc0d29e2c34966116f897e0db496d94cf91acf
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
Log Message:
-----------
[AArch64] NFC: simplify isCopyInstrImpl expression (#212487)
To something more intuitive by applying the following logic:
* `!isVirtual()` -> `isPhysical()`
* `!isPhysical()` -> `isVirtual()`
* `(a || b) && (!a || c)` -> `(!a && b) || (a && c)`
Commit: f53596de0e42e9df10831cb50438bc8b85f826b3
https://github.com/llvm/llvm-project/commit/f53596de0e42e9df10831cb50438bc8b85f826b3
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/include/clang/Basic/ABIVersions.def
M clang/lib/CodeGen/Targets/Mips.cpp
A clang/test/CodeGen/mips-complex-abi.c
Log Message:
-----------
[MIPS][clang] make `_Complex` ABI match GCC (#212119)
fixes https://github.com/llvm/llvm-project/issues/212109
>From the edits to the release notes:
- On MIPS, a `_Complex` value with an integer element type is now
returned packed
into a single integer register when it fits in one, matching GCC. A
`_Complex char` or
`_Complex short`, and on N32/N64 also a `_Complex int`, is no longer
returned
with one part per register. `-fclang-abi-compat=23` restores the
previous
behavior. (#GH212109)
- On MIPS N32/N64, a `_Complex float` or `_Complex double` argument is
now packed
into integer registers, or onto the stack, once there is no longer room
to give
each of its parts a floating-point register, matching GCC. Clang
previously
always passed the parts separately. `-fclang-abi-compat=23` restores the
previous
behavior. (#GH212109)
Commit: 1d6a3dd80b48ad1990ed5e3e11acd3b06d2909b6
https://github.com/llvm/llvm-project/commit/1d6a3dd80b48ad1990ed5e3e11acd3b06d2909b6
Author: antoine moynault <antoine.moynault at linaro.org>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/test/tools/llvm-offload-wrapper/offload-wrapper.ll
Log Message:
-----------
[LinkerWrapper][test] fix test offload-wrapper.ll (#212713)
The llc RUN command added in #212614 needs the X86 backend registered
Commit: deed195c31f0ece487aa5ef79c90633860f10b93
https://github.com/llvm/llvm-project/commit/deed195c31f0ece487aa5ef79c90633860f10b93
Author: Arseniy Zaostrovnykh <necto.ne at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h
M clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp
M clang/test/Analysis/pthreadlock.c
A clang/test/Analysis/simplify-drops-concrete.c
M clang/test/Analysis/z3/z3-crosscheck.c
Log Message:
-----------
[analyzer] Prune infeasible states related to concrete ints early to fix a crash (#210912)
RangedConstraintManager discards a simplified symbol if it reduces to a
concrete integer. This leads to delayed realization that some state
might be infeasible (because the concrete integer does not fit in the
assumed range), which might produce unexpected null pointers on the
following state splits.
PthreadLockChecker has fallen just into this trap. It assumes
`pthread_mutex_lock` is always called in a feasible state, which is was
not true.
In particular, in ZFS the analyzer crashes when runs in CTU mode because
it reaches `pthread_mutex_lock()` in over-constraint state (see the
reduced example in the first commit).
Checkers rely on the invariant that a state split can never result in
both `StateRef`s being null. To fix this violation of the invariant,
this patch helps RangedConstraintManager to realize a state is
infeasible and abort its exploration early so no follow-up state split
produce unexpected null-null pair.
Assisted by Claude Opus 4.8
--
CPP-8665
Commit: ed389ca093797baab0bcc95ffd2b6ca41741c40d
https://github.com/llvm/llvm-project/commit/ed389ca093797baab0bcc95ffd2b6ca41741c40d
Author: Aochang Liu <102237385+HelloWorldU at users.noreply.github.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
A llvm/test/CodeGen/ARM/regcoalesce-undef-copy-subreg-redef.ll
A llvm/test/CodeGen/ARM/regcoalesce-undef-copy-subreg-redef.mir
Log Message:
-----------
[CodeGen][ARM] Add regression tests for #202263 (#202599)
The underlying issue—RegisterCoalescer eliminating an undef COPY and
leaving a partial subregister redef that reads a value that no longer
exists—was fixed in #204039.
This PR adds the regression coverage originally developed alongside the
fix attempt, so the pattern remains covered:
- an end-to-end IR test that checks the generated assembly with
FileCheck;
- a focused single-pass `-run-pass=register-coalescer` MIR test using
`-verify-coalescing`, which reproduces the "Instruction is reading
nonexistent value" verifier error from #202263 when #204039 is reverted,
and passes with the fix applied.
Fixes #202263
Commit: e393b0a120de3cc3b0055d129056b30e48777cb6
https://github.com/llvm/llvm-project/commit/e393b0a120de3cc3b0055d129056b30e48777cb6
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/Sema/SemaOpenMP.h
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.h
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTWriter.cpp
A clang/test/OpenMP/update_clause_ast_dump.cpp
M clang/tools/libclang/CIndex.cpp
M flang/include/flang/Lower/OpenMP/Clauses.h
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Lower/OpenMP/Clauses.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/openmp-modifiers.cpp
M flang/test/Parser/OpenMP/atomic-compare.f90
M flang/test/Parser/OpenMP/depobj-construct.f90
M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[OpenMP] Split UPDATE clause into two: for ATOMIC and for DEPOBJ (#212270)
The UPDATE clause has the same spelling on both of these directives, but
functionally it's two different clauses. Split them into "update", and
"update_depend_objects" to be able to tie their properties to their enum
ids.
This should make it easier to implement auto-generating of clause
properties in the future by avoiding spelling conflicts.
---------
Co-authored-by: Alexey Bataev <a.bataev at outlook.com>
Commit: f43c0e2dac8d75362a07e283f44ae20339cd1de2
https://github.com/llvm/llvm-project/commit/f43c0e2dac8d75362a07e283f44ae20339cd1de2
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/test/MC/AMDGPU/alignto_mcexpr.s
M llvm/test/MC/AMDGPU/branch-comment.s
M llvm/test/MC/AMDGPU/data.s
M llvm/test/MC/AMDGPU/dl-insts-err.s
M llvm/test/MC/AMDGPU/elf-lds-error.s
M llvm/test/MC/AMDGPU/elf-lds.s
M llvm/test/MC/AMDGPU/elf-notes-verify-amdgcn.s
M llvm/test/MC/AMDGPU/exp-err.s
M llvm/test/MC/AMDGPU/exp-pregfx11.s
M llvm/test/MC/AMDGPU/exp.s
M llvm/test/MC/AMDGPU/hsa-metadata-kernel-args-v3.s
M llvm/test/MC/AMDGPU/hsa-metadata-kernel-attrs-v3.s
M llvm/test/MC/AMDGPU/hsa-metadata-kernel-code-props-v3.s
M llvm/test/MC/AMDGPU/labels-branch-err.s
M llvm/test/MC/AMDGPU/labels-branch-gfx9.s
M llvm/test/MC/AMDGPU/labels-branch.s
M llvm/test/MC/AMDGPU/max-branch-distance.s
M llvm/test/MC/AMDGPU/mcexpr_amd.s
M llvm/test/MC/AMDGPU/mcexpr_amd_err.s
M llvm/test/MC/AMDGPU/occupancy_mcexpr.s
M llvm/test/MC/AMDGPU/offset-expr.s
M llvm/test/MC/AMDGPU/offsetbug_once.s
M llvm/test/MC/AMDGPU/offsetbug_one_and_one.s
M llvm/test/MC/AMDGPU/offsetbug_twice.s
M llvm/test/MC/AMDGPU/pal-registers.s
M llvm/test/MC/AMDGPU/reloc-directive.s
M llvm/test/MC/AMDGPU/round-trip.s
M llvm/test/MC/AMDGPU/s_endpgm.s
M llvm/test/MC/AMDGPU/sop1.s
M llvm/test/MC/AMDGPU/sop2-err.s
M llvm/test/MC/AMDGPU/sopp.s
M llvm/test/MC/AMDGPU/sym_kernel_scope.s
M llvm/test/MC/AMDGPU/vcc_tuples.s
M llvm/test/MC/AMDGPU/vintrp-err.s
Log Message:
-----------
AMDGPU: Manually convert some MC tests to subarch triples (#212728)
Commit: 31de6f2c4b4d38bbcabea7a1eeb000f90f368604
https://github.com/llvm/llvm-project/commit/31de6f2c4b4d38bbcabea7a1eeb000f90f368604
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
M mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir
Log Message:
-----------
[mlir][SPIR-V] Add SPIRVToLLVM conversions for GL.FSign and GL.SSign (#206934)
Commit: 6279654d605a6821a4ece039d13504a15b09ac03
https://github.com/llvm/llvm-project/commit/6279654d605a6821a4ece039d13504a15b09ac03
Author: Nico Weber <thakis at chromium.org>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/include/llvm/TargetParser/BUILD.gn
Log Message:
-----------
[gn] port c2fa41286818 (AMDGPUTargetParserDef.inc) (#212763)
Commit: 2f910f66e7e181c8c1b6ed97d44e6f4bceb6c557
https://github.com/llvm/llvm-project/commit/2f910f66e7e181c8c1b6ed97d44e6f4bceb6c557
Author: newgre <jannewger at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
A llvm/include/llvm/Transforms/Instrumentation/CopyProf.h
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/Transforms/Instrumentation/CMakeLists.txt
A llvm/lib/Transforms/Instrumentation/CopyProf.cpp
A llvm/test/Instrumentation/CopyProf/function-instrumentation.ll
A llvm/test/Instrumentation/CopyProf/no-instrumentation.ll
A llvm/test/Instrumentation/CopyProf/store-instrumentation.ll
Log Message:
-----------
[CopyProf] Add CopyProf instrumentation passes. (#207385)
This patch introduces the instrumentation passes and corresponding tests
for CopyProf, a profiling tool designed to identify unnecessary object
copies in C++ applications.
RFC at
https://discourse.llvm.org/t/rfc-copysanitizer-csan-detecting-unneccessary-object-copies-at-runtime/91038.
Three passes are added:
- CopyProfPass inserts enter/exit callback around special member
functions.
- CopyPRofStoresPass instruments store instructions to track memory
modifications.
- ModuleCopyProfPass inserts a module constructor to initialize the
CopyProf runtime at program startup (will be added later).
Commit: b3115cd807196e465ce3fc16f0cab58be24e47fc
https://github.com/llvm/llvm-project/commit/b3115cd807196e465ce3fc16f0cab58be24e47fc
Author: lonely eagle <2020382038 at qq.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M mlir/include/mlir/Dialect/Affine/Transforms/Passes.h
M mlir/include/mlir/Dialect/Affine/Transforms/Passes.td
M mlir/lib/Dialect/Affine/Transforms/AffineLoopNormalize.cpp
M mlir/test/Dialect/Affine/affine-loop-normalize.mlir
Log Message:
-----------
[mlir][affine] Add useExpensiveMath option to AffineLoopNormalize pass (#211989)
This PR integrates constant bound inference into the existing
`AffineLoopNormalize` pass under a new `useExpensiveMath` option. When
`useExpensiveMath` is enabled (disabled by default due to potential
compilation time overhead), the pass leverages
`ValueBoundsConstraintSet` (uss presburger) analysis to refine dynamic
`affine.for` loop bounds into compile-time constant bounds. RFC:
https://discourse.llvm.org/t/rfc-mlir-enable-dynamic-and-tighter-affine-unrolling-via-valueboundsconstraintset/91055/2
---------
Co-authored-by: Oleksandr "Alex" Zinenko <azinenko at amd.com>
Commit: c8c6c0ff7461a5a4c19c110d830945967bc97329
https://github.com/llvm/llvm-project/commit/c8c6c0ff7461a5a4c19c110d830945967bc97329
Author: Matsu <47756807+khaki3 at users.noreply.github.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/test/Fir/array_coor_nuw_nusw.fir
M flang/test/Fir/convert-to-llvm.fir
Log Message:
-----------
[flang] Drop nuw on XArrayCoor for non-positive slice steps (#212639)
Example:
```fortran
z(:, 3:2:-1) = z(:, 1:2)
```
In this code, reverse-section indexing lowers `idx*step` / `diff+adj`
with `nuw`. A negative step can make the product negative, so `nuw` is
invalid and LLVM `-O2` can drop the stores.
Fix: keep `nsw|nuw` only for known positive steps; otherwise keep `nsw`
and drop `nuw` (negative, zero, or unknown).
Commit: 03de9b148a19996fd722e9af6d09ecaf95f8a1b2
https://github.com/llvm/llvm-project/commit/03de9b148a19996fd722e9af6d09ecaf95f8a1b2
Author: Ian Tayler Lessa <ian.taylerlessa at arm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/test/Dialect/Tosa/canonicalize.mlir
Log Message:
-----------
[mlir][tosa] Extend cancelling block-scaled cast optimisation to bf16 (#212517)
The CancellingBlockScaledCastsOptimization optimises away sequences
where a block-scaled tensor is cast to fp32 and then cast back to its
original block-scaled type.
This patch extends it to also cover cases where the intermediate type is
bf16, since the 7 bits of mantissa and 8 bits in the exponent are
sufficient to encode any `element * scale` product with valid
block-scaled type combinations.
---------
Signed-off-by: Ian Tayler Lessa <ian.taylerlessa at arm.com>
Commit: dc5f2aae75b1f80cd30c57f9298d63b104da94d4
https://github.com/llvm/llvm-project/commit/dc5f2aae75b1f80cd30c57f9298d63b104da94d4
Author: Chirag Patel <chirag198838 at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
A llvm/test/Transforms/Attributor/nofpclass-arbitrary-fp.ll
Log Message:
-----------
[Analysis] Adding convert_from_arbitrary_fp support in computeKnownFPClass. (#208585)
fixes #208437
>From LangRef for intrinsic convert_from_arbitrary_fp ,
"Normal finite values are converted exactly. NaN values follow LLVM’s
standard NaN rules; the NaN representation is preserved... and the NaN
payload may be truncated or extended..."
-> if src has Nan -> preserve nan
"If a value exceeds the representable range of the target type (for
example, converting Float8E8M0FNU with large exponents to half), the
result is converted to infinity with the appropriate sign."
Commit: 13a6fc28ac56e0abd84d90e60d9fb325c7c3ec84
https://github.com/llvm/llvm-project/commit/13a6fc28ac56e0abd84d90e60d9fb325c7c3ec84
Author: aokblast <aokblast at FreeBSD.org>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M third-party/benchmark/src/sysinfo.cc
Log Message:
-----------
[benchmark] Back port 2b0bff7 from upstream (#212278)
Fix compile error with clang -Werror -Wunused-template
(cherry picked from commit 2b0bff7444a8df460daab2e5af18bce45ca00657)
Commit: 7f0e5f9eb7466f68bb10d418421c9295bf80b345
https://github.com/llvm/llvm-project/commit/7f0e5f9eb7466f68bb10d418421c9295bf80b345
Author: Anonmiraj <ezzibrahimx at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/include/clang/Basic/Diagnostic.h
M clang/include/clang/Sema/AnalysisBasedWarnings.h
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/Sema.cpp
Log Message:
-----------
[clang] Cache the analysis-based warning policy in effect (#212213)
While benchmarking with warnings enabled, I found that
`AnalysisBasedWarnings::getPolicyInEffectAt` runs at the end of every
function body, performing six location-sensitive `isIgnored()` queries.
This overhead comes from #136323 ([compile-time
impact](https://llvm-compile-time-tracker.com/compare.php?from=2a9f77f6bd48d757b2d45aadcb6cf76ef4b4ef32&to=71ce9e26aec00e4af27a69ccfab8ca1773ed7018&stat=instructions:u)).
Since these six diagnostics only depend on the diagnostic state at the
query location and whether it is in a system header or macro, we can
cache the computed policy rather than recomputing it for every function.
The cache flushes when a `#pragma clang diagnostic` changes severities,
and it bypasses active diagnostic suppression mappings.
Compile-time results for this pr:
https://llvm-compile-time-tracker.com/compare.php?from=49de424f45389cb757c3cc8c50daf38d024e2314&to=a61503b54e9568254885777cf89f5ca1586ec99f&stat=instructions%3Au
Commit: 7e1aba74a4f702dbd0b5c2ebc87f88dffb851b6e
https://github.com/llvm/llvm-project/commit/7e1aba74a4f702dbd0b5c2ebc87f88dffb851b6e
Author: zhijian lin <zhijian at ca.ibm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
A llvm/test/CodeGen/PowerPC/fp-classify-nan.ll
Log Message:
-----------
Reland [PowerPC] improve performance on the isNan and !isNan function in case of -ffp-model=strict (#212565)
1. reland the patch https://github.com/llvm/llvm-project/pull/204170
2. and fix the regression caused by above patch.
Commit: e61b2abe8b7d7baef9192b41aa92f123640ca598
https://github.com/llvm/llvm-project/commit/e61b2abe8b7d7baef9192b41aa92f123640ca598
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.td
M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-inline-asm.ll
M llvm/test/TableGen/aarch64-register-info-stats.td
Log Message:
-----------
[AArch64] Remove GPR64arg register class (#212457)
GPR64arg was added in fcbec02ea6fb to describe X0-X7 for the reserved
argument-register check. It is an ABI register set rather than an
allocation constraint and should not be used for register allocation.
Given it has a single use that only cares about the number of registers,
a register class isn't necessary.
This exposes that GlobalISel recomputes the minimal register class when
a matching inline asm input is tied to a fixed physical-register output.
For X2 that class was GPR64arg, getRegistersForValue already asks the
target which class implements the output constraint. Retain that class
and reuse it for the matching input.
Assisted-by: codex
Commit: 2faa90a208a14b7e681dc9122a889c894823814a
https://github.com/llvm/llvm-project/commit/2faa90a208a14b7e681dc9122a889c894823814a
Author: Zach Goldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16-true16.mir
Log Message:
-----------
[AMDGPU] Retain subreg when legalising generic operand (#212636)
When building a `COPY` to legalise a generic operand whose register
class does not match what is expected, the subregister is not retained
in the copy, and is not dropped from the newly created virtual
destination register.
Commit: a463071dc427777a2a2bfc155c6680d7ff220994
https://github.com/llvm/llvm-project/commit/a463071dc427777a2a2bfc155c6680d7ff220994
Author: Marina Taylor <marina_taylor at apple.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/LTO/LTOModule.cpp
A llvm/test/LTO/X86/ifunc.ll
Log Message:
-----------
[LTO] Handle GlobalIFunc in LTOModule::parseSymbols (#212515)
Avoids the assert immediately below.
Fixes #45694
rdar://182744700
Commit: 82c7b9ac09e55cfc9887cb4e0de6221209c690b5
https://github.com/llvm/llvm-project/commit/82c7b9ac09e55cfc9887cb4e0de6221209c690b5
Author: Tshaka Lekholoane <mail+git at tshaka.dev>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/docs/ClangFormatStyleOptions.rst
M clang/include/clang/Format/Format.h
M clang/lib/Format/Format.cpp
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/SortIncludesTest.cpp
Log Message:
-----------
[clang-format] Add Natural option for SortIncludes (#210788)
`SortIncludes` currently orders includes lexicographically with the
option to ignore case or extension. This adds another option, `Natural`,
that compares embedded runs of digits as numbers rather than sequences
of characters, matching the "natural sort" behaviour found in most file
managers and tools like `sort` when called with the `-V` option.
**Disclaimer**
AI assistance was used in initial exploration and review but the code is
"hand generated".
Commit: f2453af624353273325fe888d794a925ea9fe852
https://github.com/llvm/llvm-project/commit/f2453af624353273325fe888d794a925ea9fe852
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUMemoryUtils.cpp
M llvm/test/CodeGen/AMDGPU/agpr-copy-no-free-registers.ll
M llvm/test/CodeGen/AMDGPU/global_smrd_cfg.ll
M llvm/test/CodeGen/AMDGPU/move-to-valu-addsubu64.ll
M llvm/test/CodeGen/AMDGPU/noclobber-barrier.ll
Log Message:
-----------
[AMDGPU] Improve MemorySSA walking in isClobberedInFunction (#211817)
Consistently call the two argument overload
`MemorySSAWalker::getClobberingMemoryAccess(MemoryAccess,
MemoryLocation)` to get a clobbering def (according to the AliasAnalysis
used by MSSA) before applying the special cases in `isReallyAClobber`.
This has the effect of marking more loads as `amdgpu-noclobber` and
selecting SMEM load instructions for them.
Fixes: ROCM-28492
Commit: 2b06cb5e103886e9606d431defcd5159302ab87f
https://github.com/llvm/llvm-project/commit/2b06cb5e103886e9606d431defcd5159302ab87f
Author: Dhruva <dhruvakodiadka at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll
A llvm/test/CodeGen/AMDGPU/freeze-scalar-load.ll
M llvm/test/CodeGen/AMDGPU/mul_int24.ll
M llvm/test/CodeGen/AMDGPU/neg_ashr64_reduce.ll
M llvm/test/CodeGen/AMDGPU/sra.ll
Log Message:
-----------
[DAGCombine] Freeze after load is scalarized. (#212587)
fixes #211567
Commit: 01891953eea17544f6181bb51c973711a382702b
https://github.com/llvm/llvm-project/commit/01891953eea17544f6181bb51c973711a382702b
Author: Shengxin Pei <TPPPP72 at outlook.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/docs/ReleaseNotes.md
M clang/lib/Parse/ParseOpenMP.cpp
A clang/test/SemaOpenMP/gh197162.c
Log Message:
-----------
[Clang][OpenMP] Fixed an assertion on omp taskloop transparent (#200663)
In
https://github.com/llvm/llvm-project/blob/15bb4a97a798ed43b3966c99d37585651b965e5e/clang/lib/Parse/ParseOpenMP.cpp#L3289-L3295
We missed a check for `WrongDirective` before calling
`ActOnOpenMPTransparentClause`.
This patch adds the missing check.
fix #197162
Commit: e854fb756ef1f5e65bd03a16a7d1bde1ebf7769c
https://github.com/llvm/llvm-project/commit/e854fb756ef1f5e65bd03a16a7d1bde1ebf7769c
Author: Nico Weber <thakis at chromium.org>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gn
Log Message:
-----------
[gn build] Port 2f910f66e7e1 (#212782)
Commit: 82a4cd776063b8c1013045b00b6bb3449c45e8b6
https://github.com/llvm/llvm-project/commit/82a4cd776063b8c1013045b00b6bb3449c45e8b6
Author: Zahira Ammarguellat <zahira.ammarguellat at intel.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/include/clang/AST/StmtOpenMP.h
M clang/lib/AST/StmtOpenMP.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/test/OpenMP/fuse_codegen.cpp
M clang/test/OpenMP/interchange_codegen.cpp
A clang/test/OpenMP/loop_transform_final_iv.c
M clang/test/OpenMP/reverse_codegen.cpp
M clang/test/OpenMP/stripe_codegen.cpp
M clang/test/OpenMP/tile_codegen.cpp
Log Message:
-----------
[OpenMP] Restore loop variable values after loop-tranformation constructs. (#208533)
This patch fixes loop variable finalization for OpenMP 6.0
loop-transformations constructs: `tile`, `stripe`, `reverse`,
`interchange` and `fuse` to comply with spec requirement page 371, lines
19-21. The spec requires that "After the execution of the
loop-transforming construct, the loop-iteration variables of any of its
transformation-affected loops have the values that they would have
without the loop-transforming directive".
Commit: 196b4b6a2dec34c19bca14f4ba15aee56f2abfe7
https://github.com/llvm/llvm-project/commit/196b4b6a2dec34c19bca14f4ba15aee56f2abfe7
Author: Michael G. Kazakov <mike.kazakov at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M libcxx/include/__algorithm/pstl.h
M libcxx/include/__pstl/backend_fwd.h
M libcxx/include/__pstl/backends/default.h
M libcxx/test/libcxx/algorithms/pstl.iterator-requirements.verify.cpp
M libcxx/test/libcxx/algorithms/pstl.nodiscard.verify.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/pstl.adjacent_find.pass.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/pstl.adjacent_find_pred.pass.cpp
M libcxx/test/std/algorithms/pstl.exception_handling.pass.cpp
Log Message:
-----------
[libc++][pstl] Implementation of a parallel std::adjacent_find() based on std::mismatch() (#210604)
This PR implements a parallel `std::adjacent_find()` based on parallel
`std::mismatch`. The implementation reshapes the input range as two ranges
offset by 1 element and asks `std::mismatch` to find the first equal pair.
Part of #99938.
Commit: 705aa2a864d1573a17e62cfbcffbafdab7745a6d
https://github.com/llvm/llvm-project/commit/705aa2a864d1573a17e62cfbcffbafdab7745a6d
Author: lijinpei-amd <jinpli at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/JumpThreading.cpp
A llvm/test/Transforms/JumpThreading/dup-cond-br-recursive-phi.ll
M llvm/test/Transforms/JumpThreading/phi-copy-to-pred.ll
Log Message:
-----------
[JumpThreading] Materialize PHIs in duplicateCondBranchOnPHIIntoPred (#204859)
In duplicateCondBranchOnPHIIntoPred, updateSSA iteratively updates the
uses of
the instructions of BB (the duplicated block) according to ValueMapping.
For
PHIs, however, the mapping is inconsistent: the keys refer to the values
before
the parallel assignment of the PHIs, while the mapped-to values refer to
the
values after it. E.g.
BB:
%arr = phi [ %ov.0, %PredBB ], ...
%ov.0 = phi [ %ov.sel, %PredBB ], ...
--->
%arr => %ov.0
%ov.0 => %ov.sel
So an iterative replacement miscompiles: a use of the duplicated %arr is
replaced by %ov.sel, while the correct replacement is %ov.0.
Fix this by splitting PredBB -> BB (SplitEdge) into a PredEdgeBB,
cloning the
PHIs into PredEdgeBB and mapping BB's PHIs to the clones:
BB:
%arr = phi [ %ov.0, %PredEdgeBB ], ...
%ov.0 = phi [ %ov.sel, %PredEdgeBB ], ...
PredEdgeBB:
%arr.dup = phi [ %ov.0, %PredBB ]
%ov.0.dup = phi [ %ov.sel, %PredBB ]
--->
%arr => %arr.dup
%ov.0 => %ov.0.dup
Since a distinct set of PHIs is used as the mapped-to values, the
iterative
replacement is correct.
Fixes #197725.
Fixes #203868.
Assisted-by: Opus-4.8 (Claude Code)
Commit: be76618bc973b0009fa0618fbc6978f4c74bfdc7
https://github.com/llvm/llvm-project/commit/be76618bc973b0009fa0618fbc6978f4c74bfdc7
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M lldb/source/Core/IOHandler.cpp
Log Message:
-----------
[lldb][Windows] Check for EOF before the ctrl-c retry in GetLine (#212745)
On Windows `lldb --repl` can hang forever instead of exiting at EOF.
`IOHandlerEditline::GetLine` checks `GetLastError() ==
ERROR_OPERATION_ABORTED` and does a `continue` before checking `feof`.
However `fgets` is a CRT function and does not set the Win32 last error
value, so the `GetLastError` read is not the expected error. When it
happens to be `ERROR_OPERATION_ABORTED` (995) the loop never reaches the
EOF check.
This reorders the checks so EOF wins unconditionally, and adds
`clearerr` before the ctrl-c retry (a real interrupt leaves the error
flag set, which would fail the next `fgets`). ctrl-c handling is
otherwise unchanged.
rdar://183335061
Commit: 4fabb4360701da1210f0456f2bcc05f8dfa1a0c0
https://github.com/llvm/llvm-project/commit/4fabb4360701da1210f0456f2bcc05f8dfa1a0c0
Author: Gaëtan Bossu <gaetan.bossu at arm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
A llvm/test/Analysis/CostModel/AArch64/sve-vls-reduce-bfp.ll
A llvm/test/Analysis/CostModel/AArch64/sve-vls-reduce-fp.ll
A llvm/test/Analysis/CostModel/AArch64/sve-vls-reduce-int.ll
Log Message:
-----------
[AArch64][CostModel] Lower wide fixed-length vector reductions cost (#211824)
When vscale is known > 1, SVE will be used to perform most reductions.
This should be reflected in the cost model.
Commit: 312aa8cf8ccd97c0d2a6980c0a0fb9ee0ee5290e
https://github.com/llvm/llvm-project/commit/312aa8cf8ccd97c0d2a6980c0a0fb9ee0ee5290e
Author: Adrian Prantl <aprantl at apple.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/builders/builder.py
M lldb/packages/Python/lldbsuite/test/dotest.py
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
Log Message:
-----------
[LLDB] Remove Xcode sdk guessing from Makefile.rules (NFC) (#212378)
This cleanup patch pushes the auto-detection of the `macosx` SDK from
Makefile.rules up into `dotest.py` and unifies it with the existing SDK
handling for other Apple platforms.
Assisted-by: claude
Commit: e3f24d8cf7d07d8c7f6208e5cce4b422cb1d0806
https://github.com/llvm/llvm-project/commit/e3f24d8cf7d07d8c7f6208e5cce4b422cb1d0806
Author: John Brawn <john.brawn at arm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
A llvm/test/Transforms/LoopIdiom/memmove-ext.ll
Log Message:
-----------
[LoopIdiom] Use SCEV for deciding memmove validity (#211274)
When the loop index variable is smaller than the GEP offset size, and is
thus sign or zero extended before being used, then the IR that is
expanded from the SCEV expressions for the load and store locations will
be in a form that means GetPointerBaseWithConstantOffset can't deduce
the base and offset, meaning we can't generate memmove.
Solve this by deciding memmove validity based on the SCEV expressions
instead of the IR that is expanded from them. This means we also need to
insert a check to handle a null base pointer, as that was previously
handled implicitly due to how SCEVExpander expands expressions involving
null pointers.
Commit: 45ef27a69895fcb756fec0d7a16d39706e5d9c06
https://github.com/llvm/llvm-project/commit/45ef27a69895fcb756fec0d7a16d39706e5d9c06
Author: Zach Goldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/pack-half-to-lshl-or.ll
Log Message:
-----------
[AMDGPU] Handle True16 high-half 16-bit packing idiom with uniform operand (#211102)
With True16 instructions, the high-half packing idiom from #206058 tries
to `OR` a 16-bit VGPR operand into the high half of the other operand,
but this causes a crash if the other operand is uniform, as this
generates an invalid `$sgpr = COPY $sgpr_hi16`.
Commit: 7140530173c72de832458c12ac9bdcba1ca2d2ba
https://github.com/llvm/llvm-project/commit/7140530173c72de832458c12ac9bdcba1ca2d2ba
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/fmuladd-copyable-mul-part.ll
Log Message:
-----------
[SLP][NFC]Add a test with nother candidate for fmuladd copyables, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/212802
Commit: f24da9d03ba5d25c523e050da2ca3c4060ca23d5
https://github.com/llvm/llvm-project/commit/f24da9d03ba5d25c523e050da2ca3c4060ca23d5
Author: Nemanja Ivanovic <nemanja.i.llvm at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
A llvm/test/CodeGen/RISCV/epilog-crash.ll
Log Message:
-----------
[RISC-V] Fix assert after 255162a (#212791)
The iterator passed-in may point to the end of the block which causes an
assertion failure when attempting to inspect the MI it points to. Guard
against this.
Commit: 8d445c6cab429f062d5b73db5f243fff7b49c276
https://github.com/llvm/llvm-project/commit/8d445c6cab429f062d5b73db5f243fff7b49c276
Author: carlobertolli <carlo.bertolli at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/bitop3-shared-operand.ll
Log Message:
-----------
[AMDGPU][NFC] Add previously failing bitop3 tests. (#212335)
The following two expressions used to return the wrong truth table for
v_bitop3:
; ((b & T) | T) & ~T, where T = a & c
; U ^ (~U | T), where T = c ^ b and U = (T | a) & T
The fix was implemented in:
https://github.com/llvm/llvm-project/pull/198556
Assisted-by: Cursor (Claude)
Commit: 421d2e88e4f08f39a4bd48b9591c62d1145ec0ac
https://github.com/llvm/llvm-project/commit/421d2e88e4f08f39a4bd48b9591c62d1145ec0ac
Author: Harrison Hao <57025411+harrisonGPU at users.noreply.github.com>
Date: 2026-07-30 (Thu, 30 Jul 2026)
Changed paths:
M llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
Log Message:
-----------
[OpenMP] Fix ambiguous namespace lookup with delayed template parsing (#212720)
Running `check-llvm` on Windows fails while compiling LLVMFrontendTests
with the following error:
error: reference to 'detail' is ambiguous
Clang enables delayed template parsing by default when targeting the
MSVC ABI on Windows. When ConstructDecompositionT is instantiated after
a using-directive for `llvm::omp`, both `::detail` and
`llvm::omp::detail` are
visible, making `detail::find_unique` ambiguous.
Explicitly qualify find_unique with the global namespace. This fixes
check-llvm on Windows and other environments using
-fdelayed-template-parsing, without changing behavior.
Commit: e0e0b57127085fd6b246ce8a7a4ba5d3da32c1f3
https://github.com/llvm/llvm-project/commit/e0e0b57127085fd6b246ce8a7a4ba5d3da32c1f3
Author: David Green <david.green at arm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/include/llvm/CodeGen/ValueTypes.h
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/NVPTX/NVPTXUtilities.h
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Transforms/Utils/LoopUnroll.cpp
Log Message:
-----------
Revert "[Codegen] Replace any_of with is_contained. NFC (#212289)" (#212794)
This reverts commit 52f6c88c2c1b6f0c10b9c8fb09ec35e147c593e3 due to
errors in the C++20 builder.
It does not revert the followup from #212711.
Commit: e12e16f6e03ba4b9008314dbb885e8c1dddf875f
https://github.com/llvm/llvm-project/commit/e12e16f6e03ba4b9008314dbb885e8c1dddf875f
Author: Alexis Perry-Holby <aperry at lanl.gov>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
A flang/docs/MeetingNotes/2026/2026-07-29.md
Log Message:
-----------
[flang] Add Flang Community Call Notes for July 29th meeting (#212810)
Commit: eb64c21b7954bdb66ed9ebaefcf400715be321eb
https://github.com/llvm/llvm-project/commit/eb64c21b7954bdb66ed9ebaefcf400715be321eb
Author: Zhen Wang <zhenw at nvidia.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M flang/include/flang/Evaluate/tools.h
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
M flang/test/Lower/CUDA/cuda-managed-assign.cuf
Log Message:
-----------
[flang][cuda] Restrict managed data transfers to whole-array assignments (#212593)
Assignments involving managed or unified data are lowered to
`cuf.data_transfer`, a synchronous copy. The predicate only excluded
scalar left-hand sides, so array sections were transferred too, turning
a loop that assigns one section per
iteration into a sequence of blocking copies.
Key the decision on the managed operand instead: a transfer when the
managed variable or array is whole, host code when it is a section or an
element. Managed data is host-addressable, so the host assignment is
safe. Managed function results and assignments involving device memory
are unaffected.
This is the behavior specified in the CUDA Fortran Programming Guide
3.4.1:
> An assignment statement where the right hand side is a managed array
section and
> the left hand side is any host or managed variable copies data using
generated
> host code.
Commit: 1f5e93294eddb3309d530392344ee0271ccaa64c
https://github.com/llvm/llvm-project/commit/1f5e93294eddb3309d530392344ee0271ccaa64c
Author: Ian Anderson <iana at apple.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/docs/CommandGuide/llvm-readobj.rst
M llvm/include/llvm/BinaryFormat/MachO.def
M llvm/include/llvm/BinaryFormat/MachO.h
M llvm/include/llvm/ExecutionEngine/Orc/MachOBuilder.h
M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
M llvm/include/llvm/MC/MCMachObjectWriter.h
M llvm/include/llvm/MC/MCStreamer.h
M llvm/include/llvm/Object/MachO.h
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCMachOStreamer.cpp
M llvm/lib/MC/MCParser/DarwinAsmParser.cpp
M llvm/lib/MC/MachObjectWriter.cpp
M llvm/lib/ObjCopy/MachO/MachOLayoutBuilder.cpp
M llvm/lib/Object/MachOObjectFile.cpp
M llvm/lib/ObjectYAML/MachOEmitter.cpp
M llvm/lib/ObjectYAML/MachOYAML.cpp
M llvm/test/ExecutionEngine/JITLink/Generic/Inputs/MachO_Universal_libFoo_dylib.yaml
A llvm/test/MC/MachO/target-triple-padding.s
A llvm/test/MC/MachO/target-triple.s
A llvm/test/Object/Inputs/macho-invalid-target-triple-name_offset-toobig.yaml
A llvm/test/Object/Inputs/macho-invalid-target-triple-name_offset-toosmall.yaml
A llvm/test/Object/Inputs/macho-invalid-target-triple-name_toobig.yaml
A llvm/test/Object/Inputs/macho-invalid-target-triple-small.yaml
M llvm/test/Object/macho-invalid.test
A llvm/test/ObjectYAML/MachO/target_triple_command.yaml
A llvm/test/tools/dsymutil/AArch64/lc_target_triple.test
A llvm/test/tools/dsymutil/AArch64/lc_target_triple_duplicate.test
A llvm/test/tools/dsymutil/AArch64/lc_target_triple_universal.test
A llvm/test/tools/dsymutil/Inputs/lc_target_triple.arm64
A llvm/test/tools/dsymutil/Inputs/lc_target_triple_duplicate.arm64
A llvm/test/tools/dsymutil/Inputs/lc_target_triple_universal.arm64
A llvm/test/tools/llvm-objcopy/MachO/lc-target-triple.test
A llvm/test/tools/llvm-objdump/MachO/target-triple.yaml
A llvm/test/tools/llvm-readobj/MachO/target-triple.test
M llvm/tools/dsymutil/MachOUtils.cpp
M llvm/tools/llvm-objdump/MachODump.cpp
M llvm/tools/llvm-readobj/MachODumper.cpp
M llvm/tools/llvm-readobj/ObjDumper.h
M llvm/tools/llvm-readobj/Opts.td
M llvm/tools/llvm-readobj/llvm-readobj.cpp
M llvm/tools/obj2yaml/macho2yaml.cpp
M llvm/unittests/ExecutionEngine/Orc/MachOBuilderTest.cpp
Log Message:
-----------
[llvm][macho] Support the LC_TARGET_TRIPLE load command (#210276)
Add support for the new LC_TARGET_TRIPLE load command.
rdar://140301164
Commit: e24eb10725e514cece9a21da97040165a199f23c
https://github.com/llvm/llvm-project/commit/e24eb10725e514cece9a21da97040165a199f23c
Author: Corentin Jabot <corentinjabot at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang-tools-extra/clangd/unittests/PreambleTests.cpp
M clang/include/clang/Lex/Preprocessor.h
M clang/lib/Frontend/FrontendAction.cpp
M clang/lib/Frontend/PrintPreprocessedOutput.cpp
M clang/lib/Frontend/Rewrite/InclusionRewriter.cpp
M clang/lib/Lex/PPDirectives.cpp
R clang/test/Frontend/linemarker-invalid-escape.c
M clang/test/Frontend/rewrite-includes.c
M clang/test/Modules/cxx20-hu-05.cpp
M clang/test/Modules/cxx20-hu-06.cpp
M clang/test/Parser/cxx11-user-defined-literals.cpp
M clang/test/Preprocessor/line-directive-output.c
M clang/test/Preprocessor/line-directive.c
M clang/test/VFS/external-names-multi-overlay.c
M clang/test/VFS/fallback.c
Log Message:
-----------
[Clang] Treat line directives as header names. (#211512)
We treated line directives as being unevaluated string literal. However
- The standard has no such restriction - or rather the standard has
different, unclear restriction (https://wg21.link/CWG2693)
- Because of Windows paths, it's common for "C:\foo\bar" to be used, and
these should not form escape sequences.
To remain consistent with other implementations, we do not allow `#line
1 <>` at this time. We do however support `#line 1 ""` to avoid a
breaking change.
Fixes a regression introduced by #201413
Commit: 32eae3a39471911888ba50bf03379450b4d96e3e
https://github.com/llvm/llvm-project/commit/32eae3a39471911888ba50bf03379450b4d96e3e
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M flang/lib/Semantics/resolve-names.cpp
M flang/test/Semantics/stmt-func04.f90
Log Message:
-----------
[flang] Statement function dummy names do not clash with host or unreferenced global names (#212396)
The check added for F2023 19.4 p2 (statement function dummy argument
name may be the same as an accessible name only if that name is a scalar
variable) looked the name up through the whole host scope chain and,
failing that, in the global scope. Both lookups overshoot what is
"accessible" in the scoping unit:
* Per F2023 19.5.1.4 p2 item (11), the appearance of a name as a
dummy-arg-name in a stmt-function-stmt makes any host entity of that
name inaccessible by host association throughout the scoping unit, so a
host entity can never conflict with the dummy.
* A global entity to which the scoping unit makes no reference at all is
not accessible in it; otherwise conformance would depend on whether
unrelated program units happen to be compiled in the same file.
This caused bogus errors on conforming code such as
```
program p
logical, external :: x
contains
subroutine s
real :: f
f(x) = x * x ! 'x' is an implicitly typed real dummy here
end
end
```
where the dummy 'x' must be implicitly typed real (both NAG and gfortran
accept this and type it that way; flang already typed it correctly, but
rejected the program).
Restrict the lookup to names made visible by the scoping unit itself
(declared, referenced, or USE-associated there), matching the lookup
HandleStmtFunction already uses to type the dummies.
Assisted-by: AI
Commit: 13ac5c62ce5aab0395849fec322eb402ab784b76
https://github.com/llvm/llvm-project/commit/13ac5c62ce5aab0395849fec322eb402ab784b76
Author: Thirumalai Shaktivel <74826228+Thirumalai-Shaktivel at users.noreply.github.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/test/Semantics/OpenMP/declare-target02.f90
M flang/test/Semantics/OpenMP/threadprivate02.f90
Log Message:
-----------
[flang][openmp] Add semantic checks in THREADPRIVATE/DECLARE TARGET (#209084)
The problem is that the automatic object was used as the
threadprivate argument.
Solution:
>From the documentation (J3/24-007):
> C814 An automatic data object shall not have the SAVE attribute.
> C862 The SAVE attribute shall not be specified for a dummy argument,
> a function result, an automatic data object, or an object
> that is in a common block.
The bare SAVE statement makes any valid local variables tagged
with the SAVE attribute. As the restriction mentioned above, the
automatic object cannot have a SAVE attribute and shall not be
used as the THREADPRIVATE argument. This patch adds semantic
checks for dummy arguments, function results, and automatic data
objects in both THREADPRIVATE and DECLARE TARGET directives.
[flang][OpenMP] Fix DECLARE TARGET to reject distinct result name
When a function uses a distinct result name (e.g. result(res)),
DECLARE TARGET(res) was not diagnosed because ResolveOmpDesignator
rebound it to the procedure, skipping the IsFunctionResult check.
Commit: 13310e947e510320bfde9a800a6292265f630b97
https://github.com/llvm/llvm-project/commit/13310e947e510320bfde9a800a6292265f630b97
Author: Navaneeth Shanmugasundaram <nshanmug at qti.qualcomm.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/utils/git/github-automation.py
Log Message:
-----------
[GitHub] Fix authentication for release workflow git push (#212634)
Update the push URL format to use GitHub's required authentication
format with the 'x-access-token' prefix. GitHub now requires:
https://x-access-token:{token}@github.com/{repo}
instead of the deprecated format:
https://{token}@github.com/{repo}
Without this change, the release workflow fails when attempting to push
branches with the error:
fatal: could not read Password for 'https://***@github.com':
No such device or address
This occurs because Git attempts to prompt for credentials in the
non-interactive GitHub Actions environment when the token format is not
recognized.
Fixes the /cherry-pick command in the issue-release-workflow.
Signed-off-by: nshanmug <nshanmug at qti.qualcomm.com>
Commit: b979a119274a13fdee769478702148006219fc5b
https://github.com/llvm/llvm-project/commit/b979a119274a13fdee769478702148006219fc5b
Author: Adam Smith <adams at nvidia.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
A clang/test/CIR/CodeGen/call-conv-lowering-x86_64-indirect.c
A clang/test/CIR/Transforms/abi-lowering/indirect-call-classification-attr.cir
R clang/test/CIR/Transforms/abi-lowering/indirect-call-nyi.cir
A clang/test/CIR/Transforms/abi-lowering/indirect-call-test-target.cir
A clang/test/CIR/Transforms/abi-lowering/indirect-call.cir
Log Message:
-----------
[CIR] Lower indirect calls in CallConvLowering (#211636)
Indirect calls were unsupported by CallConvLowering. `rewriteCallSite` bailed
with "indirect call not yet implemented", and the pass driver rejected any
module that both needed call-site rewriting and contained an indirect call. A
function pointer whose signature required ABI reshaping (a by-value struct
argument, or an sret return) could not be compiled at all, even though a
direct call to the same signature lowered fine.
The callee is opaque, but its type is a pointer to a `FuncType` that carries the
full signature. Classification is now driven from that pointee signature
through the same LLVM ABI path as the direct case: `classifyX86_64Function` is
split into `classifyX86_64Signature`, taking a return type, an argument
`TypeRange`, and an `emitError` callback. The driver collects indirect calls,
classifies each callee signature (x86_64, or the test target used by the pass
tests), and runs `rewriteCallSite`. `prependIndirectCallee` re-adds the callee
as operand 0, bitcasting the function pointer to the coerced signature when it
differs so the rebuilt call matches its reshaped return.
The `classification-attr` driver mode injects a per-function classification
that cannot describe a callee resolved at run time, so an indirect call is a
diagnosed error there rather than being left silently unrewritten while direct
calls are coerced.
Commit: f958a55f66a062b4c005015b691a949deb24e237
https://github.com/llvm/llvm-project/commit/f958a55f66a062b4c005015b691a949deb24e237
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M lldb/test/CMakeLists.txt
A lldb/test/Shell/MCP/TestHelp.test
A lldb/test/Shell/MCP/TestUnknownArgument.test
A lldb/test/Shell/MCP/TestVersion.test
M lldb/test/Shell/helper/toolchain.py
M lldb/tools/lldb-mcp/lldb-mcp.cpp
Log Message:
-----------
[lldb-mcp] Add --help and --version (#212680)
lldb-mcp accepted no arguments at all, so --help and --version fell
through to the protocol loop and blocked reading stdin, and a mistyped
flag was silently ignored while the tool waited for MCP traffic. Handle
both flags and reject anything else with a usage message.
Commit: 130dccc2c3192d9f49c2e85bcd047ed67a9fa9e1
https://github.com/llvm/llvm-project/commit/130dccc2c3192d9f49c2e85bcd047ed67a9fa9e1
Author: Nikita Taranov <nikita.taranov at clickhouse.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M compiler-rt/test/xray/TestCases/Posix/fdr-mode.cpp
Log Message:
-----------
[XRay][test] Raise fdr-mode.cpp unwrite threshold to deflake it (#211595)
It was observed failing on `sanitizer-aarch64-linux` ([build
40750](https://lab.llvm.org/buildbot/#/builders/51/builds/40750)).
The failure is in the `UNWRITE` run
(`XRAY_FDR_OPTIONS="func_duration_threshold_us=5000"`), which asserts
that every short function record is "unwritten" (rewound) except
arg1-logging records. In the failing output an `fA()` enter/exit pair
survived:
```
<stdin>:9: - { func-id: 3, function: 'fA()', cpu: 0, thread: 1909237, kind: function-enter, tsc: 1784775492023431847 }
<stdin>:10: - { func-id: 3, function: 'fA()', cpu: 0, thread: 1909237, kind: function-exit, tsc: 1784775492029462345 }
<stdin>:11: - { func-id: 4, function: 'fArg(int)', args: [ 1 ], ..., kind: function-enter-arg, ... }
```
so `UNWRITE-NEXT` (and `UNWRITE-NOT: function-enter`) no longer hold.
FDR mode only rewinds a function's enter record when its exit lands
within the threshold (`XRayFDRController::functionExit`: `TSC -
LastFunctionEntryTSC < CycleThreshold`).
```
1784775492029462345 - 1784775492023431847 = 6,030,498 cycles / 1 GHz = 6.03 ms > 5 ms threshold
```
i.e. the thread was preempted for ~6 ms mid-function, so the record was
(correctly, by the runtime's own rule) not unwritten.
The proposed fix is to raise the `UNWRITE` run's
`func_duration_threshold_us` from `5000` to `100000`, so realistic
scheduling jitter cannot push a short function over the threshold. This
mirrors the accepted fix for the sibling test in
[PR #186611](https://github.com/llvm/llvm-project/pull/186611)
(`basic-filtering.cpp`), which flaked the same way.
Commit: 125080fbaa17ddab3313f580a2d2ab686a03be55
https://github.com/llvm/llvm-project/commit/125080fbaa17ddab3313f580a2d2ab686a03be55
Author: Steven Wu <stevenwu at apple.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/cmake/config-ix.cmake
Log Message:
-----------
[Darwin][tests] Partially restore some of the change in #212329 (#212826)
Restore the fallback path for ld-classic in #212329 to fix some of the
failing CI jobs due to some Xcode releases doesn't have the new linker
that supports `-save-temps` flag. Restore the logic so that `ld-classic`
is preferred over `ld` but no longer requires ld64/ld-classic.
In legacy releases only has ld64, ld64 is used. In latest releases where
ld64 is removed, new linker is feature completed and fully compatible
with ld64. During the transition period where ld64 is shipped as
ld-classic, prefer ld64 since new linker might not be feature complete.
rdar://183454376
Commit: aa924278efbd4f76329bb95ebd33fd3e445d4ff4
https://github.com/llvm/llvm-project/commit/aa924278efbd4f76329bb95ebd33fd3e445d4ff4
Author: Lucas Mellone <github.snugness349 at passinbox.com>
Date: 2026-07-30 (Thu, 30 Jul 2026)
Changed paths:
M libcxx/include/cmath
Log Message:
-----------
[libc++][math] Add missing `constexpr since C++23` comment for `signbit` (#212458)
Adds the missing `// constexpr since C++23` for `std::signbit` in the
synopsis comments of `<cmath>`.
Follows-up: https://github.com/llvm/llvm-project/pull/105946.
Commit: d6a165836cc7bc64bda1ceab22937839cb88d5cc
https://github.com/llvm/llvm-project/commit/d6a165836cc7bc64bda1ceab22937839cb88d5cc
Author: Roland McGrath <mcgrathr at google.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[CMake][Fuchsia] Compile runtimes with -ffuchsia-api-level (#211753)
Use the supplied Fuchsia SDK's version_history.json to deduce the
oldest API level still supported, and target that for toolchain
runtimes so they'll be runtime-compatible when linked into user
programs that target any SDK-supported API level.
Commit: 0e351245ff0cf7a824207658c189ef099b3aaaab
https://github.com/llvm/llvm-project/commit/0e351245ff0cf7a824207658c189ef099b3aaaab
Author: Ebuka Ezike <e_ezike at apple.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M lldb/test/API/tools/lldb-dap/longpath/TestDAP_launch_longPath.py
M lldb/test/API/tools/lldb-dap/stackTrace/subtleFrames/TestDAP_subtleFrames.py
M lldb/test/API/tools/lldb-dap/unknown/TestDAP_unknownRequest.py
Log Message:
-----------
[lldb-dap] Migrate unknownRequest, subtleFrames and longpath (#211627)
Migrated tests:
- TestDAP_unknownRequest.py
- TestDAP_subtleFrames.py
- TestDAP_launch_longPath.py
Commit: 8d404384dd842d43362732a11b233ee3d6ead023
https://github.com/llvm/llvm-project/commit/8d404384dd842d43362732a11b233ee3d6ead023
Author: Jackson Stogel <jtstogel at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M libc/src/__support/CPP/CMakeLists.txt
M libc/src/__support/CPP/string.h
M libc/src/stdlib/linux/CMakeLists.txt
M libc/src/stdlib/linux/realpath.cpp
M libc/test/src/__support/CPP/string_test.cpp
M libc/test/src/stdlib/CMakeLists.txt
M libc/test/src/stdlib/realpath_test.cpp
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][realpath] Follow symlinks (#212164)
This commit updates realpath to call `readlinkat` on symlinks during
path resolution.
Some notes on implementation:
- `PendingPath` uses a `cpp::string` to store unprocessed path
components. This could be more efficient by using a `PATH_MAX` buffer
and storing the path at the end of the buffer, which would allow for
easy prepending. However, using a `cpp::string` avoids the pointer
arithmetic and memory management that would involve.
- This PR implements `cpp::string::replace` to avoid pointer arithmetic
inside `realpath`. This should hopefully not be too inefficient, since
`prepend` reuses space from processed path components there's enough
room, there certainly exist some bad inputs that would cause many
`memmove` operations.
Commit: 7bed6591be3191446ec2cf92ef247487fff03a84
https://github.com/llvm/llvm-project/commit/7bed6591be3191446ec2cf92ef247487fff03a84
Author: Diego Novillo <dnovillo at nvidia.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
M llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
M llvm/test/CodeGen/SPIRV/debug-info/debug-global-variable-skip-type-not-in-regs.ll
M llvm/test/CodeGen/SPIRV/debug-info/debug-global-variable-static-member.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-array-of-composite-drop.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-nested-drop.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-skip-member-not-in-regs.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-static-member-skipped.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-pointer-to-composite-drop.ll
Log Message:
-----------
[SPIRV] Emit NonSemantic DebugTypeComposite and DebugTypeMember. (#211638)
This PR adds `DebugTypeComposite` (opcode 10) and `DebugTypeMember`
(opcode 11):
1. `partitionTypes` clusters `DICompositeType` with
`DW_TAG_structure_type`, `DW_TAG_class_type`, or `DW_TAG_union_type`.
2. Each composite emits one `DebugTypeMember` per `DW_TAG_member`, then
a `DebugTypeComposite`. Members precede the composite.
3. Tag maps class, structure, and union to 0, 1, and 2. A forward
declaration emits `DebugInfoNone` for Size and no members.
4. A member whose type is not in `DebugTypeRegs` is skipped.
`DebugTypeMember` has no Parent operand, per the spec. Only the
composite references its members.
Tests in `llvm/test/CodeGen/SPIRV/debug-info/`:
1. `debug-type-composite.ll`: a struct with two members and a forward
declaration.
2. `debug-type-composite-skip-member-not-in-regs.ll`: a member whose
type is a pointer with no DWARF address space, exercising the skip.
`debug-global-variable-skip-type-not-in-regs.ll` and
`debug-global-variable-static-member.ll` assumed composites and members
are never emitted. Both now use a no-address-space pointer to avoid
disabling the existing test.
Commit: a42bed3f72c427dcd023aae169bec9305ec29ed6
https://github.com/llvm/llvm-project/commit/a42bed3f72c427dcd023aae169bec9305ec29ed6
Author: fineg74 <61437305+fineg74 at users.noreply.github.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M offload/plugins-nextgen/common/CMakeLists.txt
M offload/plugins-nextgen/common/src/JIT.cpp
Log Message:
-----------
[OFFLOAD] Add JIT support for SPIRV backend (#212823)
This PR adds support for SPIRV to plugins JIT. It is required in cases
when kernel is supplied in bitcode format for spirv triple.
Commit: 16f116f476c248c345fd8ffe4b3e863f2700161f
https://github.com/llvm/llvm-project/commit/16f116f476c248c345fd8ffe4b3e863f2700161f
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M lldb/include/lldb/Host/JSONTransport.h
M lldb/include/lldb/Protocol/MCP/Transport.h
M lldb/source/Host/common/JSONTransport.cpp
M lldb/source/Protocol/MCP/Transport.cpp
M lldb/unittests/Host/JSONTransportTest.cpp
Log Message:
-----------
[lldb] Reply to malformed requests and use JSON-RPC error codes (#212678)
The transport dropped a message that failed to parse: it logged the
error and returned, so a peer waiting on that request hung forever and
every message already buffered behind it was discarded. Keep going after
a failed parse, and add ReplyWithParseError so a message that is valid
JSON but not a valid request is answered against its own id. Unparseable
JSON still gets no reply, since it carries no id and JSON-RPC forbids
inventing one.
Method-not-found was raised with createStringError, which converts
through inconvertibleErrorCode() to -32603, so clients could not tell a
misspelled method from a server fault. Use the MethodNotFound error,
which already carries -32601, and give InvalidParams the -32602 code it
was missing.
Commit: 58a93a1eec10d30dfa358afda73f402fb308a5e4
https://github.com/llvm/llvm-project/commit/58a93a1eec10d30dfa358afda73f402fb308a5e4
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M lldb/source/Plugins/Protocol/MCP/Tool.cpp
Log Message:
-----------
[lldb-mcp] Run managed debug sessions synchronously (#212681)
A debugger created for an MCP session has no event loop to service
asynchronous stops, so a resume returned before the process stopped and
every subsequent command failed against a still-running process. That
made breakpoint debugging unusable: `run` reported only the launch, and
`bt` that followed it errored out. Create these debuggers in synchronous
mode, as lldb-dap does.
Commit: 33c7ef4a631db53440f569f048660474e0a46bd6
https://github.com/llvm/llvm-project/commit/33c7ef4a631db53440f569f048660474e0a46bd6
Author: 陈子昂 <2802328816 at qq.com>
Date: 2026-07-30 (Thu, 30 Jul 2026)
Changed paths:
M clang/lib/Headers/riscv_packed_simd.h
M clang/test/CodeGen/RISCV/rvp-intrinsics.c
M cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rvp-simd-32.ll
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
Log Message:
-----------
[Clang][RISCV] Add packed pair byte intrinsics (#212589)
Add the 32-bit byte forms and the 64-bit byte/halfword forms of the
P-extension packed pair intrinsics to riscv_packed_simd.h using generic
shufflevector IR.
Extend the existing packed pair shuffle lowering to recognize the mixed
even/odd forms and select ppaireo/ppairoe in addition to ppaire/ppairo.
Add Clang CodeGen, LLVM CodeGen, and intrinsic header tests for the new
forms.
Commit: 0475ef459c0bf24d79330372fef29a4aaf68c87d
https://github.com/llvm/llvm-project/commit/0475ef459c0bf24d79330372fef29a4aaf68c87d
Author: Kewen Meng <Kewen.Meng at amd.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/include/clang/AST/StmtOpenMP.h
M clang/lib/AST/StmtOpenMP.cpp
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/test/OpenMP/fuse_codegen.cpp
M clang/test/OpenMP/interchange_codegen.cpp
R clang/test/OpenMP/loop_transform_final_iv.c
M clang/test/OpenMP/reverse_codegen.cpp
M clang/test/OpenMP/stripe_codegen.cpp
M clang/test/OpenMP/tile_codegen.cpp
Log Message:
-----------
Revert "[OpenMP] Restore loop variable values after loop-tranformation constructs." (#212832)
Reverts llvm/llvm-project#208533
PR breaks several bots. Revert to unblock.
https://lab.llvm.org/buildbot/#/builders/10/builds/32840
https://lab.llvm.org/buildbot/#/builders/88/builds/24941
https://lab.llvm.org/buildbot/#/builders/225/builds/13974
Commit: bacfe2950f8218268fcc0a8765644ea0c15f0360
https://github.com/llvm/llvm-project/commit/bacfe2950f8218268fcc0a8765644ea0c15f0360
Author: Mikhail Romanov <mmromanov at ispras.ru>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
Log Message:
-----------
[MLIR] Fix transform.apply_patterns with apply_cse option (#212818)
This patch fixes a crash in `transform.apply_patterns` when `apply_cse`
is enabled and the target operation does not have the
`IsolatedFromAbove` trait.
For non-`IsolatedFromAbove` targets, `transform.apply_patterns` cannot
apply patterns directly to the target operation. Instead, it collects
the operations within the target into a worklist and passes that
worklist to `applyOpPatternsGreedily`. When `apply_cse` is enabled,
pattern application and CSE are performed repeatedly until a fixpoint is
reached.
Previously, the worklist was collected only once before entering the
fixpoint loop. However, pattern application may erase operations from
the IR, leaving stale pointers in the cached worklist. Reusing this
worklist in subsequent iterations may therefore result in a crash.
This patch rebuilds the worklist at the beginning of each iteration,
ensuring that it always reflects the current IR state.
A representative reproducer is shown below:
```llvm
module attributes {transform.with_named_sequence} {
func.func @test(%A: tensor<128x256xf32>,
%B: tensor<256x512xf32>,
%C: tensor<128x512xf32>) -> tensor<128x512xf32> {
%res = linalg.matmul
ins(%A, %B : tensor<128x256xf32>, tensor<256x512xf32>)
outs(%C : tensor<128x512xf32>) -> tensor<128x512xf32>
return %res : tensor<128x512xf32>
}
transform.named_sequence @__transform_main(%root: !transform.any_op) {
%matmul = transform.structured.match
ops{["linalg.matmul"]}
in %root
: (!transform.any_op) -> !transform.any_op
%tiled, %loops:3 =
transform.structured.tile_using_for %matmul
tile_sizes [4, 4, 4]
: (!transform.any_op)
-> (!transform.any_op,
!transform.any_op,
!transform.any_op,
!transform.any_op)
transform.structured.vectorize %tiled : !transform.any_op
transform.apply_patterns to %loops#0 {
transform.apply_patterns.canonicalization
} {apply_cse} : !transform.any_op
transform.yield
}
}
```
Here, `transform.apply_patterns` is applied to the `scf.for` loop
produced by tiling, which is not `IsolatedFromAbove`. Running `mlir-opt
--transform-interpreter` on this example crashes before this change and
completes successfully with this patch.
Signed-off-by: Mikhail Romanov <mmromanov at ispras.ru>
Commit: a9749e8e26273338c6c115c0d70c538fa30bba85
https://github.com/llvm/llvm-project/commit/a9749e8e26273338c6c115c0d70c538fa30bba85
Author: Andre Kuhlenschmidt <akuhlenschmi at nvidia.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M flang/include/flang/Parser/tools.h
M flang/include/flang/Semantics/expression.h
M flang/lib/Parser/tools.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/test/Semantics/modfile31.f90
M flang/test/Semantics/resolve60.f90
Log Message:
-----------
[flang][semantics] Accept BOZ initializers for C enum values (#211904)
Fortran 2023 7.6.1 errata f23/013 changes R762 so an interoperable
enumerator may be a named-constant initialized by a
boz-literal-constant, and specifies the value as
INT(boz-literal-constant, C_INT).
Handle that named-constant restriction directly in enum resolution while
preserving the usual scalar integer expression checks for non-enumerator
contexts. This mirrors the general named-constant initializer path,
which already converts BOZ values through the declared type before
folding.
Commit: 499db7987c994cf9a7742928bfd88ceb7bd12204
https://github.com/llvm/llvm-project/commit/499db7987c994cf9a7742928bfd88ceb7bd12204
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/lib/CMakeLists.txt
Log Message:
-----------
Revert "[Clang] Don't build static analyzer if disabled" (#212836)
Breaks unusual build configs where clang-tidy static analyzer is enabled
while clang static analyzer is disabled.
Reverts llvm/llvm-project#212024
Commit: 5c57064076a189c457fc0cff463fb2090ccc7347
https://github.com/llvm/llvm-project/commit/5c57064076a189c457fc0cff463fb2090ccc7347
Author: Rafael Auler <rafaelauler at meta.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M bolt/include/bolt/Core/DebugData.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/DIEBuilder.cpp
M bolt/lib/Core/DebugData.cpp
M bolt/lib/Rewrite/DWARFRewriter.cpp
Log Message:
-----------
[BOLT] Stop materializing .dwo DIE vectors early in the pipeline (#207292)
Summary: preprocessDWODebugInfo() eagerly force-extracted every .dwo
compile unit's DIE tree (getNonSkeletonUnitDIE(false)) very early in
BOLT pipeline, way before DWARFRewriter kicked in. Those vectors then
sit in memory throughout the entire rewrite pipeline, directly
contributing to BOLT's RSS peak. I did a fair amount of digging and
didn't find any reason as to why we need to keep all DIEs of DWO CU
materialized at all, since DWARFRewriter won't even read this vector
(the #197359 concurrency fix did use that, but that is unnecessary). The
problem is that these DIE trees are a massive contribution to RSS when
processing large binaries where we have 10s of K of dwos, storing
complete trees for each processed dwo.
This diff changes the #197359 concurrency fix to not rely on the DIE
sibling/children structure. It parses DWP type units selectively per
compile unit (DIEBuilder::buildDWPTypeUnitsForUnit ->
collectReferencedTypeSignatures) by finding the DW_FORM_ref_sig8
references in a unit's DIEs to decide which type units belong in that
unit's output .dwo. That walk previously used DWARFDie::children(),
which requires the unit's full DIE vector. Here we rewrite the walk to
stream the unit's DIEs one at a time with
DWARFDebugInfoEntry::extractFast (the same technique already used by
DIEBuilder::constructFromUnit and DWARFRewriter::partitionCUs), reading
DW_FORM_ref_sig8 attributes off a single reusable transient entry. The
tree structure is irrelevant -- every DIE in the unit is visited
regardless -- so no DIE vector is
built. collectReferencedTypeSignatures now takes a DWARFUnit& instead of
a DWARFDie.
With the walk self-sufficient:
- preprocessDWODebugInfo() now extracts only the .dwo CU DIE
(getNonSkeletonUnitDIE(true)); nothing reads the full array off it
anymore (constructFromUnit and the signature walk both stream).
- BinaryContext::collectDebugScopeBoundaries() drops its split-DWARF
fast-path, which called DWARFUnit::dies() (= full extraction); DWO units
are now streamed like monolithic ones.
The result is that .dwo DIE vectors are never materialized during BOLT
processing.
Expected to be a ~10% RSS win on large split-dwarf binaries.
Depends on #207291
Commit: 9064e230ab52b82853dbe0d79c8cc75d708a0907
https://github.com/llvm/llvm-project/commit/9064e230ab52b82853dbe0d79c8cc75d708a0907
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
Add some bazel libc review coverage (#209789)
This should improve timezone coverage for keeping the bazel build
working due to libc breakages, e.g. #209433 broke things and the bazel
fixer bot sent out #209689. But since it wasn't landed until just
recently, manual fixes were needed for other changes like #209449. This
wouldn't be as bad if the bazel fixer bot could handle layered
breakages.
Commit: 834d585b7c6836996e7fd78ad3fe7675d7c490e2
https://github.com/llvm/llvm-project/commit/834d585b7c6836996e7fd78ad3fe7675d7c490e2
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
A llvm/test/tools/llubi/ptrtoint_cast.ll
M llvm/tools/llubi/lib/Context.cpp
M llvm/tools/llubi/lib/Interpreter.cpp
Log Message:
-----------
[llubi] Fix ptrtoint's return type (#212839)
Closes https://github.com/llvm/llvm-project/issues/212788.
Commit: 86fb40ddfa3c7cd5c32d758f4b1709d01028a7db
https://github.com/llvm/llvm-project/commit/86fb40ddfa3c7cd5c32d758f4b1709d01028a7db
Author: Kazu Hirata <kazu at google.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M llvm/include/llvm/ProfileData/SampleProfReader.h
M llvm/lib/Transforms/IPO/SampleProfile.cpp
M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
M llvm/unittests/ProfileData/SampleProfTest.cpp
Log Message:
-----------
[ProfileData] Implement contains in SampleProfileNameTable (NFC) (#211995)
This patch implements contains(StringRef) and contains(uint64_t) in
SampleProfileNameTable and SampleProfileReader to serve symbol
membership queries directly from the reader -- "is this symbol in the
name table?".
Without this patch, users of the sample profile reader, namely
SampleProfileLoader::doInitialization and SampleProfileNameSet, each
construct their own StringSet<> containing all name table entries.
That is, we end up with two instances of StringSet<> with identical
contents. Since these instances hold their own copies of symbol
strings on the heap, both the constructor and destructor take up a
large portion of compilation time.
This patch teaches SampleProfileReader::contains to directly serve
symbol membership queries.
- For EytzingerSampleProfileNameTable, contains performs binary search
directly across the three concatenated Eytzinger table spans
(CSKeys, FlatKeys, and Inlinees) in a cache-friendly manner.
- Other representations of the name table lazily construct an internal
DenseSet on demand.
This patch updates existing customers to call Reader->contains.
RFC:
https://discourse.llvm.org/t/rfc-faster-sample-profile-loading/90957/8
Assisted-by: Antigravity
Commit: 6554a9709a9b9d12ec7eacd7c0a51eac5f94ddff
https://github.com/llvm/llvm-project/commit/6554a9709a9b9d12ec7eacd7c0a51eac5f94ddff
Author: Daniil Kovalev <dkovalev at accesssoftek.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
M clang/test/Driver/aarch64-ptrauth.c
Log Message:
-----------
[PAC][clang][test] Fix incorrect usage of `-NOT` suffix for FileCheck (#212445)
Previously, `-NOT` checks were not doing what was intended: checking
that given strings are not present within the same line where other
patterns are confirmed present by other checks. `-NOT` semantics is
checking pattern absense in between other checks, not total absense.
This patch makes use of `--implicit-check-not` instead for this purpose.
Commit: 702852b420dd5b011a04c0038f6362438959c5dc
https://github.com/llvm/llvm-project/commit/702852b420dd5b011a04c0038f6362438959c5dc
Author: Daniil Kovalev <dkovalev at accesssoftek.com>
Date: 2026-07-29 (Wed, 29 Jul 2026)
Changed paths:
A .ci/monolithic-macos.sh
M .github/CODEOWNERS
M .github/workflows/libcxx-benchmark-commit.yml
M .github/workflows/premerge.yaml
M .github/workflows/release-sources.yml
M bolt/include/bolt/Core/DebugData.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/DIEBuilder.cpp
M bolt/lib/Core/DebugData.cpp
M bolt/lib/Rewrite/DWARFRewriter.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/test/AArch64/long-jmp-one-stub.s
M clang-tools-extra/clangd/unittests/PreambleTests.cpp
M clang-tools-extra/docs/clang-tidy/checks/modernize/redundant-void-arg.md
M clang-tools-extra/include-cleaner/lib/LocateSymbol.cpp
M clang-tools-extra/include-cleaner/unittests/LocateSymbolTest.cpp
M clang/cmake/caches/Fuchsia-stage2.cmake
M clang/docs/ClangFormatStyleOptions.rst
M clang/docs/ReleaseNotes.md
M clang/docs/ThreadSafetyAnalysis.md
M clang/include/clang/APINotes/APINotesReader.h
M clang/include/clang/APINotes/Types.h
M clang/include/clang/AST/Expr.h
M clang/include/clang/AST/ExprCXX.h
M clang/include/clang/AST/ExprObjC.h
M clang/include/clang/AST/OpenMPClause.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/Stmt.h
M clang/include/clang/ASTMatchers/ASTMatchers.h
M clang/include/clang/Basic/ABIVersions.def
A clang/include/clang/Basic/BuiltinTraits.h
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/Diagnostic.h
M clang/include/clang/Basic/DiagnosticASTKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
R clang/include/clang/Basic/ExpressionTraits.h
M clang/include/clang/Basic/TokenKinds.h
R clang/include/clang/Basic/TypeTraits.h
M clang/include/clang/Format/Format.h
M clang/include/clang/Lex/Preprocessor.h
M clang/include/clang/Sema/AnalysisBasedWarnings.h
M clang/include/clang/Sema/ScopeInfo.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaObjC.h
M clang/include/clang/Sema/SemaOpenMP.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h
M clang/lib/APINotes/APINotesFormat.h
M clang/lib/APINotes/APINotesReader.cpp
M clang/lib/APINotes/APINotesTypes.cpp
M clang/lib/APINotes/APINotesYAMLCompiler.cpp
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/InterpHelpers.h
M clang/lib/AST/ByteCode/InterpState.cpp
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Record.cpp
M clang/lib/AST/ByteCode/Record.h
M clang/lib/AST/ByteCode/State.cpp
M clang/lib/AST/ByteCode/State.h
M clang/lib/AST/ExprConstShared.h
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/MicrosoftMangle.cpp
M clang/lib/AST/OpenMPClause.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/ASTMatchers/Dynamic/Marshallers.h
M clang/lib/Analysis/ThreadSafety.cpp
A clang/lib/Basic/BuiltinTraits.cpp
M clang/lib/Basic/CMakeLists.txt
R clang/lib/Basic/ExpressionTraits.cpp
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/Basic/TargetID.cpp
M clang/lib/Basic/Targets/AMDGPU.cpp
M clang/lib/Basic/Targets/AMDGPU.h
R clang/lib/Basic/TypeTraits.cpp
M clang/lib/CIR/Dialect/IR/CIRMemorySlot.cpp
M clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
M clang/lib/CMakeLists.txt
M clang/lib/CodeGen/CGException.cpp
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.h
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/Targets/Mips.cpp
M clang/lib/CodeGen/Targets/PPC.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
M clang/lib/Format/Format.cpp
M clang/lib/Format/WhitespaceManager.cpp
M clang/lib/Frontend/FrontendAction.cpp
M clang/lib/Frontend/PrintPreprocessedOutput.cpp
M clang/lib/Frontend/Rewrite/InclusionRewriter.cpp
M clang/lib/Headers/ptrauth.h
M clang/lib/Headers/riscv_packed_simd.h
M clang/lib/Lex/PPDirectives.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseObjc.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/CMakeLists.txt
M clang/lib/Sema/HLSLBuiltinTypeDeclBuilder.cpp
M clang/lib/Sema/HLSLExternalSemaSource.cpp
M clang/lib/Sema/Sema.cpp
M clang/lib/Sema/SemaAPINotes.cpp
A clang/lib/Sema/SemaAPINotesInternal.h
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprObjC.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaLambda.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
M clang/lib/Sema/SemaType.cpp
M clang/lib/Sema/SemaTypeTraits.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReader.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp
M clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp
M clang/lib/Tooling/Inclusions/HeaderIncludes.cpp
A clang/test/APINotes/where-parameters-diagnostics.cpp
M clang/test/AST/ByteCode/builtin-object-size-codegen.cpp
M clang/test/AST/ByteCode/constexpr-steps.cpp
M clang/test/AST/ByteCode/dynalloc-limits.cpp
M clang/test/Analysis/pthreadlock.c
A clang/test/Analysis/simplify-drops-concrete.c
M clang/test/Analysis/z3/z3-crosscheck.c
A clang/test/CIR/CodeGen/call-conv-lowering-x86_64-indirect.c
M clang/test/CIR/CodeGenHIP/builtins-amdgcn-extended-image.hip
A clang/test/CIR/Transforms/abi-lowering/indirect-call-classification-attr.cir
R clang/test/CIR/Transforms/abi-lowering/indirect-call-nyi.cir
A clang/test/CIR/Transforms/abi-lowering/indirect-call-test-target.cir
A clang/test/CIR/Transforms/abi-lowering/indirect-call.cir
A clang/test/CIR/Transforms/abi-lowering/x86_64-int-nyi.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-scalars.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-struct-direct.cir
M clang/test/CIR/Transforms/abi-lowering/x86_64-struct-indirect.cir
M clang/test/CIR/Transforms/mem2reg.cir
M clang/test/ClangScanDeps/logging-two-threads.c
M clang/test/CodeGen/RISCV/rvp-intrinsics.c
M clang/test/CodeGen/WebAssembly/wasm-eh.ll
M clang/test/CodeGen/amdgpu-builtin-is-invocable.c
M clang/test/CodeGen/amdgpu-builtin-processor-is.c
M clang/test/CodeGen/builtins-extended-image.c
M clang/test/CodeGen/link-builtin-bitcode.c
A clang/test/CodeGen/mips-complex-abi.c
R clang/test/CodeGen/ppc64-float-abi-attr.c
A clang/test/CodeGen/ppc64-long-double-type-attr.c
M clang/test/CodeGenCXX/dynamic-cast-address-space.cpp
A clang/test/CodeGenHLSL/builtins/InterlockedXor.hlsl
M clang/test/CodeGenHLSL/builtins/RWBuffer-Interlocked.hlsl
A clang/test/CodeGenHLSL/builtins/RWByteAddressBuffer-InterlockedXor.hlsl
A clang/test/CodeGenHLSL/builtins/RasterizerOrderedByteAddressBuffer-InterlockedXor.hlsl
M clang/test/Driver/aarch64-ptrauth.c
M clang/test/Driver/cuda-cross-compiling.c
A clang/test/Driver/hip-link-offload-binary.c
A clang/test/ExtractAPI/invalid_utf8_doc_comment.c
R clang/test/Frontend/linemarker-invalid-escape.c
M clang/test/Frontend/rewrite-includes.c
A clang/test/Interpreter/used-global-after-error.cpp
M clang/test/Modules/cxx20-hu-05.cpp
M clang/test/Modules/cxx20-hu-06.cpp
M clang/test/OffloadTools/clang-offload-bundler/asserts-on.c
M clang/test/OffloadTools/clang-offload-bundler/basic.c
A clang/test/OpenMP/target_map_nested_ptr_member_mapper_codegen.cpp
A clang/test/OpenMP/update_clause_ast_dump.cpp
M clang/test/Parser/cxx11-user-defined-literals.cpp
A clang/test/Parser/decltype-crash.cpp
M clang/test/Preprocessor/line-directive-output.c
M clang/test/Preprocessor/line-directive.c
M clang/test/Sema/warn-thread-safety-analysis.c
M clang/test/SemaCXX/constexpr-function-recovery-crash.cpp
M clang/test/SemaCXX/constexpr-steps.cpp
M clang/test/SemaCXX/cxx2a-constexpr-dynalloc-limits.cpp
M clang/test/SemaCXX/cxx2c-expansion-stmts.cpp
A clang/test/SemaCXX/ms-ptr-qualifiers.cpp
M clang/test/SemaCXX/source_location.cpp
M clang/test/SemaCXX/warn-thread-safety-analysis.cpp
M clang/test/SemaCXX/warn-thread-safety-parsing.cpp
M clang/test/SemaCXX/wasm-funcref.cpp
A clang/test/SemaHLSL/BuiltIns/InterlockedXor-errors.hlsl
M clang/test/SemaOpenCL/builtins-extended-image-param-gfx1100-err.cl
M clang/test/SemaOpenCL/builtins-extended-image-param-gfx942-err.cl
A clang/test/SemaOpenCL/builtins-extended-image-supported.cl
A clang/test/SemaOpenMP/gh197162.c
M clang/test/VFS/external-names-multi-overlay.c
M clang/test/VFS/fallback.c
M clang/tools/libclang/CIndex.cpp
M clang/unittests/AST/SourceLocationTest.cpp
M clang/unittests/Format/ConfigParseTest.cpp
M clang/unittests/Format/FormatTestComments.cpp
M clang/unittests/Format/SortIncludesTest.cpp
M clang/unittests/Tooling/HeaderIncludesTest.cpp
M clang/utils/TableGen/ClangTraitsEmitter.cpp
M compiler-rt/lib/asan/asan_poisoning.cpp
M compiler-rt/lib/builtins/CMakeLists.txt
A compiler-rt/lib/builtins/adddf3.cpp
A compiler-rt/lib/builtins/addsf3.cpp
M compiler-rt/lib/builtins/addtf3.cpp
A compiler-rt/lib/builtins/divdf3.cpp
A compiler-rt/lib/builtins/divsf3.cpp
A compiler-rt/lib/builtins/divtf3.cpp
M compiler-rt/lib/builtins/fp_lib.h
A compiler-rt/lib/builtins/muldf3.cpp
A compiler-rt/lib/builtins/mulsf3.cpp
A compiler-rt/lib/builtins/multf3.cpp
A compiler-rt/lib/builtins/negdf2.cpp
A compiler-rt/lib/builtins/negsf2.cpp
M compiler-rt/lib/builtins/subdf3.c
A compiler-rt/lib/builtins/subdf3.cpp
M compiler-rt/lib/builtins/subsf3.c
A compiler-rt/lib/builtins/subsf3.cpp
A compiler-rt/lib/builtins/subtf3.cpp
M compiler-rt/test/xray/TestCases/Posix/fdr-mode.cpp
M cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
A flang/docs/MeetingNotes/2026/2026-07-29.md
M flang/include/flang/Evaluate/tools.h
M flang/include/flang/Lower/OpenMP/Clauses.h
M flang/include/flang/Optimizer/Passes/CommandLineOpts.h
M flang/include/flang/Optimizer/Passes/Pipelines.h
A flang/include/flang/Optimizer/Transforms/AllocationPlacementPolicy.h
M flang/include/flang/Optimizer/Transforms/Passes.h
M flang/include/flang/Optimizer/Transforms/Passes.td
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/include/flang/Parser/tools.h
M flang/include/flang/Semantics/expression.h
M flang/lib/Lower/OpenMP/Clauses.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/Passes/CommandLineOpts.cpp
M flang/lib/Optimizer/Passes/Pipelines.cpp
A flang/lib/Optimizer/Transforms/AllocationPlacement.cpp
M flang/lib/Optimizer/Transforms/CMakeLists.txt
M flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/tools.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/openmp-modifiers.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/test/Driver/bbc-mlir-pass-pipeline.f90
M flang/test/Driver/mlir-debug-pass-pipeline.f90
M flang/test/Driver/mlir-pass-pipeline.f90
M flang/test/Fir/CUDA/cuda-constructor.f90
A flang/test/Fir/allocation-placement-pipeline.fir
M flang/test/Fir/array_coor_nuw_nusw.fir
R flang/test/Fir/arrexp.fir
M flang/test/Fir/basic-program.fir
M flang/test/Fir/convert-to-llvm.fir
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
M flang/test/Lower/CUDA/cuda-managed-assign.cuf
M flang/test/Lower/OpenMP/interop.f90
M flang/test/Parser/OpenMP/atomic-compare.f90
M flang/test/Parser/OpenMP/depobj-construct.f90
M flang/test/Parser/OpenMP/interop-construct.f90
M flang/test/Parser/acc-unparse.f90
M flang/test/Semantics/OpenACC/acc-loop.f90
M flang/test/Semantics/OpenMP/declare-target02.f90
M flang/test/Semantics/OpenMP/init-clause.f90
M flang/test/Semantics/OpenMP/interop-construct.f90
M flang/test/Semantics/OpenMP/threadprivate02.f90
M flang/test/Semantics/modfile31.f90
M flang/test/Semantics/resolve60.f90
M flang/test/Semantics/stmt-func04.f90
A flang/test/Transforms/allocation-placement-budget.fir
A flang/test/Transforms/allocation-placement-stack-arrays-mode.fir
A flang/test/Transforms/allocation-placement.fir
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/aarch64/headers.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/riscv/headers.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/config/linux/x86_64/headers.txt
M libc/include/CMakeLists.txt
A libc/include/memory.yaml
M libc/include/stdlib.yaml
A libc/include/sys/fcntl.yaml
A libc/include/sys/poll.yaml
A libc/include/sys/signal.yaml
A libc/include/sys/unistd.yaml
M libc/shared/builtins.h
A libc/shared/builtins/negdf2.h
A libc/shared/builtins/negsf2.h
M libc/src/__support/CPP/CMakeLists.txt
M libc/src/__support/CPP/string.h
M libc/src/__support/GPU/utils.h
M libc/src/__support/builtins/CMakeLists.txt
A libc/src/__support/builtins/negdf2.h
A libc/src/__support/builtins/negsf2.h
M libc/src/stdio/scanf_core/CMakeLists.txt
M libc/src/stdio/scanf_core/vfscanf_internal.h
M libc/src/stdlib/CMakeLists.txt
M libc/src/stdlib/environ_internal.cpp
M libc/src/stdlib/environ_internal.h
M libc/src/stdlib/linux/CMakeLists.txt
A libc/src/stdlib/linux/putenv.cpp
M libc/src/stdlib/linux/realpath.cpp
A libc/src/stdlib/putenv.h
M libc/test/integration/src/stdlib/CMakeLists.txt
A libc/test/integration/src/stdlib/putenv_test.cpp
M libc/test/shared/CMakeLists.txt
M libc/test/shared/shared_builtins_test.cpp
M libc/test/src/__support/CMakeLists.txt
M libc/test/src/__support/CPP/string_test.cpp
M libc/test/src/__support/hash_test.cpp
M libc/test/src/semaphore/linux/CMakeLists.txt
M libc/test/src/semaphore/linux/semaphore_test.cpp
M libc/test/src/stdio/CMakeLists.txt
M libc/test/src/stdio/fscanf_test.cpp
M libc/test/src/stdlib/CMakeLists.txt
M libc/test/src/stdlib/realpath_test.cpp
M libc/test/src/sys/mman/linux/CMakeLists.txt
M libc/test/src/sys/mman/linux/pkey_test.cpp
M libc/test/src/unistd/CMakeLists.txt
M libc/test/src/unistd/chown_test.cpp
M libc/test/src/unistd/syscall_test.cpp
M libc/test/src/unistd/truncate_test.cpp
M libcxx/docs/ReleaseNotes/24.rst
M libcxx/docs/Status/Cxx20Issues.csv
M libcxx/include/__algorithm/pstl.h
M libcxx/include/__math/traits.h
M libcxx/include/__memory/allocator.h
M libcxx/include/__pstl/backend_fwd.h
M libcxx/include/__pstl/backends/default.h
M libcxx/include/bitset
M libcxx/include/cmath
M libcxx/include/fstream
M libcxx/include/optional
M libcxx/include/tuple
M libcxx/src/include/atomic_support.h
M libcxx/src/ios.instantiations.cpp
M libcxx/test/benchmarks/containers/sequence/sequence_container_benchmarks.h
M libcxx/test/benchmarks/containers/string.bench.cpp
A libcxx/test/extensions/libcxx/input.output/file.streams/fstreams/filebuf.members/test.dat
A libcxx/test/extensions/libcxx/input.output/file.streams/fstreams/filebuf.members/xsgetn.buffer.pass.cpp
M libcxx/test/libcxx/algorithms/pstl.iterator-requirements.verify.cpp
M libcxx/test/libcxx/algorithms/pstl.nodiscard.verify.cpp
M libcxx/test/libcxx/atomics/clear_padding.pass.cpp
M libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-clang.pass.cpp
M libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-gcc.pass.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/pstl.adjacent_find.pass.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.adjacent.find/pstl.adjacent_find_pred.pass.cpp
M libcxx/test/std/algorithms/pstl.exception_handling.pass.cpp
M libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/xsgetn.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/lshift.assign.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/lshift.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/rshift.assign.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/rshift.pass.cpp
A libcxx/test/std/numerics/c.math/isgreater.pass.cpp
A libcxx/test/std/numerics/c.math/isgreaterequal.pass.cpp
A libcxx/test/std/numerics/c.math/isless.pass.cpp
A libcxx/test/std/numerics/c.math/islessequal.pass.cpp
A libcxx/test/std/numerics/c.math/islessgreater.pass.cpp
A libcxx/test/std/numerics/c.math/isunordered.pass.cpp
M libcxx/test/std/numerics/numarray/template.valarray/valarray.access/access.pass.cpp
M libcxx/test/std/numerics/numarray/template.valarray/valarray.access/const_access.pass.cpp
M libcxx/test/support/test_macros.h
M libcxxabi/src/cxa_personality.cpp
M libunwind/include/unwind.h
A libunwind/include/unwind_wasm.h
M libunwind/src/Unwind-wasm.c
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/Relocations.cpp
M lld/ELF/SyntheticSections.cpp
M lld/ELF/SyntheticSections.h
M lld/test/ELF/aarch64-thunk-align.s
M lld/test/ELF/aarch64-thunk-bti-execute-only.s
M lld/test/ELF/aarch64-thunk-bti-multipass.s
M lld/test/ELF/aarch64-thunk-bti.s
M lld/test/ELF/aarch64-thunk-script.s
A lld/test/ELF/aarch64-thunk-sort.s
M lld/test/ELF/arm-bl-v4t.s
M lld/test/ELF/arm-branch-rangethunk.s
M lld/test/ELF/arm-force-pi-thunk.s
M lld/test/ELF/arm-thumb-condbranch-thunk.s
M lld/test/ELF/arm-thumb-interwork-shared.s
M lld/test/ELF/arm-thumb-interwork-thunk.s
M lld/test/ELF/arm-thumb-mix-range-thunk-os.s
M lld/test/ELF/arm-thumb-plt-range-thunk-os.s
M lld/test/ELF/arm-thumb-range-thunk-os-no-ext.s
M lld/test/ELF/arm-thumb-range-thunk-os.s
M lld/test/ELF/arm-thunk-arm-thumb-reuse.s
M lld/test/ELF/arm-thunk-linkerscript-dotexpr.s
M lld/test/ELF/arm-thunk-linkerscript-orphan.s
M lld/test/ELF/arm-thunk-linkerscript.s
M lld/test/ELF/arm-thunk-re-add.s
M lld/test/ELF/hexagon-thunk-range-b22rel.s
M lld/test/ELF/ppc32-call-stub-nopic.s
M lld/test/ELF/ppc32-call-stub-pic.s
M lld/test/ELF/ppc32-long-thunk.s
M lld/test/ELF/ppc64-call-reach.s
M lld/test/ELF/ppc64-ifunc.s
M lld/test/ELF/ppc64-long-branch-pi.s
M lld/test/ELF/ppc64-long-branch-rel14.s
M lld/test/ELF/ppc64-long-branch.s
M lld/test/wasm/lto/libcall-archive-bitcode.ll
M lldb/bindings/python/CMakeLists.txt
M lldb/bindings/python/python-wrapper.swig
M lldb/docs/CMakeLists.txt
A lldb/examples/python/templates/scripted_command.py
M lldb/include/lldb/API/SBCommandReturnObject.h
M lldb/include/lldb/API/SBDebugger.h
M lldb/include/lldb/Host/JSONTransport.h
A lldb/include/lldb/Interpreter/Interfaces/ScriptedCommandInterface.h
M lldb/include/lldb/Interpreter/ScriptInterpreter.h
M lldb/include/lldb/Protocol/MCP/Transport.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/include/lldb/lldb-forward.h
M lldb/packages/Python/lldbsuite/test/builders/builder.py
M lldb/packages/Python/lldbsuite/test/dotest.py
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
M lldb/packages/Python/lldbsuite/test/tools/lldb_dap/session.py
M lldb/source/API/SBCommandReturnObject.cpp
A lldb/source/API/SBCommandReturnObjectImpl.h
M lldb/source/API/SBTarget.cpp
M lldb/source/Commands/CommandObjectCommands.cpp
M lldb/source/Core/IOHandler.cpp
M lldb/source/Expression/DWARFExpression.cpp
M lldb/source/Host/common/JSONTransport.cpp
M lldb/source/Host/linux/HostInfoLinux.cpp
M lldb/source/Interpreter/ScriptInterpreter.cpp
M lldb/source/Plugins/Language/ObjC/CF.cpp
M lldb/source/Plugins/Language/ObjC/Cocoa.cpp
M lldb/source/Plugins/Language/ObjC/NSArray.cpp
M lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
M lldb/source/Plugins/Language/ObjC/NSError.cpp
M lldb/source/Plugins/Language/ObjC/NSException.cpp
M lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
M lldb/source/Plugins/Language/ObjC/NSSet.cpp
M lldb/source/Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
M lldb/source/Plugins/Process/wasm/RegisterContextWasm.cpp
M lldb/source/Plugins/Process/wasm/ThreadWasm.cpp
M lldb/source/Plugins/Process/wasm/ThreadWasm.h
M lldb/source/Plugins/Protocol/MCP/Tool.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptInterpreterPythonInterfaces.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptInterpreterPythonInterfaces.h
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedCommandPythonInterface.cpp
A lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedCommandPythonInterface.h
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h
M lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
M lldb/source/Protocol/MCP/Transport.cpp
M lldb/source/Target/Target.cpp
M lldb/test/API/commands/gui/spawn-threads/TestGuiSpawnThreads.py
M lldb/test/API/commands/trace/TestTraceDumpInfo.py
M lldb/test/API/commands/trace/TestTraceDumpInstructions.py
M lldb/test/API/commands/trace/TestTraceExport.py
M lldb/test/API/commands/trace/TestTraceSave.py
M lldb/test/API/commands/trace/TestTraceStartStop.py
M lldb/test/API/functionalities/gdb_remote_client/TestGdbClientModuleLoad.py
A lldb/test/API/functionalities/process_save_core_minidump_size_of_image/Makefile
A lldb/test/API/functionalities/process_save_core_minidump_size_of_image/TestMinidumpSizeOfImage.py
A lldb/test/API/functionalities/process_save_core_minidump_size_of_image/main.c
A lldb/test/API/functionalities/process_save_core_minidump_size_of_image/testlib.c
A lldb/test/API/linux/aarch64/aarch32_compat/Makefile
A lldb/test/API/linux/aarch64/aarch32_compat/TestAArch64LinuxAArch32Compat.py
A lldb/test/API/linux/aarch64/aarch32_compat/main.s
A lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_win_debug_heap.py
M lldb/test/API/tools/lldb-dap/longpath/TestDAP_launch_longPath.py
M lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py
M lldb/test/API/tools/lldb-dap/runInTerminal/main.c
M lldb/test/API/tools/lldb-dap/stackTrace/subtleFrames/TestDAP_subtleFrames.py
M lldb/test/API/tools/lldb-dap/unknown/TestDAP_unknownRequest.py
M lldb/test/CMakeLists.txt
A lldb/test/Shell/MCP/TestHelp.test
A lldb/test/Shell/MCP/TestUnknownArgument.test
A lldb/test/Shell/MCP/TestVersion.test
M lldb/test/Shell/Settings/TestCxxFrameFormatRecursive.test
M lldb/test/Shell/helper/toolchain.py
M lldb/tools/lldb-dap/Handler/RequestHandler.cpp
M lldb/tools/lldb-mcp/lldb-mcp.cpp
M lldb/unittests/Expression/DWARFExpressionTest.cpp
M lldb/unittests/Host/HostInfoTest.cpp
M lldb/unittests/Host/JSONTransportTest.cpp
M lldb/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp
M llvm/docs/AMDGPUUsage.rst
R llvm/docs/BugpointRedesign.md
M llvm/docs/CommandGuide/llvm-readobj.rst
M llvm/docs/GettingInvolved.md
M llvm/docs/LangRef.md
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/ADT/APFloat.h
M llvm/include/llvm/BinaryFormat/MachO.def
M llvm/include/llvm/BinaryFormat/MachO.h
M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
M llvm/include/llvm/CodeGen/MIR2Vec.h
M llvm/include/llvm/CodeGen/MachinePipeliner.h
M llvm/include/llvm/CodeGen/MachineScheduler.h
M llvm/include/llvm/CodeGenTypes/MachineValueType.h
M llvm/include/llvm/ExecutionEngine/Orc/Core.h
M llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
M llvm/include/llvm/ExecutionEngine/Orc/MachOBuilder.h
M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
M llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
M llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
M llvm/include/llvm/IR/Instruction.h
M llvm/include/llvm/IR/RuntimeLibcalls.td
M llvm/include/llvm/MC/MCMachObjectWriter.h
M llvm/include/llvm/MC/MCStreamer.h
M llvm/include/llvm/Object/MachO.h
M llvm/include/llvm/ProfileData/SampleProfReader.h
M llvm/include/llvm/Support/CodeGen.h
R llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/include/llvm/TargetParser/CMakeLists.txt
M llvm/include/llvm/TargetParser/SubtargetFeature.h
M llvm/include/llvm/TargetParser/Triple.h
A llvm/include/llvm/Transforms/Instrumentation/CopyProf.h
M llvm/include/llvm/Transforms/Utils/LoopConstrainer.h
M llvm/include/module.install.modulemap
M llvm/include/module.modulemap
M llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
M llvm/lib/Analysis/IVDescriptors.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
M llvm/lib/CodeGen/DetectDeadLanes.cpp
M llvm/lib/CodeGen/ExpandPostRAPseudos.cpp
M llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
M llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/InitUndef.cpp
M llvm/lib/CodeGen/LiveDebugVariables.cpp
M llvm/lib/CodeGen/LiveRangeShrink.cpp
M llvm/lib/CodeGen/MIR2Vec.cpp
M llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
M llvm/lib/CodeGen/MachineCSE.cpp
M llvm/lib/CodeGen/MachineCombiner.cpp
M llvm/lib/CodeGen/MachineCopyPropagation.cpp
M llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp
M llvm/lib/CodeGen/MachinePipeliner.cpp
M llvm/lib/CodeGen/MachineScheduler.cpp
M llvm/lib/CodeGen/MachineSink.cpp
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
M llvm/lib/CodeGen/PostRASchedulerList.cpp
M llvm/lib/CodeGen/ProcessImplicitDefs.cpp
M llvm/lib/CodeGen/PrologEpilogInserter.cpp
M llvm/lib/CodeGen/RegAllocBasic.cpp
M llvm/lib/CodeGen/RegAllocGreedy.cpp
M llvm/lib/CodeGen/RegAllocPBQP.cpp
M llvm/lib/CodeGen/RegisterCoalescer.cpp
M llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp
M llvm/lib/CodeGen/RenameIndependentSubregs.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/StackSlotColoring.cpp
M llvm/lib/CodeGen/StaticDataSplitter.cpp
M llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
M llvm/lib/CodeGen/TypePromotion.cpp
M llvm/lib/CodeGen/WasmEHPrepare.cpp
M llvm/lib/CodeGen/XRayInstrumentation.cpp
M llvm/lib/ExecutionEngine/Orc/COFFPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/Core.cpp
M llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
M llvm/lib/ExecutionEngine/Orc/ReOptimizeLayer.cpp
M llvm/lib/ExecutionEngine/Orc/SelfExecutorProcessControl.cpp
M llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
M llvm/lib/ExecutionEngine/Orc/SimpleRemoteEPC.cpp
M llvm/lib/Frontend/Offloading/Utility.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/LTO/LTOModule.cpp
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCMachOStreamer.cpp
M llvm/lib/MC/MCParser/DarwinAsmParser.cpp
M llvm/lib/MC/MachObjectWriter.cpp
M llvm/lib/ObjCopy/MachO/MachOLayoutBuilder.cpp
M llvm/lib/Object/MachOObjectFile.cpp
M llvm/lib/ObjectYAML/MachOEmitter.cpp
M llvm/lib/ObjectYAML/MachOYAML.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/Support/APFloat.cpp
M llvm/lib/TableGen/TGLexer.cpp
M llvm/lib/TableGen/TGParser.cpp
M llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
M llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64PTrueCoalescing.cpp
M llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/lib/Target/AArch64/AArch64RegisterInfo.td
M llvm/lib/Target/AArch64/AArch64SRLTDefineSuperRegs.cpp
M llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
M llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
M llvm/lib/Target/AArch64/SVEInstrFormats.td
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUFeatures.td
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMemoryUtils.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPromoteKernelArguments.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
M llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
M llvm/lib/Target/AMDGPU/AMDGPURewriteUndefForPHI.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetParser.td
M llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
M llvm/lib/Target/AMDGPU/GCNProcessors.td
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
M llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
M llvm/lib/Target/AMDGPU/R600Packetizer.cpp
M llvm/lib/Target/AMDGPU/R600Processors.td
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
M llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp
M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
M llvm/lib/Target/AMDGPU/SIProgramInfo.cpp
M llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/Target/ARC/ARCOptAddrMode.cpp
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
M llvm/lib/Target/ARM/ARMParallelDSP.cpp
M llvm/lib/Target/ARM/MVETailPredication.cpp
M llvm/lib/Target/Hexagon/HexagonCopyHoisting.cpp
M llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp
M llvm/lib/Target/Hexagon/HexagonLiveVariables.cpp
M llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
M llvm/lib/Target/Mips/MipsPostLegalizerCombiner.cpp
M llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/PowerPC/PPCGenScalarMASSEntries.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCLowerMASSVEntries.cpp
M llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp
M llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp
M llvm/lib/Target/RISCV/GISel/RISCVPostLegalizerCombiner.cpp
M llvm/lib/Target/RISCV/GISel/RISCVPreLegalizerCombiner.cpp
M llvm/lib/Target/RISCV/RISCVDeadRegisterDefinitions.cpp
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/lib/Target/RISCV/RISCVMacroFusion.td
A llvm/lib/Target/RISCV/RISCVMacroFusionXQCI.td
M llvm/lib/Target/RISCV/RISCVPushPopOptimizer.cpp
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVInstPrinter.cpp
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVMergeRegionExitTargets.cpp
M llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
M llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
M llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp
M llvm/lib/Target/SPIRV/SPIRVPreLegalizerCombiner.cpp
M llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
M llvm/lib/Target/VE/VEInstrPatternsVec.td
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyPostLegalizerCombiner.cpp
M llvm/lib/Target/WebAssembly/GISel/WebAssemblyPreLegalizerCombiner.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
M llvm/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
M llvm/lib/Target/X86/GISel/X86PostLegalizerCombiner.cpp
M llvm/lib/Target/X86/GISel/X86PreLegalizerCombiner.cpp
M llvm/lib/Target/X86/X86.td
M llvm/lib/Target/X86/X86ExpandPseudo.cpp
M llvm/lib/Target/X86/X86FloatingPoint.cpp
M llvm/lib/Target/X86/X86FrameLowering.cpp
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
M llvm/lib/Target/X86/X86InsertX87Wait.cpp
M llvm/lib/Target/X86/X86InstrAVX512.td
M llvm/lib/Target/X86/X86InstrSSE.td
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/lib/TargetParser/Triple.cpp
M llvm/lib/Transforms/IPO/SampleProfile.cpp
M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Instrumentation/CMakeLists.txt
A llvm/lib/Transforms/Instrumentation/CopyProf.cpp
M llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
M llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
M llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
M llvm/lib/Transforms/Scalar/JumpThreading.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
M llvm/lib/Transforms/Scalar/Reassociate.cpp
M llvm/lib/Transforms/Scalar/Sink.cpp
M llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
M llvm/lib/Transforms/Utils/LCSSA.cpp
M llvm/lib/Transforms/Utils/LoopConstrainer.cpp
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M llvm/lib/Transforms/Utils/MoveAutoInit.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
A llvm/test/Analysis/CostModel/AArch64/sve-vls-reduce-bfp.ll
A llvm/test/Analysis/CostModel/AArch64/sve-vls-reduce-fp.ll
A llvm/test/Analysis/CostModel/AArch64/sve-vls-reduce-int.ll
A llvm/test/Analysis/CostModel/WebAssembly/cast.ll
M llvm/test/Analysis/ScalarEvolution/backedge-taken-count-guard-info-apply-to-adds.ll
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
M llvm/test/Analysis/ScalarEvolution/trip-count-minmax.ll
A llvm/test/Assembler/module-flags-long-double-type.ll
A llvm/test/Bitcode/upgrade-ppc-float-abi.ll
M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-inline-asm.ll
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-cttz.mir
M llvm/test/CodeGen/AArch64/GlobalISel/reg-bank-128bit.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-assert-sext.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-assert-zext.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-ceil.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-dup.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-extract-vector-elt.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-extract.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-fcmp.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-fma.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-fmaximum.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-fminimum.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-fp-use-def.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-inlineasm.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-insert-vector-elt.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-intrinsic-round.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-intrinsic-trunc.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-intrinsic.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-llround.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-lround.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-maxnum.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-minnum.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-nearbyint.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-select.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-shift-imm-64.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-trunc-s128.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-build-vector.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-dbg-value.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-default.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-fp-loads.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-reductions.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-reg_sequence.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbankselect-unmerge-vec.mir
M llvm/test/CodeGen/AArch64/GlobalISel/split-wide-shifts-multiway.ll
M llvm/test/CodeGen/AArch64/clmul-fixed.ll
M llvm/test/CodeGen/AArch64/clmul.ll
A llvm/test/CodeGen/AArch64/misched-reg-pressure-limits.mir
M llvm/test/CodeGen/AArch64/neon-dotreduce.ll
M llvm/test/CodeGen/AArch64/neon-extadd.ll
A llvm/test/CodeGen/AArch64/sve-fixed-length-bf16-vselect.ll
M llvm/test/CodeGen/AArch64/sve-fixed-length-masked-expandloads.ll
M llvm/test/CodeGen/AArch64/sve-ptrue-coalesce.mir
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-mulh.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll
M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-trunc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/bool-legalization.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/fptrunc.bf16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.fmas.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-add.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ballot.i64.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.div.fmas.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.kill.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.wqm.demote.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-and-s1.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-regbanklegalize.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-or.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-sadde.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-select.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-ssube.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-sub.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-uadde.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-usube.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-xor.mir
M llvm/test/CodeGen/AMDGPU/agpr-copy-no-free-registers.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll
M llvm/test/CodeGen/AMDGPU/bitop3-shared-operand.ll
M llvm/test/CodeGen/AMDGPU/elf-header-flags-sramecc.ll
M llvm/test/CodeGen/AMDGPU/extra-lds-size.ll
M llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16-true16.mir
M llvm/test/CodeGen/AMDGPU/fmed3-cast-combine.ll
A llvm/test/CodeGen/AMDGPU/freeze-scalar-load.ll
M llvm/test/CodeGen/AMDGPU/global_smrd_cfg.ll
M llvm/test/CodeGen/AMDGPU/idot4-test.ll
M llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll
M llvm/test/CodeGen/AMDGPU/lds-size-hsa-gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.ll
M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-attr.mir
M llvm/test/CodeGen/AMDGPU/mad-mix-bf16.ll
M llvm/test/CodeGen/AMDGPU/mixed-vmem-types.ll
M llvm/test/CodeGen/AMDGPU/move-to-valu-addsubu64.ll
M llvm/test/CodeGen/AMDGPU/mul_int24.ll
M llvm/test/CodeGen/AMDGPU/neg_ashr64_reduce.ll
M llvm/test/CodeGen/AMDGPU/no-corresponding-integer-type.ll
M llvm/test/CodeGen/AMDGPU/noclobber-barrier.ll
M llvm/test/CodeGen/AMDGPU/pack-half-to-lshl-or.ll
M llvm/test/CodeGen/AMDGPU/packed-fp32.ll
M llvm/test/CodeGen/AMDGPU/pal-metadata-3.0.gfx950.ll
A llvm/test/CodeGen/AMDGPU/soft-waitcnt-deletion.mir
M llvm/test/CodeGen/AMDGPU/sra.ll
M llvm/test/CodeGen/AMDGPU/sramecc-subtarget-feature-any.ll
M llvm/test/CodeGen/ARM/elf-preemption.ll
A llvm/test/CodeGen/ARM/regcoalesce-undef-copy-subreg-redef.ll
A llvm/test/CodeGen/ARM/regcoalesce-undef-copy-subreg-redef.mir
A llvm/test/CodeGen/MIR2Vec/Inputs/mir2vec_classless_vocab.json
A llvm/test/CodeGen/MIR2Vec/classless-physreg.mir
A llvm/test/CodeGen/MIR2Vec/classless-vreg.mir
A llvm/test/CodeGen/MIR2Vec/empty-machine-function.mir
M llvm/test/CodeGen/PowerPC/O3-pipeline.ll
M llvm/test/CodeGen/PowerPC/gnu-attribute.ll
A llvm/test/CodeGen/RISCV/epilog-crash.ll
M llvm/test/CodeGen/RISCV/features-info.ll
A llvm/test/CodeGen/RISCV/macro-fusions-xqci.mir
M llvm/test/CodeGen/RISCV/rvp-simd-32.ll
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
M llvm/test/CodeGen/RISCV/rvv/vmerge-peephole.mir
A llvm/test/CodeGen/RISCV/shadow-stack-zcmp.ll
M llvm/test/CodeGen/RISCV/shadowcallstack.ll
M llvm/test/CodeGen/SPIRV/debug-info/debug-global-variable-skip-type-not-in-regs.ll
M llvm/test/CodeGen/SPIRV/debug-info/debug-global-variable-static-member.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-array-of-composite-drop.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-nested-drop.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-skip-member-not-in-regs.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite-static-member-skipped.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-composite.ll
A llvm/test/CodeGen/SPIRV/debug-info/debug-type-pointer-to-composite-drop.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_tensor_float32_conversion/tf32-conv.ll
A llvm/test/CodeGen/SPIRV/get-global-id-non-integer-dim.ll
M llvm/test/CodeGen/SPIRV/hlsl-resources/NonUniformIdx/RWBufferNonUniformIdxLoop.ll
M llvm/test/CodeGen/SPIRV/legalization/signed-narrow-int.ll
M llvm/test/CodeGen/SPIRV/literals.ll
M llvm/test/CodeGen/VE/Packed/vp_mul.ll
M llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll
M llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.mir
M llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll
M llvm/test/CodeGen/WebAssembly/eh-lsda.ll
M llvm/test/CodeGen/WebAssembly/exception-legacy.ll
M llvm/test/CodeGen/WebAssembly/exception-legacy.mir
M llvm/test/CodeGen/WebAssembly/exception.ll
M llvm/test/CodeGen/WebAssembly/function-info.mir
M llvm/test/CodeGen/WebAssembly/immutable-global-alias.ll
M llvm/test/CodeGen/WebAssembly/imported-const-global.ll
M llvm/test/CodeGen/WebAssembly/lower-wasm-ehsjlj-phi.ll
M llvm/test/CodeGen/WebAssembly/lower-wasm-ehsjlj.ll
M llvm/test/CodeGen/WebAssembly/wasm-eh-em-sjlj-error.ll
M llvm/test/CodeGen/WebAssembly/wasm-eh-invalid-personality.ll
M llvm/test/CodeGen/WebAssembly/wasm-eh-prepare.ll
M llvm/test/CodeGen/WebAssembly/wasm-eh-sjlj-setjmp-within-catch.ll
M llvm/test/CodeGen/X86/fp-strict-scalar-inttofp-fp16.ll
M llvm/test/CodeGen/X86/lea-opt-cse1.ll
M llvm/test/CodeGen/X86/lea-opt-cse2.ll
M llvm/test/CodeGen/X86/lea-opt-cse4.ll
M llvm/test/CodeGen/X86/lea-recursion.ll
A llvm/test/CodeGen/X86/lea-reuse-rip-relative.ll
A llvm/test/CodeGen/X86/pr51707.ll
M llvm/test/CodeGen/X86/stack-folding-fp-avx1.ll
A llvm/test/CodeGen/X86/vector-sint-to-fp-zero.ll
A llvm/test/CodeGen/X86/vector-uint-to-fp-zero.ll
M llvm/test/CodeGen/X86/zero-call-used-regs.ll
M llvm/test/ExecutionEngine/JITLink/Generic/Inputs/MachO_Universal_libFoo_dylib.yaml
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/adaptive_constant_global_redzones.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/adaptive_global_redzones.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_do_not_instrument_lds.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_do_not_instrument_scratch.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_instrument_constant_address_space.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_instrument_generic_address_space.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/asan_instrument_global_address_space.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/global_metadata_addrspacecasts.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/no_redzones_in_lds_globals.ll
M llvm/test/Instrumentation/AddressSanitizer/AMDGPU/no_redzones_in_scratch_globals.ll
A llvm/test/Instrumentation/CopyProf/function-instrumentation.ll
A llvm/test/Instrumentation/CopyProf/no-instrumentation.ll
A llvm/test/Instrumentation/CopyProf/store-instrumentation.ll
M llvm/test/Instrumentation/Instrumentor/inline_runtime.ll
A llvm/test/LTO/X86/ifunc.ll
A llvm/test/Linker/module-flags-long-double-type.ll
M llvm/test/MC/AMDGPU/alignto_mcexpr.s
M llvm/test/MC/AMDGPU/amdgcn-target-directive-conflict.s
M llvm/test/MC/AMDGPU/amdgcn-target-directive-triple-env.s
M llvm/test/MC/AMDGPU/branch-comment.s
M llvm/test/MC/AMDGPU/data.s
M llvm/test/MC/AMDGPU/dl-insts-err.s
M llvm/test/MC/AMDGPU/ds-err.s
M llvm/test/MC/AMDGPU/elf-lds-error.s
M llvm/test/MC/AMDGPU/elf-lds.s
M llvm/test/MC/AMDGPU/elf-notes-verify-amdgcn.s
M llvm/test/MC/AMDGPU/exp-err.s
M llvm/test/MC/AMDGPU/exp-pregfx11.s
M llvm/test/MC/AMDGPU/exp.s
M llvm/test/MC/AMDGPU/flat.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3p.s
M llvm/test/MC/AMDGPU/hsa-diag-v4.s
M llvm/test/MC/AMDGPU/hsa-exp.s
M llvm/test/MC/AMDGPU/hsa-gfx12-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx1250-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx1251-v4.s
M llvm/test/MC/AMDGPU/hsa-gfx13-v4.s
M llvm/test/MC/AMDGPU/hsa-metadata-kernel-args-v3.s
M llvm/test/MC/AMDGPU/hsa-metadata-kernel-attrs-v3.s
M llvm/test/MC/AMDGPU/hsa-metadata-kernel-code-props-v3.s
M llvm/test/MC/AMDGPU/hsa-tg-split.s
M llvm/test/MC/AMDGPU/hsa-v4.s
M llvm/test/MC/AMDGPU/hsa-v5-uses-dynamic-stack.s
M llvm/test/MC/AMDGPU/isa-version-pal.s
M llvm/test/MC/AMDGPU/isa-version-unk.s
M llvm/test/MC/AMDGPU/labels-branch-err.s
M llvm/test/MC/AMDGPU/labels-branch-gfx9.s
M llvm/test/MC/AMDGPU/labels-branch.s
M llvm/test/MC/AMDGPU/max-branch-distance.s
M llvm/test/MC/AMDGPU/mcexpr_amd.s
M llvm/test/MC/AMDGPU/mcexpr_amd_err.s
M llvm/test/MC/AMDGPU/occupancy_mcexpr.s
M llvm/test/MC/AMDGPU/offset-expr.s
M llvm/test/MC/AMDGPU/offsetbug_once.s
M llvm/test/MC/AMDGPU/offsetbug_one_and_one.s
M llvm/test/MC/AMDGPU/offsetbug_twice.s
M llvm/test/MC/AMDGPU/pal-registers.s
M llvm/test/MC/AMDGPU/regression/bug28538.s
M llvm/test/MC/AMDGPU/reloc-directive.s
M llvm/test/MC/AMDGPU/round-trip.s
M llvm/test/MC/AMDGPU/s_endpgm.s
M llvm/test/MC/AMDGPU/sop1-err.s
M llvm/test/MC/AMDGPU/sop1.s
M llvm/test/MC/AMDGPU/sop2-err.s
M llvm/test/MC/AMDGPU/sop2.s
M llvm/test/MC/AMDGPU/sopk-err.s
M llvm/test/MC/AMDGPU/sopp-err.s
M llvm/test/MC/AMDGPU/sopp.s
M llvm/test/MC/AMDGPU/sym_kernel_scope.s
M llvm/test/MC/AMDGPU/trap.s
M llvm/test/MC/AMDGPU/user-sgpr-count.s
M llvm/test/MC/AMDGPU/vcc_tuples.s
M llvm/test/MC/AMDGPU/vintrp-err.s
M llvm/test/MC/AMDGPU/vop2-err.s
M llvm/test/MC/AMDGPU/vop3-literal.s
M llvm/test/MC/AMDGPU/vopc-errs.s
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3p.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_wave64_feature.s
M llvm/test/MC/Disassembler/AMDGPU/gfx9_smem.txt
M llvm/test/MC/Disassembler/AMDGPU/gfx9_smem_features.txt
A llvm/test/MC/MachO/target-triple-padding.s
A llvm/test/MC/MachO/target-triple.s
M llvm/test/MachineVerifier/AMDGPU/verify-ds-vdata-vdst-both-agpr-or-vgpr.mir
A llvm/test/Object/Inputs/macho-invalid-target-triple-name_offset-toobig.yaml
A llvm/test/Object/Inputs/macho-invalid-target-triple-name_offset-toosmall.yaml
A llvm/test/Object/Inputs/macho-invalid-target-triple-name_toobig.yaml
A llvm/test/Object/Inputs/macho-invalid-target-triple-small.yaml
M llvm/test/Object/macho-invalid.test
A llvm/test/ObjectYAML/MachO/target_triple_command.yaml
M llvm/test/TableGen/AMDGPUTargetDefErrors.td
M llvm/test/TableGen/aarch64-register-info-stats.td
M llvm/test/TableGen/eof-after-endif.td
A llvm/test/TableGen/ifdef-cr-instead-of-newline.td
A llvm/test/Transforms/Attributor/nofpclass-arbitrary-fp.ll
A llvm/test/Transforms/ConstraintElimination/ne-tightening.ll
M llvm/test/Transforms/ConstraintElimination/reproducer-remarks.ll
A llvm/test/Transforms/ConstraintElimination/srem.ll
M llvm/test/Transforms/ConstraintElimination/sub.ll
M llvm/test/Transforms/ExpandVariadics/invoke.ll
M llvm/test/Transforms/IRCE/compound-loop-bound.ll
A llvm/test/Transforms/IRCE/expansion-cleanup-analysis-invalidation.ll
M llvm/test/Transforms/IndVarSimplify/canonicalize-cmp.ll
M llvm/test/Transforms/InstCombine/catchswitch-phi.ll
A llvm/test/Transforms/JumpThreading/dup-cond-br-recursive-phi.ll
M llvm/test/Transforms/JumpThreading/phi-copy-to-pred.ll
M llvm/test/Transforms/LoopIdiom/add-nsw-zext-fold.ll
A llvm/test/Transforms/LoopIdiom/memmove-ext.ll
M llvm/test/Transforms/LoopUnroll/runtime-unroll-reductions-min-max.ll
M llvm/test/Transforms/LoopVectorize/AArch64/cmp_cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/fully-unrolled-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions-unusual-types.ll
M llvm/test/Transforms/LoopVectorize/AArch64/synthesize-mask-for-call.ll
M llvm/test/Transforms/LoopVectorize/ARM/mve-icmpcost.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/call-decisions.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/partial-reduce-usabs.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/single-scalar-cast.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve-tail-folding-forced.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve2-histcnt-vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/vplan-memory-op-decisions.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/vplan-printing.ll
M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/widen-call-with-intrinsic-or-libfunc.ll
M llvm/test/Transforms/LoopVectorize/VPlan/PowerPC/vplan-force-tail-with-evl.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-riscv-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics-fixed-order-recurrence.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics-reduction.ll
M llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/VPlan/X86/scalarize-wide-load-for-address-use.ll
M llvm/test/Transforms/LoopVectorize/VPlan/X86/vplan-vp-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/VPlan/conditional-scalar-assignment-vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/dissolve-replicate-regions.ll
M llvm/test/Transforms/LoopVectorize/VPlan/early_exit_with_stores_vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/find-last.ll
M llvm/test/Transforms/LoopVectorize/VPlan/first-order-recurrence-chains-vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/interleave-conditional-scalar-assignment-vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/phi-with-fastflags-vplan.ll
M llvm/test/Transforms/LoopVectorize/VPlan/print-attributes.ll
M llvm/test/Transforms/LoopVectorize/VPlan/scalarize-irregular-type-memops.ll
M llvm/test/Transforms/LoopVectorize/VPlan/simplify-reverse-reverse.ll
M llvm/test/Transforms/LoopVectorize/VPlan/uncountable-early-exit-vplan.ll
A llvm/test/Transforms/LoopVectorize/VPlan/vplan-based-stride-mv.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-dot-printing.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-iv-transforms.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-alias-mask.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-before-execute.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions-tail-folded.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-sink-scalars-and-merge.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-widen-struct-return.ll
M llvm/test/Transforms/LoopVectorize/VPlan/widen-canonical-iv-register-pressure.ll
A llvm/test/Transforms/LoopVectorize/X86/CostModel/store-scalarization-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/CostModel/vpinstruction-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/cost-model-i386.ll
M llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll
M llvm/test/Transforms/LoopVectorize/X86/reduction-small-size.ll
M llvm/test/Transforms/LoopVectorize/X86/replicating-load-store-costs.ll
M llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll
M llvm/test/Transforms/LoopVectorize/induction-cost.ll
M llvm/test/Transforms/LoopVectorize/runtime-checks-difference.ll
A llvm/test/Transforms/LoopVectorize/vplan-based-stride-mv.ll
A llvm/test/Transforms/PGOProfile/icp_hot_func_threshold.ll
M llvm/test/Transforms/PGOProfile/memop_profile_funclet_wasm.ll
M llvm/test/Transforms/SLPVectorizer/X86/fmuladd-copyable-add-part.ll
A llvm/test/Transforms/SLPVectorizer/X86/fmuladd-copyable-mul-part.ll
M llvm/test/Transforms/SLPVectorizer/X86/reassociate-ops.ll
M llvm/test/Transforms/SLPVectorizer/X86/resized-bv-values-non-power-of2-node.ll
M llvm/test/Transforms/SROA/phi-catchswitch.ll
M llvm/test/Transforms/SimpleLoopUnswitch/catchswitch.ll
M llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
M llvm/test/Transforms/SimplifyCFG/branch-nested.ll
M llvm/test/Transforms/SimplifyCFG/cleanup-phis.ll
M llvm/test/Verifier/AMDGPU/alloca.ll
M llvm/test/Verifier/AMDGPU/reqd-work-group-size.ll
A llvm/test/Verifier/module-flags-long-double-type.ll
M llvm/test/lit.cfg.py
M llvm/test/lit.site.cfg.py.in
M llvm/test/tools/UpdateTestChecks/update_analyze_test_checks/Inputs/vplan.ll.expected
A llvm/test/tools/dsymutil/AArch64/lc_target_triple.test
A llvm/test/tools/dsymutil/AArch64/lc_target_triple_duplicate.test
A llvm/test/tools/dsymutil/AArch64/lc_target_triple_universal.test
A llvm/test/tools/dsymutil/Inputs/lc_target_triple.arm64
A llvm/test/tools/dsymutil/Inputs/lc_target_triple_duplicate.arm64
A llvm/test/tools/dsymutil/Inputs/lc_target_triple_universal.arm64
A llvm/test/tools/llubi/ptrtoint_cast.ll
A llvm/test/tools/llvm-objcopy/MachO/lc-target-triple.test
A llvm/test/tools/llvm-objdump/MachO/target-triple.yaml
M llvm/test/tools/llvm-offload-wrapper/offload-wrapper.ll
A llvm/test/tools/llvm-readobj/MachO/target-triple.test
M llvm/tools/dsymutil/MachOUtils.cpp
M llvm/tools/llubi/lib/Context.cpp
M llvm/tools/llubi/lib/Interpreter.cpp
M llvm/tools/llvm-objdump/MachODump.cpp
M llvm/tools/llvm-readobj/MachODumper.cpp
M llvm/tools/llvm-readobj/ObjDumper.h
M llvm/tools/llvm-readobj/Opts.td
M llvm/tools/llvm-readobj/llvm-readobj.cpp
M llvm/tools/obj2yaml/macho2yaml.cpp
M llvm/unittests/ADT/APFloatTest.cpp
M llvm/unittests/Analysis/IVDescriptorsTest.cpp
M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
M llvm/unittests/ExecutionEngine/Orc/MachOBuilderTest.cpp
M llvm/unittests/ProfileData/SampleProfTest.cpp
M llvm/unittests/TargetParser/TargetParserTest.cpp
M llvm/unittests/TargetParser/TripleTest.cpp
M llvm/utils/TableGen/Basic/AMDGPUTargetDefEmitter.cpp
M llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
M llvm/utils/git/github-automation.py
M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
M llvm/utils/gn/secondary/llvm/include/llvm/TargetParser/BUILD.gn
M llvm/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gn
M llvm/utils/gn/secondary/llvm/test/BUILD.gn
M llvm/utils/gn/secondary/llvm/utils/TableGen/Basic/BUILD.gn
M llvm/utils/lit/CMakeLists.txt
M llvm/utils/lit/tests/lit.site.cfg.in
M mlir/include/mlir/Conversion/Passes.td
M mlir/include/mlir/Dialect/Affine/Transforms/Passes.h
M mlir/include/mlir/Dialect/Affine/Transforms/Passes.td
M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
M mlir/include/mlir/Dialect/Quant/IR/QuantTypes.h
M mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
M mlir/lib/Conversion/MathToXeVM/CMakeLists.txt
M mlir/lib/Conversion/MathToXeVM/MathToXeVM.cpp
M mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp
M mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
M mlir/lib/Dialect/Affine/Transforms/AffineLoopNormalize.cpp
A mlir/lib/Dialect/OpenACC/Transforms/ACCEmitRemarksData.cpp
M mlir/lib/Dialect/OpenACC/Transforms/ACCRoutineLowering.cpp
M mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
M mlir/lib/Dialect/Quant/IR/QuantTypes.cpp
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
M mlir/lib/Target/LLVM/NVVM/Target.cpp
M mlir/test/CMakeLists.txt
M mlir/test/Conversion/GPUToSPIRV/reductions.mlir
M mlir/test/Conversion/MathToXeVM/math-to-xevm.mlir
M mlir/test/Conversion/SCFToSPIRV/for.mlir
M mlir/test/Conversion/SPIRVToLLVM/arithmetic-ops-to-llvm.mlir
M mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir
M mlir/test/Dialect/Affine/affine-loop-normalize.mlir
A mlir/test/Dialect/OpenACC/acc-emit-remarks-data.mlir
M mlir/test/Dialect/OpenACC/acc-routine-lowering.mlir
M mlir/test/Dialect/Quant/invalid-quantile-types.mlir
M mlir/test/Dialect/Quant/quantile-types.mlir
M mlir/test/Dialect/Tosa/availability.mlir
M mlir/test/Dialect/Tosa/canonicalize.mlir
M mlir/test/Dialect/Tosa/invalid.mlir
M mlir/test/Dialect/Tosa/invalid_extension.mlir
M mlir/test/Dialect/Tosa/ops.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p0-invalid.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p1-valid.mlir
M mlir/test/Dialect/Tosa/verifier.mlir
M mlir/test/Examples/Toy/Ch6/llvm-lowering.mlir
M mlir/test/Examples/Toy/Ch7/llvm-lowering.mlir
M mlir/test/IR/invalid-ops.mlir
M mlir/test/IR/invalid-properties.mlir
M mlir/test/IR/properties.mlir
M mlir/test/Integration/GPU/CUDA/command-line-arg.mlir
M mlir/test/Unit/lit.site.cfg.py.in
M mlir/test/lib/Dialect/Test/TestOps.td
M mlir/test/lib/Dialect/Test/TestOpsSyntax.td
M mlir/test/lit.site.cfg.py.in
M mlir/test/mlir-tblgen/op-format.mlir
M mlir/test/mlir-tblgen/op-format.td
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
M offload/plugins-nextgen/common/CMakeLists.txt
M offload/plugins-nextgen/common/src/JIT.cpp
M offload/test/CMakeLists.txt
M offload/test/mapping/declare_mapper_nested_mappers.cpp
M offload/test/mapping/declare_mapper_target.cpp
M offload/test/mapping/declare_mapper_target_data.cpp
M offload/test/mapping/declare_mapper_target_data_enter_exit.cpp
M offload/test/mapping/declare_mapper_target_update.cpp
A offload/test/mapping/mapper_enter_data_always_present_ptee.c
A offload/test/mapping/mapper_map_always_from.c
A offload/test/mapping/mapper_map_always_to_enter_data.c
A offload/test/mapping/mapper_map_mbr_ptee_then_present_mbr_ptee.c
A offload/test/mapping/mapper_map_mbr_then_present_mbr_ptee.c
A offload/test/mapping/mapper_map_present_ptee.c
A offload/test/mapping/mapper_map_ptee_only.c
A offload/test/mapping/mapper_map_ptee_only_2_ptr_indirections.c
A offload/test/mapping/mapper_map_ptee_only_2_ptr_indirections_array.c
A offload/test/mapping/mapper_map_ptee_only_2ndlevel.c
A offload/test/mapping/mapper_map_ptee_only_2ndlevel_array.c
A offload/test/mapping/mapper_map_ptee_only_always_array.c
A offload/test/mapping/mapper_map_ptee_only_array.c
A offload/test/mapping/mapper_map_ptee_then_present_absent_mbr.c
A offload/test/mapping/mapper_map_ptr_ptee_nomapper_del_ptee.c
A offload/test/mapping/mapper_map_ptr_ptee_nomapper_del_ptr.c
A offload/test/mapping/mapper_target_update_present_ptee.c
A offload/test/mapping/multiple_deletes_within_one_struct.c
A offload/test/offloading/fortran/mapper-map-always-to-enter-data.f90
M offload/unittests/OffloadAPI/queue/olLaunchHostFunction.cpp
M openmp/device/include/DeviceTypes.h
M third-party/benchmark/src/sysinfo.cc
M utils/bazel/llvm-project-overlay/flang/lib/Optimizer/Transforms/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/stdio/BUILD.bazel
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
Merge branch 'main' into users/kovdan01/pauthtest-elf-got
Compare: https://github.com/llvm/llvm-project/compare/46c4de802215...702852b420dd
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list