[all-commits] [llvm/llvm-project] 2c4b18: [Bazel] Fixes 96f1b89 (#204010)
Joel E. Denny via All-commits
all-commits at lists.llvm.org
Tue Jun 23 12:10:27 PDT 2026
Branch: refs/heads/users/jdenny-ornl/filecheck-test-braced-search-ranges
Home: https://github.com/llvm/llvm-project
Commit: 2c4b18b57edbe73fcdea5eced7d21571695dfe66
https://github.com/llvm/llvm-project/commit/2c4b18b57edbe73fcdea5eced7d21571695dfe66
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 96f1b89 (#204010)
This fixes 96f1b89a90613b16f4b9346b60dd81038cb8d86d.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 41a6f5de9995eb1af027f8f942322366f06027e1
https://github.com/llvm/llvm-project/commit/41a6f5de9995eb1af027f8f942322366f06027e1
Author: yueshe <yueshe at google.com>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M clang/CMakeLists.txt
Log Message:
-----------
[clang][CMake][Darwin] Make HOST_LINK_VERSION a CACHE option on Darwin (#203917)
This allows specifying a fixed host linker version during Clang
configuration (e.g. -DHOST_LINK_VERSION=1249), bypassing the default
auto-detection. This is useful for hermetic packaging scripts where the
auto-detected host linker might differ from the intended target linker,
and we do not want certain features to be enabled that depends on the
host linker version -- e.g.
https://github.com/llvm/llvm-project/issues/203385
Commit: 70a796cb30aca7ceed507c3f83baace5067bfbf9
https://github.com/llvm/llvm-project/commit/70a796cb30aca7ceed507c3f83baace5067bfbf9
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Object/DXContainer.cpp
M llvm/test/tools/obj2yaml/DXContainer/SRCIPart-multi-source-zlib-compute.yaml
M llvm/test/tools/obj2yaml/DXContainer/SRCIPart-multi-source-zlib.yaml
M llvm/test/tools/obj2yaml/DXContainer/SRCIPart-zlib-compute.yaml
M llvm/test/tools/obj2yaml/DXContainer/SRCIPart-zlib.yaml
M llvm/unittests/ObjectYAML/DXContainerYAMLTest.cpp
Log Message:
-----------
[DirectX][ObjectYAML] Fix SRCI round-trip tests that use zlib compression (#202479)
Size of zlib-compressed SRCI part content may vary depending on Zlib
version. Therefore, round-trip yaml2obj/obj2yaml tests for SRCI part of
DXContainer should not rely on Contents section size.
Since part size field is not optional, SRCI part sizes in tests were
slightly increased to adopt to possible Contents section size change.
`Size field in SRCI header does not match SRCI part size` check is
relaxed to allow parsing such DXContainers (where actual SRCI part size
is smaller than allocated part size).
Commit: 8a9abd94da3cfd0d3ee1e489569fc07bf10b895d
https://github.com/llvm/llvm-project/commit/8a9abd94da3cfd0d3ee1e489569fc07bf10b895d
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M lldb/test/API/macosx/riscv32-corefile/TestRV32MachOCorefile.py
Log Message:
-----------
[lldb] Add skipIfRemote to TestRV32MachOCorefile (#204022)
I'm getting a failure on the lldb-remote-linux-ubuntu bot, but the
ubuntu native bot works fine. The failure is a little difficult to
understand;
```
FAIL: LLDB (/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/bin/clang-aarch64) :: test_riscv32_gpr_corefile_registers (TestRV32MachOCorefile.TestRV32MachOCorefile.test_riscv32_gpr_corefile_registers)
Log Files:
- /home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/build/lldb-test-build.noindex/macosx/riscv32-corefile/TestRV32MachOCorefile/Failure_test_riscv32_gpr_corefile_registers.log
======================================================================
FAIL: test_riscv32_gpr_corefile_registers (TestRV32MachOCorefile.TestRV32MachOCorefile.test_riscv32_gpr_corefile_registers)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/packages/Python/lldbsuite/test/decorators.py", line 544, in wrapper
return func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/buildbot/worker/as-builder-9/lldb-remote-linux-ubuntu/llvm-project/lldb/test/API/macosx/riscv32-corefile/TestRV32MachOCorefile.py", line 28, in test_riscv32_gpr_corefile_registers
self.assertEqual(thread.GetNumFrames(), 2)
AssertionError: 1 != 2
```
So it's got _a_ corefile, is it possible a corefile from a previous run
is still being used on the remote tester system, from when this corefile
only had 1 frame? I'm not sure.
Commit: b6888f0b0873eaff7ce148c10960c24d50ef50df
https://github.com/llvm/llvm-project/commit/b6888f0b0873eaff7ce148c10960c24d50ef50df
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M lldb/cmake/modules/LLDBConfig.cmake
Log Message:
-----------
[lldb] Make DYNAMIC_SCRIPTINTERPRETERS the default on Darwin & FreeBSD. (#204015)
Make `LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS` the default on Darwin and
FreeBSD. We can opt-in more platforms later, or even make this the
global default (except Windows, which doesn't need it).
Fixes #183791
Commit: 12b807ead6c7cf0088278e70d79d72607d9b084a
https://github.com/llvm/llvm-project/commit/12b807ead6c7cf0088278e70d79d72607d9b084a
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/unittests/Driver/BUILD.gn
Log Message:
-----------
[gn build] Port 63c9264c770b (#204034)
Commit: 86c073af08bac41fe0349eee2bc0279e5f88d6d9
https://github.com/llvm/llvm-project/commit/86c073af08bac41fe0349eee2bc0279e5f88d6d9
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
M llvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn
Log Message:
-----------
[gn build] Port 7dc09d0d3cf1 (#204035)
Commit: 2d95de04c94dc28ab1a638448cbe830011b8b12d
https://github.com/llvm/llvm-project/commit/2d95de04c94dc28ab1a638448cbe830011b8b12d
Author: Jinsong Ji <jinsong.ji at intel.com>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M llvm/tools/llvm-shlib/gen-msvc-exports.py
Log Message:
-----------
[llvm-shlib] Fix parallel build failure in gen-msvc-exports.py on Windows (#197190)
The script was failing with OSError [Errno 22] Invalid argument when
opening a temp file during parallel Windows builds. The root cause is
that mkstemp() creates and closes a file descriptor, then the script
re-opens it by path in a loop. On Windows, between the close and
re-open, antivirus software or filesystem contention from parallel
build processes can briefly lock the file, causing the subsequent
open() to fail with EINVAL.
Fix by replacing the temp-file-based approach with
subprocess.check_output(), which captures nm's stdout directly in
memory. This eliminates the temp file entirely, removing the race
condition and simplifying the code (removing the unused mkstemp,
contextmanager, and os imports along with the helper functions).
Commit: 8d61da2569a975346150371cb0d317fb9339be0c
https://github.com/llvm/llvm-project/commit/8d61da2569a975346150371cb0d317fb9339be0c
Author: Jason Molenda <jmolenda at apple.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/test/API/macosx/riscv32-corefile/TestRV32MachOCorefile.py
Log Message:
-----------
[lldb] Only run rv32 corefile test if rv32 llvm target enabled (#204040)
Commit: 78d0ee8b5f66a3b6c214d23136aba63d82fcbdfa
https://github.com/llvm/llvm-project/commit/78d0ee8b5f66a3b6c214d23136aba63d82fcbdfa
Author: Luke Lau <luke at igalia.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
Log Message:
-----------
[VPlan] Add VPlan::getPoison helper. NFC (#203937)
We do this in a few places, so this adds a helper similar to
getTrue/getConstantInt and friends.
Commit: 1eae7ef75b01199f317b2be22f0d95cb3ef8658e
https://github.com/llvm/llvm-project/commit/1eae7ef75b01199f317b2be22f0d95cb3ef8658e
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/wmma-coexecution-valu-hazards.mir
M llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx1250-w32.mir
Log Message:
-----------
[AMDGPU] Update f8f6f4-wmma hazard tests regarding matrix format, NFC (#204037)
Need to map the matrix format suffix to the register size correctly in
the MIR tests. For example, 'F4' format needs v8i32 register class.
Commit: 4281db2755459933c68aa95a17f2518ef8317889
https://github.com/llvm/llvm-project/commit/4281db2755459933c68aa95a17f2518ef8317889
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/Analysis/SPIRVConvergenceRegionAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
M llvm/lib/Target/SPIRV/SPIRVMergeRegionExitTargets.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.h
Log Message:
-----------
[SPIRV] Replace unordered_{map,set} with DenseMap/SmallPtrSet (#204046)
Extracted from #202222
Commit: 17db41c33e46dae9ecaea3a5b75fb4aba156dced
https://github.com/llvm/llvm-project/commit/17db41c33e46dae9ecaea3a5b75fb4aba156dced
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoZvdot4a8i.td
Log Message:
-----------
[RISCV] Add scheduling data to vdot4aus.vx (#204038)
Remove unnecessary mayLoad, mayStore, hasSideEffects
Commit: dab3476bb4ee2696539841b220687e94ea7f0ae0
https://github.com/llvm/llvm-project/commit/dab3476bb4ee2696539841b220687e94ea7f0ae0
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpgather.ll
M llvm/test/CodeGen/RISCV/rvv/mgather-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/mscatter-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vpgather-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll
Log Message:
-----------
[RISCV] Consider known leading zeros in narrowIndex for gather/scatter. (#203970)
If there are enough leading zeros for the shift amount, then
we can do the shift in the narrow type.
Commit: 1f3d3d66fce8a53d9ed405ee1aba10b3d1fe3677
https://github.com/llvm/llvm-project/commit/1f3d3d66fce8a53d9ed405ee1aba10b3d1fe3677
Author: Chaitanya <Krishna.Sankisa at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M flang/include/flang/Lower/OpenMP.h
M flang/include/flang/Semantics/symbol.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/lib/Semantics/symbol.cpp
R flang/test/Lower/OpenMP/Todo/groupprivate.f90
A flang/test/Lower/OpenMP/groupprivate-modfile.f90
A flang/test/Lower/OpenMP/groupprivate.f90
Log Message:
-----------
[flang][mlir] Add flang to mlir lowering for groupprivate (#180934)
This PR implements the Flang frontend lowering for the OpenMP
`groupprivate`
Changes:
- Update genOMP handler for OpenMPGroupprivate in OpenMP.cpp to generate
`omp.groupprivate` MLIR operation.
- Add clause processing for groupprivate variables
- Add test cases for groupprivate lowering
Co-Authored-By: Claude
[noreply at anthropic.com](mailto:noreply at anthropic.com)
Commit: 2cb8b6192d1a0ba93902ac9ee5067db0c3765ebd
https://github.com/llvm/llvm-project/commit/2cb8b6192d1a0ba93902ac9ee5067db0c3765ebd
Author: Weibo He <NewSigma at 163.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
Log Message:
-----------
[TTI] Add missing no-cost coroutine intrinsics (#203816)
These intrinsics are lowered in the CoroCleanup pass and don't represent
actual code. This patch adds them to the no-cost list so they do not
contribute to the cost of inlining and optimization.
Commit: 96e45c54c04c5deb29e8d778a8096735f8b4daee
https://github.com/llvm/llvm-project/commit/96e45c54c04c5deb29e8d778a8096735f8b4daee
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/ADT/SCCIterator.h
M llvm/include/llvm/DebugInfo/LogicalView/Readers/LVDWARFReader.h
M llvm/include/llvm/IR/ModuleSummaryIndex.h
M llvm/lib/ObjCopy/ELF/ELFObject.cpp
M llvm/lib/Passes/StandardInstrumentations.cpp
M llvm/tools/llvm-profgen/ProfileGenerator.cpp
M llvm/tools/llvm-profgen/ProfileGenerator.h
M llvm/tools/llvm-profgen/ProfiledBinary.h
Log Message:
-----------
[llvm] Replace unordered_set<T *> with SmallPtrSet<T *, 0> (#204051)
std::unordered_set is slow. For pointer sets without a pointer-stability
or iterator-stability requirement, use SmallPtrSet<T *, 0> for a smaller
code size.
Commit: fa5d8f8c41dfc0fa5f25f094168ca64e7681115b
https://github.com/llvm/llvm-project/commit/fa5d8f8c41dfc0fa5f25f094168ca64e7681115b
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lld/ELF/Writer.cpp
M lld/docs/ReleaseNotes.rst
M lld/test/ELF/keep-data-section-prefix.s
M lld/test/ELF/linkerscript/data-segment-relro.test
M lld/test/ELF/relro-non-contiguous-script-data.s
M lld/test/ELF/relro-non-contiguous.s
Log Message:
-----------
[ELF] Support multiple PT_GNU_RELRO when SECTIONS is used without PHDRS (#203675)
When a SECTIONS command interleaves relro and non-relro sections, the
relro
region is split into discontiguous runs. lld emits an error since
https://reviews.llvm.org/D40359
error: section: <name> is not contiguous with other relro sections
This is overly strict: while glibc only honors the first PT_GNU_RELRO,
other loaders (e.g. Bionic and FreeBSD rtld-elf) protect every
PT_GNU_RELRO segment.
Emit one PT_GNU_RELRO segment for each contiguous run of relro sections.
Track the boundary section so that `createPhdrs` starts a fresh PT_LOAD
at each relro->non-relro transition, as before.
Consumers that don't expect multiple PT_GNU_RELRO should check the
output themselves.
Commit: 6548844b972f87816bac56f9921363a890b96b88
https://github.com/llvm/llvm-project/commit/6548844b972f87816bac56f9921363a890b96b88
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
M llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp
M llvm/lib/IR/PrintPasses.cpp
M llvm/lib/Transforms/IPO/SampleProfileProbe.cpp
M llvm/tools/llvm-config/llvm-config.cpp
M llvm/tools/llvm-profgen/PerfReader.cpp
M llvm/tools/llvm-profgen/PerfReader.h
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
M llvm/tools/llvm-profgen/ProfiledBinary.h
M llvm/tools/llvm-readobj/ObjDumper.h
Log Message:
-----------
[llvm] Replace unordered_set<std::string> with StringSet (#204048)
std::unordered_set<std::string> without a pointer-stability requirement
can use StringSet: it avoids per-TU hashtable instantiations and the
std::string temporary at StringRef lookup sites (~3-4 KiB smaller .text
for llc/opt).
Commit: 08834adcae88734e92359941c594c2ef6474c817
https://github.com/llvm/llvm-project/commit/08834adcae88734e92359941c594c2ef6474c817
Author: owenca <owenpiano at gmail.com>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M clang/lib/Format/UnwrappedLineFormatter.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Fix a bug in merging short inline functions (#203754)
Fixes #203209
Commit: 089d0632a7dcc832cfe9dfeb55a9ab9458623957
https://github.com/llvm/llvm-project/commit/089d0632a7dcc832cfe9dfeb55a9ab9458623957
Author: owenca <owenpiano at gmail.com>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M clang/lib/Format/CMakeLists.txt
Log Message:
-----------
[clang-format][NFC] Don't always rebuild clang-format-check-format (#203828)
Instead, check the format of clan-format source only if the built
clang-format binary or one of the source files is newer.
Commit: 18cc9aa9c92be7d89d3e0877e7148782c14fd05a
https://github.com/llvm/llvm-project/commit/18cc9aa9c92be7d89d3e0877e7148782c14fd05a
Author: Gil Rapaport <gil.rapaport at mobileye.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
A mlir/include/mlir/Conversion/EmitCCommon/TypeConverter.h
M mlir/include/mlir/Conversion/MemRefToEmitC/MemRefToEmitC.h
M mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
M mlir/lib/Conversion/ArithToEmitC/ArithToEmitCPass.cpp
M mlir/lib/Conversion/ArithToEmitC/CMakeLists.txt
M mlir/lib/Conversion/CMakeLists.txt
M mlir/lib/Conversion/ConvertToEmitC/CMakeLists.txt
M mlir/lib/Conversion/ConvertToEmitC/ConvertToEmitCPass.cpp
A mlir/lib/Conversion/EmitCCommon/CMakeLists.txt
A mlir/lib/Conversion/EmitCCommon/TypeConverter.cpp
M mlir/lib/Conversion/FuncToEmitC/CMakeLists.txt
M mlir/lib/Conversion/FuncToEmitC/FuncToEmitCPass.cpp
M mlir/lib/Conversion/MemRefToEmitC/CMakeLists.txt
M mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitC.cpp
M mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitCPass.cpp
M mlir/lib/Conversion/SCFToEmitC/CMakeLists.txt
M mlir/lib/Conversion/SCFToEmitC/SCFToEmitC.cpp
M mlir/test/Conversion/FuncToEmitC/func-to-emitc.mlir
Log Message:
-----------
[mlir][emitc] Add a common type converter (#203763)
MemRef type conversion is currently implemented as part of the memref
dialect lowering pass, which means e.g. that func-to-emitc cannot lower
functions taking MemRef types as arguments.
This patch refactors the existing type conversions in EmitC's lowering
passes into a structure similar to the LLVM dialect by adding a common
EmitC type converter and using it across dialect-specfic EmitC lowering
passes and the generic convert-to-emitc pass.
Assisted-by: Copilot
Commit: ec802a731798096cc44b8f56c76a4baf0a01d4bd
https://github.com/llvm/llvm-project/commit/ec802a731798096cc44b8f56c76a4baf0a01d4bd
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/struct_winsize.h
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-macros/linux/sys-ioctl-macros.h
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/struct_winsize.h
M libc/include/sys/ioctl.yaml
M libc/test/src/sys/ioctl/linux/CMakeLists.txt
M libc/test/src/sys/ioctl/linux/ioctl_test.cpp
Log Message:
-----------
[libc] Add TIOCGWINSZ and struct winsize support (#203919)
Added support for the TIOCGWINSZ ioctl command.
* Defined struct winsize in llvm-libc-types.
* Defined TIOCGWINSZ in linux/sys-ioctl-macros.h.
* Exposed struct_winsize and TIOCGWINSZ in sys/ioctl.yaml.
* Added struct_winsize proxy header in hdr/types/struct_winsize.h.
* Added a unit test in test/src/sys/ioctl/linux/ioctl_test.cpp.
Assisted-by: Automated tooling, human reviewed.
Commit: 639b1d9ce45526f1ed53208f55442438d1b226c7
https://github.com/llvm/llvm-project/commit/639b1d9ce45526f1ed53208f55442438d1b226c7
Author: hev <wangrui at loongson.cn>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lld/ELF/Arch/LoongArch.cpp
A lld/test/ELF/loongarch-pcadd-hi20.s
Log Message:
-----------
[lld][LoongArch] Fix range checking of R_LARCH_*_PCADD_HI20 relocations on 64-bit (#183233)
According to the la-abi-specs, the `R_LARCH_*_PCADD_HI20` relocations
are also used on 64-bit LoongArch. Fix the range checking accordingly.
Commit: 0a04c148c14f190f46ac3b3711dccb823cb822d2
https://github.com/llvm/llvm-project/commit/0a04c148c14f190f46ac3b3711dccb823cb822d2
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/tools/llvm-exegesis/lib/Analysis.cpp
M llvm/tools/llvm-exegesis/lib/MCInstrDescView.h
M llvm/tools/llvm-exegesis/lib/RegisterAliasing.h
M llvm/tools/llvm-objdump/llvm-objdump.cpp
M llvm/tools/llvm-profdata/llvm-profdata.cpp
M llvm/tools/llvm-profgen/MissingFrameInferrer.cpp
M llvm/tools/llvm-profgen/MissingFrameInferrer.h
M llvm/tools/llvm-profgen/PerfReader.cpp
M llvm/tools/llvm-profgen/PerfReader.h
M llvm/tools/llvm-profgen/ProfileGenerator.cpp
M llvm/tools/llvm-profgen/ProfileGenerator.h
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
M llvm/tools/llvm-profgen/ProfiledBinary.h
M llvm/tools/llvm-remarkutil/RemarkUtilRegistry.cpp
M llvm/tools/llvm-xray/xray-registry.cpp
Log Message:
-----------
[llvm] Replace unordered_{map,set} with Dense{Map,Set} in llvm tools (#204058)
std::unordered_map is slow. Switch the remaining local maps and sets in
the command-line tools (llvm-profgen, llvm-profdata, llvm-objdump,
llvm-exegesis, llvm-xray, llvm-remarkutil) to DenseMap/DenseSet.
Commit: ccef34d45ae1ec28c129612a53f24b0e160912aa
https://github.com/llvm/llvm-project/commit/ccef34d45ae1ec28c129612a53f24b0e160912aa
Author: Luke Lau <luke at igalia.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reverse-load-store.ll
A llvm/test/Transforms/LoopVectorize/VPlan/simplify-reverse-reverse.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-after-all.ll
M llvm/test/Transforms/LoopVectorize/runtime-check-known-true.ll
Log Message:
-----------
[VPlan] Simplify reverse(reverse(x)) -> x (#199057)
This is a version of #196900 that performs the simplification as a
separate transform.
We need to add an additional `vp.splice.right(vp.splice.left(poison, x,
evl), poison, evl) -> x` simplification to avoid left over splices
whenever reverses are removed in an EVL tail folded loop.
Co-authored-by: Madhur Amilkanthwar <madhura at nvidia.com>
Commit: f88e9de37a52abf9b269a7232bf4d4028bc4ace8
https://github.com/llvm/llvm-project/commit/f88e9de37a52abf9b269a7232bf4d4028bc4ace8
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M libc/lib/CMakeLists.txt
Log Message:
-----------
[libc] Generate a stub for libpthread.a (#200908)
Several build systems / existing scripts assume that pthread functions
are exposed through separate library (`libpthread.so` / `libpthread.a`)
and thus use `-lpthread` flag explicitly. Since llvm-libc puts all the
pthread functions into the regular `libc`, teach the CMake build rules
to produce an empty static archive `libpthread.a` for compatibility
purposes.
Commit: 2e36f066212d134bd2e249fb280a1112edd9c50c
https://github.com/llvm/llvm-project/commit/2e36f066212d134bd2e249fb280a1112edd9c50c
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
A clang-tools-extra/test/clang-tidy/infrastructure/cli-argument-errors.cpp
A clang-tools-extra/test/clang-tidy/infrastructure/config-file-parse-errors.cpp
A clang-tools-extra/test/clang-tidy/infrastructure/config-option-errors.cpp
A clang-tools-extra/test/clang-tidy/infrastructure/export-fixes-errors.cpp
A clang-tools-extra/test/clang-tidy/infrastructure/list-checks-no-checks.cpp
A clang-tools-extra/test/clang-tidy/infrastructure/vfsoverlay-errors.cpp
Log Message:
-----------
[clang-tidy][NFC] Add more test coverage for tidy errors (#203987)
Commit: 9d7ca445a565f86316ced8b2711dd73f2f5d4226
https://github.com/llvm/llvm-project/commit/9d7ca445a565f86316ced8b2711dd73f2f5d4226
Author: Austin Kerbow <Austin.Kerbow at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h
M llvm/test/CodeGen/AMDGPU/misched-into-wmma-hazard-shadow.mir
Log Message:
-----------
[AMDGPU] Track VALU instructions separately for WMMA coexecution hazards (#202523)
WMMA coexecution hazards can only be resolved by VALU instructions, not
S_NOPs. Track VALU/WMMA instructions separately so the scheduler can
accurately determine stall cycles.
Commit: e13bb91295cdd403323ed6dc5fa2bb79c348f9c9
https://github.com/llvm/llvm-project/commit/e13bb91295cdd403323ed6dc5fa2bb79c348f9c9
Author: Nathan Corbyn <n_corbyn at apple.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/unittests/Target/AArch64/AArch64RegisterInfoTest.cpp
Log Message:
-----------
[AArch64] Reserve `W30_HI` and `[BHSDQ]31_HI` (#202929)
Commit: 161d8a7806b7b7388343beb56e1de62905c7b229
https://github.com/llvm/llvm-project/commit/161d8a7806b7b7388343beb56e1de62905c7b229
Author: David Zbarsky <dzbarsky at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/ClangdLSPServer.cpp
M clang-tools-extra/clangd/HeaderSourceSwitch.cpp
M clang-tools-extra/clangd/Protocol.cpp
M clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp
Log Message:
-----------
[clangd][nfc] Avoid type erasure for local recursive callbacks (#203042)
Four local clangd callbacks use std::function only to call themselves.
Switch to local structs and static functions to avoid std::function
type-erasure and copy-support machinery.
In matched Release AArch64 builds, the four object files shrink by 8,152
bytes and 131 relocations; linked clangd shrinks by 3,872 bytes
unstripped and 16 bytes stripped, with __text down 360 bytes,
__DATA_CONST,__const down 208 bytes, unwind data down 32 bytes, and 21
fewer dyld fixups.
Work towards #202616
AI tool disclosure: Co-authored with OpenAI Codex.
Commit: 1338c5cb84e9e93c3438d1945dcad88a1641fa9c
https://github.com/llvm/llvm-project/commit/1338c5cb84e9e93c3438d1945dcad88a1641fa9c
Author: Ömer Sinan Ağacan <omeragacan at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/Support/TargetOpcodes.def
M llvm/include/llvm/Target/GenericOpcodes.td
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/Utils.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64O0PreLegalizerCombiner.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp
M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/inline-memset-forced.mir
A llvm/test/CodeGen/AArch64/GlobalISel/inline-small-memset.mir
A llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-memset-inline.ll
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
A llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-memsetinline.mir
A llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memset.inline.ll
A llvm/test/CodeGen/Mips/GlobalISel/mips-prelegalizer-combiner/inline-memset.mir
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-memset-inline.mir
A llvm/test/CodeGen/RISCV/GlobalISel/memset-inline.ll
Log Message:
-----------
[GlobalISel] Implement `llvm.memset.inline` (#203198)
Commit: 4ae4a15e5a7eb553408e745035f3aa9498b9243d
https://github.com/llvm/llvm-project/commit/4ae4a15e5a7eb553408e745035f3aa9498b9243d
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
R clang-tools-extra/test/clang-tidy/infrastructure/cli-argument-errors.cpp
R clang-tools-extra/test/clang-tidy/infrastructure/config-file-parse-errors.cpp
R clang-tools-extra/test/clang-tidy/infrastructure/config-option-errors.cpp
R clang-tools-extra/test/clang-tidy/infrastructure/export-fixes-errors.cpp
R clang-tools-extra/test/clang-tidy/infrastructure/list-checks-no-checks.cpp
R clang-tools-extra/test/clang-tidy/infrastructure/vfsoverlay-errors.cpp
Log Message:
-----------
Revert "[clang-tidy][NFC] Add more test coverage for tidy errors" (#204073)
Reverts llvm/llvm-project#203987
Commit: fe51b83df33e49f02871bed57408aed09022ad6c
https://github.com/llvm/llvm-project/commit/fe51b83df33e49f02871bed57408aed09022ad6c
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/AssumeBundleQueries.h
M llvm/lib/Analysis/AssumeBundleQueries.cpp
M llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp
Log Message:
-----------
[Test] Remove test creating invalid assume operand bundles (#203945)
This was creating random assume operand bundles, using unsupported
attributes, and using invalid arguments for supported ones.
Rather than trying to salvage this test, delete it and the API it tests.
Commit: 2487cb005bb108a4659d84ae1cccfce457e25aae
https://github.com/llvm/llvm-project/commit/2487cb005bb108a4659d84ae1cccfce457e25aae
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvaluationResult.cpp
M clang/lib/AST/ByteCode/EvaluationResult.h
Log Message:
-----------
[clang][bytecode] Rename checkReturnValue to checkDynamicAllocations (#204064)
This is part of https://github.com/llvm/llvm-project/pull/186045, but
makes sense independently.
Commit: e675b9fbf06045e246b030789b13e3b794d5e4aa
https://github.com/llvm/llvm-project/commit/e675b9fbf06045e246b030789b13e3b794d5e4aa
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstSimplify/compare.ll
Log Message:
-----------
[InstSimplify] Consider `dereferenceable(N)` when simplifying pointer equalities (#203867)
Extend `computePointerICmp` to leverage `dereferenceable(N)` attribute
when simplifying pointer equality comparisons. Per attribute semantics,
an argument pointer marked as such cannot be a one-past-the-end pointer
to some object, thus it cannot equal the start of an adjacent object.
This lets us prove inequality between a `dereferenceable` argument and
storage allocated within the function.
Fixes: https://github.com/llvm/llvm-project/issues/200511.
Commit: 587e029b6b697764a89b7d7e0ccef6fe21025109
https://github.com/llvm/llvm-project/commit/587e029b6b697764a89b7d7e0ccef6fe21025109
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ByteCode/InterpState.h
Log Message:
-----------
[clang][bytecode] Remove InterpState::InitializingBlocks (#204054)
This was superseded by `InitializingPtrs` when implementing
`dynamic_cast`, so we can now remove `InitializingBlocks`.
Commit: d87350127163aab4bb710d284e4d0ca97d2652f9
https://github.com/llvm/llvm-project/commit/d87350127163aab4bb710d284e4d0ca97d2652f9
Author: Zhiheng Xie <xiezhiheng at huawei.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
A clang/test/Driver/aarch64-hip12.c
A clang/test/Driver/print-enabled-extensions/aarch64-hip12.c
M clang/test/Misc/target-invalid-cpu-note/aarch64.c
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/lib/TargetParser/Host.cpp
M llvm/test/CodeGen/AArch64/cpus.ll
M llvm/unittests/Target/AArch64/AArch64CacheLineSizeTest.cpp
M llvm/unittests/TargetParser/Host.cpp
M llvm/unittests/TargetParser/TargetParserTest.cpp
Log Message:
-----------
[AArch64] Add initial support for Hisilicon's hip12 core (#203446)
This patch adds initial support for Hisilicon's hip12 core (Kunpeng 950
processor).
For more information, see:
https://www.huawei.com/en/news/2025/9/hc-xu-keynote-speech
HIP12Model will come later.
Commit: 0560140193afa4ce3e55e893d0528ed1772dc894
https://github.com/llvm/llvm-project/commit/0560140193afa4ce3e55e893d0528ed1772dc894
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/lib/Optimizer/Transforms/MemoryUtils.cpp
A flang/test/Fir/memory-allocation-opt-do-concurrent.fir
Log Message:
-----------
[flang][MemoryAllocation] do not assume all blocks have terminators (#203902)
Update MemoryAllocation to cope with blocks without terminators.
`getTerminator` cannot be called when a block has no terminator and must
be guarded by `mightHaveTerminator`.
This case was hit for instance for alloca inside fir.do_concurrent.loop.
Add handling for single block regions with no terminators (which is the
case of `fir.do_concurrent.loop` and most regions without terminators).
The deallocation point can simply be placed at the end of the block in
such cases. For regions with several blocks and no terminators, the pass
will leave the alloca (no known operation used in flang with such
behavior).
Also add `AutomaticAllocationScope` to the `fir.do_concurrent.loop`
since each iteration is independent and owns its allocas (otherwise the
pass would create allocmem outside of the loops).
Commit: 0b1cb30cfac94eda10b0730d48f6de68c6993d91
https://github.com/llvm/llvm-project/commit/0b1cb30cfac94eda10b0730d48f6de68c6993d91
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/EvaluationResult.cpp
Log Message:
-----------
[clang][bytecode] Refactor collectBlocks() (#204062)
If the record has no pointer field, return from the function completely.
Commit: 541344270fb67fc791f0231bab4fbd716c7594e2
https://github.com/llvm/llvm-project/commit/541344270fb67fc791f0231bab4fbd716c7594e2
Author: Hongyu Chen <xxs_chy at outlook.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
A llvm/test/Transforms/DFAJumpThreading/single-block-defs.ll
Log Message:
-----------
[DFAJumpThreading] Do not thread over blocks with multiple phi definitions (#195512)
Fixes #195088
For the reduced case in the issue, there are 4 threading paths:
```
< then, case2, lbl_entry, switch_bb > [ 0, case2 ]
< case2, lbl_entry, switch_bb > [ 0, case2 ]
< then, case2, switch_bb > [ 1, case2 ]
< case2, switch_bb > [ 0, case2 ]
```
But the first path and the third path have a conflict: `then->case2`
cannot be diverged into `then->case2.0` and `then->case2.1` at the same
time, as jumping from `then` to `case2` does not really define a unique
exiting state. Multiple phi definition causes two exiting states (0 and
1) for `then->case2`.
The root cause is that the block with multiple definitions cannot be
regarded as a determinator.
Commit: a52195cc00f035eb43b1a18d257e39fe1b6272b7
https://github.com/llvm/llvm-project/commit/a52195cc00f035eb43b1a18d257e39fe1b6272b7
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/MC/MCAsmInfo.h
M llvm/include/llvm/MC/MCExpr.h
M llvm/lib/MC/MCDwarf.cpp
M llvm/lib/MC/MCExpr.cpp
Log Message:
-----------
[MC] Remove unused MCAsmInfo::usesDwarfFileAndLocDirectives and parameter. NFC (#204071)
Commit: 46af61a1236e7f1af155efac12eaa5155b0799e7
https://github.com/llvm/llvm-project/commit/46af61a1236e7f1af155efac12eaa5155b0799e7
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/JumpThreading.cpp
M llvm/test/Transforms/JumpThreading/guards.ll
Log Message:
-----------
[JumpThreading] Use context when checking speculatability (#203912)
Pass the terminator of the predecessor as context instruction when
checking for load speculatability. This needs to be done per
(unavailable) predecessor now, because the context is different. Cache
the guaranteed-to-transfer walk between checks, as that part if always
the same.
JumpThreading doesn't use AssumptionCache currently, so I believe this
is only observable under -use-dereferenceable-at-point-semantics. Adjust
the tests to drop nofree attributes that currently hide this issue with
the option enabled.
Commit: 8be07cf0c05bf1dda7c2e5d2eb58927605fa3f9e
https://github.com/llvm/llvm-project/commit/8be07cf0c05bf1dda7c2e5d2eb58927605fa3f9e
Author: Tomer Shafir <tomer.shafir8 at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/MacroFusion.cpp
A llvm/test/CodeGen/AArch64/misched-fusion-no-raw-dependency.mir
Log Message:
-----------
[MacroFusion] Restrict pairs to have SDep::Data dependency only (#203793)
This patch aims to restrict target independent macro fusion to
SDep::Data dependent paris only. The test demonstrates the case that has
driven this patch - 2 instructions are being wrongly macro fused by an
Artificial edge, without being RAW dependent. Currently macro fusion do
not really require a more relaxed constraint ike it has today. If this
is invalidated in the future, we can solve it later e.g. by adding a
hook.
Commit: 3503a1c868f27a925ec2714bc18174eb73303505
https://github.com/llvm/llvm-project/commit/3503a1c868f27a925ec2714bc18174eb73303505
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/test/AST/ByteCode/cxx11.cpp
Log Message:
-----------
[clang][bytecode] Not all bases compare equal (#204052)
Add the base class offset so they don't all compare equal.
Commit: ff5844c6687141f73a2437d2e0a0c97e462ea092
https://github.com/llvm/llvm-project/commit/ff5844c6687141f73a2437d2e0a0c97e462ea092
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/DropUnnecessaryAssumes.cpp
M llvm/test/Transforms/DropUnnecessaryAssumes/dereferenceable.ll
Log Message:
-----------
[DropUnnecessaryAssumes] Fix iterator invalidation. (#203765)
registerAssumption() below can append to (and reallocate) the cache's
assumption vector. Use integer index for indexing instead of using the
iterator. Stop at the original count, so we don't reprocess assumes
created during the loop.
PR: https://github.com/llvm/llvm-project/pull/203765
Commit: 3b466659f6aa7b5c1960c9cc96b7f5b8ec0e9ced
https://github.com/llvm/llvm-project/commit/3b466659f6aa7b5c1960c9cc96b7f5b8ec0e9ced
Author: Peter Smith <peter.smith at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lld/ELF/ScriptParser.cpp
A lld/test/ELF/linkerscript/overlay-symbols.test
Log Message:
-----------
[LLD] Allow all output-section-commands in OVERLAYS. (#203524)
The GNU ld grammar for overlays is:
secname1
{
output-section-command
output-section-command
...
}
secname2
...
The output-section-commands are the same as in an OutputSection. At
present we have a stripped down parser that only supports
InputSectionDescriptions, this does not permit other useful commands
such as defining symbols.
Due to recent refactoring it is now simple to reuse the parser for an
Output Section command rather than using a custom one.
I came to this via a comment in #202266. There looks to have been an
attempt to fix this in #159895, but it looks abandoned after review
comments.
Fixes #158569.
Commit: 7f35a2a81d73f6e764e9603c9c538421cc6fc51e
https://github.com/llvm/llvm-project/commit/7f35a2a81d73f6e764e9603c9c538421cc6fc51e
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/EmitC/IR/EmitC.td
M mlir/lib/Dialect/EmitC/IR/EmitC.cpp
A mlir/test/Dialect/EmitC/canonicalize.mlir
Log Message:
-----------
[MLIR][EmitC] Add optional pure attribute to CastOp (#202749)
In general, C++ cast expressions cannot always be assumed to be pure: they may
invoke user-defined conversions or be affected by floating-point environment
settings. However, in many practical cases, such as integer casts without
operator overloading, the cast is pure and can be treated as speculatable and
side-effect-free. For such cases, the newly added `pure` attribute may be used.
When `pure` attribute is set, `getSpeculatability()` returns `Speculatable` and
`getEffects()` reports no effects. It is UB if the `pure` attribute is set and
the actual conversion is not pure, e.g. when the user-defined conversion has
memory effects.
Commit: bd9b252264456b0cbdc824fc5836e1d43fd5b8a3
https://github.com/llvm/llvm-project/commit/bd9b252264456b0cbdc824fc5836e1d43fd5b8a3
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/EvaluationResult.cpp
M clang/test/AST/ByteCode/new-delete.cpp
Log Message:
-----------
[clang][bytecode] Check record bases for dynamic allocations (#204063)
This was missing.
Commit: 44bfd7d2e6a5461efbf432944e78b78796473111
https://github.com/llvm/llvm-project/commit/44bfd7d2e6a5461efbf432944e78b78796473111
Author: Zhige Chen <zhigec_cpp at outlook.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
A llvm/test/tools/llubi/assume_non_pow2_align_offset.ll
M llvm/test/tools/llubi/assume_operand_bundles.ll
A llvm/test/tools/llubi/assume_pow2_align_offset.ll
M llvm/tools/llubi/lib/Interpreter.cpp
Log Message:
-----------
[llubi] Update the implementation of assume align operand bundle (#203775)
This PR updates the implementation for the `"align"(ptr %p, i64 %align,
i64 %offset)` operand bundle of `@llvm.assume`: The old implementation
reduced align/offset to the largest shared power of two. But LangRef
requires checking %alloc - %offset in this case.
Commit: a9576f5edd9aa779dcf011754806e1fc7b67cb66
https://github.com/llvm/llvm-project/commit/a9576f5edd9aa779dcf011754806e1fc7b67cb66
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/packed-fp64.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for pk_f64 fadd, fmul and fma (#203559)
Commit: e559d43e47e1264962831f936d1ea56d0fd3465d
https://github.com/llvm/llvm-project/commit/e559d43e47e1264962831f936d1ea56d0fd3465d
Author: Markus Böck <markus.boeck02 at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/LLVMTypes.td
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
M mlir/lib/Target/LLVMIR/TypeFromLLVM.cpp
M mlir/lib/Target/LLVMIR/TypeToLLVM.cpp
M mlir/test/Dialect/LLVMIR/layout.mlir
M mlir/test/Dialect/LLVMIR/roundtrip.mlir
M mlir/test/Dialect/LLVMIR/types-invalid.mlir
M mlir/test/Dialect/LLVMIR/types.mlir
M mlir/test/Target/LLVMIR/Import/basic.ll
M mlir/test/Target/LLVMIR/llvmir.mlir
Log Message:
-----------
[mlir][LLVM] Add the `byte` type to the LLVM dialect (#203795)
This PR ports the newly added `byte` type from LLVM IR to mlir's LLVM
dialect. The simplest motivation for the byte type is being able to
implement `memcpy` in LLVM IR. This was previously not possible: Due to
rules around conversions between integers and pointers (which e.g.
implicitly happen during loads), partial-poisons and pointer provenance
were not preserved. No alterantive types to integers existed that one
could use to have poison and provenance preserving SSA-values. The byte
type solves exactly this issue. Frontends are encouraged to use it when
needed for better optimization capabilities.
Currently, the only operation that has changed semantics around `byte`
is `bitcast`. Is now allows casting between `byte` and `ptr` (unlike
integers and pointers).
Corresponding LLVM commit:
https://github.com/llvm/llvm-project/commit/80f2ef70f592
Assisted by Claude & Gemini
---------
Co-authored-by: Fabian Mora <fmora.dev at gmail.com>
Commit: 9ed8b1dff880f4000523e6cab3c726c9fb5a5b7d
https://github.com/llvm/llvm-project/commit/9ed8b1dff880f4000523e6cab3c726c9fb5a5b7d
Author: ioana ghiban <ioana.ghiban at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tensor/Transforms/Passes.h
M mlir/include/mlir/Dialect/Tensor/Transforms/Passes.td
M mlir/lib/Dialect/Tensor/Transforms/CMakeLists.txt
A mlir/lib/Dialect/Tensor/Transforms/ScalarizeFunctionResult.cpp
A mlir/test/Dialect/Tensor/scalarize-single-elem-return.mlir
Log Message:
-----------
[MLGO][EmitC] Scalarize single-element tensor returns (#199686)
Add an EmitC-owned preparation pass,
`mlgo-scalarize-single-element-tensor-return`, that rewrites private
functions returning a statically-shaped ranked tensor with exactly one
element into functions returning the element type directly.
Assisted-by: Codex (refine implementation + tests). I reviewed all code
and tests before submission.
## Example
Before:
```mlir
func.func private @rank1(%arg0: tensor<1xi64>) -> tensor<1xi64> {
return %arg0 : tensor<1xi64>
}
```
After:
```mlir
func.func private @rank1(%arg0: tensor<1xi64>) -> i64 {
%c0 = arith.constant 0 : index
%0 = tensor.extract %arg0[%c0] : tensor<1xi64>
return %0 : i64
}
```
Rank-0 tensors are handled similarly with `tensor.extract %t[]`, which
canonicalization/constant-folding can simplify further.
## Motivation
`tosa-converter-for-flite` may produce functions that return
tensor-wrapped scalars. These values are semantically scalars, but
remain packaged as single-element tensors in function signatures. This
becomes problematic later in lowering, especially for EmitC, where such
returns eventually bufferize to MemRef arrays and fail with:
```bash
error: 'emitc.func' op cannot return array type
```
This patch fixes the issue while the IR is still in `func`/`tensor`
form, where the scalar intent remains explicit and the transform can
stay semantics-driven.
## Scope
The transform is intentionally conservative: it only handles private
definitions with one single-element ranked tensor result, and it blocks
on public callers, non-call symbol users, unsupported callers, and
recursive cycles.
## Analysis
The pass runs at `ModuleOp` scope because legality depends on transitive
private call users. It first computes module-level scalarization
analysis from a `SymbolUserMap` snapshot, then rewrites only the
precomputed rewritable functions.
## Rewrite
Each rewritten function gets tensor.extract inserted before
`func.return`, its result type is updated with `funcOp.setType(...)`,
and direct `func.call` users are adjusted.
Unchanged private callers that still need the original tensor type are
adapted with `tensor.from_elements`.
Commit: 6409cedddcbdacaf0a4b2eb953f8473b8a50b328
https://github.com/llvm/llvm-project/commit/6409cedddcbdacaf0a4b2eb953f8473b8a50b328
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
Log Message:
-----------
[SPIR-V] Constrain OpExtInst on the modf integral part path (#203946)
Commit: 196912c49f6ff6b22c3c40507b23263a18bae096
https://github.com/llvm/llvm-project/commit/196912c49f6ff6b22c3c40507b23263a18bae096
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
Log Message:
-----------
[SPIR-V] Remove duplicate collectReqs call in runOnModule (NFC) (#203947)
Commit: 98bd0156821f613897ad83215e8a89bca4ef154c
https://github.com/llvm/llvm-project/commit/98bd0156821f613897ad83215e8a89bca4ef154c
Author: Mel Chen <mel.chen at sifive.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll
Log Message:
-----------
[VPlan] Recognize lshr in getSCEVExprForVPValue. (#203496)
When lshr v, const occurs and const is less than the type's bitwidth, it
can be treated as udiv v, (1 << const). This enables vectorizer to
convert more gathers into strided loads.
Pre-commit test #203488
Commit: 22bda6c4ca2aac6d90ac96edad6d099b210aa748
https://github.com/llvm/llvm-project/commit/22bda6c4ca2aac6d90ac96edad6d099b210aa748
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/test/AST/ByteCode/complex.cpp
Log Message:
-----------
[clang][bytecode] Add more checks around _Complex values (#204076)
Check the actual source type when converting a pointer to an rvalue. We
otherwise allow converting form a two-element primitive array.
Commit: f4c553901b4654c2e1284b69692835b3276a3fb7
https://github.com/llvm/llvm-project/commit/f4c553901b4654c2e1284b69692835b3276a3fb7
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
R llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-after-all.ll
A llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-before-after-all.ll
R llvm/test/Transforms/LoopVectorize/vplan-print-after.ll
A llvm/test/Transforms/LoopVectorize/vplan-print-before-after.ll
Log Message:
-----------
[LV] Add `-vplan-print-before=<pass-regex>` (#203933)
This can be helpful for debugging and for VPlan check tests (showing
before/after a specific transform).
This also adds `-vplan-print-before-all` for parity with
`-vplan-print-after-all`.
Commit: 427807ee51e9f57296a83263385083ee024a76c8
https://github.com/llvm/llvm-project/commit/427807ee51e9f57296a83263385083ee024a76c8
Author: Tomas Matheson <Tomas.Matheson at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
A llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-mla-one.ll
Log Message:
-----------
[AArch64][SVE] add missing instcombine x+1 -> x (#201851)
Commit: 0ad5f11500095e534e8c7392606b582a400c3c0e
https://github.com/llvm/llvm-project/commit/0ad5f11500095e534e8c7392606b582a400c3c0e
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/InterlockedAdd_spv_i64.ll
Log Message:
-----------
[SPIR-V] Add Int64Atomics to Vulkan available capabilities (#203194)
fixes #202456
Commit: 798358faf4501d90e20b6ad45f138c5b660db60d
https://github.com/llvm/llvm-project/commit/798358faf4501d90e20b6ad45f138c5b660db60d
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/fcopysign.bf16.ll
M llvm/test/CodeGen/AMDGPU/fcopysign.f16.ll
Log Message:
-----------
[AMDGPU] Fix lowerFCOPYSIGN dropping the sign bit when narrowing the sign operand (#203492)
TRUNCATE of the v2i32-bitcast sign kept the low 16 bits of each lane but
dropped f32 sign bit at bit 31
Shift right by 16 first so the sign bit lands in the f16 sign position
---------
Co-authored-by: Jay Foad <jay.foad at gmail.com>
Commit: 9018242eecd9314ee43919678c3ba40c5615d375
https://github.com/llvm/llvm-project/commit/9018242eecd9314ee43919678c3ba40c5615d375
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
A llvm/test/Transforms/LoopInterchange/fixed-size-no-signed-wrap.ll
Log Message:
-----------
[LoopInterchange] Add test for #200788 (NFC) (#204107)
Commit: dcc97d89ad41ac48e3a9a4eca75312d7d931c9f4
https://github.com/llvm/llvm-project/commit/dcc97d89ad41ac48e3a9a4eca75312d7d931c9f4
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/CommandLine.h
Log Message:
-----------
[Support] Apply suggested ABI annotation fixup (NFC) (#204102)
Reported by the "LLVM ABI annotation checker" on a PR, but present in
main.
See: https://github.com/llvm/llvm-project/pull/203969#issuecomment-4711157875
Commit: 6e3da4d2465413884c787b0391561836e9f853ec
https://github.com/llvm/llvm-project/commit/6e3da4d2465413884c787b0391561836e9f853ec
Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/MachineSink.cpp
A llvm/test/CodeGen/X86/machine-sink-dbg-loc.mir
Log Message:
-----------
Fix machine-sink using debug instruction source locations in merged locations (#203900)
Commit: 4af8d827f9ad2c28ab98b7404f5803a75980b43d
https://github.com/llvm/llvm-project/commit/4af8d827f9ad2c28ab98b7404f5803a75980b43d
Author: Dmitry Vasilyev <dvassiliev at accesssoftek.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.h
M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
Log Message:
-----------
Revert "[NVPTX] Rip out vestigial variadic support (NFC)" (#204106)
Reverts llvm/llvm-project#202385
Commit: f1ec32579d7eb370daf29f571793178b862df64c
https://github.com/llvm/llvm-project/commit/f1ec32579d7eb370daf29f571793178b862df64c
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll
Log Message:
-----------
[SelectionDAG] Fold subvector inserts into concat operands (#200937)
Push insert_subvector into the containing CONCAT_VECTORS operand when
the insertion is wholly contained there.
AI note: an LLM generated the code and the test, I've read them
Commit: b85c748c895768681b61c8047f8ff08e469408ca
https://github.com/llvm/llvm-project/commit/b85c748c895768681b61c8047f8ff08e469408ca
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/Mips/MipsMSAInstrInfo.td
M llvm/lib/Target/Mips/MipsRegisterInfo.td
M llvm/lib/Target/Mips/MipsSEISelLowering.cpp
M llvm/lib/Target/Mips/MipsSEISelLowering.h
M llvm/lib/Target/Mips/MipsScheduleGeneric.td
M llvm/lib/Target/Mips/MipsScheduleI6400.td
M llvm/lib/Target/Mips/MipsScheduleP5600.td
M llvm/test/CodeGen/Mips/msa/f16-llvm-ir.ll
Log Message:
-----------
[MIPS] soft-promote `f16` also when using `+msa` (#203065)
Fixes https://github.com/llvm/llvm-project/issues/202808
Make use of the default soft-promote mechanism for f16, rather than an
ad-hoc approach making f16 storage-only.
In theory you could leave it at that, but I added custom implementations
to make use of the instructions for `FP16_TO_FP` and `FP_TO_FP16`, and
manually apply the "fptoui to fptosi trick" which generates shorter
code.
I don't really have a good way of testing this. The assembly changes
look reasonable but it's easy to miss something subtle of course. I've
tried to break the change up into smaller commits but it's still kind of
a lot.
Commit: c1ec4b3c79967ae5ef824f7194540f6529405a03
https://github.com/llvm/llvm-project/commit/c1ec4b3c79967ae5ef824f7194540f6529405a03
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIROps.h
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/lib/Optimizer/Dialect/FIROps.cpp
M flang/test/Fir/mem2reg.mlir
Log Message:
-----------
[flang][mem2reg] promote memory slots through declares (#196975)
Leverage the new mem2reg APIs for views to remove the
"same block" limitation over fir.declare mem2reg, and to allow mem2reg
over fir.convert so that mixed dialect mem2reg with fir + memref is
possible.
Note that fir.declare_value for memory used with different value types
will be dropped (e.g. EQUIVALENCE). A later patch will deal with
improving fir.declare_value to carry the variable type interpedently of
the value (like in LLVM), but there are anyway a bit more work to enable
mem2reg with equivalence given their storage is an array of bytes.
Assisted by: Claude
Commit: cb1821d2088c8589fd0054d1bf96b10c0665c2be
https://github.com/llvm/llvm-project/commit/cb1821d2088c8589fd0054d1bf96b10c0665c2be
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/source/Expression/IRExecutionUnit.cpp
A lldb/test/API/lang/c/libc_calls/Makefile
A lldb/test/API/lang/c/libc_calls/TestLibcCalls.py
A lldb/test/API/lang/c/libc_calls/main.c
Log Message:
-----------
[lldb] Avoid calling dyld's versions of libc functions (#201829)
dyld ships with its own version of various libc functions that we are
not supposed to call. This patch prevents the expression evaluator from
calling them by respecting the existing list of forbidden modules.
Commit: 33bb0e76815aa9b1b26a5850d8859cdfb2718c2f
https://github.com/llvm/llvm-project/commit/33bb0e76815aa9b1b26a5850d8859cdfb2718c2f
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbpexpect.py
Log Message:
-----------
[lldb][test] Faster shut down for pexpect tests (#201171)
Our pexpect tests spend most of their time in the shutdown logic
waiting for the test child to shut down. For example, our editline
tests spend about 95% of their 40s runtime just waiting for the
pexpect child to terminate.
One of the reasons is that the ptyprocess terminate approach
uses a timeout to give the child time to shut down and be cleaned
up by the kernel. While this timeout makes sense, our timeout is
extremely long (6s) since 56fb7456950d2564d16500e40c5719c954a6987a .
Because the default ptyprocess implementation is designed for very
short timeouts (0.1s), it just sleeps and then checks the process
status. For our long timeout, the child most likely already terminated
way before the timeout on a fast system. However, because we have
some very slow builders, we cannot reduce this timeout without
making tests flaky again.
This patch replaces the default cleanup procedure with a custom one
that polls the child status after each attempt to shut it down. If
we find that the child is gone during polling, we immediately exit.
This patch reduces the time the pexpect tests significantly. Each
editline test for example now runs in 2 seconds on my machine compared
to 40s before. Also, all editline tests I'm aware of are now no longer
in the top 20 slowest test ranking on my setup.
Commit: 74ac7c93cb93c7faf1723d53193a948db26a7424
https://github.com/llvm/llvm-project/commit/74ac7c93cb93c7faf1723d53193a948db26a7424
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/test/API/commands/expression/anonymous-struct/TestCallUserAnonTypedef.py
M lldb/test/API/commands/expression/dollar-in-variable/TestDollarInVariable.py
M lldb/test/API/lang/objc/bitfield_ivars/TestBitfieldIvars.py
M lldb/test/API/lang/objcxx/conflicting-names-class-update-utility-expr/TestObjCConflictingNamesForClassUpdateExpr.py
Log Message:
-----------
[lldb][test] Introduce build_and_run test utility (#194386)
We currently have several hundred tests require a running process in a
given state, and therefore perform the same three tasks:
* compile a test executable
* set a breakpoint by finding a source regex
* then launch the test process to hit that breakpoint.
A large chunk of these tests do this exact same setup with various
versions of copied boilerplate code. The different versions we have all
have different conventions of naming the breakpoint comment, the main
file (and whether it should be resolved), and different generated error
messages if things go wrong.
We already have a standardized and much shorter way of doing this in
LLDB (see below), but this still encourages test writers to specify
non-standard file names and non-standard breakpoint comment names.
```
self.build()
lldbutil.run_to_source_breakpoint(
self, "break here", lldb.SBFileSpec("main.cpp")
)
```
This patch introduces a simple `build_and_run` wrapper that takes care
of all of these things in one go. It also forces the standard naming
scheme that most tests have adoped with a breakpoint comment called
`break here` and a `main.*` file.
I already adapted a few tests to this new format so that all added code
in this patch is tested. I'll do the updating of the other tests in a
several follow up PRs so that downstream folks can easily temporarily
revert it if it causes issues.
Commit: 9eee6c0f2ae7fc1d5419be38b1839263974191f1
https://github.com/llvm/llvm-project/commit/9eee6c0f2ae7fc1d5419be38b1839263974191f1
Author: Jonathan Thackray <jonathan.thackray at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/test/MC/AArch64/arm64-aliases.s
M llvm/test/MC/AArch64/brbe.s
Log Message:
-----------
[AArch64][llvm] Define APAS, BRB and TRCIT as SYS aliases (#203563)
`APAS`, `BRB IALL/INJ` and `TRCIT` use `SYS` encodings, so define them
as aliases of `SYSxt` instead of separate instructions.
Check that the preferred architectural aliases are printed when their
features are enabled and that disassembly falls back to the generic `SYS`
spelling when not enabled.
Commit: bf8b7787f96a9e6d42c5fc4f49c25352b81e90cb
https://github.com/llvm/llvm-project/commit/bf8b7787f96a9e6d42c5fc4f49c25352b81e90cb
Author: Jan Schultke <me at eisenwave.net>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/CodeGen/ISDOpcodes.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/Target/TargetSelectionDAG.td
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstrMisc.td
A llvm/test/CodeGen/AArch64/pdep.ll
A llvm/test/CodeGen/AArch64/pext.ll
A llvm/test/CodeGen/X86/pdep.ll
A llvm/test/CodeGen/X86/pext.ll
Log Message:
-----------
[ISel] Introduce `llvm.pext` and `llvm.pdep` intrinsics (#200570)
Closes #172857
These are portable forms of the x86_64 pext/pdep or AArch64 bext/bdep instructions.
Commit: ff0ee6fd9644f74cba257b44e84102ff7cad21e9
https://github.com/llvm/llvm-project/commit/ff0ee6fd9644f74cba257b44e84102ff7cad21e9
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/test/CodeGen/X86/fptosi-sat-vector-128.ll
A llvm/test/CodeGen/X86/fptosi-sat-vector-256.ll
A llvm/test/CodeGen/X86/fptosi-sat-vector-512.ll
M llvm/test/CodeGen/X86/fptoui-sat-vector-128.ll
A llvm/test/CodeGen/X86/fptoui-sat-vector-256.ll
A llvm/test/CodeGen/X86/fptoui-sat-vector-512.ll
Log Message:
-----------
[X86] Add baseline f2i vector sat tests for #199416 (#204117)
Commit: 793dcf1f3155a11650a6432fe52991666a24e52e
https://github.com/llvm/llvm-project/commit/793dcf1f3155a11650a6432fe52991666a24e52e
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/aarch64-reassociate-accumulators-sve.ll
M llvm/test/CodeGen/AArch64/aarch64-sve-asm.ll
M llvm/test/CodeGen/AArch64/sve-aba.ll
M llvm/test/CodeGen/AArch64/sve-calling-convention-mixed.ll
M llvm/test/CodeGen/AArch64/sve-cntp-combine-i32.ll
M llvm/test/CodeGen/AArch64/sve-cntp-combine-i64.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-imm.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-logical-imm.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-reinterpret.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-unpred-form.ll
M llvm/test/CodeGen/AArch64/sve-load-compare-store.ll
M llvm/test/CodeGen/AArch64/sve-lsrchain.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-brk.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmpeq.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmpge.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmpgt.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmphi.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmphs.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmple.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmplo.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmpls.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmplt.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmpne.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-match.ll
M llvm/test/CodeGen/AArch64/sve-punpklo-combine.ll
M llvm/test/CodeGen/AArch64/sve-saba.ll
M llvm/test/CodeGen/AArch64/sve-unary-movprfx.ll
M llvm/test/CodeGen/AArch64/sve-uunpklo-load-uzp1-store-combine.ll
M llvm/test/CodeGen/AArch64/sve-vselect-fold.ll
M llvm/test/CodeGen/AArch64/sve2-int-mul.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-int-arith-imm.ll
M llvm/test/CodeGen/AArch64/sve2-rsra.ll
M llvm/test/CodeGen/AArch64/sve2-sra.ll
M llvm/test/CodeGen/AArch64/sve2-unary-movprfx.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfadd.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmax.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmaxnm.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmin.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfminnm.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfsub.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-abs-neg.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-counts-not.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-ext.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-fcvt-bfcvt.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-fcvtlt-fcvtx.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-fcvtzsu.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-flogb.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-frint-frecpx-fsqrt.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-rev.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-urecpe-ursqrte-sqabs-sqneg.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-uscvtf.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-abs-srshl.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-comb-all-active-lanes-cvt.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-fma-binops.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-loadstore.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-opts-cmpne.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-sel.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-strictfp.ll
Log Message:
-----------
[NFC][LLVM][Tests] Replace instances of @llvm.aarch64.sve.ptrue.nxv16i1(i32 31) with splat (i1 true). (#204113)
I have kept instances where the ptrue seems more relevant. For example,
when a test varies the predicate pattern, I opted to maintain ptrue(31)
for test consistency.
Commit: 7567d2128c4670c59c907504d16e2914a9dc7101
https://github.com/llvm/llvm-project/commit/7567d2128c4670c59c907504d16e2914a9dc7101
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
A llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/extractvalue-aggregate-mutated-callsite-indirect.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_inline_assembly/extractvalue-aggregate-mutated-callsite-asm.ll
Log Message:
-----------
[SPIR-V] Fix verifier crash on aggregate extract into a mutated callsite (#203729)
SPIRVPrepareFunctions rewrites indirect/inline-asm callsite signatures
so aggregate params become i32 value-ids, but leaves the operands for
SPIRVEmitIntrinsics to tokenize. An aggregate-returning spv_extractv
result passed to such a call was never tokenized, so it no longer
matched the mutated callee signature, tripping the IR verifier ("Call
parameter type does not match function signature!").
Mutate the spv_extractv result to i32 when it feeds a callsite param
that was rewritten to a value-id. Real SPIR-V type is recovered from the
value attributes later during selection.
Assisted by: Claude Code
Commit: aac4e49e067b5512a718ca6b103ec43820f430f3
https://github.com/llvm/llvm-project/commit/aac4e49e067b5512a718ca6b103ec43820f430f3
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
A llvm/test/CodeGen/SPIRV/llvm-intrinsics/metadata-argument-intrinsic.ll
A llvm/test/CodeGen/SPIRV/llvm-intrinsics/noalias-scope-decl.ll
Log Message:
-----------
[SPIR-V] Don't lower metadata-argument intrinsics to functions (#203654)
llvm.experimental.noalias.scope.decl takes a metadata argument. When the
SPIR-V backend lowered unknown intrinsics to functions (AMD vendor or
--spv-allow-unknown-intrinsics), it emitted
@spirv.llvm_experimental_noalias_scope_decl(metadata ...), which fails
the verifier: "Function has metadata parameter but isn't an intrinsic".
Therefore drop llvm.experimental.noalias.scope.decl, as it has no SPIR-V
representation.
Commit: 8b685967b7865055199d9dd1ad6cb9b1cef32448
https://github.com/llvm/llvm-project/commit/8b685967b7865055199d9dd1ad6cb9b1cef32448
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
A llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-domain-order.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-load-store.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-masked-load-store.ll
Log Message:
-----------
[SPIR-V] Order alias-decl instructions so definitions precede uses (#203699)
The SPV_INTEL_memory_access_aliasing decl instructions are built at the
insertion point of the memory operation being selected. Because
selection is bottom-up, an alias domain shared between scopes that are
built at different memory operations could be emitted after a scope that
references it.
Sort the collected aliasing instructions by dependency tier.
Commit: 53d18800eda3b7407e53366f27ca78e922c6e0db
https://github.com/llvm/llvm-project/commit/53d18800eda3b7407e53366f27ca78e922c6e0db
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
M cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
M cross-project-tests/debuginfo-tests/dexter/dex/test_script/Script.py
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/labels/Inputs/header.h
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/labels/invalid_label.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/labels/offset.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/labels/simple_labels.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/labels/source_root_dir.cpp
M cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/lit.local.cfg
Log Message:
-----------
Reapply "[Dexter] Add label nodes for line references" (#203938)
This reverts commit
https://github.com/llvm/llvm-project/commit/2a789821b0d723bc92f61563e74e67d69d660927.
The original commit previously caused pre-merge check failures for Linux
AArch64 cross-project-tests, due to the stepping behaviour being
slightly different to x86_64. The tests have been adjusted to be less
brittle to exact stepping behaviour, but this reapply also disables the
tests for ARM targets as there is not currently the infrastructure to
reliably test them, meaning we may end up with latent failures.
Commit: e9cf47b69bd791c70ee15f23f71e0af4d2037ab2
https://github.com/llvm/llvm-project/commit/e9cf47b69bd791c70ee15f23f71e0af4d2037ab2
Author: Balázs Kéri <balazs.keri at ericsson.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/AST/ASTImporter.cpp
M clang/unittests/AST/ASTImporterTest.cpp
Log Message:
-----------
[clang][ASTImporter] Add import of node 'FileScopeAsmDecl' (#193244)
Commit: fdf5c9e68c05ec259facf42e9d4d8f4c3392f9a1
https://github.com/llvm/llvm-project/commit/fdf5c9e68c05ec259facf42e9d4d8f4c3392f9a1
Author: gretay-amd <Greta.Yorsh at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-load-byte-short.ll
M llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.init.whole.wave-w32.ll
M llvm/test/CodeGen/AMDGPU/machine-sink-temporal-divergence-swdev407790.ll
M llvm/test/CodeGen/AMDGPU/memintrinsic-unroll.ll
M llvm/test/CodeGen/AMDGPU/memmove-var-size.ll
M llvm/test/CodeGen/AMDGPU/skip-if-dead.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-functions.ll
Log Message:
-----------
[AMDGPU] Shrink VOPCX (nosdst) instructions in SIShrinkInstructions (#202711)
Fix `SIShrinkInstructions` to shrink `V_CMPX_*_e64` instructions.
The `VOPC` destination handling block treated `MI.getOperand(0)` as the
destination unconditionally, but `VOPCX` variants have no `sdst`, their
operand 0 is `src0`. The pass set a bogus VCC allocation hint on the
source SGPR and skipped the shrink. The existing comment said these
should be excluded, but the code never actually did so.
Commit: dd0aa223c227c7c59460858953340232e1ff0620
https://github.com/llvm/llvm-project/commit/dd0aa223c227c7c59460858953340232e1ff0620
Author: Nerixyz <nerixdev at outlook.de>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/source/API/SBFrame.cpp
M lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
Log Message:
-----------
[lldb] Include synthetic variables in `GetVariables(bool...)` (#198088)
Synthetic frame variables can be included in `SBFrame::GetVariables` by
passing an `SBVariablesOptions` with `SetIncludeSynthetic(true)`.
However, they're not included in the other two overloads.
With the same reason they're included in `frame variable`, they should
be included in these overloads. If the user doesn't want them included
there, they can use the overload taking `SBVariablesOptions`.
This almost enables them to be shown in lldb-dap's variables. They're
currently filtered out if `in_scope_only` is specified. Not sure what
the proper fix is. Maybe they should skip that check.
Commit: d94b7ec4d6cb81d9c861e751c628e481ce899f6c
https://github.com/llvm/llvm-project/commit/d94b7ec4d6cb81d9c861e751c628e481ce899f6c
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 18cc9aa (#204057)
This fixes 18cc9aa9c92be7d89d3e0877e7148782c14fd05a.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 9e1e329f973c2a199297c3a1fc52d4ca9a7989a8
https://github.com/llvm/llvm-project/commit/9e1e329f973c2a199297c3a1fc52d4ca9a7989a8
Author: David Spickett <david.spickett at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lld/test/MachO/read-workers-order-obj.s
M lld/test/MachO/read-workers-order.s
Log Message:
-----------
[lld][MachO] Require LLVM_ENABLE_THREADS for new read workers tests (#204135)
Added by b11e4fb50c0ff5dc87ab6113f4850af991750d66/#193239.
The option is not available when LLVM_ENABLE_THREADS is off.
Commit: cb4d3c00bb6c5c361bef316bb90ef9d1a50aab99
https://github.com/llvm/llvm-project/commit/cb4d3c00bb6c5c361bef316bb90ef9d1a50aab99
Author: Mariusz Sikora <mariusz.sikora at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.load-last-use.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-lastuse.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-lastuse.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-private-lastuse.ll
Log Message:
-----------
[AMDGPU][NFC] Add last use tests for gfx13 (#202600)
Commit: af27c81cc4bbc8094b0ed82633bc8520898bbb51
https://github.com/llvm/llvm-project/commit/af27c81cc4bbc8094b0ed82633bc8520898bbb51
Author: David Green <david.green at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/include/clang/Basic/AArch64CodeGenUtils.h
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/test/CodeGen/AArch64/neon-misc-constrained.c
M clang/test/CodeGen/AArch64/neon-misc.c
M clang/test/CodeGen/arm_neon_intrinsics.c
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/CodeGen/AArch64/arm64-vcvt_f32_su32.ll
M llvm/test/CodeGen/AArch64/implicitly-set-zero-high-64-bits.ll
M llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vcvt_f32_su32.ll
Log Message:
-----------
[AArch64] Remove aarch64_neon_vcvtfp2hf and aarch64_neon_vcvthf2fp (#203903)
This removes aarch64_neon_vcvtfp2hf and aarch64_neon_vcvthf2fp
intrinsics, relying on fp16 fpext and fptrunc instructions directly. Arm
is left using its version of the intrinsics, as the types in the backend
are more difficult without fullfp16.
Commit: d7a2e87917777dab10be58a2c4845c5a8bf921a2
https://github.com/llvm/llvm-project/commit/d7a2e87917777dab10be58a2c4845c5a8bf921a2
Author: Macsen Casaus <135416202+macsencasaus at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/test/Transforms/InstCombine/icmp-mul.ll
Log Message:
-----------
[InstCombine] Fold square into comparison with constant (#197665)
Closes #196233
Alive2 proof: https://alive2.llvm.org/ce/z/PQzYhb
Commit: 961e7d121e38447f4395f05a2195a1349ae90100
https://github.com/llvm/llvm-project/commit/961e7d121e38447f4395f05a2195a1349ae90100
Author: Alexander Viand <alexander.viand at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/EmitC/IR/EmitC.td
M mlir/test/Dialect/EmitC/member_call_opaque.mlir
M mlir/test/Target/Cpp/call.mlir
Log Message:
-----------
[MLIR][EmitC] Allow lvalue operands in (member_)call_opaque arg_operands (#204112)
Widen the `arg_operands` of `emitc.call_opaque` and
`emitc.member_call_opaque` from `Variadic<EmitCType>` to
`Variadic<AnyTypeOf<[EmitCType, EmitC_LValueType]>>` to support taking
arguments by reference (e.g., out-parameters in destination-passing
style, or move-only types that cannot be copied into the call).
No translation/emitter codegen changes are needed, the generated C++ for
`arg_operands` also works with reference parameters.
Commit: 7e62ac165f852f19700a73261cd48799cf868407
https://github.com/llvm/llvm-project/commit/7e62ac165f852f19700a73261cd48799cf868407
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/Mips/MipsMSAInstrInfo.td
M llvm/lib/Target/Mips/MipsRegisterInfo.td
M llvm/lib/Target/Mips/MipsSEISelLowering.cpp
M llvm/lib/Target/Mips/MipsSEISelLowering.h
M llvm/lib/Target/Mips/MipsScheduleGeneric.td
M llvm/lib/Target/Mips/MipsScheduleI6400.td
M llvm/lib/Target/Mips/MipsScheduleP5600.td
M llvm/test/CodeGen/Mips/msa/f16-llvm-ir.ll
Log Message:
-----------
Revert "[MIPS] soft-promote `f16` also when using `+msa`" (#204148)
Reverts llvm/llvm-project#203065
That PR triggered a multiplication (actually, probably a shift)
overflow, see https://lab.llvm.org/buildbot/#/builders/85/builds/22610.
Commit: bc5478ebaf399bc7d082cd13a0689c533663011b
https://github.com/llvm/llvm-project/commit/bc5478ebaf399bc7d082cd13a0689c533663011b
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/IR/Intrinsics.cpp
Log Message:
-----------
[NFC][LLVM] Add `llvm_unreachable` after switch covering all cases (#204131)
Commit: cf7864b62ae3bac28b44024cbbcfd3800c8f35f9
https://github.com/llvm/llvm-project/commit/cf7864b62ae3bac28b44024cbbcfd3800c8f35f9
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/test/SemaCXX/constant-expression-p2280r4.cpp
Log Message:
-----------
[clang][bytecode] Allow downcasts of constexpr-unknown values (#204084)
They might be diagnosed later.
Commit: 8c51f24e7469069137a96c4daf6cd975d0a98e35
https://github.com/llvm/llvm-project/commit/8c51f24e7469069137a96c4daf6cd975d0a98e35
Author: LU-JOHN <John.Lu at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/sdiv.ll
M llvm/test/CodeGen/AMDGPU/sdiv64.ll
Log Message:
-----------
[AMDGPU][NFC] Test 32/64-bit sdiv with operands in 22-bit range (#204155)
Pre-commit test results for 32/64-bit sdiv where operands are in 22-bit
range.
Signed-off-by: John Lu <John.Lu at amd.com>
Commit: bb0eada255b31e341d8843f26757f45fdf48b301
https://github.com/llvm/llvm-project/commit/bb0eada255b31e341d8843f26757f45fdf48b301
Author: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M mlir/lib/CAPI/Dialect/Linalg.cpp
Log Message:
-----------
[NFC][mlir][linalg] add `toContractionDimensions` for healthy code reuse (#203916)
Follow-up to #203323.
This PR adds the `toContractionDimensions` static function, aligning
with what we suggested in #203323.
---------
Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Commit: b98f680bd7403e16e571a46e52880f6db61e4b71
https://github.com/llvm/llvm-project/commit/b98f680bd7403e16e571a46e52880f6db61e4b71
Author: Himadhith <hima130602 at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M libcxx/test/configs/ibm-libc++-shared.cfg.in
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete.pass.cpp
Log Message:
-----------
[AIX][libc++] Fix sized_delete.pass.cpp for AIX by adding -fsized-deallocation flag (#199366)
By default `-fno-sized-deallocation` is passed for libc++ in AIX.
https://github.com/llvm/llvm-project/blob/47e6290a34507ba1b3f4e0a49bad28982ff3e3ef/clang/lib/Driver/ToolChains/AIX.cpp#L578
As many other targets have passed the argument through
`ADDITIONAL_COMPILE_FLAGS` using the same for PPC.
`ADDITIONAL_COMPILE_FLAGS` does not take regex so added a new feature to
recognize target triple as `PowerPC` or `PowerPC64`.
---------
Co-authored-by: himadhith <himadhith.v at ibm.com>
Commit: 00fcc5c07ca873ff3644574014234d6691c43e75
https://github.com/llvm/llvm-project/commit/00fcc5c07ca873ff3644574014234d6691c43e75
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/select-big-integer.ll
Log Message:
-----------
[X86] EltsFromConsecutiveLoads - if all loads are oneuse frozen loads then freeze as a consecutive load (#203957)
Alive2: https://alive2.llvm.org/ce/z/W5jYjH
Commit: be6cff9890dd179b6523fc966fccf784ec1ea378
https://github.com/llvm/llvm-project/commit/be6cff9890dd179b6523fc966fccf784ec1ea378
Author: anjenner <161845516+anjenner at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-concat-vectors.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-mad_64_32.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-merge-values.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-mul.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mir
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.m0.ll
Log Message:
-----------
[AMDGPU][GISel] Remove -global-isel-abort=2 from tests which pass wit… (#204140)
…hout it.
Commit: 471eed25eb4ca24840e5a8424a641fac5b935928
https://github.com/llvm/llvm-project/commit/471eed25eb4ca24840e5a8424a641fac5b935928
Author: Miguel A. Arroyo <miguel.arroyo at rockstargames.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lld/docs/ReleaseNotes.rst
M lld/test/COFF/time-trace.s
M lld/test/ELF/lto/thinlto-time-trace.ll
M lld/test/ELF/time-trace.s
M lld/test/MachO/map-file.s
M lld/test/MachO/thinlto-time-trace.ll
M lld/test/MachO/time-trace.s
M llvm/include/llvm/Support/TimeProfiler.h
M llvm/lib/Support/TimeProfiler.cpp
Log Message:
-----------
[Support][LLD] .time-trace.json Default File Extension (#122207)
* Addresses the LLD portion of
https://github.com/llvm/llvm-project/issues/96339
* Changes the default file extension in `lld` from `.time-trace` to
`.time-trace.json`.
Commit: 639556c9f690f94b4df7d2ca9a53b797161b27a2
https://github.com/llvm/llvm-project/commit/639556c9f690f94b4df7d2ca9a53b797161b27a2
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/builders/builder.py
M lldb/packages/Python/lldbsuite/test/configuration.py
M lldb/packages/Python/lldbsuite/test/dotest.py
M lldb/packages/Python/lldbsuite/test/dotest_args.py
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
A lldb/packages/Python/lldbsuite/test/make/WASI.rules
M lldb/test/API/CMakeLists.txt
M lldb/test/API/lit.cfg.py
M lldb/test/API/lit.site.cfg.py.in
Log Message:
-----------
Reland "[lldb][test] Add support for building Wasm test inferiors" (#204030)
This relands #192872, reverted in #193493 for breaking the Windows LLDB
bots.
The original PR changed finalize_build_dictionary to derive the inferior
OS by parsing configuration.triple, which misfired on the Windows bots'
x86_64-pc-windows-msvc. However, that's unnecessary when specifying the
platform with --platform-name, in which case getPlatform return wasip1,
correctly mapping to OS=WASI.
Commit: d8c3981787a77ec63454baab99e96d2e13e59c34
https://github.com/llvm/llvm-project/commit/d8c3981787a77ec63454baab99e96d2e13e59c34
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for mfma_scale (#203279)
Commit: b6f0fb6c242369844acba6a8fd21072a718a75b5
https://github.com/llvm/llvm-project/commit/b6f0fb6c242369844acba6a8fd21072a718a75b5
Author: Leonard Grey <leonard at leonardgrey.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/dotest_args.py
M lldb/test/API/sanity/TestModuleCacheSanity.py
M lldb/test/CMakeLists.txt
M lldb/test/Shell/Settings/TestModuleCacheSanity.test
Log Message:
-----------
[lldb] Remove .noindex suffix from test output directory for non-Darwin (#197237)
.noindex is only needed for macOS Spotlight. Given that some platforms
limit path length, there's a benefit to omitting it except for Darwin.
Commit: 4cb6eee15daa60cccf9f8f96c9fcf7bfab2888b6
https://github.com/llvm/llvm-project/commit/4cb6eee15daa60cccf9f8f96c9fcf7bfab2888b6
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py
M cross-project-tests/debuginfo-tests/dexter/dex/dextIR/StepIR.py
M cross-project-tests/debuginfo-tests/dexter/dex/dextIR/ValueIR.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectMatch.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/Metrics.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/debug_aggregates.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_aggregates.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_list_aggregates.cpp
Log Message:
-----------
[Dexter] Add support for aggregate expects in the debugger (#202545)
Allows aggregate expects to be written in Dexter scripts, in the form:
```
!value expect:
member1: 0
member2:
submember1: 1
submember2: 2
```
This uses the "variables" feature provided in the DAP interface to
recursively fetch sub-variables from each evaluated variable, and
modifies the DebuggerExpectMatch class to also be recursive, containing
submatches for each expected aggregate member value.
Some key concepts that are affected by this are the "match_result",
which has changed from a bool to a 3-way result ("FALSE", "TRUE",
"PARTIAL"), where "PARTIAL" means that at least one submatch was TRUE
and at least one was FALSE. We also add a `match_distance`, which is
used as a measure of correctness. The match distance ranges from 0.0 to
1.0: a total match has a distance of 0.0, a total mismatch has 1.0, and
a partial match's distance is equal to the average distance of its
immediate children.
Commit: e747c1c094f544e48b016a5b291bbf001b9bcc36
https://github.com/llvm/llvm-project/commit/e747c1c094f544e48b016a5b291bbf001b9bcc36
Author: Jackson Stogel <jtstogel at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
Log Message:
-----------
[bazel][libc] Allow passing additional sources to libc_release_library (#203083)
Commit: 9c6a5f064611b12fd38f7282c0a3b600eb30950d
https://github.com/llvm/llvm-project/commit/9c6a5f064611b12fd38f7282c0a3b600eb30950d
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/CUDA/CUFDeviceFuncTransform.cpp
M flang/test/Fir/CUDA/cuda-device-func-transform.mlir
Log Message:
-----------
[flang][cuda] Set kernel intent(in) as const __restrict__ (#203652) (#203966)
Commit: 005cf3e9c4d900e044440b5ece225c2467e82200
https://github.com/llvm/llvm-project/commit/005cf3e9c4d900e044440b5ece225c2467e82200
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
A llvm/test/Transforms/InstCombine/pdep.ll
A llvm/test/Transforms/InstCombine/pext.ll
Log Message:
-----------
[InstCombine] Add test coverage for llvm.pdep/pext intrinsics (#204179)
Branched from existing x86 bmi test coverage
Prep work for #204144
Commit: fabfc92bcdc2a1dc1164c3a7661c80ef35de06f7
https://github.com/llvm/llvm-project/commit/fabfc92bcdc2a1dc1164c3a7661c80ef35de06f7
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M compiler-rt/lib/xray/xray_hexagon.cpp
M compiler-rt/lib/xray/xray_trampoline_hexagon.S
Log Message:
-----------
[XRay][Hexagon] Make XRay sleds register-transparent (#203117)
A sled is inserted post-register-allocation and is treated by the
compiler as clobbering nothing, but the sled and trampoline together
preserve too little. The sled uses r6/r7 as scratch (trampoline address
and funcid) and the trampoline saves only r0-r5, r31 and p3:0. A
function-exit sled can land in the middle of a loop (a conditional early
return), where loop-carried values occupy r6-r15 and, for a hardware
loop, SA0/LC0. The handler clobbers them, so most instrumented
gcc-c-torture programs compute wrong results and abort().
Commit: a2f201d7004885224bb45b9acf34c7a621d91b95
https://github.com/llvm/llvm-project/commit/a2f201d7004885224bb45b9acf34c7a621d91b95
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Analysis/ValueTracking/assume.ll
M llvm/test/Transforms/InstCombine/assume-align.ll
Log Message:
-----------
[ValueTracking] Make use of the offset argument in align assume bundles (#203497)
Commit: a67af225694b888b88eddf39a191295159d69e3a
https://github.com/llvm/llvm-project/commit/a67af225694b888b88eddf39a191295159d69e3a
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/test/tools/llvm-offload-wrapper/offload-wrapper.ll
M llvm/tools/llvm-offload-wrapper/llvm-offload-wrapper.cpp
Log Message:
-----------
[llvm-offload-wrapper] Add SYCL wrapping to the standalone tool (#204168)
Summary:
This tool exists so people can generate the registration code in manual
toolchains. But it was never updated to add the SYCL handling. Fix that.
Commit: 2b266aaaf397977aedef76f2e3caa4773f185d58
https://github.com/llvm/llvm-project/commit/2b266aaaf397977aedef76f2e3caa4773f185d58
Author: Yi Zhang <cathyzhyi at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] fix #199686 (#204184)
fix #199686
Commit: ffb3458175268cb08a97a4bdcc3ca3181cfeaf57
https://github.com/llvm/llvm-project/commit/ffb3458175268cb08a97a4bdcc3ca3181cfeaf57
Author: Jackson Stogel <jtstogel at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/getcwd.h
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/getcwd.cpp
Log Message:
-----------
[libc][getcwd] Refactor getcwd to use the syscall wrapper pattern (#204000)
Allows for re-use by other entrypoints. This PR also moves error
handling for unreachable paths in `syscall_wrappers::getcwd` since I
imagine most usages of getcwd would rather error with `ENOENT` than
receive `"(unreachable) /path/to/cwd"`.
Commit: 9a851497a4a4d05466cd025d2fdd489a1e461deb
https://github.com/llvm/llvm-project/commit/9a851497a4a4d05466cd025d2fdd489a1e461deb
Author: Yuxuan Chen <ych at meta.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M libcxx/include/optional
M libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp
Log Message:
-----------
[libc++] Strengthen optional value constructor noexcept (#202765)
The standard does not require `optional<T>(U&&)` to be potentially
throwing; it simply does not specify noexcept for the primary
`optional<T>` converting constructor. Standard library implementations
are permitted
[[res.on.exception.handling]/5](https://eel.is/c++draft/res.on.exception.handling#5)
to strengthen exception specifications for non-virtual library
functions, as long as the strengthened specification is correct.
GNU libstdc++ already does this:
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional#L911-L913
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional#L962-L974
The existing libc++ code only added noexcept for the C++26
`optional<T&>` case, guarded by `is_lvalue_reference_v<_Tp>`. It is safe
to remove that gate and use the general condition instead:
```
noexcept(is_nothrow_constructible_v<_Tp, _Up>)
```
For `optional<T&>`, this still becomes the intended
reference-construction check. For ordinary `optional<T>`, it correctly
reflects whether constructing `T` from `U` can throw. The constructor
only forwards into the contained object construction and updates
optional bookkeeping, so if `T` is nothrow-constructible from `U`, the
optional construction is also nothrow.
Commit: 15a0e321484cdfa94e7d5aab5de9175c3533db04
https://github.com/llvm/llvm-project/commit/15a0e321484cdfa94e7d5aab5de9175c3533db04
Author: StoeckOverflow <95052643+StoeckOverflow at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/APINotes/APINotesYAMLCompiler.cpp
A clang/test/APINotes/Inputs/Headers/WhereParametersMapElement.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersMethodWhereSequence.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersMissingName.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersParser.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersScalar.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersUnknownWhereKey.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersWhereSequence.apinotes
A clang/test/APINotes/Inputs/WhereParametersConvertDiag/APINotes.apinotes
A clang/test/APINotes/Inputs/WhereParametersConvertDiag/WhereParametersConvertDiag.h
A clang/test/APINotes/where-parameters-convert-diags.cpp
A clang/test/APINotes/where-parameters-yaml.test
Log Message:
-----------
[APINotes] Parse function-like Where.Parameters (#203227)
Add YAML parser/model support for `Where.Parameters` on function-like
API notes entries. This keeps `Name` as the required entry key and
allows top-level `Functions` and C++ `Tags` / `Methods` to parse and
round-trip an optional ordered list of explicit parameter type
spellings.
Binary API notes serialization, lookup, and overload matching are
intentionally left for follow-up patches. Notes using `Where.Parameters`
are diagnosed during binary conversion for now.
Commit: f43ddf2acff78a81bf0eda01227cb4709017530e
https://github.com/llvm/llvm-project/commit/f43ddf2acff78a81bf0eda01227cb4709017530e
Author: yonghong-song <yhs at fb.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/BPF/BPFISelLowering.h
A llvm/test/CodeGen/BPF/memcpy-align.ll
M llvm/test/CodeGen/BPF/rodata_1.ll
Log Message:
-----------
[BPF] Consider alignment when selecting memcpy/memmove/memset op type (#204042)
Currently getOptimalMemOpType() forces i64 for size >= 8 and i32
otherwise without considering the operation alignment. In [1], memcpy
and memmove destination and source alignments are passed separately
instead of being collapsed to their minimum. As a result, poor code may
be generated for a copy with a well aligned destination but a poorly
aligned source: a wide store ends up fed by a wide load that the
legalizer has to synthesize from byte loads via a chain of shifts and
ORs.
The target independent getOptimalMemOpType() returns MVT::Other which is
exactly we want as MVT::Other allows target independent to check/set
proper type and alignment.
Newly added memcpy-align.ll uses u8 type for load and stores.
Otherwise a chain of shifts and ORs will happen.
The rodata_1.ll change is only instruction scheduling / register
allocation churn caused by the different but equivalent lowering.
[1] https://github.com/llvm/llvm-project/pull/201119
Commit: 68d8d0a34701c29a0943534a13a7e11dffc08129
https://github.com/llvm/llvm-project/commit/68d8d0a34701c29a0943534a13a7e11dffc08129
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
A llvm/test/Instrumentation/MemorySanitizer/pdep.ll
A llvm/test/Instrumentation/MemorySanitizer/pext.ll
Log Message:
-----------
[MemorySanitizer] Add test coverage for llvm.pdep/pext intrinsics (#204175)
Prep work for #204144
Commit: 4646ad852eccd8d728e9896258eed678112144dd
https://github.com/llvm/llvm-project/commit/4646ad852eccd8d728e9896258eed678112144dd
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Log Message:
-----------
[InstCombine] Avoid computeKnownBits when trying to fold assumes (#203550)
There isn't much value in dropping redundant assumes via
`computeKnownBits`, since SCCP should be able to replace the argument
with a constant in any cases where `computeKnownBits` can do the same.
Instead, InstCombine can simply check whether the argument to an assume
is a constant and fold based on that.
Commit: eb3e0dbf2ea646d38b3748eaca4e9815c703f44e
https://github.com/llvm/llvm-project/commit/eb3e0dbf2ea646d38b3748eaca4e9815c703f44e
Author: John Brawn <john.brawn at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
A llvm/test/Transforms/LoopStrengthReduce/AArch64/use-outside-loop.ll
A llvm/test/Transforms/LoopStrengthReduce/X86/use-outside-loop-crash.ll
Log Message:
-----------
[LSR] Narrow search space by merging users outside and inside loop (#202676)
Loop Strength Reduce can give different (and worse) results for a loop
when it is followed by uses of variables used inside the loop. This is
because the uses outside the loop increase the size of the search space,
which can lead to using NarrowSearchSpaceByPickingWinnerRegs which often
discards the best solution.
Solve this by narrowing the search space by merging uses outside the
loop with uses inside the loop. This ignores the Kind and AccessTy of
the use which can mean that the cost may be inaccurate, but it will give
the same cost as if we had just ignored the uses outside of the loop.
This is a re-commit of #185929 with an additional check that merging the
users doesn't cause an invalid offset to be used.
Commit: a0be34434154b80acf2b8fb59c9aaba6e9d0e66d
https://github.com/llvm/llvm-project/commit/a0be34434154b80acf2b8fb59c9aaba6e9d0e66d
Author: Andre Kuhlenschmidt <akuhlenschmi at nvidia.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M flang/include/flang/Lower/OpenACC.h
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/OpenACC.cpp
A flang/test/Lower/OpenACC/acc-routine-bind-clone-signature.f90
A flang/test/Lower/OpenACC/acc-routine-bind-devtype-undeclared.f90
A flang/test/Lower/OpenACC/acc-routine-bind-gate-skip.f90
A flang/test/Lower/OpenACC/acc-routine-bind-string-undeclared.f90
A flang/test/Lower/OpenACC/acc-routine-bind-undeclared.f90
A flang/test/Transforms/external-name-interop-acc-routine-bind.fir
Log Message:
-----------
[flang][acc][lowering] Declare undeclared acc routine bind(name) targets (#203088)
An `!$acc routine ... bind(target)` can name a target with no func.func
in the program unit. Lowering emits an acc.routine op referencing it,
and external-name-interop / nvhpc-acc-bind-routine then reference an
undeclared symbol, tripping the MLIR verifier ("does not reference a
symbol in the current scope").
Materialize a private func.func for each otherwise-undeclared bind
target after primary translation, gated on the decorated procedure
having been lowered (so the declared set matches the acc.routine bind
references actually emitted). bind(symbol) targets reuse
getOrDeclareFunction (mangled, honoring BIND(C)); bind("string") targets
use the new getOrDeclareNamedFunction (verbatim asm name, left untouched
by external-name-interop).
Commit: 73c925d4cdc1baa9afaf8aee197225b95876fdd0
https://github.com/llvm/llvm-project/commit/73c925d4cdc1baa9afaf8aee197225b95876fdd0
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/test/Transforms/LoopInterchange/indirectbr.ll
Log Message:
-----------
[LoopInterchange] Reject if outer loop header PHI has more than two incoming values (#204120)
Previously, there were cases where PHIs in the outer loop header did not
have exactly two incoming values, which caused an assertion failure.
Such PHIs are legal and can appear, so the assertion was incorrect.
This patch removes the assertion. As the assertion was in the legality
check phase, this patch adds logic that merely rejects such cases
instead of the assertion.
Fixes #204065.
Commit: f945995c1e0eac91af75e40faeef13e73e1785ec
https://github.com/llvm/llvm-project/commit/f945995c1e0eac91af75e40faeef13e73e1785ec
Author: Kelvin Li <kli at ca.ibm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/test/Driver/large-data-threshold.f90
M flang/test/Driver/offload-device.f90
M flang/test/Driver/omp-driver-offload.f90
M flang/test/Driver/supported-suffices/f03-suffix.f03
M flang/test/Driver/supported-suffices/f08-suffix.f08
M flang/test/Driver/version-loops.f90
Log Message:
-----------
[flang] Do not hardcode "flang" in the driver (#200438)
Currently, the driver program hardcodes "flang" as the frontend to
invoke. This patch is to make the driver invoke the frontend that has
the same name as the driver program.
Commit: 28ab3c5a33310814c96918cb25006092fee4b24b
https://github.com/llvm/llvm-project/commit/28ab3c5a33310814c96918cb25006092fee4b24b
Author: Harald van Dijk <hdijk at accesssoftek.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
M llvm/test/CodeGen/DirectX/DebugInfo/dbg-value-arglist.ll
M llvm/test/tools/dxil-dis/dbg-value-arglist.ll
Log Message:
-----------
[DirectX] Replace unrepresentable debug info with i1 undef (#203545)
The i1 is arbitrary: we do not know the correct type to use and have no
way of representing an untyped undef.
Commit: 504433cfcc812a21bbc60b07bd58bbbe68b7e6f4
https://github.com/llvm/llvm-project/commit/504433cfcc812a21bbc60b07bd58bbbe68b7e6f4
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/BundleAttributes.h
M llvm/include/llvm/IR/LLVMContext.h
M llvm/lib/IR/BundleAttributes.cpp
M llvm/lib/IR/LLVMContext.cpp
M llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
M llvm/test/Bitcode/operand-bundles-bc-analyzer.ll
Log Message:
-----------
[LLVMContext] Add IDs for assume bundles (#204129)
Commit: a084633edf331f75412f966bc46cc1b35462c519
https://github.com/llvm/llvm-project/commit/a084633edf331f75412f966bc46cc1b35462c519
Author: Aviral Goel <aviralg at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/EntityLinker.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummary.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/TUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummary.h
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-lu-namespace.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-name.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-tu-namespace.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-link-unit.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
M clang/tools/clang-ssaf-linker/SSAFLinker.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/EntityLinkerTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/TUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/SummaryData/SummaryDataTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
Log Message:
-----------
[clang][ssaf] Track target triple in TU and LU summaries. (#204027)
This commit introduces the following changes:
- Add `TargetTriple` field to `TUSummary`, `LUSummary`, and their encodings.
- Frontend captures the triple from `CompilerInstance::getTarget()` when extracting a TU summary.
- JSON format reads/writes a `target_triple` field at the root of each summary; reader rejects strings not in `llvm::Triple::normalize` form.
- All TU/LU JSON test inputs/outputs and unit tests updated to include the new field.
`clang-ssaf-linker` uses a hardcoded triple for the link unit; surfacing the triple through the tool will be handled in a follow-up PR.
rdar://179403011
Commit: f6a1251366ec0cfd21ea7c3e1c3fad66ae42eea9
https://github.com/llvm/llvm-project/commit/f6a1251366ec0cfd21ea7c3e1c3fad66ae42eea9
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/cbrtf16.h
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][math][c23] Switch `static_cast` to `fputil::cast` in `cbrtf16` (#204189)
This avoids some failures w/ the compilers runtime
Commit: 170adec4e46d45e6bd688c89bfef6f847a2b8e25
https://github.com/llvm/llvm-project/commit/170adec4e46d45e6bd688c89bfef6f847a2b8e25
Author: Hans Wennborg <hans at hanshq.net>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/docs/PDB/index.rst
Log Message:
-----------
[docs][pdb] Link to the pdb-rs docs (#204172)
They cover many topics which are not in the LLVM docs (yet).
Commit: 036ef9736e2be6732c63853d1fb00ca0544eba96
https://github.com/llvm/llvm-project/commit/036ef9736e2be6732c63853d1fb00ca0544eba96
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/Operator.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/assume-align.ll
A llvm/test/Transforms/InstCombine/assume-i128.ll
A llvm/test/Transforms/InstCombine/assume-i32.ll
M llvm/test/Transforms/InstCombine/assume.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/infer-align-from-assumption.ll
Log Message:
-----------
[InstCombine] Move alignment assumptions to the base of a gep if alignment is preserved (#203032)
Commit: 8a3cc8403eea576106676af1065df32ac2984def
https://github.com/llvm/llvm-project/commit/8a3cc8403eea576106676af1065df32ac2984def
Author: Kai <47328809+kcloudy0717 at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/HLSLIntrinsics.td
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/CodeGenHLSL/builtins/QuadReadAcrossDiagonal.hlsl
A clang/test/SemaHLSL/BuiltIns/QuadReadAcrossDiagonal-errors.hlsl
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
A llvm/test/CodeGen/DirectX/QuadReadAcrossDiagonal.ll
M llvm/test/CodeGen/DirectX/ShaderFlags/wave-ops.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/QuadReadAcrossDiagonal.ll
Log Message:
-----------
[HLSL][DXIL][SPIRV] QuadReadAcrossDiagonal intrinsic support (#188567)
This PR adds QuadReadAcrossDiagonal intrinsic support in HLSL with
codegen for both DirectX and SPIRV backends. Resolves
https://github.com/llvm/llvm-project/issues/99177.
- [x] Implement `QuadReadAcrossDiagonal` clang builtin
- [x] Link `QuadReadAcrossDiagonal` clang builtin with
`hlsl_intrinsics.h`
- [x] Add sema checks for `QuadReadAcrossDiagonal` to
`CheckHLSLBuiltinFunctionCall` in `SemaChecking.cpp`
- [x] Add codegen for `QuadReadAcrossDiagonal` to `EmitHLSLBuiltinExpr`
in `CGBuiltin.cpp`
- [x] Add codegen tests to
`clang/test/CodeGenHLSL/builtins/QuadReadAcrossDiagonal.hlsl`
- [x] Add sema tests to
`clang/test/SemaHLSL/BuiltIns/QuadReadAcrossDiagonal-errors.hlsl`
- [x] Create the `int_dx_QuadReadAcrossDiagonal` intrinsic in
`IntrinsicsDirectX.td`
- [x] Create the `DXILOpMapping` of `int_dx_QuadReadAcrossDiagonal` to
`123` in `DXIL.td`
- [x] Create the `QuadReadAcrossDiagonal.ll` and
`QuadReadAcrossDiagonal_errors.ll` tests in `llvm/test/CodeGen/DirectX/`
- [x] Create the `int_spv_QuadReadAcrossDiagonal` intrinsic in
`IntrinsicsSPIRV.td`
- [x] In SPIRVInstructionSelector.cpp create the
`QuadReadAcrossDiagonal` lowering and map it to
`int_spv_QuadReadAcrossDiagonal` in
`SPIRVInstructionSelector::selectIntrinsic`.
- [x] Create SPIR-V backend test case in
`llvm/test/CodeGen/SPIRV/hlsl-intrinsics/QuadReadAcrossDiagonal.ll`
---------
Co-authored-by: Justin Bogner <mail at justinbogner.com>
Commit: 269e5f82064938b73be02db0a4da96dded5e41f0
https://github.com/llvm/llvm-project/commit/269e5f82064938b73be02db0a4da96dded5e41f0
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes a084633 (#204202)
This fixes a084633edf331f75412f966bc46cc1b35462c519.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: aa7b619ec4e1acf589456ddc6ee4784d4842f4ad
https://github.com/llvm/llvm-project/commit/aa7b619ec4e1acf589456ddc6ee4784d4842f4ad
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/unittests/Transforms/Vectorize/VPlanVerifierTest.cpp
Log Message:
-----------
[VPlan] Check operand types of more VPInstruction on construction (NFC). (#203777)
Follow-up to earlier PRs, tighten VPInstruction operand type checks at
construction: restrict operand types for various opcodes, and support
missing opcodes.
PR: https://github.com/llvm/llvm-project/pull/203777
Commit: cc059a3c7575ccf4a7d52cedbdaa905a8c0cf583
https://github.com/llvm/llvm-project/commit/cc059a3c7575ccf4a7d52cedbdaa905a8c0cf583
Author: Thurston Dang <thurston at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vcvt.ll
M llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vcvt_f32_su32.ll
M llvm/test/Instrumentation/MemorySanitizer/AArch64/vararg_shadow.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/f16c-intrinsics-upgrade.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/vararg_shadow.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/vararg_shadow.ll
Log Message:
-----------
[msan] Apply handleGenericVectorConvertIntrinsic() to fptrunc/fpext (#204197)
The current instrumentation uses handleShadowOr(), which effectively
truncates or zero-extends the shadows for fptrunc/fpext respectively;
this is overly lax because floating-point has both mantissa and exponent
components (e.g., if the mantissa is initialized but the exponent is
uninitialized, an fptrunc might end up with a fully initialized shadow,
which is incorrect; conversely, if a floating-point value is fully
uninitialized, we want the fpext'ed shadow to be fully uninitialized,
not zero-extended). This patch strengthens the instrumentation of
fptrunc/fpext by using handleGenericVectorConvertIntrinsic(), which
applies an "all-or-nothing" approach to uninitialized bits of each
scalar.
Note: https://github.com/llvm/llvm-project/pull/203903 auto-upgraded
aarch64_neon_vcvtfp2hf and aarch64_neon_vcvthf2fp to fptrunc and fpext,
which had the effect of weakening MSan's instrumentation for those NEON
intrinsics. This patch restores the stronger instrumentation for them
(and also generalizes it to all instances of fptrunc and fpext).
Commit: 51f9997cb4f07cc378acb71e234fa981dc42b39f
https://github.com/llvm/llvm-project/commit/51f9997cb4f07cc378acb71e234fa981dc42b39f
Author: Dmitriy Smirnov <dmitriy.smirnov at arm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M mlir/lib/Dialect/SCF/Transforms/ParallelLoopFusion.cpp
M mlir/test/Dialect/SCF/parallel-loop-fusion.mlir
Log Message:
-----------
[MLIR][SCF] Support permutation-based parallel loop fusion (#203207)
Improve SCF parallel-loop fusion for loops with permuted iteration
spaces.
Allow fusion after rewriting the second loop using an arbitrary
permutation of its iteration space. When multiple axes have identical
bounds and steps, also enumerate additional candidate remaps for those
equal axes.
Commit: f0c6b34b1305dab8f814ccf2120b9faf7be19c92
https://github.com/llvm/llvm-project/commit/f0c6b34b1305dab8f814ccf2120b9faf7be19c92
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Log Message:
-----------
[SLP][NFC] Fix compile-time hang in isMaskedLoadCompress
For a large gathered-load cluster LoadVecTy spans hundreds of vector
registers and the shuffle cost query blows up in processShuffleMasks.
The shuffle cost is non-negative, so bail out before computing it when
VectorGEPCost + LoadCost already reaches GatherCost (not profitable).
Fixes #204163
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/204211
Commit: cd8fe2a3ac72968d146d649be4a54fb58f900730
https://github.com/llvm/llvm-project/commit/cd8fe2a3ac72968d146d649be4a54fb58f900730
Author: Aviral Goel <aviralg at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/EntityLinker.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummary.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/TUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummary.h
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-lu-namespace.json
R clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json
R clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-name.json
R clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-tu-namespace.json
R clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-link-unit.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
M clang/tools/clang-ssaf-linker/SSAFLinker.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/EntityLinkerTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/TUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/SummaryData/SummaryDataTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
Log Message:
-----------
Revert "[clang][ssaf] Track target triple in TU and LU summaries. (#204027)" (#204207)
This reverts commit a084633edf331f75412f966bc46cc1b35462c519.
Commit: b8d2524025f38b052e75f82c222d5984f228e23e
https://github.com/llvm/llvm-project/commit/b8d2524025f38b052e75f82c222d5984f228e23e
Author: shubhamnarlawar <68635493+shubhamnarlawar at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M mlir/lib/Dialect/Arith/IR/InferIntRangeInterfaceImpls.cpp
M mlir/test/Dialect/Arith/int-range-narrowing.mlir
Log Message:
-----------
[mlir][arith] Fix crash in ConstantOp range inference for zero-element constants (#204180)
arith::ConstantOp::inferResultRanges computes the union of element
ranges by iterating a DenseIntElementsAttr. For a zero-element constant
(e.g. ) the loop body never runs,
leaving the std::optional result unset.
-> This fixes #202531
Commit: 1db458e73e781e49a75b659ba8bb1203427e0d21
https://github.com/llvm/llvm-project/commit/1db458e73e781e49a75b659ba8bb1203427e0d21
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
Log Message:
-----------
[lldb] Fix TestLldbGdbServer.py on arm64e (#203995)
Commit: 881eac3216f5e030860fb0b87dcb5dc0ff08238d
https://github.com/llvm/llvm-project/commit/881eac3216f5e030860fb0b87dcb5dc0ff08238d
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/test/API/tools/lldb-server/main.cpp
Log Message:
-----------
[lldb] Strip code pointers in lldb-server test binary on arm64e (#203988)
Otherwise an unstripped pointer will be sent to debugserver. LLDB strips
pointers before sending them to debugserver, so debugserver does not
know how to handle it.
This fixes TestGdbRemoteSingleStep.py, TestGdbRemote_qMemoryRegion.py,
and TestGdbRemote_vCont.py on arm64e.
Commit: a85441c04b789e2da32424cd8e50226cf626d7e3
https://github.com/llvm/llvm-project/commit/a85441c04b789e2da32424cd8e50226cf626d7e3
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/unittests/Protocol/CMakeLists.txt
A lldb/unittests/Protocol/MCPErrorTest.cpp
A lldb/unittests/Protocol/MCPPluginTest.cpp
A lldb/unittests/Protocol/MCPServerInfoTest.cpp
A lldb/unittests/Protocol/MCPTransportTest.cpp
M lldb/unittests/Protocol/ProtocolMCPServerTest.cpp
M lldb/unittests/Protocol/ProtocolMCPTest.cpp
M lldb/unittests/TestingSupport/Host/JSONTransportTestUtilities.h
Log Message:
-----------
[lldb] Add unit tests for the MCP server (#202752)
Add unit-test coverage for the MCP protocol types and server under
source/Protocol/MCP and the MCP plugin under
source/Plugins/Protocol/MCP.
The Server handlers run over the in-memory TestTransport, which gains
SimulateError/SimulateClosed/SetRegisterMessageHandlerShouldFail helpers
to drive the handler lifecycle without a real socket.
Code that touches the filesystem or otherwise requires mucking with the
test environment are deliberately left uncovered until those layers can
be mocked.
Assisted-by: Claude
Commit: c9b2cfc64e6759f3329ce60fd18cdd51639acf61
https://github.com/llvm/llvm-project/commit/c9b2cfc64e6759f3329ce60fd18cdd51639acf61
Author: Caroline Newcombe <caroline.newcombe at hpe.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M flang/include/flang/Support/Fortran-features.h
M flang/lib/Semantics/check-do-forall.cpp
M flang/lib/Semantics/check-do-forall.h
M flang/lib/Support/Fortran-features.cpp
A flang/test/Semantics/io-implied-do01.f90
Log Message:
-----------
[flang][Semantics] Warn on repeated do-variable in nested I/O implied DO (#198757)
Fixes #198528
Add a warning when an io-implied-do's do-variable appears as, or is
associated with, the do-variable of a containing io-implied-do. This
diagnoses violations of Fortran 2023 12.6.3p7:
>The do-variable of an io-implied-do that is in another io-implied-do
shall not appear as, nor be associated with, the do-variable of the
containing io-implied-do.
Since this is not a constraint, a warning is emitted rather than an
error. As suggested in the associated issue, the warning is on by
default and can be suppressed with `-Wno-io-implied-do-index-conflict`.
The check detects:
- Direct name reuse (same symbol in inner and outer implied DO)
- Association via EQUIVALENCE
- Association via USE-renaming
- Association via ASSOCIATE construct
A lit test (Semantics/io-implied-do01.f90) is added covering all of the
above cases, plus valid cases (sibling implied-DOs, single implied-DO)
that should not trigger the warning.
Example:
```
write(*,*) ((matrix(i,j), j=1,10), j=1,10)
! warning: I/O implied DO index 'j' appears in an enclosing I/O implied DO loop
! and should not have the same name [-Wio-implied-do-index-conflict]
```
Assisted by: Claude
Commit: 5ef3d70d1137b5990ec4f07db59dbd3582d0a586
https://github.com/llvm/llvm-project/commit/5ef3d70d1137b5990ec4f07db59dbd3582d0a586
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/MC/MCDXContainerWriter.h
M llvm/lib/MC/MCDXContainerWriter.cpp
M llvm/lib/Target/DirectX/CMakeLists.txt
M llvm/lib/Target/DirectX/DXContainerGlobals.cpp
A llvm/lib/Target/DirectX/DXContainerPDB.cpp
M llvm/lib/Target/DirectX/DirectX.h
M llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
A llvm/test/CodeGen/DirectX/ContainerData/DebugName-default-output.test
A llvm/test/CodeGen/DirectX/ContainerData/DebugName-user-directory.test
A llvm/test/CodeGen/DirectX/ContainerData/Inputs/check_pdb_exists.py
A llvm/test/CodeGen/DirectX/ContainerData/PDBParts.ll
A llvm/test/CodeGen/DirectX/ContainerData/PDBParts.test
M llvm/test/CodeGen/DirectX/embed-ildb.ll
M llvm/test/CodeGen/DirectX/llc-pipeline.ll
Log Message:
-----------
[DirectX] Generate PDB file with debug info (#202762)
This change adds DXContainerPDB pass for DirectX pipeline.
The pass creates PDB file containing sections with shader debug
information. PDB files comply with the format used by existing DirectX
debugging tools.
---------
Co-authored-by: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Commit: 7e5bc4c7bd23e390cdb0b08f807968ea256b0df2
https://github.com/llvm/llvm-project/commit/7e5bc4c7bd23e390cdb0b08f807968ea256b0df2
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/test/CodeGen/Generic/GlobalISel/irtranslator-byte-type.ll
Log Message:
-----------
[IRTranslator] Precommit tests for bitcasts of the byte type (#203638)
The purpose of this commit is to reflect differences due to PR #203335.
Commit: eb63d313c659ded3bd3106eac71a38c4c50bd3fc
https://github.com/llvm/llvm-project/commit/eb63d313c659ded3bd3106eac71a38c4c50bd3fc
Author: Thurston Dang <thurston at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vcvt.ll
M llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vcvt_f32_su32.ll
M llvm/test/Instrumentation/MemorySanitizer/AArch64/vararg_shadow.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/f16c-intrinsics-upgrade.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/vararg_shadow.ll
M llvm/test/Instrumentation/MemorySanitizer/i386/vararg_shadow.ll
Log Message:
-----------
Revert "[msan] Apply handleGenericVectorConvertIntrinsic() to fptrunc/fpext" (#204221)
Reverts llvm/llvm-project#204197 due to buildbot failure
(https://lab.llvm.org/buildbot/#/builders/51/builds/38557)
Commit: 52027ede48d697819598a33763e8b273b023e09f
https://github.com/llvm/llvm-project/commit/52027ede48d697819598a33763e8b273b023e09f
Author: Kareem Ergawy <kergawy at nvidia.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M flang/lib/Lower/OpenACC.cpp
M flang/test/Lower/OpenACC/Todo/acc-unstructured-combined-construct.f90
M flang/test/Lower/OpenACC/Todo/acc-unstructured-loop-construct.f90
Log Message:
-----------
[OpenACC] Add emit-independent-loops-as-unstructured flag (#204080)
Commit: 30f73c9cf7a6bd93cdf176912466f6e546f10435
https://github.com/llvm/llvm-project/commit/30f73c9cf7a6bd93cdf176912466f6e546f10435
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M compiler-rt/lib/xray/xray_hexagon.cpp
Log Message:
-----------
[XRay][Hexagon] Fix immext encoding of high bits in sled patcher (#203129)
encodeConstantExtender() places the high 12 bits of the 26-bit extension
at the wrong offset (<<16 instead of <<2), dropping them for any
constant above ~2^20. The runtime sled patcher then encodes a corrupted
trampoline address for PIE executables (load base 0x08000000+), so the
first patched function call jumps to a bogus address and crashes.
Commit: c7fbd7e709530a00d42dfb168333139149a0aa98
https://github.com/llvm/llvm-project/commit/c7fbd7e709530a00d42dfb168333139149a0aa98
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M compiler-rt/lib/xray/xray_trampoline_hexagon.S
Log Message:
-----------
[XRay][Hexagon] Use PC-rel addressing for runtime globals in trampoline (#203122)
The trampolines load the runtime handler globals
(__xray::XRayPatchedFunction and friends) with absolute
constant-extended immediates, which cannot be used in a PIC/PIE link, so
linking a default-PIE executable against the xray runtime fails -- and
-fPIC on user code does not help, the bad relocations are inside the
runtime archive:
ld.lld: error: relocation R_HEX_32_6_X cannot be used against symbol
'__xray::XRayPatchedFunction'; recompile with -fPIC
Commit: a0e45883e8bd17e3d2f22d0550201a12a5769658
https://github.com/llvm/llvm-project/commit/a0e45883e8bd17e3d2f22d0550201a12a5769658
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoF.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXCV.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZicbo.td
Log Message:
-----------
[RISC-V] Rename GPRMem operand to BasePtr. NFC
This is in preparation for https://github.com/llvm/llvm-project/pull/177073
where these operands can refer to either a GPR or YGPR depending on the
current HwMode. Since this is the base pointer operand of the load/store
instruction, BasePtr was chosen as the name.
Pull Request: https://github.com/llvm/llvm-project/pull/204215
Commit: 39bec9c394be6e41d6ff6ddfe41bf13966b7df0c
https://github.com/llvm/llvm-project/commit/39bec9c394be6e41d6ff6ddfe41bf13966b7df0c
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
Log Message:
-----------
[RISCV] Rename VPseudoTernaryMaskPolicy->VPseudoReductionMaskPolicy. NFC (#204053)
This makes it clearer why this class doesn't set UsesMaskPolicy and can
prevent accidental misuse in the future.
Commit: a0e2743191b545e0c179cd2cf38168fbf7291256
https://github.com/llvm/llvm-project/commit/a0e2743191b545e0c179cd2cf38168fbf7291256
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/lldb/test/BUILD.gn
Log Message:
-----------
[gn] port 639556c9f690 (#204227)
Commit: a23bf51952f375bcdedcca326619a040ec3c4897
https://github.com/llvm/llvm-project/commit/a23bf51952f375bcdedcca326619a040ec3c4897
Author: Chengjun <chengjunp at Nvidia.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/SROA.cpp
A llvm/test/Transforms/SROA/vector-promotion-rmw-cannot-tree-merge.ll
A llvm/test/Transforms/SROA/vector-promotion-rmw-tree-merge.ll
Log Message:
-----------
[SROA] Extend tree-structured merge to handle init + RMW pattern (#194441)
## Problem
When SROA rewrites an alloca used as a read-modify-write accumulator, it
emits a linear chain of `shufflevector + select` per partial store.
`InstCombine`'s `SimplifyDemandedVectorElts` walks this chain
recursively per element, scaling quadratically with chain length — in
practice tens of seconds of compile time on some matmul kernels.
## Example
Take an `<8 x float>` alloca initialized once and then updated in 4
chunks of 2 elements each:
```llvm
%alloca = alloca <8 x float>
store <8 x float> %init, ptr %alloca ; full init
;; chunk 0
%v0 = load <2 x float>, ptr %alloca+0 ; elts 0-1
%r0 = fadd <2 x float> %v0, %a
store <2 x float> %r0, ptr %alloca+0
;; chunk 1
%v1 = load <2 x float>, ptr %alloca+8 ; elts 2-3
%r1 = fadd <2 x float> %v1, %b
store <2 x float> %r1, ptr %alloca+8
;; chunks 2, 3 similarly ...
%result = load <8 x float>, ptr %alloca
```
### Before this MR — linear chain
Each partial store becomes an `expand`+`select` pair that overlays its
slice onto the accumulator. The accumulator's def is rewritten N times
in sequence:
```
init ── blend₀ ── blend₁ ── blend₂ ── blend₃ ── result
│ │ │ │
r₀' r₁' r₂' r₃'
```
Depth through the chain: O(N) in the number of chunks. `InstCombine`
recurses element-by-element through this chain, which is where the
quadratic time comes from.
### After this MR — tree of shufflevectors
Each partial load is replaced by the value most recently stored at that
slice. Partial stores update the tracked value for their slice and are
then dropped. At the end, the final per-slice values are tree-merged
into a single store:
```
r₀' r₁' r₂' r₃'
\ / \ /
concat₀ concat₁
\ /
\ /
\ /
\ /
concat
│
result
```
- Partial loads → replaced with the current value at that slice.
- Partial stores → dropped; they only update the tracked value at their
slice.
- Final full load → loads the tree's root from the alloca; later
promotion forwards the merged store to it.
Depth: O(log N).
## Change
`rewriteTreeStructuredMerge` already handled "partial stores tile the
alloca + one full-width load" with a shufflevector tree. This MR adds a
second pattern in the same function:
**Init + RMW** — one full-width init store, followed by any number of
partial loads and partial stores, optionally followed by a single
full-width final load, where:
- the distinct `[begin, end)` ranges touched by the partial loads and
stores, taken together, tile the alloca disjointly,
- the init store and all partial accesses live in the same basic block
(the optional full-width final load may live in a different block),
- the init store comes before every partial access, and the full-width
final load (when present in the same block) comes after every partial
access.
## Transform
The rewrite tracks, for each `[begin, end)` range in the partition, the
value the alloca currently holds at that range (`SliceValues[r]`):
- **Init**: each `SliceValues[r]` is initialized to a `shufflevector`
picking the range's elements out of the init store's value. The init
store itself is dropped.
- **Walk** partial loads and stores in block order:
- **Partial load** at range `r`: RAUW with `SliceValues[r]`. The load is
dropped.
- **Partial store** at range `r`: update `SliceValues[r]` to the stored
value. The store is dropped.
- **Finalize**: tree-merge the final `SliceValues` into a single store
to the alloca. The optional full-width final load is replaced by a load
of the alloca (forwarded by promotion later).
Anything that doesn't match either pattern falls through to the existing
expand+blend rewrite.
## AI disclosure
Parts of the implementation, and test cases were assisted by Claude Code
Opus @claude. All code has been reviewed and tested by me.
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
Commit: b87fe380d7cdb9b3662a2c2c4e10b8a1a3ce0404
https://github.com/llvm/llvm-project/commit/b87fe380d7cdb9b3662a2c2c4e10b8a1a3ce0404
Author: dGinten <david.ginten at rwth-aachen.de>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
A mlir/docs/Tutorials/ExternalTutorials.md
Log Message:
-----------
[mlir][docs] Add page for third-party tutorials (#188080)
Add a new page to the MLIR documentation that links to the
upstream Lighthouse project as well as additional third-party tutorials.
The goal is to make it easier for newcomers to discover MLIR learning
resources beyond the Toy tutorial.
The underlying discussion/RFC can be found
[here](https://discourse.llvm.org/t/rfc-tutorial-a-beginner-friendly-end-to-end-mlir-compiler-pipeline/89788).
Commit: 5dce5405e75c5243e1163f919774340f12020bf0
https://github.com/llvm/llvm-project/commit/5dce5405e75c5243e1163f919774340f12020bf0
Author: Andre Kuhlenschmidt <akuhlenschmi at nvidia.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M flang/docs/OpenACC-extensions.md
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/OpenACC.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/test/Lower/OpenACC/Todo/do-loops-to-acc-loops-todo.f90
A flang/test/Lower/OpenACC/do-concurrent-collapse.f90
A flang/test/Semantics/OpenACC/acc-collapse-do-concurrent.f90
Log Message:
-----------
[flang][OpenACC] Support COLLAPSE on DO CONCURRENT (#203085)
Lower a COLLAPSE clause on a DO CONCURRENT when the collapse value
equals the number of concurrent controls, matching the equivalent
nested-DO collapse form, and route the loop body into the collapsed
acc.loop. Emit specific not-yet-implemented diagnostics for the
collapse-less-than and collapse-greater-than control-count cases, and a
-Wportability warning for this non-standard extension.
Collapse of mismatched control cases will require a little more invasive
change, so I will submit that as a follow up PR if it is okay, if
desired I could fix the lowering for those two cases now.
Commit: a07f90ba94938e61f81612bb00b568cb4503f3d4
https://github.com/llvm/llvm-project/commit/a07f90ba94938e61f81612bb00b568cb4503f3d4
Author: Bryson Miller <bryson at efficient.computer>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/utils/lit/lit/TestRunner.py
A llvm/utils/lit/tests/Inputs/per-test-coverage-by-lit-cfg/name-collision/a/test.py
A llvm/utils/lit/tests/Inputs/per-test-coverage-by-lit-cfg/name-collision/b/test.py
M llvm/utils/lit/tests/Inputs/per-test-coverage-by-lit-cfg/per-test-coverage-by-lit-cfg.py
M llvm/utils/lit/tests/Inputs/per-test-coverage/per-test-coverage.py
M llvm/utils/lit/tests/per-test-coverage-by-lit-cfg.py
M llvm/utils/lit/tests/per-test-coverage.py
Log Message:
-----------
[lit] Avoid profraw filename collisions with --per-test-coverage (#203998)
Per-test-coverage derived the `LLVM_PROFILE_FILE` name from the test's
basename with its extension removed, so siblings that share a basename
but differ by directory or extension (e.g. foo.c and foo.cpp in one
directory) wrote into the same profraw file and raced on it.
This PR builds the name from the full path in the suite and adds the
`%p` and `%m` placeholders so a test that runs several instrumented
binaries gets a distinct file per process and per binary, even across
exec chains or recycled process ids.
Commit: e4211480b6a2647b8e3010b9669d4844542f65f3
https://github.com/llvm/llvm-project/commit/e4211480b6a2647b8e3010b9669d4844542f65f3
Author: Brendon Cahoon <Brendon.Cahoon at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/AMDGPU/div.ll
M llvm/test/Analysis/CostModel/AMDGPU/extractelement.ll
M llvm/test/Analysis/CostModel/AMDGPU/insertelement.ll
M llvm/test/Analysis/CostModel/AMDGPU/rem.ll
M llvm/test/Transforms/SLPVectorizer/AMDGPU/vectorize-i8.ll
M llvm/test/Transforms/VectorCombine/AMDGPU/extract-insert-chain-to-shuffles.ll
M llvm/test/Transforms/VectorCombine/AMDGPU/extract-insert-i8.ll
M llvm/test/Transforms/VectorCombine/AMDGPU/no-scalarize-vector-extract.ll
Log Message:
-----------
[AMDGPU] Refine i8 extractelement cost model (#203932)
Expand the cases when i8 extract elements are free. The extract elements
should be free when they are part of a sequence that extract multiple
consecutive elements the size of a register. This change enables the
SLPVectorizer to keep extract elements over more costly shufflevectors.
This PR also undoes a previous change that made insert element free, but
those require sequences of shift/or instructions so shouldn't be free.
Commit: 50e13e9d807d32980a909aca442b928e597876ff
https://github.com/llvm/llvm-project/commit/50e13e9d807d32980a909aca442b928e597876ff
Author: Zhen Wang <zhenw at nvidia.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M flang/lib/Optimizer/Transforms/CUDA/CUFOpConversion.cpp
M flang/test/Fir/CUDA/cuda-global-addr.mlir
Log Message:
-----------
[flang][cuda] Avoid runtime copies for scalar constant host reads (#204193)
Fix CUDA Fortran lowering for host reads from scalar module variables
with the `constant` attribute.
Host code can read and write CUDA constants, while kernels read the
device constant symbol. Flang keeps a host-visible value for scalar
constant host accesses and uses a device symbol for kernels.
After preserving the host declaration, scalar read-backs such as `x = c`
could still be lowered as device-to-host runtime copies, passing a host
pointer as the CUDA source. This change lowers those read-backs as
regular host load/store operations, while keeping the runtime update for
host-to-device assignments.
Commit: b2cb99971fb498a7ff458b3a1a4a4edf3c3bafd3
https://github.com/llvm/llvm-project/commit/b2cb99971fb498a7ff458b3a1a4a4edf3c3bafd3
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/secondary.h
Log Message:
-----------
[scudo] Use the unmap function on MemMap object. (#204001)
The current call does a unmap(MemMap), but the rest of the code is doing
MemMap.unmap(XXX), so follow that pattern.
Commit: 2916c779f63b6391669cd87421aca000e1418247
https://github.com/llvm/llvm-project/commit/2916c779f63b6391669cd87421aca000e1418247
Author: Devon Loehr <DKLoehr at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/docs/SanitizerSpecialCaseList.rst
M clang/unittests/Basic/DiagnosticTest.cpp
M llvm/lib/Support/SpecialCaseList.cpp
M llvm/unittests/Support/SpecialCaseListTest.cpp
Log Message:
-----------
Make sanitizer special case list slash-agnostic (#149886)
This changes the glob matcher for the sanitizer special case format so
that it treats `/` as matching both forward and back slashes.
When dealing with cross-compiles or build systems that don't normalize
slashes, it's possible to run into file paths with inconsistent
slashiness, e.g. `../..\v8/include\v8-internal.h` when [building
chromium](https://g-issues.chromium.org/issues/425364464).
We can match this using the current syntax using this ugly kludge:
`src:*{/,\\}v8{/,\\}*`. However, since the format is explicitly for
listing file paths, it makes sense to treat `/` as denoting a path
separator rather than a literal forward slash. This allows us to write
the much more natural form `src:*/v8/*` and have it work on any
platform.
This is technically a behavior change, but it seems very unlikely to
come up in practice. It will only make a difference if a user has a
system where they want to catch `a/b` but not `a\b`. Even in the worst
case, they can still regain the previous behavior by escaping the slash
character in their pattern: `src:a\/b`.
Note: this is not default behavior yet. To activate use `#!special-case-list-v4` in
the first line of the special case list file.
---------
Co-authored-by: Vitaly Buka <vitalybuka at google.com>
Commit: 9434d4ab865319c443826c2eb408329d0011dc71
https://github.com/llvm/llvm-project/commit/9434d4ab865319c443826c2eb408329d0011dc71
Author: Aviral Goel <aviralg at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/EntityLinker.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummary.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/TUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummary.h
M clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-lu-namespace.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-name.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-tu-namespace.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-link-unit.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
M clang/tools/clang-ssaf-linker/SSAFLinker.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/EntityLinkerTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/TUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/SummaryData/SummaryDataTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
Log Message:
-----------
Reland "[clang][ssaf] Track target triple in TU and LU summaries" (#204218)
This commit introduces the following changes:
- Add `TargetTriple` field to `TUSummary`, `LUSummary`, and their encodings.
- Frontend captures the triple from `CompilerInstance::getTarget()` when extracting a TU summary.
- JSON format reads/writes a `target_triple` field at the root of each summary; reader rejects strings not in `llvm::Triple::normalize` form.
- All TU/LU JSON test inputs/outputs and unit tests updated to include the new field.
- `TargetParser` is added to `LLVM_LINK_COMPONENTS` for `clangScalableStaticAnalysisFrameworkCore`, which provides `Triple::normalize` and `Triple(string&&)` constructor that the `JSONFormat` sources reference.
`clang-ssaf-linker` uses a hardcoded triple for the link unit; surfacing the triple through the tool will be handled in a follow-up PR.
rdar://179403011
Commit: 930a46d2379914172f9e9e5e108510aa43fb7934
https://github.com/llvm/llvm-project/commit/930a46d2379914172f9e9e5e108510aa43fb7934
Author: Dakkshesh <64984008+beakthoven at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
A clang/include/clang/Basic/BuiltinsAVR.def
M clang/include/clang/Basic/TargetBuiltins.h
M clang/lib/Basic/Targets/AVR.cpp
M clang/lib/Basic/Targets/AVR.h
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CMakeLists.txt
M clang/lib/CodeGen/CodeGenFunction.h
A clang/lib/CodeGen/TargetBuiltins/AVR.cpp
M clang/test/CodeGen/avr/avr-builtins.c
A clang/test/Preprocessor/avr-builtins.c
Log Message:
-----------
[clang][AVR] Add basic AVR builtin functions (#203214)
Adds support for AVR specific builtin functions as defined in:
https://gcc.gnu.org/onlinedocs/gcc/AVR-Built-in-Functions.html
The simpler builtins have been implemented: nop, sei, cli, sleep, wdr,
swap. And they are lowered to their llvm.avr.* intrinsics.
---------
Signed-off-by: Dakkshesh <beakthoven at gmail.com>
Commit: 2dfdd094d084e258934cc1e89be8a09fb59cdfa1
https://github.com/llvm/llvm-project/commit/2dfdd094d084e258934cc1e89be8a09fb59cdfa1
Author: Rashmi Mudduluru <r_mudduluru at apple.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
A clang/test/Analysis/malloc-sizeof-fp.cpp
Log Message:
-----------
[clang][StaticAnalyzer] Reduce MallocSizeofChecker false positives for layout-compatible types (#200253)
When one operand is a record type and the other is a non-record type,
treat them as compatible if they share the same size and the record's
alignment satisfies the scalar's alignment. This suppresses warnings for
patterns like `malloc(sizeof(std::atomic<int32_t>))` assigned to an
`int32_t *` (or a wrapper struct with an identical layout), while still
flagging genuinely mismatched types such as `long` vs `double` or
unrelated struct pairs.
rdar://177553628
---------
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: 77fe8dc5c970fb46092c3abed59e2fb66529ec4a
https://github.com/llvm/llvm-project/commit/77fe8dc5c970fb46092c3abed59e2fb66529ec4a
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M flang/docs/Extensions.md
M flang/lib/Semantics/resolve-names.cpp
A flang/test/Semantics/resolve130.f90
A flang/test/Semantics/resolve131.f90
Log Message:
-----------
[flang][semantics] Allow forward-typed PARAMETER constants under IMPLICIT NONE (#203398)
Under IMPLICIT NONE, flang rejected a named constant defined by a
PARAMETER statement whose explicit type declaration appears later in the
same specification part:
implicit none
parameter(n=4096)
integer n ! error: No explicit type declared for 'n'
end
Accept it as an extension, reusing the existing ForwardRefImplicitNone
language feature that already permits forward references to dummy
arguments and COMMON variables under IMPLICIT NONE(TYPE). The behavior
is accepted silently by default and emits a portability warning under
-pedantic.
Assisted-by: AI
Commit: 3a7f3fd87aadf4d27a5faebd1231a1188e45a2c0
https://github.com/llvm/llvm-project/commit/3a7f3fd87aadf4d27a5faebd1231a1188e45a2c0
Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/RISCV/rotated-strided-loads.ll
Log Message:
-----------
[SLP] Add test demonstrating bug in widened strided store logic (#204012)
See #204011
Commit: dcd41b43f0613057591ae2ba63679c65e18145bf
https://github.com/llvm/llvm-project/commit/dcd41b43f0613057591ae2ba63679c65e18145bf
Author: jofrn <jo7frn1 at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/Target/TargetSelectionDAG.td
M llvm/lib/Target/X86/X86InstrAVX512.td
M llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
M llvm/test/CodeGen/X86/atomic-load-store.ll
Log Message:
-----------
[X86] Extend alignedstore PatFrag to cover atomic_store (#197861)
Smaller FP vectors (`<N x half>`, `<N x bfloat>`) are left to the DAG
widen path on subtargets without native FP16/BF16 support; the
v8f16/v8bf16 bitconvert variants added to the Atomic Store Split
commit's patterns let the
widened path collapse to a single instruction on AVX+ targets.
Store-side counterpart to #148899 (and now
https://github.com/llvm/llvm-project/pull/199520). Stacked on top of
https://github.com/llvm/llvm-project/pull/201980; and below of
https://github.com/llvm/llvm-project/pull/201566.
Commit: 1b4d46370a1a56be51c2067e7978863b1a992c1f
https://github.com/llvm/llvm-project/commit/1b4d46370a1a56be51c2067e7978863b1a992c1f
Author: Igor Kudrin <ikudrin at accesssoftek.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/test/ExecutionEngine/MCJIT/frem.ll
M llvm/tools/lli/CMakeLists.txt
Log Message:
-----------
[MCJIT] Fix frem.ll test failure with LLVM_ENABLE_RPMALLOC on Windows (#200319)
When compiled with `LLVM_ENABLE_RPMALLOC`, `lli.exe` links statically to
the runtime. With `LLVM_EXPORT_SYMBOLS_FOR_PLUGINS` enabled, `lli.exe`
exports a subset of symbols from the runtime library, but not all. In
particular, `printf()` is exported from the application binary, but
`fflush()` and `exit()` are not. For a JITted module, unresolved
external symbols are loaded either from the application or dynamic
libraries, in this case, from `msvcrt.dll`. The `MCJIT/frem.ll` test
attempts to flush the output, but because the functions resolve to
different CRT instances, the output data is lost.
The patch avoids the test failure by disabling exporting symbols from
`lli.exe` when it is linked with the static runtime library.
Commit: 698648fb72e6973a62bf1004287dedd94fd01807
https://github.com/llvm/llvm-project/commit/698648fb72e6973a62bf1004287dedd94fd01807
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Scheduler.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp
M llvm/unittests/Transforms/Vectorize/SandboxVectorizer/SchedulerTest.cpp
Log Message:
-----------
[SandboxVec][DAG] Implement UnscheduledPreds API (#201240)
Mirroring UnscheduledSuccs, this patch adds an UnscheduledPreds DAG node
counter that counts how many predecessors are not scheduled yet.
It also renames the existing ready() to readyBottomUp() to help us
differentiate between the two variants that are now available.
Commit: b3d0487ef16050a63e522bc7e96cc4233b6e7b70
https://github.com/llvm/llvm-project/commit/b3d0487ef16050a63e522bc7e96cc4233b6e7b70
Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUHazardLatency.cpp
M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInsertDelayAlu.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSetWavePriority.cpp
M llvm/lib/Target/AMDGPU/AMDGPUWaitSGPRHazards.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.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/SIInstrInfo.h
M llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
Log Message:
-----------
[AMDGPU] NFC: Obviously show isVALU includes LDSDMA instructions (#203548)
In https://reviews.llvm.org/D124472 we started labelling LDSDMA as VALU
-- this was due to SPG stating that these instructions act as both
memory + VALU instructions.
This is buried in the isVALU methods - I'd argue that most users without
knowledge of this characteristic would not expect this behavior, and
looking at the implementation of these methods, there is nothing that
would suggest this behavior. This PR forces users to confront this
characteristic and decide if that is what they want to do for their
usecase.
I've personally seen at least two bugs in upstream code caused by this,
and have seen it cause problems a dozen + times in downstream code / in
WIP things.
Commit: e8b2205b90e021d3239880739d3c54f1ccae4d3f
https://github.com/llvm/llvm-project/commit/e8b2205b90e021d3239880739d3c54f1ccae4d3f
Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
A llvm/test/CodeGen/AMDGPU/vgpr-excess-threshold-percent-invalid.ll
A llvm/test/CodeGen/AMDGPU/vgpr-excess-threshold-percent.ll
Log Message:
-----------
[AMDGPU] Add flag to control VGPR pressure limits (#203797)
The RP trackers don't accurately measure the RA problem, and can
underestimate the number of registers required. Currently, for VGPR
pressure, we account for these inaccuracies using VGPRLimitBias, and
ErrorMargin. These are used to reduce the VGPRCriticalLimit /
VGPRExcessLimit . During scheduling, we check RP against these limits,
and if we start to see RP exceeding these limits, we will trigger RP
reduction heuristics (when deciding which instructions to schedule
next). Thus VGPRLimitBias + ErrorMargin effectively reduce the amount of
allowable RP during scheduling, as a means to compensate for RP tracker
inaccuracies. Currently, ErrorMargin is set to 3, and VGPRLimitBias is
set to 0.
However, the degree of inaccuracy tends to scale with the number of
registers we have available for allocation. In other words, the RP
trackers inaccuracy is better expressed as a percent of the register
budget, rather than some literal value. This PR adds some functionality
to express this inaccuracy compensation is a percent - and exposes a
flag which is useful for debug purposes. This correction only effects
the Excess/Critical limit and does not adjust things like MinOCcupancy,
or our spill estimates -- it only effects the guiding heuristics used
during scheduling instead of also impacting the meta heuristics used
when evaluating schedules. I can make arguments that it should also
impact meta heuristics, but that would be changing the current semantics
of the limit correction mechanisms. I thought it best to leave that as a
separate PR if we want to go that route.
Commit: e9faee6052d35e13bae95fda3fcbe40ed36d2e35
https://github.com/llvm/llvm-project/commit/e9faee6052d35e13bae95fda3fcbe40ed36d2e35
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/dotest.py
Log Message:
-----------
[lldb][test] Skip watchpoint and expression tests on WebAssembly (#204235)
WebAssembly has no watchpoint support (Process/wasm reports no
watchpoints; the stop reason comes back as a plain signal) and cannot
JIT or interpret expressions (ProcessWasm sets CanJIT to false). Teach
the existing per-platform category checks about wasm so the whole
"watchpoint" and "expression" categories are skipped, rather than
decorating each test individually.
Commit: 0677ebe8623790fea2f4b91258ae0167f8255d12
https://github.com/llvm/llvm-project/commit/0677ebe8623790fea2f4b91258ae0167f8255d12
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Log Message:
-----------
[VPlan] Use getSingleUser to improve code (NFC) (#203882)
Commit: c8d735d6753c75095c840ff6363e704a44aa96b9
https://github.com/llvm/llvm-project/commit/c8d735d6753c75095c840ff6363e704a44aa96b9
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M libcxx/include/__numeric/accumulate.h
M libcxx/include/__numeric/gcd_lcm.h
M libcxx/include/__numeric/inner_product.h
M libcxx/include/__numeric/pstl.h
M libcxx/include/__numeric/reduce.h
M libcxx/include/__numeric/transform_reduce.h
R libcxx/test/libcxx/numerics/nodiscard.verify.cpp
A libcxx/test/libcxx/numerics/numeric.ops/nodiscard.verify.cpp
M libcxx/test/libcxx/utilities/bit/nodiscard.verify.cpp
Log Message:
-----------
[libc++][numeric] Applied `[[nodiscard]]` to `<numeric>` (#202770)
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
Applied `[[nodiscard]]` to the remaining functions.
Towards: https://github.com/llvm/llvm-project/issues/172124
This PR also eliminates
libcxx/test/libcxx/numerics/nodiscard.verify.cpp, which was misplaced
and contained unrelated tests. These tests were moved to where they
belong. This refactoring is included in this PR as the change is also
related to `<numeric>`.
Reference:
- https://eel.is/c++draft/numeric.ops.overview
- https://eel.is/c++draft/numeric.ops
---------
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Commit: 1915af8a196863d604eb1c58cf99e64a0ec58153
https://github.com/llvm/llvm-project/commit/1915af8a196863d604eb1c58cf99e64a0ec58153
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h
M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
A llvm/test/MC/AMDGPU/amdgcn_target_directive_from_eflags.s
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-gfx10.s
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-gfx11.s
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-gfx12.s
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-gfx1250.s
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-gfx90a.s
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-gfx950.s
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-sgpr.s
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-vgpr.s
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-gfx10.s
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-gfx9.s
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-zeroed-raw.s
M llvm/tools/llvm-objdump/llvm-objdump.cpp
Log Message:
-----------
AMDGPU: Teach disassembler to produce target id directives (#203979)
Inspect the binary's e_flags to reproduce the .amdgcn_target directive.
This is a step towards round-trip disassembly without depending
on command line state specifying the subtarget. I wasn't sure
where to put the emission to ensure it is always emitted. I
also do not know why it's OK to just write to outs(), but that's
what the other directives here were doing.
Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
Commit: 4fd2a5cb17c55975ebb4c23f0b90e20621e9a744
https://github.com/llvm/llvm-project/commit/4fd2a5cb17c55975ebb4c23f0b90e20621e9a744
Author: Yao Qi <yao_qi at apple.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/BinaryFormat/Magic.cpp
M llvm/unittests/BinaryFormat/TestFileMagic.cpp
Log Message:
-----------
[BinaryFormat] Fix UBSan negative-shift in identify_magic Mach-O path (#204122)
`identify_magic()` read the Mach-O filetype field at offset 12 by
left-shifting four bytes of the input StringRef:
```
type = Magic[12] << 24 | Magic[13] << 12 | Magic[14] << 8 | Magic[15];
```
`StringRef::operator[]` returns a `signed char`. When a header byte has
its
high bit set (e.g. 0xFA == -6 after promotion to int), the expression
"-6 << 24" is undefined behavior; even positive bytes like 0xFF promote
to a value whose "<< 24" overflows a signed int. UBSan trapped this on a
crafted input found by lldb-target-fuzzer:
```
Magic.cpp:177:26: runtime error: left shift of negative value -6
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
libFuzzer: deadly signal
```
Reached via `SBDebugger::CreateTarget` ->
`ObjectFile::GetModuleSpecifications`
-> `identify_magic` on a 17-byte file starting with the reverse-endian
Mach-O magic (CF FA ED FE).
Read the four bytes through `llvm::support::endian::read{32be,32le}`
instead. The helpers operate on unsigned bytes, so there is no signed
promotion and no left-shift UB; the byte-order choice matches the
header's documented layout (native magic FE ED FA C{E,F} => filetype
stored big-endian; reverse magic CE/CF FA ED FE => little-endian).
As a side effect this also corrects a latent typo in the hand-rolled
read: the second byte was shifted by 12 instead of 16. The bug was
masked in practice because real Mach-O filetype values fit in the
low-order byte, so the high bytes were zero.
Endian.h was already included and `llvm::support::endian` was already
imported with "using namespace" at the top of the file, so no extra
includes are needed.
Reproducer:
target-fuzzer-testcases/crash-1b8df752f6b9c0b0ff6ae36e9fd1db3c6ea73b6d
17 bytes: cf fa ed fe 03 ff ff ff ff 03 ff ff ff ff cf fa fe
Before: UBSan abort at Magic.cpp:177.
After: ./bin/lldb-target-fuzzer <repro> -> "Executed ... in 44 ms", exit
0.
Commit: 3aea0a064a8649c8068373407609b896915fd7fb
https://github.com/llvm/llvm-project/commit/3aea0a064a8649c8068373407609b896915fd7fb
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/CodeGen/BUILD.gn
Log Message:
-----------
[gn build] Port 930a46d23799 (#204244)
Commit: 6e8c2dcbae543084eb7bbb087a6a5e9d4cecb05a
https://github.com/llvm/llvm-project/commit/6e8c2dcbae543084eb7bbb087a6a5e9d4cecb05a
Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/EntityLinker.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummary.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/TUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummary.h
M clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-lu-namespace.json
R clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json
R clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-name.json
R clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-tu-namespace.json
R clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-link-unit.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
M clang/tools/clang-ssaf-linker/SSAFLinker.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/EntityLinkerTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/TUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/SummaryData/SummaryDataTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
Log Message:
-----------
Revert "Reland "[clang][ssaf] Track target triple in TU and LU summaries"" (#204236)
Reverts llvm/llvm-project#204218
Fails amdgpu buildbots
Commit: 6b52ab266ad28f5af38832ec4e34eafc93aa2e8e
https://github.com/llvm/llvm-project/commit/6b52ab266ad28f5af38832ec4e34eafc93aa2e8e
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoC.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXwch.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZc.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZclsd.td
Log Message:
-----------
[RISC-V] Rename GPRCMem operand to BasePtrC. NFC
This is in preparation for https://github.com/llvm/llvm-project/pull/177073
where these operands can refer to either a GPR or YGPR depending on the
current HwMode.
Pull Request: https://github.com/llvm/llvm-project/pull/204241
Commit: 9006a2c15182498f61919caa917ca16f847e4622
https://github.com/llvm/llvm-project/commit/9006a2c15182498f61919caa917ca16f847e4622
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVRegisterInfo.td
M llvm/test/MC/RISCV/rv32c-invalid.s
M llvm/test/MC/RISCV/rv64c-invalid.s
M llvm/test/MC/RISCV/rvc-hints-invalid.s
M llvm/test/MC/RISCV/xqcibm-invalid.s
Log Message:
-----------
[RISC-V][MC] Improve the diagnostic for invalid compressed register number
Instead of a generic `invalid operand for instruction`, print
`register must be a GPR from x8 to x15` instead.
Pull Request: https://github.com/llvm/llvm-project/pull/204237
Commit: 790dee311f4f5f770a92d152a6bc1e289c47bebf
https://github.com/llvm/llvm-project/commit/790dee311f4f5f770a92d152a6bc1e289c47bebf
Author: Ziqing Luo <ziqing_luo at apple.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
A clang/test/Analysis/Scalable/PointerFlow/multi-dim-pointer-flow-constraint.test
Log Message:
-----------
[SSAF][WPA] Add a lit test for the WPA improvement of #198889 (#204018)
This commit adds a lit test, which is an example of the issue solved by
#198889 and was discovered independently when applying the analysis to a
real project.
rdar://179754164
Commit: e4432714743a4501edf0ffc67facd56dc075a7a3
https://github.com/llvm/llvm-project/commit/e4432714743a4501edf0ffc67facd56dc075a7a3
Author: Akira Hatanaka <ahatanak at gmail.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/Driver/objc-constant-literals.m
Log Message:
-----------
[Driver] Re-enable -fobjc-constant-literals by default (#204208)
This reverts 4d154f6ea5eb ([Driver] Disable -fobjc-constant-literals by
default (#195000)), which was a temporary measure to unblock a project
that the original constant-literal change (#185130) broke.
For background on the feature and the discussion that led to disabling
and then re-enabling it, see
https://github.com/llvm/llvm-project/pull/185130.
rdar://179823193
Commit: 0b0e0b4a3c02f7217cec22776868e8e0a5ed9f3f
https://github.com/llvm/llvm-project/commit/0b0e0b4a3c02f7217cec22776868e8e0a5ed9f3f
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/test/API/commands/target/create-deps/TestTargetCreateDeps.py
M lldb/test/API/functionalities/always-run-threads/TestAlwaysRunThreadNames.py
M lldb/test/API/functionalities/tail_call_frames/cross_dso/TestCrossDSOTailCalls.py
M lldb/test/API/lang/c/anonymous/TestAnonymous.py
M lldb/test/API/lang/c/blocks/TestBlocks.py
M lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py
M lldb/test/API/lang/c/conflicting-symbol/TestConflictingSymbol.py
M lldb/test/API/lang/c/enum_types/TestEnumTypes.py
M lldb/test/API/lang/c/fpeval/TestFPEval.py
M lldb/test/API/lang/c/function_types/TestFunctionTypes.py
M lldb/test/API/lang/c/modules/TestCModules.py
M lldb/test/API/lang/c/register_variables/test.c
M lldb/test/API/lang/c/sizeof/TestCSizeof.py
M lldb/test/API/lang/c/struct_types/TestStructTypes.py
M lldb/test/API/python_api/unnamed_symbol_lookup/TestUnnamedSymbolLookup.py
M lldb/test/API/tools/lldb-dap/module/TestDAP_module.py
Log Message:
-----------
[lldb][test] Skip unsupported tests on WebAssembly (#204245)
Mark more tests that rely on features unavailable on wasm32-wasip1 (or
in LLDB's Wasm support): expression evaluation (skipIfWasm), shared
libraries (skipIfTargetDoesNotSupportSharedLibraries), threads
(skipIfTargetDoesNotSupportThreads), and llvm-strip --keep-symbol, which
the Wasm object format doesn't support. Where a test also has supported,
passing cases, the decorator is applied per method.
The "expression" category is already skipped for Wasm, but that only
covers commands/expression/*, where the category is set by a
"categories" file. The tests in this PR live elsewhere and merely use
expression evaluation incidentally, so they aren't in that category and
need skipIfWasm directly.
Commit: e6a049021d2f46bae5d8df22d5e447cca62bbd98
https://github.com/llvm/llvm-project/commit/e6a049021d2f46bae5d8df22d5e447cca62bbd98
Author: sstwcw <su3e8a96kzlver at posteo.net>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/Format/DefinitionBlockSeparator.cpp
M clang/unittests/Format/DefinitionBlockSeparatorTest.cpp
Log Message:
-----------
[clang-format] Stop inserting blank line in disabled region (#201995)
Previously, a blank got inserted before the `// clang-format off`
comment with the `SeparateDefinitionBlocks` option set.
Fixes #106983 and #146317.
Commit: ac131eb48890abd2ae286f31541d497bb272ee44
https://github.com/llvm/llvm-project/commit/ac131eb48890abd2ae286f31541d497bb272ee44
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CodeGenModule.cpp
A clang/test/CodeGenCXX/cxx20-nttp-object-layout.cpp
Log Message:
-----------
[Clang][CodeGen] Fix C++20 NTTP object field indexing (#204174)
C++20 allows a class object to be used as a non-type template
parameter. For example, a template can take an object of a struct like
`{ char A; long long B; char C; char First[2]; char Second[2]; }`.
That struct has padding before `B`. The constant emitter can represent
the value with an ordinary LLVM struct and let LLVM provide that padding
implicitly. Normal record CodeGen instead uses the memory type for the
record, which may contain explicit padding fields so C++ fields have
stable LLVM field numbers.
The bytes are laid out the same, but the LLVM field numbers are not.
For the normal padded record type, `First` has one field index. For the
compact constant type, that same index names a later field. Clang was
computing the field index for the padded record type, then applying it
to the compact template parameter object type. As a result, reading
`First` could read from the bytes for `Second` instead.
Return the template parameter object address using the normal memory
type for the record. This makes the field index apply to the type it
was computed for, so field access uses the same layout as an ordinary
object. The constant data itself stays the same.
Commit: f2d2d98fc866474b87e2fdc20ee5d6dd3dcdbe56
https://github.com/llvm/llvm-project/commit/f2d2d98fc866474b87e2fdc20ee5d6dd3dcdbe56
Author: Fabian Parzefall <fabian.parzefall at mailbox.org>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M bolt/runtime/instr.cpp
A bolt/test/runtime/setup-race.cpp
Log Message:
-----------
[BOLT] Delay indirect call pointer setup (#204229)
There is a race in the instrumentation runtime during setup. The setup
initializes the function pointers for indirect call instrumentation
before the indirect call counters array. If the application spawns a
background thread through a constructor (as does jemalloc), the
background thread has a chance to derefence that uninitialized array
pointer. Defer initialization of these function pointers to prevent this
race.
Fixes #198181.
Co-authored-by: Fabian Parzefall <parzefall at meta.com>
Commit: 212ae443a544e99f2a465cd9ee14dab096abd852
https://github.com/llvm/llvm-project/commit/212ae443a544e99f2a465cd9ee14dab096abd852
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
Log Message:
-----------
AMDGPU: Add TargetParser to disassembler dependencies (#204250)
Should fix build failure after #203979, but should be reverted
in #204150
Commit: 5639b33d7567bf648f27418b126f5f6f6292b730
https://github.com/llvm/llvm-project/commit/5639b33d7567bf648f27418b126f5f6f6292b730
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/combined.h
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Log Message:
-----------
[scudo] For a realloc that shrinks, retag the extra. (#204031)
When MTE is enabled and an allocations is reallocated from a large size
to a smaller size, zero tag the rest of the allocation. Before this
change only a single granule after the new size was zero tagged. This
adds extra security and use after realloc protection if code would have
tried to read/write into the old size, past the new size.
Commit: 2208263ee893e3713b1c7f650817565a7431478b
https://github.com/llvm/llvm-project/commit/2208263ee893e3713b1c7f650817565a7431478b
Author: jimingham <jingham at apple.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/bindings/python/CMakeLists.txt
A lldb/examples/python/delayed_enable.py
Log Message:
-----------
Add a useful command to the python examples & "lldb.utils" (#204251)
When debugging GUI programs where you have a bunch of breakpoints set
that you only want to have trigger when in the middle of some UI
interaction (a drag and drop for example) but not before, you need a way
to have the breakpoints disabled till a certain point, then re-enabled.
But since you are in the middle of the interaction, you can't interact
with the debugger to do that.
This little command disables your breakpoints, continues if you were
stopped, waits for a prescribed interval, then re-enables them.
Commit: 9ededda752f390692ef3bff847a2abb0b8cc80ea
https://github.com/llvm/llvm-project/commit/9ededda752f390692ef3bff847a2abb0b8cc80ea
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CGCall.cpp
M clang/test/CodeGenHLSL/resources/cbuffer_struct_passing.hlsl
Log Message:
-----------
[HLSL] Codegen for passing cbuffer structs as function args (#203961)
Constant buffer structs are in `hlsl_constant` address space and have a
different layout than structs in default address space. They need to be
copied element-by-element and not by `memcpy`.
This change adds a check for the `hlsl_constant` address space to the
code path that avoids materializing a temporary copy for simple
`CK_LValueToRValue ` casts. This makes sure the constant buffer structs
is copied element-by-element to a temporary before being passed to a
function.
Commit: 08527565f21a404b5ed925faf40f01b515326f7c
https://github.com/llvm/llvm-project/commit/08527565f21a404b5ed925faf40f01b515326f7c
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M lldb/test/API/commands/platform/process/list/TestProcessList.py
M lldb/test/API/commands/process/attach/TestProcessAttach.py
M lldb/test/API/commands/register/register_command/TestRegisters.py
M lldb/test/API/functionalities/deleted-executable/TestDeletedExecutable.py
M lldb/test/API/functionalities/gdb_remote_client/TestPlatformKill.py
M lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py
M lldb/test/API/functionalities/rerun_and_expr_dylib/TestRerunAndExprDylib.py
M lldb/test/API/lang/c/libc_calls/TestLibcCalls.py
M lldb/test/API/lang/cpp/abi_tag_structors/TestAbiTagStructors.py
M lldb/test/API/lang/cpp/const_static_integral_member/TestConstStaticIntegralMember.py
M lldb/test/API/lang/cpp/decl-from-submodule/TestDeclFromSubmodule.py
M lldb/test/API/lang/cpp/llvm-style/TestLLVMStyle.py
M lldb/test/API/lang/cpp/namespace/TestNamespace.py
M lldb/test/API/lang/cpp/namespace/TestNamespaceLookup.py
M lldb/test/API/lang/cpp/namespace_conflicts/TestNamespaceConflicts.py
M lldb/test/API/lang/cpp/operators/TestCppOperators.py
M lldb/test/API/lang/cpp/printf/TestPrintf.py
M lldb/test/API/lang/cpp/static_members/TestCPPStaticMembers.py
M lldb/test/API/lang/cpp/symbols/TestSymbols.py
M lldb/test/API/lang/cpp/template-diagnostic-hint/TestTemplateDiagnosticHint.py
M lldb/test/API/lang/cpp/template-function/TestTemplateFunctions.py
M lldb/test/API/lang/cpp/this/TestCPPThis.py
M lldb/test/API/lang/cpp/unique-types4/TestUniqueTypes4.py
M lldb/test/API/python_api/hello_world/TestHelloWorld.py
Log Message:
-----------
[lldb][test] Skip even more unsupported tests on WebAssembly (#204255)
A second pass over the full API suite for tests that depend on features
unavailable on wasm32-wasip1 or in LLDB's Wasm support:
- Expression evaluation (skipIfWasm) for the C++ tests that the
"expression" category doesn't cover, since that category only applies to
commands/expression/*.
- Attaching to a running process (skipIfWasm). These tests have the
harness spawn the inferior as a host process and then attach, but a
.wasm module isn't a native executable, so exec'ing it fails with
ENOEXEC ("Exec format error"). The wasm module only runs inside the
runtime (e.g. iwasm) that LLDB launches, so there is no host process to
attach to.
Where a test also has supported, passing cases, the decorator is applied
per method.
Commit: 8bea2ff77716f38575ea71eb38318ae19adad0d6
https://github.com/llvm/llvm-project/commit/8bea2ff77716f38575ea71eb38318ae19adad0d6
Author: Aviral Goel <aviralg at users.noreply.github.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/EntityLinker.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummary.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/TUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummary.h
M clang/lib/ScalableStaticAnalysisFramework/Analyses/CMakeLists.txt
M clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/CMakeLists.txt
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/lib/ScalableStaticAnalysisFramework/Tool/CMakeLists.txt
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-lu-namespace.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-name.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-tu-namespace.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-link-unit.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
M clang/tools/clang-ssaf-analyzer/CMakeLists.txt
M clang/tools/clang-ssaf-format/CMakeLists.txt
M clang/tools/clang-ssaf-linker/CMakeLists.txt
M clang/tools/clang-ssaf-linker/SSAFLinker.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/CMakeLists.txt
M clang/unittests/ScalableStaticAnalysisFramework/EntityLinkerTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/TUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/SummaryData/SummaryDataTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
Log Message:
-----------
Reland "[clang][ssaf] Track target triple in TU and LU summaries. #204027" (#204259)
This commit introduces the following changes:
- Add `TargetTriple` field to `TUSummary`, `LUSummary`, and their encodings.
- Frontend captures the triple from `CompilerInstance::getTarget()` when extracting a TU summary.
- JSON format reads/writes a `target_triple` field at the root of each summary; reader rejects strings not in `llvm::Triple::normalize` form.
- All TU/LU JSON test inputs/outputs and unit tests updated to include the new field.
`clang-ssaf-linker` uses a hardcoded triple value for the link unit; surfacing the triple through the tool will be handled in a follow-up PR.
rdar://179403011
Commit: edc5f477d3ccddd3b100603de3d4522627985e87
https://github.com/llvm/llvm-project/commit/edc5f477d3ccddd3b100603de3d4522627985e87
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[bazel][AVR] Fix 930a46d2379914172f9e9e5e108510aa43fb7934 (#204264)
Add AVR to the intrinsics list
Commit: 4ca9a58546c6a1c070f1fc9079da46b340047632
https://github.com/llvm/llvm-project/commit/4ca9a58546c6a1c070f1fc9079da46b340047632
Author: hev <wangrui at loongson.cn>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
A llvm/test/CodeGen/LoongArch/lasx/vhaddw.ll
A llvm/test/CodeGen/LoongArch/lasx/vhsubw.ll
A llvm/test/CodeGen/LoongArch/lsx/vhaddw.ll
A llvm/test/CodeGen/LoongArch/lsx/vhsubw.ll
Log Message:
-----------
[LoongArch][NFC] Add horizontal widening add/sub tests (#201487)
Commit: ad9ecc4739d136ac6818d6d439751556402b5134
https://github.com/llvm/llvm-project/commit/ad9ecc4739d136ac6818d6d439751556402b5134
Author: Prabhu Rajasekaran <prabhukr at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M libcxx/docs/ABIGuarantees.rst
M libcxx/include/__configuration/abi.h
M libcxx/include/deque
A libcxx/test/libcxx/containers/sequences/deque/lower_deque_block_size.default.compile.pass.cpp
A libcxx/test/libcxx/containers/sequences/deque/lower_deque_block_size.lower.compile.pass.cpp
M libcxx/test/libcxx/containers/sequences/deque/spare_block_handling.pass.cpp
M libcxx/utils/libcxx/test/features/libcxx_macros.py
Log Message:
-----------
[libcxx] Configuration option to lower deque block size (#198348)
Commit: 58c4e5dff75df1ea849d4b4b2fdc5510e50e16c6
https://github.com/llvm/llvm-project/commit/58c4e5dff75df1ea849d4b4b2fdc5510e50e16c6
Author: hev <wangrui at loongson.cn>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
M llvm/test/CodeGen/LoongArch/lasx/vhaddw.ll
M llvm/test/CodeGen/LoongArch/lasx/vhsubw.ll
M llvm/test/CodeGen/LoongArch/lsx/vhaddw.ll
M llvm/test/CodeGen/LoongArch/lsx/vhsubw.ll
Log Message:
-----------
[LoongArch] Add DAG combine for horizontal widening add/sub (#201488)
Add a DAG combine to recognize horizontal widening add/subtract patterns
and lower them to the corresponding LSX/LASX instructions.
The following pattern is matched for both signed and unsigned variants:
```
ADD/SUB(SEXT/ZEXT(BUILD_VECTOR(extract_elt(vj, 1), extract_elt(vj, 3), ...)),
SEXT/ZEXT(BUILD_VECTOR(extract_elt(vk, 0), extract_elt(vk, 2), ...)))
```
This covers the following instructions:
```
LSX: VHADDW.H.B, VHADDW.W.H, VHADDW.D.W
VHADDW.HU.BU, VHADDW.WU.HU, VHADDW.DU.WU
VHSUBW.H.B, VHSUBW.W.H, VHSUBW.D.W
VHSUBW.HU.BU, VHSUBW.WU.HU, VHSUBW.DU.WU
LASX: XVHADDW.H.B, XVHADDW.W.H, XVHADDW.D.W
XVHADDW.HU.BU, XVHADDW.WU.HU, XVHADDW.DU.WU
XVHSUBW.H.B, XVHSUBW.W.H, XVHSUBW.D.W
XVHSUBW.HU.BU, XVHSUBW.WU.HU, XVHSUBW.DU.WU
```
The Q_D variants (VHADDW.Q.D, VHSUBW.Q.D and their unsigned
counterparts) are not handled here because the result type v1i128 is not
yet legalized in the backend.
Commit: 054c8f4082efa2e050861f998e2fbb881b2ad17e
https://github.com/llvm/llvm-project/commit/054c8f4082efa2e050861f998e2fbb881b2ad17e
Author: Yuan Suo <suoyuan666 at s5n.xyz>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/test/Sema/LifetimeSafety/safety.cpp
M clang/unittests/Analysis/LifetimeSafetyTest.cpp
Log Message:
-----------
[LifetimeSafety] Add additional test for buildOriginFlowChain (#204124)
These are test case improvements suggested in previous PRs.
The `simpleparen` case originates from
https://github.com/llvm/llvm-project/pull/199345#discussion_r3343186258.
Additional unit test improvements were suggested in
https://github.com/llvm/llvm-project/pull/196075#discussion_r3274899024.
---------
Signed-off-by: Yuan Suo <suoyuan666 at s5n.xyz>
Commit: f67bdab61ab2c131a7c14a1cce226be80dbad4db
https://github.com/llvm/llvm-project/commit/f67bdab61ab2c131a7c14a1cce226be80dbad4db
Author: Haowei <haowei at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Flang.cpp
Log Message:
-----------
[clang][driver] Fix flang frontend resolution for symlinked clang driver (#204253)
When clang is built as a symlink to the llvm multicall binary, the
driver resolves the executable path to 'llvm', making D.Name 'llvm'
instead of 'clang'.
This broke the detection of 'clang --driver-mode=flang' in Flang.cpp,
causing the driver to try to run 'llvm -fc1' instead of looking up
'flang', after change in #200438 was landed.
Fix this by checking D.getPrependArg() in addition to D.Name to identify
if we are acting as clang. Also use D.IsFlangMode() for simpler and more
robust detection of the driver mode.
Commit: f50d67d368fc0c6039e40aee283c52060dd66df4
https://github.com/llvm/llvm-project/commit/f50d67d368fc0c6039e40aee283c52060dd66df4
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
Log Message:
-----------
[AMDGPU][GISel] Clean trailing Imms from RegBankLegalize rules. NFC (#204195)
Commit: 847dbc3ce54c6b2bab77622768812364c868797b
https://github.com/llvm/llvm-project/commit/847dbc3ce54c6b2bab77622768812364c868797b
Author: hev <wangrui at loongson.cn>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
A llvm/test/CodeGen/LoongArch/lasx/vsllwil.ll
A llvm/test/CodeGen/LoongArch/lsx/vsllwil.ll
Log Message:
-----------
[LoongArch][NFC] Add widening shift-left tests (#202601)
Commit: 9d788fe187d8b1f1f9f0cf0a1783c0994549cd15
https://github.com/llvm/llvm-project/commit/9d788fe187d8b1f1f9f0cf0a1783c0994549cd15
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M utils/bazel/.bazelrc
M utils/bazel/llvm-project-overlay/llvm/utils/lit/tests/BUILD.bazel
Log Message:
-----------
[bazel] Use --incompatible_default_to_explicit_init_py (#204275)
After #203998, the `per-test-coverage-by-lit-cfg.py` test is failing in
Bazel. It seems to be due to automatic `__init__.py` generation.
With some extra logs:
```
# .---command stdout------------
# | -- Testing: 5 tests, 1 workers --
# | FAIL: per-test-coverage-by-lit-cfg :: name-collision/__init__.py (1 of 5)
# | ******************** TEST 'per-test-coverage-by-lit-cfg :: name-collision/__init__.py' FAILED ********************
...
# | # .---command stderr------------
# | # | error: no check strings found with prefix 'CHECK:'
# | # `-----------------------------
```
I am not sure exactly the best way to deal with this, but
`--incompatible_default_to_explicit_init_py` disables this behavior and
makes the test pass. I also found some other excluded tests that now
pass, some of which have a similar directory structure, so those may
have the same underlying root cause.
Commit: 37881c63a952d554ab69d8ac31f8d1037b032c59
https://github.com/llvm/llvm-project/commit/37881c63a952d554ab69d8ac31f8d1037b032c59
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
M llvm/lib/Passes/StandardInstrumentations.cpp
M llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
M llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
M llvm/lib/Transforms/Utils/SampleProfileInference.cpp
Log Message:
-----------
[llvm] Replace unordered_{map,set} with Dense{Map,Set} in local maps (#204277)
std::unordered_map is slow. Replace maps and sets without a
pointer-stability requirement to DenseMap/DenseSet.
Extracted from #202222
Commit: e57dfa3d1ff53b08311417104fe144f82f7b591b
https://github.com/llvm/llvm-project/commit/e57dfa3d1ff53b08311417104fe144f82f7b591b
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/CodeGen/RDFGraph.h
M llvm/include/llvm/CodeGen/RDFLiveness.h
M llvm/lib/CodeGen/RDFGraph.cpp
M llvm/lib/CodeGen/RDFLiveness.cpp
Log Message:
-----------
[RDF] Replace unordered_map with DenseMap. NFC (#204280)
std::unordered_map is slow. Switch DefStackMap and RefMap to DenseMap.
erase-while-iterating loops become DenseMap::remove_if.
Commit: 641f2daef21a4ceb173321a94e064c333c753257
https://github.com/llvm/llvm-project/commit/641f2daef21a4ceb173321a94e064c333c753257
Author: hev <wangrui at loongson.cn>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
M llvm/test/CodeGen/LoongArch/lasx/vsllwil.ll
M llvm/test/CodeGen/LoongArch/lsx/vsllwil.ll
Log Message:
-----------
[LoongArch] Add DAG combine for widening shift-left (#202602)
Add DAG combines to recognize vector widening left-shift idioms and
lower them to VSLLWIL instructions.
The following pattern is matched for both signed and unsigned variants:
```
SEXT/ZEXT(Low-Half-Lanes(vec)) << Imm
```
This covers the following instructions:
```
LSX: VSLLWIL.H.B, VSLLWIL.W.H, VSLLWIL.D.W
VSLLWIL.HU.BU, VSLLWIL.WU.HU, VSLLWIL.DU.WU
LASX: XVSLLWIL.H.B, XVSLLWIL.W.H, XVSLLWIL.D.W
XVSLLWIL.HU.BU, XVSLLWIL.WU.HU, XVSLLWIL.DU.WU
```
Commit: 16d22173dbb1d3e77cfed5bbcc2aca1157350d25
https://github.com/llvm/llvm-project/commit/16d22173dbb1d3e77cfed5bbcc2aca1157350d25
Author: Wenju He <wenju.he at intel.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/LangStandards.def
M clang/include/clang/Basic/OpenCLOptions.h
M clang/lib/Basic/LangOptions.cpp
M clang/lib/Basic/TargetInfo.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/test/Driver/opencl.cl
M clang/test/Driver/unknown-std.cl
M clang/test/Preprocessor/predefined-macros.c
M clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp
Log Message:
-----------
[Clang][OpenCL] Add OpenCL 3.1 language version (#204043)
OpenCL 3.1 was recently added to spec in
https://github.com/KhronosGroup/OpenCL-Docs/commit/9fff1a87a975
This PR adds version 3.1 to clang support, including frontend flag
`-std=cl3.1` (and its alias `-std=CL3.1`).
Updated release note.
A few extensions are promoted to 3.1 core. They'll be handled in
follow-up PRs.
Assisted-by: Claude Sonnet 4.6
Commit: 4a3052bd23438b6d6bb9ef561f8b447224d8ea01
https://github.com/llvm/llvm-project/commit/4a3052bd23438b6d6bb9ef561f8b447224d8ea01
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Pointer.h
Log Message:
-----------
[clang][bytecode][NFC] Fix Pointer::operator<< for non-block pointers (#204156)
Some of those functions can only be called on block pointers.
Commit: 734d5690bc6e6425961d346c218292f4c6dcf011
https://github.com/llvm/llvm-project/commit/734d5690bc6e6425961d346c218292f4c6dcf011
Author: Lukas Sommer <lukas.sommer at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/RenameIndependentSubregs.cpp
A llvm/test/CodeGen/AMDGPU/rename-independent-subregs-unused-lanes.ll
M llvm/test/CodeGen/AMDGPU/rename-independent-subregs.mir
Log Message:
-----------
[Codegen] Avoid duplicate subranges for unused lanes (#204091)
Splitting registers in `RenameIndependentSubregs` requires inserting
`IMPLICIT_DEF` to ensure definition of the new register on all paths.
The existing logic for handling unused lanes would create duplicate
subranges if multiple predecessor blocks exist, causing the machine
verifier to fail.
This change ensures that only a single subrange is created for the
unused lanes which is then updated with additional segments in the
following iterations.
This fixes https://github.com/llvm/llvm-project/issues/197733.
---------
Signed-off-by: Lukas Sommer <lukas.sommer at amd.com>
Commit: 9112f8f8e396c7ebf719b62be3023034082ebf55
https://github.com/llvm/llvm-project/commit/9112f8f8e396c7ebf719b62be3023034082ebf55
Author: Berke Ates <berke at ates.ch>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/EmitC/IR/EmitC.td
M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
M mlir/lib/Dialect/EmitC/IR/EmitC.cpp
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
M mlir/test/Dialect/EmitC/invalid_ops.mlir
M mlir/test/Dialect/OpenMP/invalid.mlir
Log Message:
-----------
[MLIR] Adopt HasAncestor trait in omp.workshare.loop_wrapper and emitc.get_field (#197911)
Following #195447 which added the `HasAncestor` trait, replace the
ancestor-existence checks in two ops:
- `omp.workshare.loop_wrapper`
- `emitc.get_field`
Commit: 75b7809248cca443085c1c3fb572ae38add4c500
https://github.com/llvm/llvm-project/commit/75b7809248cca443085c1c3fb572ae38add4c500
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.h
Log Message:
-----------
[clang][bytecode][NFC] Consistently use `isBottomFrame()` (#204167)
Instead of checking for `getDepth() == 0`.
Commit: 8ac287ff07fc4545821b6085655cb3c711fdd659
https://github.com/llvm/llvm-project/commit/8ac287ff07fc4545821b6085655cb3c711fdd659
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-16 (Tue, 16 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rvp-narrowing-shift-trunc.ll
M llvm/test/CodeGen/RISCV/rvp-simd-32.ll
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
Log Message:
-----------
[RISCV] Add pnsrl(i)/pnsra(i) patterns. (#204198)
Commit: 3746f3e4d6129124e80ec93f22cab174e03ba2f7
https://github.com/llvm/llvm-project/commit/3746f3e4d6129124e80ec93f22cab174e03ba2f7
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/ADT/SCCIterator.h
M llvm/include/llvm/CGData/OutlinedHashTree.h
M llvm/include/llvm/CGData/StableFunctionMap.h
M llvm/include/llvm/CodeGen/GlobalISel/LegacyLegalizerInfo.h
M llvm/include/llvm/DebugInfo/LogicalView/Readers/LVDWARFReader.h
M llvm/include/llvm/DebugInfo/PDB/PDBExtras.h
M llvm/include/llvm/ExecutionEngine/Orc/ELFNixPlatform.h
M llvm/include/llvm/MC/MCPseudoProbe.h
M llvm/include/llvm/ObjectYAML/DWARFYAML.h
M llvm/include/llvm/ProfileData/MemProf.h
M llvm/include/llvm/ProfileData/SampleProf.h
M llvm/include/llvm/ProfileData/SampleProfReader.h
M llvm/include/llvm/Support/ELFAttrParserCompact.h
M llvm/include/llvm/Transforms/IPO/GlobalDCE.h
M llvm/include/llvm/Transforms/IPO/SampleContextTracker.h
M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
M llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h
M llvm/include/llvm/Transforms/Instrumentation/MemProfUse.h
M llvm/include/llvm/XRay/InstrumentationMap.h
M llvm/lib/CGData/OutlinedHashTree.cpp
M llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
M llvm/lib/ProfileData/SampleProf.cpp
M llvm/lib/Target/BPF/BTFDebug.h
M llvm/lib/Transforms/IPO/GlobalDCE.cpp
M llvm/lib/Transforms/IPO/SampleProfile.cpp
M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
M llvm/tools/llvm-xray/func-id-helper.h
Log Message:
-----------
[llvm] Replace unordered_{map,set} with Dense{Map,Set} (#202222)
std::unordered_map is slow. The remaining uses are pointer stability,
key spanning the full value range, or huge pair<key,value>. After
PR #201281 DenseMap no longer reserves sentinel keys, so more of these
maps can switch.
Aided by Claude Opus 4.8
Commit: caab00248488f14d91ec31fd7ccb8f331d485657
https://github.com/llvm/llvm-project/commit/caab00248488f14d91ec31fd7ccb8f331d485657
Author: Adrian Kuegel <akuegel at google.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M utils/bazel/configure.bzl
Log Message:
-----------
[bazel] Guard usage of repo_metadata (#204302)
Older Bazel versions don't have this attribute yet.
Commit: ca07de42aa11307d2f54036d7097e3caad5961ff
https://github.com/llvm/llvm-project/commit/ca07de42aa11307d2f54036d7097e3caad5961ff
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/IR/Value.cpp
A llvm/test/Transforms/InferAlignment/bitcast.ll
Log Message:
-----------
[IR] Only follow ptr/ptr-vector sources in stripAndAccumulateConstantOffsets bitcasts (#203356)
stripAndAccumulateConstantOffsets used to walk through every bitcast
operand. If the operand was not a pointer (e.g. a same-sized byte type
such as b64 reinterpreted as ptr), the walk could continue and violate
the invariant that the stripped value remains ptr or ptr-vector.
Align with stripPointerCastsAndOffsets: only look through bitcasts whose
source type is a pointer or pointer vector; keep addrspacecast as its
own case.
This commit is needed in PR #177908, and fixes issue
https://github.com/llvm/llvm-project/issues/203695.
Assisted by Cursor
Commit: fcf197f9452154b1a0968f6cb0795a3371e31f1d
https://github.com/llvm/llvm-project/commit/fcf197f9452154b1a0968f6cb0795a3371e31f1d
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/utils/UnicodeData/UnicodeNameMappingGenerator.cpp
Log Message:
-----------
UnicodeNameMappingGenerator: Replace unordered_{map,set} with DenseMap/SmallPtrSet. NFC (#204303)
Commit: 2964323a936c79d05c024252eb688b9151f66d3c
https://github.com/llvm/llvm-project/commit/2964323a936c79d05c024252eb688b9151f66d3c
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
A llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
A llvm/lib/Target/AMDGPU/AMDGPUHWEvents.def
A llvm/lib/Target/AMDGPU/AMDGPUHWEvents.h
M llvm/lib/Target/AMDGPU/CMakeLists.txt
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[RFC][AMDGPU][InsertWaitCnt] Move WaitEventType into separate HWEvent header (#202886)
I propose to move `WaitEventType` into its own header to start a new
component of the back-end targeted at analyzing and treating hardware
events
fired by instructions. Right now this just moves code around and renames
things
(NFCI) but over time, we should generalize the events so they can be
reused
by other passes instead of being hyper-specialized for InsertWaitCnt.
Commit: 2cd778c2064c98980215f4a93c3036b7fe3722a3
https://github.com/llvm/llvm-project/commit/2cd778c2064c98980215f4a93c3036b7fe3722a3
Author: Qixi <tjx2361869673 at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/ParsedAST.cpp
M clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp
Log Message:
-----------
[clangd] Replay macro definitions from preamble for clang-tidy checks (#202495)
Clang-tidy checkers observe preprocessor events via PPCallbacks. When
using a preamble, macro definitions in the preamble region of the main
file are not replayed during the main-file build, causing checkers like
bugprone-reserved-identifier to miss them.
This patch extends ReplayPreamble::replay() to also replay MacroDefined
events for macros defined directly in the preamble region of the open
file, similar to how InclusionDirective events are already replayed.
Fixes: https://github.com/clangd/clangd/issues/2501
Commit: d74caa40ec86ceb2c3e6e18d45adeab8fb40b4a4
https://github.com/llvm/llvm-project/commit/d74caa40ec86ceb2c3e6e18d45adeab8fb40b4a4
Author: lijinpei-amd <jinpli at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
M mlir/test/Conversion/ConvertToSPIRV/vector-unroll.mlir
Log Message:
-----------
[mlir][spirv] Fix crash on 0-D vectors in vector unrolling (#203291)
`getTargetShape` and `getNativeVectorShape` called `getShape().back()`
without checking for rank-0 vectors, whose shape is empty. This crashed
when the SPIR-V vector unrolling pass processed a function returning a
0-D vector (e.g. `vector<f32>`) or a 0-D elementwise op.
0-D vectors have no dimension to unroll along and are not SPIR-V vector
types, so bail out and leave them unchanged in both paths.
Fixes https://github.com/llvm/llvm-project/issues/203220
Commit: 09a51b2818e2ff8d0a6f43c3c7468df71a5d2098
https://github.com/llvm/llvm-project/commit/09a51b2818e2ff8d0a6f43c3c7468df71a5d2098
Author: Weronika Lewandowska <weronika.lewandowska at intel.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M offload/CMakeLists.txt
M offload/include/omptarget.h
M offload/liboffload/CMakeLists.txt
M offload/liboffload/src/OffloadImpl.cpp
M offload/plugins-nextgen/common/include/ErrorReporting.h
M offload/plugins-nextgen/common/include/GlobalHandler.h
M offload/plugins-nextgen/common/src/GlobalHandler.cpp
M offload/plugins-nextgen/common/src/RecordReplay.cpp
M offload/plugins-nextgen/common/src/Utils/ELF.cpp
M offload/plugins-nextgen/level_zero/include/L0Device.h
M offload/tools/CMakeLists.txt
Log Message:
-----------
[offload] Add Windows offload support (#187006)
Commit: c872ac1d0d07ca7df5cc09f4218e175029c4c001
https://github.com/llvm/llvm-project/commit/c872ac1d0d07ca7df5cc09f4218e175029c4c001
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
M llvm/lib/Target/AMDGPU/AMDGPUHWEvents.h
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU][InsertWaitCnts] Move HWEvent analysis code (#202887)
Building up on the previous RFC, if it is accepted:
Move the code that maps a MachineInstr to HWEventSet to a separate file.
This should be NFC.
Commit: 38f121e88adb4b450d116c2786086ccd160cef81
https://github.com/llvm/llvm-project/commit/38f121e88adb4b450d116c2786086ccd160cef81
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
Log Message:
-----------
[lldb][test] Fix duplicate error messages in expect_expr/var_path (#202310)
The error message field for expect_* methods always prints the value
object, so there is no need to specify a custom error message that then
just prints the object too.
This fixes the duplicate value object printout on test failures.
Commit: d9dcc11478f5d255db26b8080a86d8eca9fab16e
https://github.com/llvm/llvm-project/commit/d9dcc11478f5d255db26b8080a86d8eca9fab16e
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M flang/include/flang/Lower/CustomIntrinsicCall.h
M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
M flang/include/flang/Optimizer/Builder/MIFCommon.h
M flang/lib/Lower/ConvertCall.cpp
M flang/lib/Lower/CustomIntrinsicCall.cpp
M flang/lib/Optimizer/Builder/CMakeLists.txt
M flang/lib/Optimizer/Builder/CUDAIntrinsicCall.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
M flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp
M flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt
M flang/lib/Optimizer/Transforms/MIFOpConversion.cpp
Log Message:
-----------
[flang][NFC] remove libFortranEvaluate from Optimizer libraries (#204222)
Replace usages of `AbstractConverter` inside IntrinsicCall.cpp by a
structure that propagates the required option to avoid bringing
libFortranEvaluate as a dependency of libFortranOptimizer while the
Optimizer is not using evalute::Expr or other front-end data structure
at all.
Also remove headers whose include have crept-in and that were never
removed while not required.
Commit: 7e69b169965d78dbd5c2343ce4aa89eeb9fda131
https://github.com/llvm/llvm-project/commit/7e69b169965d78dbd5c2343ce4aa89eeb9fda131
Author: robertvirany <robertvirany at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstCombine/smax-icmp.ll
M llvm/test/Transforms/InstCombine/smin-icmp.ll
M llvm/test/Transforms/InstCombine/umax-icmp.ll
M llvm/test/Transforms/InstCombine/umin-icmp.ll
Log Message:
-----------
[InstCombine] Fold X == Identity ? Y : min/max(X, Y) (#202748)
Fixes #202576
Fold:
```llvm
select (X == -1), Y, umin(X, Y) -> umin(X, Y)
select (X == 0), Y, umax(X, Y) -> umax(X, Y)
select (X == SignedMax), Y, smin(X, Y) -> smin(X, Y)
select (X == SignedMax), Y, smax(Y, X) -> smax(X, Y)
```
Snd the inverted/commuted forms.
AI note: I used AI to help me read through the codebase and write the
tests.
Commit: de84e7ccc602fe2ef8b886a9b095c80d110f61a0
https://github.com/llvm/llvm-project/commit/de84e7ccc602fe2ef8b886a9b095c80d110f61a0
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/Mips/MipsMSAInstrInfo.td
M llvm/lib/Target/Mips/MipsRegisterInfo.td
M llvm/lib/Target/Mips/MipsSEISelLowering.cpp
M llvm/lib/Target/Mips/MipsSEISelLowering.h
M llvm/lib/Target/Mips/MipsScheduleGeneric.td
M llvm/lib/Target/Mips/MipsScheduleI6400.td
M llvm/lib/Target/Mips/MipsScheduleP5600.td
M llvm/test/CodeGen/Mips/msa/f16-llvm-ir.ll
Log Message:
-----------
[MIPS] soft-promote `f16` also when using `+msa` (#204158)
Fixes https://github.com/llvm/llvm-project/issues/202808
Re-lands https://github.com/llvm/llvm-project/pull/203065
Make use of the default soft-promote mechanism for f16, rather than an
ad-hoc approach making f16 storage-only.
In theory you could leave it at that, but I added custom implementations
to make use of the instructions for `FP16_TO_FP` and `FP_TO_FP16`, and
manually apply the "fptoui to fptosi trick" which generates shorter
code.
I've now tested that, in combination with
https://github.com/llvm/llvm-project/pull/203390, this PR is able to
build and run the rust `std` test suite, which exercises both `f16` and
vectors a bunch. The tests all pass under `qemu` as well.
The last commit fixes an integer overflow bug that triggered UBSan and
led to an earlier revert of these changes.
Commit: 045ec52e630d7246e3f94d3e93e4fd8638863098
https://github.com/llvm/llvm-project/commit/045ec52e630d7246e3f94d3e93e4fd8638863098
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/configuration.py
M lldb/packages/Python/lldbsuite/test/dotest.py
M lldb/packages/Python/lldbsuite/test/dotest_args.py
M lldb/test/API/lit.cfg.py
Log Message:
-----------
[lldb][test] Only calculate LLDB python path once (#201327)
We spend about 70ms each dotest invocation recalculating the path where
the LLDB module is. This patch changes this so that dotest calculates
this path once and passes it to every dotest invocation.
As a fallback, we still support inferring the location from LLDB as
before, but I would propose we drop this support in the future.
Commit: b59f9651cecfe0f3a33035846b991a9968ee26c5
https://github.com/llvm/llvm-project/commit/b59f9651cecfe0f3a33035846b991a9968ee26c5
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/test/API/lang/objc/hidden-ivars/TestHiddenIvars.py
Log Message:
-----------
[lldb][test] Cleanup and modernize TestHiddenIvars.py (#202023)
This is simple rewrite of the test. The patch improves three things:
* It replaces old expect tests with the new expect_* variants that no
longer rely on substring matching.
* It unifies the strip/non-stripped checks as we actually produce
identical SBValues in both cases (by fetching data from the Objective-C
runtime).
* It builds this test with a shared build directory. Our stripping logic
generates a new stripped binary in a subdirectory and doesn't touch the
shared build files. This also halves the test runtime to 6s.
Commit: 7d92d40dcf8e748a5185eb589fcfe6f30fca89a3
https://github.com/llvm/llvm-project/commit/7d92d40dcf8e748a5185eb589fcfe6f30fca89a3
Author: Luke Hutton <luke.hutton at arm.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/include/mlir/Dialect/Tosa/Utils/ConversionUtils.h
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
M mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
M mlir/lib/Dialect/Tosa/Utils/ConversionUtils.cpp
M mlir/test/Dialect/Tosa/availability.mlir
M mlir/test/Dialect/Tosa/canonicalize.mlir
M mlir/test/Dialect/Tosa/invalid_extension.mlir
M mlir/test/Dialect/Tosa/level_check.mlir
M mlir/test/Dialect/Tosa/ops.mlir
M mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p0-invalid.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p1-pro-fp-valid.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p1-valid.mlir
M mlir/test/Dialect/Tosa/verifier.mlir
Log Message:
-----------
[mlir][tosa] Add row_gather operator (#202895)
Adds support for the row_gather operator defined by the TOSA
specification, see https://github.com/arm/tosa-specification/pull/60.
This includes:
- Operator definition
- Verification logic for the operator
- Output shape inference for the operator
- Validation checks to ensure compliance with the TOSA specification
including profile compliance and level checks.
- Canonicalization to replace row_gather with gather when row_count is
statically known to be 1.
It does not yet cover support for MXFP types. This will be added once
block scaled types are supported.
Commit: 8c3d2e9454636dd5284b572f4727b15874fc00b0
https://github.com/llvm/llvm-project/commit/8c3d2e9454636dd5284b572f4727b15874fc00b0
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/docs/Passes.rst
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h
M llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
M llvm/lib/Transforms/IPO/IPO.cpp
Log Message:
-----------
[Passes] Remove deadarghaX0r pass (#204310)
This was a pass internally used by bugpoint. Bugpoint has been removed,
so remove the pass as well.
Commit: 6f73bc282f9c446673b2a5eb439bf2005b54d076
https://github.com/llvm/llvm-project/commit/6f73bc282f9c446673b2a5eb439bf2005b54d076
Author: David Spickett <david.spickett at arm.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Support/Parallel.cpp
Log Message:
-----------
[llvm] Fix unused function warning in Parallel (#204114)
When llvm is built without threading support:
<...>/llvm-project/llvm/lib/Support/Parallel.cpp:230:13: warning: unused
function 'isNested' [-Wunused-function]
230 | static bool isNested() {
| ^~~~~~~~
The function is only used once, so I've put the code into the caller,
which is itself guarded with `#if LLVM_ENABLE_THREADS`.
Function added in 8daaa26efdda3802f73367d844b267bda3f84cbe / #189293.
Commit: 55ea1823580283c0a5b03477d85070309dc1a2d1
https://github.com/llvm/llvm-project/commit/55ea1823580283c0a5b03477d85070309dc1a2d1
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Transforms/IPO/FunctionSpecialization.cpp
A llvm/test/Transforms/FunctionSpecialization/interposable.ll
Log Message:
-----------
[FuncSpec] Do not specialize interposable functions (#204314)
We cannot specialize interposable functions, because the definition we
see may not be prevailing one. The prevailing definition can have
arbitrary different behavior.
We *can* still specialize inexact definitions like linkonce_odr, similar
to inlining.
Commit: b9f8eee4a871d7cb47fb2679959b3fe799a58a17
https://github.com/llvm/llvm-project/commit/b9f8eee4a871d7cb47fb2679959b3fe799a58a17
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/BinaryFormat/DXContainer.h
Log Message:
-----------
[DirectX][ObjectYAML][NFC] Remove unused function (#204019)
A small follow-up for #202761.
`updateSize()` function added there is a rebase artifact. It is never
actually used. This change removes it.
Commit: 0dda20ca15569a0fd1078db9e6b7560c43f69638
https://github.com/llvm/llvm-project/commit/0dda20ca15569a0fd1078db9e6b7560c43f69638
Author: David Sherwood <david.sherwood at arm.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/replicating-load-store-costs-apple.ll
A llvm/test/Transforms/LoopVectorize/AArch64/scalar-steps-cost.ll
M llvm/test/Transforms/LoopVectorize/ARM/mve-reg-pressure-spills.ll
M llvm/test/Transforms/LoopVectorize/WebAssembly/memory-interleave.ll
M llvm/test/Transforms/LoopVectorize/X86/cost-model.ll
M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/nondetermisitic-widening-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/replicating-load-store-costs.ll
M llvm/test/Transforms/LoopVectorize/X86/vector_ptr_load_store.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/hoist-load-from-vector-loop.ll
Log Message:
-----------
[LV] Add initial cost model for VPScalarIVSteps (#203347)
This PR currently only adds a cost model for integer types in
non-replicating regions in order to limit the scope of impact.
We can also support replicating regions, but that requires
looking for a recipe with an underlying value in the same
region in order to get a BasicBlock to pass in to the
getPredBlockCostDivisor function. This can be done in a future
PR.
Commit: 4995c6e59e7cc263f2fd001e4e417f0dab6eade1
https://github.com/llvm/llvm-project/commit/4995c6e59e7cc263f2fd001e4e417f0dab6eade1
Author: Utkarsh Saxena <usx at google.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/include/clang/Basic/LangOptions.def
Log Message:
-----------
[LifetimeSafety] Mark lifetime safety LangOptions as `Benign` (#204316)
Without this, we cannot load modules built without lifetime safety.
Analysis options are in general benign and does not effect AST
construction.
See doc:
```cpp
/// For ASTs produced with different option value, signifies their level of
/// compatibility.
enum class CompatibilityKind {
/// Does affect the construction of the AST in a way that does prevent
/// module interoperability.
NotCompatible,
/// Does affect the construction of the AST in a way that doesn't prevent
/// interoperability (that is, the value can be different between an
/// explicit module and the user of that module).
Compatible,
/// Does not affect the construction of the AST in any way (that is, the
/// value can be different between an implicit module and the user of that
/// module).
Benign,
};
```
Commit: ec7235ea9a4fe54871db06c296d94563ef28af9a
https://github.com/llvm/llvm-project/commit/ec7235ea9a4fe54871db06c296d94563ef28af9a
Author: lijinpei-amd <jinpli at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CGStmt.cpp
A clang/test/CodeGenCXX/noreturn-init-stmt.cpp
Log Message:
-----------
[clang][CodeGen] Fix crash on if/switch init-statement ending in noreturn (#201047)
EmitStmt may `ClearInsertionPoint()` to mark dead code, EmitDecl is not
prepared to handle it. Fix by `EnsureInsertPoint()` in transition from
EmitStmt to EmitDecl. If/Switch body may contain a label which makes
them not dead.
Fixes #115514.
Commit: 1bea22811762ed354f62a6efe4018ae18eca23fe
https://github.com/llvm/llvm-project/commit/1bea22811762ed354f62a6efe4018ae18eca23fe
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/ftruncate.cpp
M libc/src/unistd/linux/getentropy.cpp
M libc/src/unistd/linux/link.cpp
Log Message:
-----------
[libc][NFC] Migrate unistd entrypoints to syscall wrappers (#204176)
Migrated link, ftruncate, and getentropy entrypoints to use their
corresponding syscall wrappers instead of direct syscall_impl calls.
Updated CMake dependencies accordingly.
Assisted-by: Automated tooling, human reviewed.
Commit: 68c947fc7f7182a4fae54533a10e392036efadc2
https://github.com/llvm/llvm-project/commit/68c947fc7f7182a4fae54533a10e392036efadc2
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUWaitcntUtils.cpp
M llvm/lib/Target/AMDGPU/AMDGPUWaitcntUtils.h
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
Log Message:
-----------
[NFC][AMDGPU][InsertWaitCnts] Move some simple functions into Utils (#202936)
Move really trivial functions into helpers to declutter InsertWaitCnt a
bit more.
I had to move HardwareLimits into a different header but it's only used
in InsertWaitCnt so it doesn't matter.
Commit: 21f3248310b6507e79081a2e0fc2b6067bed77bc
https://github.com/llvm/llvm-project/commit/21f3248310b6507e79081a2e0fc2b6067bed77bc
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
R llvm/test/CodeGen/AMDGPU/waitcnt-debug.mir
Log Message:
-----------
[RFC][AMDGPU] Remove DebugCounter-based WaitCnt debugging (#202937)
It's 8 years old, only used by a handful of tests, and has not been
updated
in a while except for maintenance as far as I can see.
I don't mind keeping it in if there are users of it, but right now it
looks like a dead feature. If we want some more elaborate waitcnt
debugging,
we should have a modern, generic system that works on any waitcnt, not
something specific to 3 GFX9 counters.
Commit: 1f9f4f874fc376647bf988c3ed9ceeb2f79d7db3
https://github.com/llvm/llvm-project/commit/1f9f4f874fc376647bf988c3ed9ceeb2f79d7db3
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/test/API/api/listeners/main.c
M lldb/test/API/commands/expression/ir-interpreter/main.c
M lldb/test/API/commands/expression/radar_9673664/main.c
M lldb/test/API/commands/expression/top-level/dummy.cpp
M lldb/test/API/commands/expression/weak_symbols/main.c
M lldb/test/API/functionalities/asan/main.c
M lldb/test/API/functionalities/memory-region/main.cpp
M lldb/test/API/functionalities/object-file/bin/hello.c
M lldb/test/API/functionalities/object-file/bin/hello.cpp
M lldb/test/API/functionalities/process_save_core_minidump/main.cpp
M lldb/test/API/functionalities/step-vrs-interrupt/main.cpp
M lldb/test/API/functionalities/thread/create_after_attach/main.cpp
M lldb/test/API/functionalities/tsan/thread_leak/main.c
M lldb/test/API/lang/c/const_variables/TestConstVariables.py
M lldb/test/API/lang/c/const_variables/main.c
M lldb/test/API/macosx/profile_vrs_detach/main.c
M lldb/test/API/python_api/breakpoint/main.c
M lldb/test/API/python_api/process/address-masks/main.c
M lldb/test/API/python_api/unified_section_list/main.cpp
M lldb/test/API/tools/lldb-dap/cancel/main.c
M lldb/test/API/tools/lldb-dap/eventStatistic/main.cpp
M lldb/test/API/tools/lldb-dap/locations/main.cpp
M lldb/test/API/tools/lldb-dap/restart/main.c
M lldb/test/API/tools/lldb-dap/send-event/main.c
M lldb/test/API/tools/lldb-dap/stackTrace/subtleFrames/main.cpp
M lldb/test/API/tools/lldb-dap/startDebugging/main.c
M lldb/test/API/tools/lldb-dap/terminated-event/main.cpp
M lldb/test/API/tools/lldb-dap/unknown/main.c
Log Message:
-----------
[lldb] Remove several system header includes from tests (#204072)
System includes slow down test compilation and create unnecessary
dependencies on system header code.
This patch removes system headers from tests that do not test their
functionality. For the most part, this just removes the dummy 'printf'
we had in many tests.
Commit: f8fea595913a8d06034cf87d3aa691c0d2a80be3
https://github.com/llvm/llvm-project/commit/f8fea595913a8d06034cf87d3aa691c0d2a80be3
Author: Wenju He <wenju.he at intel.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/Basic/LangOptions.cpp
Log Message:
-----------
[Clang][NFC] Change if-else to switch for OpenCL/HLSL version mapping (#204288)
Address https://github.com/llvm/llvm-project/pull/204043#discussion_r3419702862
Commit: d5918cec5dfb81921c081134d7f516f2adb1ae0f
https://github.com/llvm/llvm-project/commit/d5918cec5dfb81921c081134d7f516f2adb1ae0f
Author: jeanPerier <jperier at nvidia.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIROps.h
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/lib/Optimizer/Dialect/FIROps.cpp
M flang/test/Fir/mem2reg.mlir
Log Message:
-----------
Revert "[flang][mem2reg] promote memory slots through declares" (#204332)
Reverts llvm/llvm-project#196975
This patch is causing regressions on some of our downstream testing. I
am not sure the logic here is directly to blame, but I'd rather revert
and investigate for now.
Commit: f63d8d67a3ff11d06607f2f0cfedfd88d877e9de
https://github.com/llvm/llvm-project/commit/f63d8d67a3ff11d06607f2f0cfedfd88d877e9de
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/prlimit.h
M libc/src/sys/resource/linux/CMakeLists.txt
M libc/src/sys/resource/linux/getrlimit.cpp
M libc/src/sys/resource/linux/setrlimit.cpp
Log Message:
-----------
[libc][NFC] wrap prlimit64 and refactor getrlimit/setrlimit (#204306)
Assisted-by: Automated tooling, human reviewed.
Commit: b160d1d6e14c74a18b4a3043a210872cd27b6842
https://github.com/llvm/llvm-project/commit/b160d1d6e14c74a18b4a3043a210872cd27b6842
Author: paperchalice <liujunchang97 at outlook.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/CodeGen/MachineRegionInfo.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/lib/CodeGen/MachineRegionInfo.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/test/CodeGen/X86/machine-region-info.mir
Log Message:
-----------
[CodeGen][NewPM] Port machine-region-info to new pass manager (#203848)
- Make `MachineRegionInfo` movable, like `RegionInfo`.
- Add printer pass.
Commit: 12b775409b1a0c238c3c1c5c0c270d0af23a1852
https://github.com/llvm/llvm-project/commit/12b775409b1a0c238c3c1c5c0c270d0af23a1852
Author: Max Graey <maxgraey at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSAOps.td
M mlir/include/mlir/Target/Wasm/WasmBinaryEncoding.h
M mlir/lib/Target/Wasm/TranslateFromWasm.cpp
A mlir/test/Target/Wasm/inputs/nearest.yaml.wasm
A mlir/test/Target/Wasm/inputs/trunc_si.yaml.wasm
A mlir/test/Target/Wasm/inputs/trunc_ui.yaml.wasm
A mlir/test/Target/Wasm/nearest.mlir
A mlir/test/Target/Wasm/trunc_si.mlir
A mlir/test/Target/Wasm/trunc_ui.mlir
Log Message:
-----------
[MLIR][WasmSSA] Add f32/f64.nearest and trapped float to int trunc operations (#193873)
- `f32.nearest` (wasmssa.nearest)
- `f64.nearest` (wasmssa.nearest)
- `i32.trunc_f32_s` (wasmssa.trunc_si)
- `i32.trunc_f64_s` (wasmssa.trunc_si)
- `i64.trunc_f32_s` (wasmssa.trunc_si)
- `i64.trunc_f64_s` (wasmssa.trunc_si)
- `i32.trunc_f32_u` (wasmssa.trunc_ui)
- `i32.trunc_f64_u` (wasmssa.trunc_ui)
- `i64.trunc_f32_u` (wasmssa.trunc_ui)
- `i64.trunc_f64_u` (wasmssa.trunc_ui)
Commit: d7e30d2170ef03d503b69a5bef0734f6a585d5e3
https://github.com/llvm/llvm-project/commit/d7e30d2170ef03d503b69a5bef0734f6a585d5e3
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
M clang/lib/CodeGen/TargetBuiltins/SPIR.cpp
M llvm/include/llvm/IR/IRBuilder.h
M llvm/lib/CodeGen/InlineAsmPrepare.cpp
M llvm/lib/CodeGen/SafeStack.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64StackTagging.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAsanInstrumentation.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/lib/Target/AMDGPU/AMDGPUImageIntrinsicOptimizer.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
M llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
M llvm/lib/Target/DirectX/DXILOpLowering.cpp
M llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInterleavedAccess.cpp
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.cpp
M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
M llvm/lib/Target/SystemZ/SystemZTDC.cpp
M llvm/lib/Target/X86/X86LowerAMXType.cpp
M llvm/lib/Transforms/IPO/FatLTOCleanup.cpp
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/unittests/IR/IRBuilderTest.cpp
M llvm/unittests/IR/IntrinsicsTest.cpp
M llvm/unittests/Transforms/Utils/LocalTest.cpp
M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
Log Message:
-----------
[IRBuilder] Refactor for intrinsics const-folding (NFC) (#202738)
In preparation to const-fold intrinsic calls, refactor the IRBuilder
API, generalizing it to return possibly constant-folded values.
Commit: 22e1561c6fa6ab4937936113eed0c5cb037a102b
https://github.com/llvm/llvm-project/commit/22e1561c6fa6ab4937936113eed0c5cb037a102b
Author: Davide Grohmann <davide.grohmann at arm.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M mlir/lib/Dialect/Tosa/Transforms/TosaConvertIntegerTypeToSignless.cpp
M mlir/test/Dialect/Tosa/tosa-convert-integer-type-to-signless.mlir
Log Message:
-----------
[mlir][tosa] Preserve raw const data in signless conversion (#204324)
Use DenseElementsAttr::getFromRawBuffer when rebuilding tosa.const
attributes in TosaConvertIntegerTypeToSignless. The previous
DenseElementsAttr::get(type, ArrayRef<char>) call interpreted raw bytes
as i8 elements, which asserted for integer constants wider than 8 bits.
Add regression coverage for ui16, ui32, and ui48 constants.
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Commit: 41aed9b83e64c8e929da31fe3eb33e48351960d6
https://github.com/llvm/llvm-project/commit/41aed9b83e64c8e929da31fe3eb33e48351960d6
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/test/Transforms/GVN/PRE/pre-load-through-select.ll
M llvm/test/Transforms/GVN/PRE/pre-loop-load-through-select.ll
M llvm/test/Transforms/GVN/debugloc-load-select.ll
M llvm/test/Transforms/GVN/load-select-addr-store-fwd.ll
M llvm/test/Transforms/GVN/load-through-select-dbg.ll
M llvm/test/Transforms/GVN/opaque-ptr.ll
M llvm/test/Transforms/GVN/pr69301.ll
Log Message:
-----------
[GVN][NFC] Use InsertPt in MaterializeAdjustedValue (#204335)
Commit: ddad3ca6c80c8e9963257f7c1b4561fd2459efce
https://github.com/llvm/llvm-project/commit/ddad3ca6c80c8e9963257f7c1b4561fd2459efce
Author: Jiahao Guo <eoonguo at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon/subtraction.c
A clang/test/CodeGen/AArch64/neon/widen.c
Log Message:
-----------
[CIR][AArch64] Lower NEON Widen && Widening subtraction intrinsics (#204088)
## summary
This is a part of : https://github.com/llvm/llvm-project/issues/185382
follow up of : https://github.com/llvm/llvm-project/pull/202857
Lower part of Widen and Widening subtraction intrinsics
### why implement two sets of intrinsics in one PR?
Widening subtraction depends on the widen intrinsics during lowering, so
I implemented them in the same PR.
Commit: 564e83191cc5686429cefe69aff81c2aeb268f5a
https://github.com/llvm/llvm-project/commit/564e83191cc5686429cefe69aff81c2aeb268f5a
Author: Weibo He <NewSigma at 163.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Sema/Overload.h
M clang/lib/Sema/SemaOverload.cpp
A clang/test/SemaCUDA/pr200545.cu
Log Message:
-----------
[clang][Sema][CUDA] Restrict immediate template resolution to host-device functions (#200662)
Since overload resolution gives higher priority to `__host__` and
`__device__` attributes, HD functions may favor template candidates even
when a non‑template candidate would be a perfect match. This patch
resolves templates eagerly only for HD functions, not for all code
compiled with `-x cuda`, thus preventing valid host code from being
rejected.
Close #200545
Commit: a1c3370d58b9c0a3d5b75cadff6d1b9c2449bf58
https://github.com/llvm/llvm-project/commit/a1c3370d58b9c0a3d5b75cadff6d1b9c2449bf58
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/test/Transforms/GVN/PRE/pre-load-through-select.ll
M llvm/test/Transforms/GVN/PRE/pre-loop-load-through-select.ll
M llvm/test/Transforms/GVN/debugloc-load-select.ll
M llvm/test/Transforms/GVN/load-select-addr-store-fwd.ll
M llvm/test/Transforms/GVN/load-through-select-dbg.ll
M llvm/test/Transforms/GVN/opaque-ptr.ll
M llvm/test/Transforms/GVN/pr69301.ll
Log Message:
-----------
[GVN] Regenerate check lines (NFC) (#204341)
Test check lines have been regenerated while enabling MemorySSA as well.
Commit: 81c35c7a0f5a0de73481474e3e7bad0599779d1f
https://github.com/llvm/llvm-project/commit/81c35c7a0f5a0de73481474e3e7bad0599779d1f
Author: Harry Ramsey <harry.ramsey at arm.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/test/CodeGen/AArch64/sve2-sli-sri.ll
M llvm/test/CodeGen/AArch64/sve2-sra.ll
Log Message:
-----------
[AArch64][SVE] Enable known bits for predicated shifts (#200347)
Allow SelectionDAG to query target known-bits information for scalable
vector nodes, and known-bits cases for SVE predicated SHL, SRL and SRA
nodes.
This enables DAG combines to prove disjointness for ORs involving
scalable vector shifts, enabling USRA/SSRA instruction selection.
Commit: 2395e65f2f6f8a7bce2adeebd52bf2142a4c6853
https://github.com/llvm/llvm-project/commit/2395e65f2f6f8a7bce2adeebd52bf2142a4c6853
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-5.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-5.ll
Log Message:
-----------
[X86] Attempt to fold SHUF128(concat(x,y),concat(z,w),0x44) -> concat(x,z) (#204340)
Trying to yak shave the regressions on #201271 led me here - I really
want this to be done generically as a canonicalization inside
combineX86ShufflesRecursively, but hit some issues with the widening
code that is still causing trouble for #45319
Commit: 60ad6ed5dfd225db07f96eb7bbfbf2f8f2f3a8c4
https://github.com/llvm/llvm-project/commit/60ad6ed5dfd225db07f96eb7bbfbf2f8f2f3a8c4
Author: Diego Novillo <dnovillo at nvidia.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/CodeGenHLSL/preserve-interface-dce.hlsl
A clang/test/CodeGenHLSL/preserve-interface.hlsl
A clang/test/Driver/dxc_fspv_preserve_interface.hlsl
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
A llvm/test/CodeGen/SPIRV/preserve-interface-dce.ll
A llvm/test/CodeGen/SPIRV/preserve-interface.ll
Log Message:
-----------
Reapply "[clang][SPIR-V] Implement -fspv-preserve-interface (#196404)" (#204249)
This reverts commit 6746898d2bfc086947d86715e065f8dbf74e9690.
[clang][SPIR-V] Re-land -fspv-preserve-interface (#196404)
This had been reverted in #202558 due to a missing symbol
(llvm::removeFromUsedLists). That symbol is now available in main.
@jmmartinez @jplehr could you please review?
I did not need to modify the original PR #196404 . As I described in
https://github.com/llvm/llvm-project/pull/196404#issuecomment-4661219367,
the build failure on `main` was not due to it.
Tested locally. Will watch the bots once the PR is created.
Commit: 8f7b80b178a69b717838565723d34e26fda9fd63
https://github.com/llvm/llvm-project/commit/8f7b80b178a69b717838565723d34e26fda9fd63
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Analysis/Loads.cpp
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/test/Transforms/LoopVectorize/dereferenceable-info-from-assumption-variable-size.ll
Log Message:
-----------
[Loads][LAA] Properly handle multiple deref assumptions (#204083)
The current code uses a `DerefRK = std::max(DerefRK, RK)` pattern, which
mostly "works" by accident. The maximum here is based on RK.ArgValue,
which will be 0 on initialization and then (incorrectly) set to 1 for
variable dereferenceable assumptions, or N for constant ones. So if we
have a single variable dereferenceable assumption, this ends up working.
If we have multiple, or there are also constant assumptions, or we fix
the incorrect ArgValue initialization, this breaks down.
Fix this by individually inspecting the RK values. Do the checks for
each one until we have both align and dereferenceable proven. For the
LAA case, add all the applicable dereferenceable assumptions to the umax
expression.
Commit: 894c21432024c05583aafee9add41cb4978a6f7b
https://github.com/llvm/llvm-project/commit/894c21432024c05583aafee9add41cb4978a6f7b
Author: Aleksandar Spasojevic <aleksandar.spasojevic at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
M llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.wave.shuffle.ll
A llvm/test/Transforms/InstCombine/AMDGPU/wave-shuffle-patterns-wave64.ll
M llvm/test/Transforms/InstCombine/AMDGPU/wave-shuffle-patterns.ll
Log Message:
-----------
[AMDGPU][InstCombine] Fold identity wave shuffle to its source (#204121)
The constant-shuffle matcher emitted a self-targeting update_dpp
(quad_perm 0xe4) for an identity shuffle instead of eliminating it.
Return the source value when every lane reads itself so the intrinsic
folds away.
Add a separate wave64 test file that drives the matcher with the full
wave64 thread ID (mbcnt.hi(mbcnt.lo)), covering quad_perm and other DPP
forms plus identity folding.
Commit: 041262ddff11fab6b84e3542596d0d8a5b593bd2
https://github.com/llvm/llvm-project/commit/041262ddff11fab6b84e3542596d0d8a5b593bd2
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/CodeGen/ISDOpcodes.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
A llvm/test/CodeGen/AMDGPU/float-to-arbitrary-fp.ll
A llvm/test/CodeGen/NVPTX/float-to-arbitrary-fp.ll
A llvm/test/CodeGen/X86/float-to-arbitrary-fp-error.ll
A llvm/test/CodeGen/X86/float-to-arbitrary-fp.ll
Log Message:
-----------
[SelectionDAG] Add expansion for llvm.convert.to.arbitrary.fp (#193595)
The expansion converts a native IEEE float to an arbitrary-precision FP
format, returning the result as an integer, following this algorithm:
1. Bitcast the source float to an integer and extract sign, exponent,
and mantissa bit fields via masks and shifts.
2. Classify the input (zero/denormal/normal/Inf/NaN).
3. Normalize the source via FFREXP.
4. Normal path: adjust the exponent bias from source to destination
format and truncate the mantissa with rounding (supports
NearestTiesToEven, TowardZero, TowardPositive, TowardNegative,
NearestTiesToAway).
5. Denormal destination path: when the biased destination exponent is <=
0, shift the mantissa right to produce a denormalized result with
rounding.
6. Handle mantissa overflow from rounding and exponent overflow. Produce
Inf or saturate to max finite, depending on format and saturation flag.
7. Build special-value results (canonical qNaN, signed Inf, signed zero)
adapted to the destination format's non-finite behavior (IEEE754,
NanOnly, FiniteOnly).
8. Final selection in priority order: NaN > Inf > Zero > Overflow >
Normal/Denorm.
Currently only conversions to OCP floats are covered, in LLVM terms
these are: Float8E5M2, Float8E4M3FN, Float6E3M2FN, Float6E2M3FN,
Float4E2M1FN.
OCP spec:
https://www.opencompute.org/documents/ocp-microscaling-formats-mx-v1-0-spec-final-pdf
E2E testing on X86 done with an assistance of Claude Code Opus 4.6.
Commit: 9befd0bfe6ee7acd21eec581037bea91cf95b9ba
https://github.com/llvm/llvm-project/commit/9befd0bfe6ee7acd21eec581037bea91cf95b9ba
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/IR/Verifier.cpp
M llvm/test/Verifier/masked-divrem.ll
M llvm/test/Verifier/reduction-intrinsics.ll
M llvm/unittests/Analysis/ValueTrackingTest.cpp
Log Message:
-----------
[LLVM][Intrinsics] Add scalar-only and vector-only overload types (#204138)
Add integer/fp overload types that allow only scalar or only vector
types, and adopt them in some existing intrinsics.
Fixed ValueTracking unit test to not exercise invalid vp reduce
intrinsics as they now fail to parse (as opposed to fail to validate).
See
https://discourse.llvm.org/t/rfc-minor-change-in-overloaded-types-for-intrinsics/90880
Commit: 64b11dbaf97b8b094b2836ae92db30b732f4a069
https://github.com/llvm/llvm-project/commit/64b11dbaf97b8b094b2836ae92db30b732f4a069
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
A libcxx/docs/Status/Cxx26.rst
A libcxx/docs/Status/Cxx26Issues.csv
A libcxx/docs/Status/Cxx26Papers.csv
A libcxx/docs/Status/Cxx29.rst
A libcxx/docs/Status/Cxx29Issues.csv
A libcxx/docs/Status/Cxx29Papers.csv
R libcxx/docs/Status/Cxx2c.rst
R libcxx/docs/Status/Cxx2cIssues.csv
R libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/docs/index.rst
M libcxx/utils/conformance
Log Message:
-----------
[libc++] Add WG21 issues and papers voted in Brno (#204191)
All papers were targeting C++29, so I created new CSV tracking files. A
few papers were forwarded by CWG in plenary but have library wording, so
they are included here. I believe at least some of them will be *nothing
to do*, but should still be included for completeness.
Minor drive-bys:
- rename Cxx2c to Cxx26
- synchronize RST notes from CSVs to Github issues
Assisted by Claude
Commit: c10d23a190ca64fe3d93c7e22989ff1d3f5f918a
https://github.com/llvm/llvm-project/commit/c10d23a190ca64fe3d93c7e22989ff1d3f5f918a
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py
M lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_extra_launch_commands.py
M lldb/tools/lldb-dap/DAP.cpp
M lldb/tools/lldb-dap/DAPSessionManager.cpp
M lldb/tools/lldb-dap/EventHelper.cpp
Log Message:
-----------
[lldb-dap] subscribe to target events at the broadcaster-manager level (#201866)
https://github.com/llvm/llvm-project/pull/200133 added
`wait_for_module_events()` assertions to `TestDAP_attachCommands.py` and
`TestDAP_launch_extra_launch_commands.py`. However, `SetTarget` is
called after the `Run*Commands`, so this fails on Windows, because it
loads modules early during the process startup. The module-load events
are not listened to.
This patch moves the event subscription to
`DAPSessionManager::GetEventThreadForDebugger` and uses
`StartListeningForEventClass` so any target created in this debugger
automatically gets the listener attached. This is the same pattern we
already use for `SBThread` events.
This is a follow up to https://github.com/llvm/llvm-project/pull/201796
which skipped the tests.
rdar://179923440
Commit: f87ac0815c08866bc9ec60fc31fe082cdb21bab0
https://github.com/llvm/llvm-project/commit/f87ac0815c08866bc9ec60fc31fe082cdb21bab0
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/docs/resources/lldbgdbremote.md
M lldb/include/lldb/Host/ProcessLaunchInfo.h
M lldb/source/Host/windows/PseudoConsole.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
Log Message:
-----------
[lldb][Windows] use pipes when no terminal dimensions are sent (#203562)
Plumb `eLaunchFlagUsePipes` from the lldb-dap client through the
gdb-remote protocol to lldb-server so the server's LaunchProcess can
choose between ConPTY and anonymous pipes for inferior stdio.
This is needed for LLDB DAP in `internalConsole` mode.
Fixes `TestDAP_launch_args.py`, `TestDAP_launch_basic.py`, and
`TestDAP_launch_shellExpandArguments_disabled.py` on Windows under
`LLDB_USE_LLDB_SERVER=1`.
rdar://178725958
Commit: 431c300137c9b6b1f481eb3347ec49e3c52a1596
https://github.com/llvm/llvm-project/commit/431c300137c9b6b1f481eb3347ec49e3c52a1596
Author: Simi Pallipurath <simi.pallipurath at arm.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M libc/src/string/memory_utils/arm/inline_memset.h
Log Message:
-----------
[ARM][Libc] Fix ARM big-endian low-end inline_memset byte fills (#198777)
Fix inline_memset_arm_low_end to use the splatted 32-bit fill value for
all byte stores. This ensures that all stores, including unaligned and
trailing byte fills, write the requested repeated byte value on
big-endian ARM.
The low-end ARM memset path already builds value32 as value 0x01010101U
for aligned word/block stores, but its byte-wise prefix and tail
handling still passed the raw 8-bit value * widened to uint32_t. Use
value32 for the byte-wise alignment prefix and final tail loop as well.
This makes the low-end path endian-safe and consistent with
inline_memset_arm_mid_end, fixing incorrect NUL/truncated output in
printf-family formatting and direct memset tests on big-endian ARM
no-unaligned-access targets.
Commit: 8c63db09597a34e526709dd05e58c89294e73b14
https://github.com/llvm/llvm-project/commit/8c63db09597a34e526709dd05e58c89294e73b14
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Analysis/AssumeBundleQueries.cpp
M llvm/test/Transforms/SimplifyCFG/speculate-derefable-load.ll
Log Message:
-----------
[AssumeBundleQueries] Use correct default value for dereferenceable (#203943)
Dereferenceable with a non-constant argument should be treated like
dereferenceable(0), not dereferenceable(1).
Commit: 2257f9221a4c398a1ba8d50aca3d2241dfb8acb7
https://github.com/llvm/llvm-project/commit/2257f9221a4c398a1ba8d50aca3d2241dfb8acb7
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/AArch64/vldn_shuffle.ll
M llvm/test/CodeGen/X86/haddsub-shuf.ll
M llvm/test/CodeGen/X86/pr81136.ll
M llvm/test/CodeGen/X86/sad.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-5.ll
M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-7.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-3.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-6.ll
M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
M llvm/test/CodeGen/X86/vector-replicaton-i1-mask.ll
Log Message:
-----------
[DAG] SimplifyDemandedVectorElts - always attempt SimplifyMultipleUseDemandedVectorElts call for ISD::EXTRACT_SUBVECTOR (#204351)
The ISD::EXTRACT_SUBVECTOR case was only calling
SimplifyMultipleUseDemandedVectorElts if its own DemandedElts mask
wasn't full - but that's irrelevant as the source vector DemandedElts
mask is the one that matters, and that should always be partial.
Noticed while working on regressions with #201271
Commit: b15335200c0350e0486f3dcd9885da0b627d1e50
https://github.com/llvm/llvm-project/commit/b15335200c0350e0486f3dcd9885da0b627d1e50
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M offload/test/lit.cfg
Log Message:
-----------
[OpenMP] Limit HSA core dumps for OpenMP test suite (#204352)
Summary:
These will print extra information, which makes it difficult to match on
the `libomptarget` output in exceptional cases like in the sanitizer
checks.
Commit: 4081d00456b62adfffbc6d489ee489f5a69ad891
https://github.com/llvm/llvm-project/commit/4081d00456b62adfffbc6d489ee489f5a69ad891
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M libc/include/llvm-libc-macros/linux/sys-resource-macros.h
M libc/src/unistd/linux/sysconf.cpp
M libc/test/src/unistd/sysconf_test.cpp
Log Message:
-----------
[libc] Clean up sysconf implementation and tests (#204130)
Refactored sysconf.cpp to use a switch-case block instead of an if-else
chain. Delegated the logic for existing options to helper functions
(get_page_size, get_nprocessors_conf, get_nprocessors_onln) in an
anonymous namespace to reduce cognitive complexity.
Updated file headers in sysconf.cpp and sysconf_test.cpp to the standard
three-section format.
Fix RLIM_INFINITY to work on both 32- and 64-bit systems.
Modernized suffix literals in sysconf_test.cpp.
Assisted-by: Automated tooling, human reviewed.
Commit: 3fee6e5ab45d1d352f995ae4eafa5106a0c5fc0d
https://github.com/llvm/llvm-project/commit/3fee6e5ab45d1d352f995ae4eafa5106a0c5fc0d
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
A flang/test/Driver/fakeflang.F
M flang/tools/CMakeLists.txt
A flang/tools/fakeflang/CMakeLists.txt
A flang/tools/fakeflang/ensure_flang_exists.cmake
A flang/tools/fakeflang/fakeflang.cpp
M flang/tools/flang-driver/CMakeLists.txt
M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
M llvm/runtimes/CMakeLists.txt
M runtimes/cmake/config-Fortran.cmake
Log Message:
-----------
[Flang] Add mock flang driver (#203481)
Add a mock driver to pass CMake's compiler introspection for
CMake_Fortran_COMPILER. It's purpose is to not having to build the full
flang compiler for the runtimes-configure phase in
bootstrapping-runtimes builds, but only when the Fortran compiler is
actually needed (e.g. flang-rt-mod, libomp-mod).
To detect LLVMFlang, CMake executes
```
${CMAKE_Fortran_COMPILER} -v -c -target=... CMakeFortranCompilerId.F
```
and expects a new file to appear in the working directory. This would
usually be an object file (e.g. ELF), but it doesn't matter for CMake as
it parses it for the preprocessor result of CMakeFortranCompilerId.F
which would appear as string literals in the binary file (CMake cannot
execute the file because it might be cross-compiling). Just passing it
through the preprocessor yields the same result. The most relevant
preprocessor definition is __flang__ which leads to
CMAKE_Fortran_COMPILER_ID="LLVMFlang".
This is more robust than #198205:
1. It does not rely on `CMake_Fortran_COMPILER_FORCED` which the CMake
manual documents as [Do not
use](https://cmake.org/cmake/help/latest/module/CMakeForceCompiler.html),
nor the undocumented `CMAKE_Fortran_COMPILER_ID_RUN`.
2. Incremental builds are more robust, there should be no risk of the
make program (ninja/make) mistakenly interpreting the empty/mock
executable as the up-to-date build artifact. Creating the shim/empty
flang executable is done in the outer bootstrapping built (rather than
in the inner runtimes build); having control over both rules that create
bin/flang allows this.
Also fixes the problem that check-flang-rt/check-openmp [do not trigger
(re-)building
flang](https://github.com/llvm/llvm-project/pull/198205#pullrequestreview-4412291879).
I think it should fix intermittend failures of the premerge-CI such as
https://github.com/llvm/llvm-project/actions/runs/27389890881/job/80947804137?pr=203400.
Design considerations:
* This relies on the way how CMake currently introspects the compiler.
However, I expect it to stay "look into the produced files" in the
foreseable future and will also not rely on runtime string concatenation
because debug builds may not ptimize them into a single string constant.
That is, there are reasons CMake can only rely on the preprocessor. The
Fortran standard does not mandate a preprocessor, yet CMake relies on
it.
* There is one situation where incremental builds to not completely
work: deleting bin/flang manually and then building runtimes-configure
will not recreate either bin/flang. No impact if runtimes-configure was
actually run before because in that case CMake has already cached the
CMAKE_Fortran_COMPILER inspection result.
* ninja does not allow two rules to create the same file (one to create
bin/flang only if it is missing and another that replaces it with the
full flang), one of the build artifacts must be undeclared. That could
be the full flang would only be created explicitly with a separate
`flang-eager` target (flang itself have the output
`bin/flang-<version>`, `bin/flang` is the symlink to it), but that would
require more intrusive changes.
Commit: 1acbbfb32765829cfc837aaa6e354af44e7fed61
https://github.com/llvm/llvm-project/commit/1acbbfb32765829cfc837aaa6e354af44e7fed61
Author: lntue <lntue at google.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Support/APFloat.cpp
Log Message:
-----------
[llvm] Fix APFloat::exp for 32-bit x86 when dealing with signaling NaNs. (#204274)
Currently APFloat::exp uses convertToFloat and convertToDouble which
might silence sNaN on 32-bit x86. Add `APFloat::isSignaling` check explicitly.
Commit: 18b27e71c4276b186ad834d1a792f8e8d92993dd
https://github.com/llvm/llvm-project/commit/18b27e71c4276b186ad834d1a792f8e8d92993dd
Author: Abhina Sree <Abhina.Sreeskantharajan at ibm.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/Driver/zos-err-options.c
Log Message:
-----------
[SystemZ][z/OS] Mark the -msoft-float option as unsupported on z/OS (#204209)
This patch unsupports the -msoft-float option for z/OS
Commit: c64ec3766d72ab552957827b5a96cc50ed6c7182
https://github.com/llvm/llvm-project/commit/c64ec3766d72ab552957827b5a96cc50ed6c7182
Author: macurtis-amd <macurtis at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h
M llvm/test/CodeGen/AMDGPU/buffer-store-dwordx4-vpk-mul-war-hazard-gfx942.mir
Log Message:
-----------
[AMDGPU] Fix checkVALUHazardsHelper distance accounting on branchy CFG (#203770)
#197267's `checkVALUHazardsHelper` rewrite walked predecessors with an
always-false predicate and accumulated wait-state distance in a single
counter shared across recursively visited blocks. On branchy control
flow that counter sums sibling-path distances, so window - distance goes
negative and the protective S_NOP is dropped.
This fix restores independent per-window `getWaitStatesSince` scans,
which return the minimum distance to a matching producer across
predecessor paths.
It also splits the pre-gfx940 and gfx940-family paths for readability
while preserving #197267's sgpr-soffset window rules.
Co-authored-by: Larry Meadows <Lawrence.Meadows at amd.com>
---------
Co-authored-by: Larry Meadows <Lawrence.Meadows at amd.com>
Commit: 97df9d1c253ac078a388267f7c8268f78b0af837
https://github.com/llvm/llvm-project/commit/97df9d1c253ac078a388267f7c8268f78b0af837
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 1bea228 (#204326)
This fixes 1bea22811762ed354f62a6efe4018ae18eca23fe.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: d08ca31f486034cf43a71de780be7d030e227873
https://github.com/llvm/llvm-project/commit/d08ca31f486034cf43a71de780be7d030e227873
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
M cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
M cross-project-tests/debuginfo-tests/dexter/dex/test_script/Script.py
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_finish.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_step_out.cpp
M cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/invalid-script-nodes.test
M cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/valid-parse.test
Log Message:
-----------
[Dexter] Add !then node (#202546)
In order to exercise more control over stepping in Dexter tests, this
patch adds the `!then` node which can be used to step out of a function
or exit the current test. Unlike expect nodes, !then nodes appear as
direct singular children of a state node:
!where {lines: 10}: !then finish
The two currently available commands are "step_out" and "finish".
step_out performs a debugger "step out" command, skipping over all
!wheres in the current frame and not stepping into any lower !wheres.
The finish command ends the debugger session immediately after finishing
the current step.
Commit: 3e04cdb3e977951679cfffdbb602cebc5925c4e7
https://github.com/llvm/llvm-project/commit/3e04cdb3e977951679cfffdbb602cebc5925c4e7
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M offload/ci/openmp-offload-amdgpu-libc-runtime.py
Log Message:
-----------
[AMDGPU] Add compiler-rt checks for the GPU runtime (#204358)
Summary:
This test suite includes UBSAN and builtin tests. These are invoked and
tested in the same way as the libc tests.
Commit: 05ad0b5bc504575fc5711c9090f6161597d9e790
https://github.com/llvm/llvm-project/commit/05ad0b5bc504575fc5711c9090f6161597d9e790
Author: Phoebe Wang <phoebe.wang at intel.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/test/Transforms/InstCombine/div.ll
Log Message:
-----------
[InstCombine] Sink IDiv to Select's arm when another is 1 (#203478)
And the divisor is neither 0 nor poison. For sdiv, limit divisor to
constant to avoid signed overflow concern.
Verified by alive tool: https://alive2.llvm.org/ce/z/ao3ffi
Assisted-by: Claude Sonnet 4.6
Commit: 24f4fbf89d7e1c6e7b00efde469adb0a8c529cd2
https://github.com/llvm/llvm-project/commit/24f4fbf89d7e1c6e7b00efde469adb0a8c529cd2
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M offload/ci/openmp-offload-amdgpu-libc-runtime.py
Log Message:
-----------
Revert "[AMDGPU] Add compiler-rt checks for the GPU runtime" (#204370)
Reverts llvm/llvm-project#204358
Commit: e12ce86b96bd008d9adf682005c00e133c7daf5b
https://github.com/llvm/llvm-project/commit/e12ce86b96bd008d9adf682005c00e133c7daf5b
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
Log Message:
-----------
[lldb][gdb-remote] Send argv[0] in remote target's separator style on launch (#204134)
When lldb launches an inferior on a remote stub via the A or vRun
packet, `ProcessGDBRemote::DoLaunch` currently sends the executable path
through `FileSpec::GetPath(denormalize=true)`. That uses the FileSpec's
`m_style`, which is the lldb client host's native style by default, not
the remote target's. So a Windows lldb client launching on a POSIX
remote sent the path with backslashes, so the remote tried to launch a
file that didn't exist.
The fix re-normalizes the `FileSpec` with the target's triple before
denormalizing, so path uses the remote's native separators. This is only
done when the target's OS is actually known. When it isn't, we keep the
historical host-native behavior, since tests and callers that only set
arch (e.g. QLaunchArch:x86_64 with no qHostInfo OS) have always relied
on the old default.
This fixes `TestNoLocalFile` on Windows with `LLDB_USE_LLDB_SERVER=1`.
rdar://179932755
Commit: 980e9487c6291a6c377a13b6a775205237f29bae
https://github.com/llvm/llvm-project/commit/980e9487c6291a6c377a13b6a775205237f29bae
Author: Matthew Devereau <matthew.devereau at arm.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
A llvm/test/Analysis/CostModel/AArch64/clmul-fixed.ll
A llvm/test/Analysis/CostModel/AArch64/clmul-scalable.ll
M llvm/test/Analysis/CostModel/AArch64/clmul.ll
M llvm/test/Transforms/LoopVectorize/AArch64/clmul.ll
Log Message:
-----------
[AArch64] Update Cost model for CLMUL (#202965)
CLMUL now has custom backend lowering and the efficiency of its lowering
is heavily dependant on available flags. This patch aligns the cost
model from the generic costs to the realistic costs.
Commit: 51f54bbae9cb7c3e216418d743c32f0120b8e78d
https://github.com/llvm/llvm-project/commit/51f54bbae9cb7c3e216418d743c32f0120b8e78d
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Options/Options.td
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/test/Driver/dxc_debug.hlsl
M llvm/lib/Target/DirectX/DXContainerGlobals.cpp
M llvm/test/CodeGen/DirectX/ContainerData/DebugShaderHash.ll
M llvm/test/CodeGen/DirectX/ContainerData/ShaderHash.ll
Log Message:
-----------
[Driver][DirectX] Add `-Zss` and `-Zsb` flags (#203960)
Add flags that control whether the shader hash is computed with or
without including debug info (from ILDB or DXIL part).
Commit: 14877f950a12e5681d06f2866f05bbfd8d65a0be
https://github.com/llvm/llvm-project/commit/14877f950a12e5681d06f2866f05bbfd8d65a0be
Author: Qiongsi Wu <qiongsiwu at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/AST/AttrImpl.cpp
M clang/lib/AST/Type.cpp
M clang/utils/TableGen/ClangAttrEmitter.cpp
Log Message:
-----------
[clang][AST] Attributed Type Deduplication Logic Cleanup (#204263)
https://github.com/llvm/llvm-project/pull/200961 implemented
`AttributedType` deduplication using the attributes' arguments. This PR
addresses the post-commit feedback.
The reason to have `llvm_unreachable("profile not implemented for this
type");` in the body of `profileAttrArg` for non-supported attribute
types is that none of the attributes that currently instantiate this
method are type attributes. The methods that are instantiated and not
supported are all for decl attributes. Leaving the body out will lead to
compilation failures, but the method's body should never be executed. If
an unsupported attribute type happens to execute this code path, the
failure should be loud and clear.
Commit: b07436f1ef4b3ea0a7981e97700fd44fc9fb3d8a
https://github.com/llvm/llvm-project/commit/b07436f1ef4b3ea0a7981e97700fd44fc9fb3d8a
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel][libc] Fix f63d8d67a3ff11d06607f2f0cfedfd88d877e9de (#204372)
Add target for prlimit + add to deps
Commit: 0926a1b59e042afbad1a895aa4e429b68ad6fec0
https://github.com/llvm/llvm-project/commit/0926a1b59e042afbad1a895aa4e429b68ad6fec0
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/include/llvm/IR/BUILD.gn
Log Message:
-----------
[gn] port dcda5e1719a5e (#204373)
Commit: 16f040867465f25bc48954f9725c1355caf6236f
https://github.com/llvm/llvm-project/commit/16f040867465f25bc48954f9725c1355caf6236f
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
Log Message:
-----------
[gn build] Port 2964323a936c (#204374)
Commit: d3983310a4a65683d63ab6ab5af1a9bfde737128
https://github.com/llvm/llvm-project/commit/d3983310a4a65683d63ab6ab5af1a9bfde737128
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/unittests/CMakeLists.txt
Log Message:
-----------
[lldb][unittests] Add LLDB_UNITTEST_STRIP_DEBUG_INFO to cut unittest link time (#203274)
Add an opt-in cache option (default OFF). When ON, every target declared
via `add_lldb_unittest` links without per-target debug info and
dead-strips:
- **MSVC**: `/DEBUG:NONE + /INCREMENTAL:NO + /OPT:REF + /OPT:ICF`
- **clang/gcc**: `-g0 + LINKER:--strip-debug` (or `LINKER:-S` on macOS).
This drastically speeds up linking the unittests executable when
building with debug info on Windows.
Commit: 0176227cffbada32744b28eff72482b742e1bae9
https://github.com/llvm/llvm-project/commit/0176227cffbada32744b28eff72482b742e1bae9
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/Transforms/Utils/Local.h
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll
Log Message:
-----------
[SimplifyCFG] Use context instruction in foldBranchToCommonDest() (#203516)
When determining whether instructions can be speculate, pass the
terminator of the predecessor as the context instruction.
Only do this for the single predecessor case, otherwise we'd have to
perform one query per predecessor. The multi-predecessor case is
excluded by the default cost model anyway.
Commit: d76dd878dd32cd20f0de61b89b085600f7adbcde
https://github.com/llvm/llvm-project/commit/d76dd878dd32cd20f0de61b89b085600f7adbcde
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/cmake/modules/AddLLDB.cmake
M lldb/source/Plugins/ScriptInterpreter/Lua/CMakeLists.txt
M lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt
Log Message:
-----------
[lldb] Fix LLDB_BUILD_FRAMEWORK with the dynamic script interpreters (#204265)
When using LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS (the default on Darwin
as of #204015), the PluginManager loads at runtime by scanning the
directory that holds liblldb. A framework build moves liblldb into
LLDB.framework, but the plugins were only emitted into lib/ and never
copied into the bundle, so they were never found.
Add lldb_add_scriptinterpreter_plugin_to_framework(), called from the
Python and Lua plugin CMakeLists, which copies the plugin next to the
framework binary and appends an rpath so it can resolve liblldb from
inside the bundle. The copy uses the plugin's unversioned name because
PluginManager derives the initializer symbol from it (a versioned copy
would load but never register). Non-framework builds are unaffected.
Commit: 5fcb285e3c85eef40398b9a28d5a418b1a048e40
https://github.com/llvm/llvm-project/commit/5fcb285e3c85eef40398b9a28d5a418b1a048e40
Author: Sang Ik Lee <sang.ik.lee at intel.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
M mlir/test/Conversion/XeGPUToXeVM/loadstore_matrix.mlir
Log Message:
-----------
[MLIR][XeGPU] Fix load_matrix lowering for non-LLVM element types (#203629)
LoadStoreMatrixToXeVMPattern built the llvm.load result from the raw op
result element type. For element types without a direct LLVM
representation (e.g. f8E8M0FNU) this produced an illegal op: 'llvm.load'
op result #0 must be LLVM type with size, but got 'f8E8M0FNU'.
Derive the load result type from the type converter instead. This maps
such element types to an integer storage type of the same bit width,
collapses single-element vectors to a scalar, and flattens multi-element
vectors. The store path already used the converted operand and is
unchanged; the XeVM type converter's materialization casts bridge the
loaded value back to the original vector type for downstream consumers.
Add load_matrix regression tests for f8E8M0FNU (scalar and vector).
Commit: 22d769819cd72ad0298c7d7c2e035564776932e1
https://github.com/llvm/llvm-project/commit/22d769819cd72ad0298c7d7c2e035564776932e1
Author: Sang Ik Lee <sang.ik.lee at intel.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M mlir/lib/Dialect/GPU/Pipelines/GPUToXeVMPipeline.cpp
Log Message:
-----------
[MLIR][GPUToXeVMPipeline] Expand MX scaling ops before XeVM conversion (#203632)
arith.scaling_extf/scaling_truncf were never lowered by the
gpu-lower-to-xevm pipeline, so micro-scaling (MX) GEMM kernels kept
these ops (and their narrow-float operands) live all the way to LLVM
translation.
Run arith-expand before the XeVM/LLVM conversions to break
scaling_extf/scaling_truncf into extf/truncf + mulf and to expand
f8E8M0FNU casts into integer bit manipulation. f4E2M1FN expansion is
intentionally left disabled: its casts are lowered by the XeVM
conversions (xevm.extf), whereas f8E8M0FNU is not handled there and must
be expanded here. The generic f4E2M1FN expansion would otherwise emit i4
vector arithmetic that the XeVM backend cannot legalize.
Commit: 96127e6a8c4dfb80caa5018a9300b3ed5a7b28aa
https://github.com/llvm/llvm-project/commit/96127e6a8c4dfb80caa5018a9300b3ed5a7b28aa
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M offload/plugins-nextgen/amdgpu/src/rtl.cpp
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/src/PluginInterface.cpp
Log Message:
-----------
[Offload] Fix pessimistic max block count sizing on AMDGPU (#204242)
Summary:
For whatever reason, HSA copied the questionable choices that OpenCL
made and represents its launch parameters in a threads * blocks grid.
The problem is that you then combine this with an `int32_t` interface,
so you have 31 bits to represent your launch. We were then
pessimistically stating that your launch always had 1024 threads, which
left us with 2^21. This is only about two million which people do all
the time, and this caused us to perform weird clamping in OpenMP. The
effect was that tests like ompx_saxpy_mixed.c was hitting that clamp and
returning wrong results.
Also fix the sanitizer tests failing because of HSA core dumps.
Commit: 5a5d0fb1e471b3a1e842aee1f993e885c8d19713
https://github.com/llvm/llvm-project/commit/5a5d0fb1e471b3a1e842aee1f993e885c8d19713
Author: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/test/Transforms/PhaseOrdering/AArch64/loopflatten.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/matrix-extract-insert.ll
M llvm/test/Transforms/PhaseOrdering/X86/hoist-load-of-baseptr.ll
M llvm/test/Transforms/PhaseOrdering/unswitch-cold-func.ll
A llvm/test/Transforms/PhaseOrdering/unswitch-nontrivial-cold-func.ll
M llvm/test/Transforms/SimpleLoopUnswitch/AMDGPU/uniform-unswitch.ll
M llvm/test/Transforms/SimpleLoopUnswitch/PGO-nontrivial-unswitch2.ll
M llvm/test/Transforms/SimpleLoopUnswitch/PGO-nontrivial-unswitch3.ll
A llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-loop-guard.ll
M polly/test/Support/pipelineposition.ll
Log Message:
-----------
[SimpleLoopUnswitch] Generalize the notion of trivial unswitching (#193989)
For a loop like this
```
for (int j = 0; j < M; j++) {
if (N <= 0) continue; // invariant guard branches to latch
for (int i = 0; i < N; i++)
A[i] = B[i] + 1;
}
```
Since none of the successors of the guard branch of the inner loop are
outside the loop `j`, unswitching treats this as a non-trivial branch.
In reality, this is a perfect loop nest. If the condition of the guard
of `i` loop is false, there is nothing to do and so if we unswitch this
branch, the loop does not need to be versioned. This matches the
requirements of a trivial unswitch. This patch extends trivial loop
unswitching to catch cases like this.
The patch changes the loop guard so that instead of branching to the
latch of the outer loop, it exits the loop. This allows the existing code
for trivial unswitching to perform the transformation. The change in the
loop guard will happen only if all conditions for unswitching are met.
Commit: c625725b06987f05e8742df291da082a964dab03
https://github.com/llvm/llvm-project/commit/c625725b06987f05e8742df291da082a964dab03
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h
M llvm/test/CodeGen/NVPTX/packed-aggr.ll
Log Message:
-----------
[NVPTX] Properly emit narrow ptrtoint in aggregate initializers. (#201217)
If you have a 64-bit pointer and use ptrtoint to convert it to an i32,
that's supposed to return the low 32 bits of the pointer.
But if you use a narrowing ptrtoint inside a global aggregate
initializer, we currently don't mask the bytes. For this IR:
@g = addrspace(1) global i32 0
@s = addrspace(1) global { i32, i32 }
{ i32 ptrtoint (ptr addrspace(1) @g to i32), i32 0xdeadbeef }
on nvptx64 we emitted
.u64 s[1] = {g};
i.e. we emitted the full 64-bit address of `@g`, and entirely dropped
the
trailing i32 (0xdeadbeef).
I'm not sure why anyone would want to do this, but it is an explicitly
supported feature, so I suppose we might as well do it correctly.
Commit: f77ca4872537f200d36f0a33732f692cdc1b473c
https://github.com/llvm/llvm-project/commit/f77ca4872537f200d36f0a33732f692cdc1b473c
Author: Quanye Yang <quanyemostima at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
A llvm/test/tools/llvm-exegesis/X86/analysis-unknown-opcode-did-you-mean.test
M llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
Log Message:
-----------
[llvm-exegesis] Add did-you-mean hint for unknown opcodes (#203463)
Fixes #203199
When skipping a benchmark entry with an unknown opcode name, suggest the
nearest matching opcode if the edit distance is <= 1 (similar to
OptTable::findNearest).
Example:
```text
warning: skipping benchmark entry: No opcode with name 'VADDPDYrrr' - did you mean 'VADDPDYrr' ?
```
And Tested with:
- `llvm-lit
llvm/test/tools/llvm-exegesis/X86/analysis-unknown-opcode-did-you-mean.test`
- `llvm-lit
llvm/test/tools/llvm-exegesis/X86/analysis-skip-unknown-opcode.test`
---------
Signed-off-by: quanyeyang <quanyemostima at gmail.com>
Commit: b949373c0542fc95f4db969d5b2c4ad3d2d8971c
https://github.com/llvm/llvm-project/commit/b949373c0542fc95f4db969d5b2c4ad3d2d8971c
Author: Michael Karcher <github at michael-karcher.net>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/M68k/M68kInstrAtomics.td
M llvm/lib/Target/M68k/M68kInstrData.td
M llvm/test/CodeGen/M68k/Atomics/load-store.ll
M llvm/test/CodeGen/M68k/CodeModel/Small/small-pic.ll
M llvm/test/CodeGen/M68k/CodeModel/Small/small-static.ll
M llvm/test/CodeGen/M68k/Control/cmp.ll
M llvm/test/CodeGen/M68k/is-pcrel-register-operand-legal.mir
Log Message:
-----------
[M68k] Do not allow addressing modes k and q as MOVE targets (llvm#200826) (#201653)
This is intended as a fix for #200826 by removing PC-relative address
modes from the m68k MOVE patterns. It also affects MOVEM, and the
"atomic store" pattern that maps to the respective MOVE instruction as
well. This patch is based on the big patch authored by Gemini at
https://github.com/llvm/llvm-project/issues/181481#issuecomment-4476933700
, but as has been carefully trimmed to just address one single issue,
and every change has been verified to make sense. Gemini also restricted
the list of source addressing modes for MOVEM to the valid destination
addressing modes, which is not required according to the Motorola
specification.
Commit: 12d560d4278803be7a91fdcf17e82ac4ad12ff49
https://github.com/llvm/llvm-project/commit/12d560d4278803be7a91fdcf17e82ac4ad12ff49
Author: LU-JOHN <John.Lu at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll
M llvm/test/CodeGen/AMDGPU/divrem24-assume.ll
M llvm/test/CodeGen/AMDGPU/sdiv.ll
M llvm/test/CodeGen/AMDGPU/sdiv64.ll
M llvm/test/CodeGen/AMDGPU/sdivrem24.ll
M llvm/test/CodeGen/AMDGPU/srem64.ll
Log Message:
-----------
[AMDGPU] Remove unnecessary and broken sign/zero-extension (#203436)
When expanding div/rem by using floating-point operations,
sign/zero-extending the result from the calculated DivBits input width
to 32-bits is unnecessary. CreateFPToSI or CreateFPToUI is called with a
32-bit int type so the conversion instruction will already produce a
result with the desired width.
Also it is incorrect. For signed-division `DIVBITS_MAX_NEG/-1`, the
result should be `-DIVBITS_MAX_NEG` a positive value. Sign-extension
will incorrectly return a negative result. For example, for DivBits=4,
`-8/-1 = 8`, but adding code to do a 28-bit sign-extension will
incorrectly return `-8`.
Tested in https://github.com/llvm/llvm-test-suite/pull/423.
---------
Signed-off-by: John Lu <John.Lu at amd.com>
Commit: d84819d39e3103f92ad9b375cea7864280f3325c
https://github.com/llvm/llvm-project/commit/d84819d39e3103f92ad9b375cea7864280f3325c
Author: Justin Lebar <justin.lebar at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
Log Message:
-----------
[NVPTX] Fix build break from #201217 (#204380)
#201217 added a third `SymbolSize` argument to `AggBuffer::addSymbol()`
but missed one call site, which was added by 98160521cb72 after the PR
branch was cut. Pass `AllocSize` like the sibling calls do.
Commit: cbd76dcfa81e58dbaca01dcef561429cb59da20f
https://github.com/llvm/llvm-project/commit/cbd76dcfa81e58dbaca01dcef561429cb59da20f
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/source/Host/macosx/objcxx/Host.mm
Log Message:
-----------
[lldb] Fix race in macOS's FindProcessesImpl (#204109)
Our current FindProcessImpl has a TOCTOU bug where we first query the
buffer size we should provide via sysctl and then later pass a buffer
with that size to be filled. If the list of processes grows larger than
the buffer we pass, then our current implementation fails by returning
an empty list of processes. This race only happens rarely in practice as
we pad the buffer size with 10 additional entries to account for some
process growth.
This patch replaces this logic by a backoff loop that retries fetching
the process list if our buffer is too small (sysctl tells us if this is
the case by setting ENOMEM). This new implementation can only fail in
the system consistently spawns thousands of new processes between
each retry.
This should fix the actual root-cause for the random failures in
TestSimulator.py
Commit: 4a9cb1f4e04683f84da60a4d3d60547af324f40a
https://github.com/llvm/llvm-project/commit/4a9cb1f4e04683f84da60a4d3d60547af324f40a
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
A libcxx/docs/PostMeetingProcedure.rst
M libcxx/docs/index.rst
Log Message:
-----------
[libc++] Document post-WG21-meeting conformance update procedure (#204357)
This patch adds a section in the documentation to explain the procedure
to follow after a WG21 meeting to properly track papers. This should
clear out some confusion about how this process happens and who should
be responsible for doing it.
Commit: ce53940bdaa0272c40fec2914f67a18091d0a902
https://github.com/llvm/llvm-project/commit/ce53940bdaa0272c40fec2914f67a18091d0a902
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/test/CodeGen/Generic/GlobalISel/irtranslator-byte-type.ll
Log Message:
-----------
Revert "[IRTranslator] Precommit tests for bitcasts of the byte type #203638 (#204378)
This reverts commit 7e5bc4c7bd23e390cdb0b08f807968ea256b0df2 as the
MachineVerifier identifies 'bad machine code'.
Commit: 1ed7b780dad381b0cddc02a93124b09fab9280f4
https://github.com/llvm/llvm-project/commit/1ed7b780dad381b0cddc02a93124b09fab9280f4
Author: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Transforms/IPO/HotColdSplitting.cpp
M llvm/test/Transforms/HotColdSplit/X86/do-not-split.ll
M llvm/test/Transforms/HotColdSplit/addr-taken.ll
M llvm/test/Transforms/HotColdSplit/issue-197982.ll
R llvm/test/Transforms/HotColdSplit/mark-the-whole-func-cold.ll
M llvm/test/Transforms/HotColdSplit/minsize.ll
Log Message:
-----------
[HotColdSplit] Do not add cold attribute to unchanged functions (#204003)
Commit: d4b22fba2cedf7d6d7ce332837129a857f987a77
https://github.com/llvm/llvm-project/commit/d4b22fba2cedf7d6d7ce332837129a857f987a77
Author: David Zbarsky <dzbarsky at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/include/clang/Basic/AArch64CodeGenUtils.h
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
Log Message:
-----------
[AArch64] Compact scalable-vector intrinsic maps (#202618)
SVE and SME code generation only reads BuiltinID, LLVMIntrinsic, and
TypeModifier from its generated intrinsic maps. Store those fields in a
16-byte ARMScalableVectorIntrinsicInfo instead of the 32-byte
ARMVectorIntrinsicInfo used by NEON and SISD code generation. Update
both the classic and CIR consumers.
On an LLVM 22.1.7 arm64 release build, stripped standalone clang shrinks
from 115,097,192 to 114,816,456 bytes, saving 280,736 bytes (0.244%).
Work towards #202616
AI tool disclosure: Co-authored with OpenAI Codex.
Commit: f5685ebc37a3c4973aef37d807177133ccdb5693
https://github.com/llvm/llvm-project/commit/f5685ebc37a3c4973aef37d807177133ccdb5693
Author: Kees Cook <kees at kernel.org>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/MC/MCParser/AsmParser.cpp
M llvm/test/MC/ELF/lto-discard.s
Log Message:
-----------
[MC][AsmParser] Check .lto_discard before parsing the assignment (#204025)
I was deeply stumped, so I asked an LLM to help me track down this Linux
kernel build failure:
https://lore.kernel.org/all/202606122021.pA9TozrA-lkp@intel.com/
The bug only surfaced for Full LTO with 2+ TUs because that is when the
LTO merger emits ".lto_discard SYM" between two duplicated module-asm
blocks; ThinLTO compiles each module separately so the merged-asm
pattern does not arise, and a single TU has nothing to discard. Hit in
practice by the Linux kernel via -fsanitize=kcfi: every TU that
address-takes an externally-defined function emits the same ".weak X;
.set X, HASH" pair via module asm, so any >1-TU kcfi build with Full LTO
failed to link with "undefined symbol" against the kcfi type id.
parseAssignment checked discardLTOSymbol after
parseAssignmentExpression, which is too late for the common "preserve
first, discard later" pattern that the LLVM LTO library emits when
multiple bitcode inputs each carry the same weak symbol definition
through file-scope inline asm. For that pattern, the first ".set SYM, V"
makes SYM a redefinable variable; when the second (post-".lto_discard
SYM") ".set SYM, V" reaches parseAssignmentExpression, it sees an
existing redefinable symbol, calls cloneSymbol, and marks the original
SYM as temporary -- which excludes it from the emitted symbol table. The
subsequent discardLTOSymbol check then returns true and skips the
assignment, leaving the symbol table pointing at an empty unassigned
clone while the value we were supposed to preserve has just been
dropped.
Move the discardLTOSymbol check to the top of parseAssignment so a
discarded assignment never reaches parseAssignmentExpression; just
consume tokens to end-of-statement and return.
Extend llvm/test/MC/ELF/lto-discard.s with a second RUN line that drives
the integrated assembler directly (-filetype=obj) and inspects the ELF
symbol table via llvm-readelf, covering the "preserve first, discard
later" pattern that the existing text-only RUN line did not exercise.
Assisted-by: Claude Opus 4.7 (1M context)
Commit: cafd16fc6e5e1556fd9962c8b2e4b4a6719dc68a
https://github.com/llvm/llvm-project/commit/cafd16fc6e5e1556fd9962c8b2e4b4a6719dc68a
Author: Qiongsi Wu <qiongsiwu at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
Log Message:
-----------
[clang][AST] Adding Release Note for Attributed Type Dedupe Fix (#204384)
https://github.com/llvm/llvm-project/pull/200961 fixed a regression that
could lead to significant increase in pcm/pch sizes and load time. This
PR adds a release note.
Commit: d6cf7888148ece8e938e29f9b164ae0b036f4191
https://github.com/llvm/llvm-project/commit/d6cf7888148ece8e938e29f9b164ae0b036f4191
Author: FathimaHaris <156105585+FathimaHaris at users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/test/Transforms/InstCombine/mul.ll
Log Message:
-----------
[InstCombine] Fold constant shift/mul into select arms for mul instruction (#196872)
Fixes llvm#190907
Extends the optimization reported to cover four symmetric
patterns where one operand of a multiplication is a constant shift or
multiply, and the other is a select with constant arms.
Instead of keeping the outer shl/mul, the constant is pushed into the
select arms:
```
(shl X, C1) * (select cond, C2, C3) --> X * (select cond, C2<<C1, C3<<C1)
(mul X, C1) * (select cond, C2, C3) --> X * (select cond, C2*C1, C3*C1)
```
(Also handles their commuted forms )
Alive2 Proof :https://alive2.llvm.org/ce/z/dwTXJw
Commit: 5b40d54f264db8796ed8dce561e4f895cf8d5f89
https://github.com/llvm/llvm-project/commit/5b40d54f264db8796ed8dce561e4f895cf8d5f89
Author: Vadmeme <32437728+Vadmeme at users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Passes/CMakeLists.txt
M llvm/lib/Passes/PassBuilderBindings.cpp
M llvm/unittests/Passes/PassBuilderBindings/CMakeLists.txt
M llvm/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp
Log Message:
-----------
[LLVM] Register static pass plugins in LLVMRunPasses C-API (#196754)
LLVMRunPasses and LLVMRunPassesOnFunction create their own PassBuilder,
but did not register statically linked pass plugin callbacks from
Extension.def. This made C API pipelines fail to parse passes provided
by statically linked plugins, even when the same plugins were available
to opt and LTO.
Register the static extension callbacks after constructing the
PassBuilder, matching opt's NewPMDriver behavior.
Add coverage using the Bye plugin when it is linked into tools.
---------
Co-authored-by: Vadmeme <invalid at example.com>
Commit: a5e1d3f38794476b4684faa5f59d60667b8a2dc0
https://github.com/llvm/llvm-project/commit/a5e1d3f38794476b4684faa5f59d60667b8a2dc0
Author: Farzon Lotfi <farzonlotfi at microsoft.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/include/clang/Sema/SemaHLSL.h
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/test/CodeGenHLSL/matrix-layout-attr-overrides-default.hlsl
Log Message:
-----------
[Matrix][HLSL] Fix transpose matrix layout bugs (#202486)
This change will resolve https://github.com/llvm/wg-hlsl/issues/305
It is a two-part change. First, we had a bug. The transpose builtin was
previously only considering the Src for RowMajor when we also need to
consider the Dst RowMajor.
The second issue was the return stmt needs us to re-type the call with
the sugared typed. We only want to do this for what I am calling Layout
Adapting Matrix Builtins ie transpose and matrix multiply builtins.
Assisted by Claude Opus 4.8
Commit: 36ee948895a617e8cb8cf99fd01977cd70b7a575
https://github.com/llvm/llvm-project/commit/36ee948895a617e8cb8cf99fd01977cd70b7a575
Author: Sang Ik Lee <sang.ik.lee at intel.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M mlir/test/Integration/Dialect/XeGPU/WG/simple_mxfp_gemm_dequantizeB_F4.mlir
Log Message:
-----------
[MLIR][XeGPU] Update layout for simple_mxfp_gemm_dequantizeB_F4.mlir (#203636)
Update layout to proper values to enable lowering of the test case on
CRI with gpu to xevm lowering pipeline.
Commit: 2c6d88c76525675841b62cd87322e50f52bde25b
https://github.com/llvm/llvm-project/commit/2c6d88c76525675841b62cd87322e50f52bde25b
Author: Josh Stone <jistone at redhat.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/docs/Security.rst
Log Message:
-----------
[docs] Remove myself from security response (#203061)
I haven't really been active in this group, so I think it's best for me
to voluntarily leave. My affiliations are still covered by others, and
anyway I think cross-cutting issues (e.g. with Rust) should pull in
those orgs rather than relying on direct membership.
Commit: 6f50d09799f284b4c258415b3dd1ef0e9be07f3d
https://github.com/llvm/llvm-project/commit/6f50d09799f284b4c258415b3dd1ef0e9be07f3d
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/ObjCopy/DXContainer/DXContainerObjcopy.cpp
Log Message:
-----------
[llvm-objcopy][DirectX][NFC] Reuse isProgramPart() in DXContainerObjcopy (#204032)
#201423 introduced a helper function to determine if a given
DXContainer part name is DXIL or ILDB (i.e. a program part).
Reuse it everywhere.
Commit: 829007b657eb0f628112bba071c1c7b9e78bcd45
https://github.com/llvm/llvm-project/commit/829007b657eb0f628112bba071c1c7b9e78bcd45
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXContainerGlobals.cpp
Log Message:
-----------
[DirectX][NFC] Use addSection to create SRCI in DXContainerGlobals (#204028)
A tiny follow-up for #202761.
Use `addSection()` helper function to create a global for SRCI part.
Commit: ebb9d0eecb1905c7a339c3b97b5ddde182c2d8f1
https://github.com/llvm/llvm-project/commit/ebb9d0eecb1905c7a339c3b97b5ddde182c2d8f1
Author: Usman Nadeem <mnadeem at qti.qualcomm.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/test/Other/new-pm-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
Log Message:
-----------
Reapply "[DFAJumpThreading] Enable DFAJumpThread by default." (#169183)
Reapply: https://github.com/llvm/llvm-project/pull/157646 by reverting:
https://github.com/llvm/llvm-project/pull/167352
Commit: 3aa3bc6e63e9ec8be5f5857bc030e042f15ab8b6
https://github.com/llvm/llvm-project/commit/3aa3bc6e63e9ec8be5f5857bc030e042f15ab8b6
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 5b40d54 (#204389)
This fixes 5b40d54f264db8796ed8dce561e4f895cf8d5f89.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 1679bcc600e75e1e46c0d7ad2394f934a0d4ab74
https://github.com/llvm/llvm-project/commit/1679bcc600e75e1e46c0d7ad2394f934a0d4ab74
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/examples/darwin/heap_find/heap.py
Log Message:
-----------
[lldb] Adjust ptr_refs utility for arm64e (#204258)
The ptr_refs utility is a useful way to find where a pointer may be used
on Darwin platforms. It supports searching on the stack, the heap, and
in segments. The definitions of malloc_introspection_t and malloc_zone_t
needed to be adjusted for arm64e. This matches the malloc header shipped
in the the malloc headers shipped in Apple's SDKs.
With this, TestPtrRefs.py and TestPtrRefsObjC.py now pass.
Commit: f89afac6e30079fad379d5ab6d4bd0b00c3f3775
https://github.com/llvm/llvm-project/commit/f89afac6e30079fad379d5ab6d4bd0b00c3f3775
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/include/lldb/Utility/ProcessInfo.h
M lldb/source/Commands/CommandCompletions.cpp
M lldb/source/Commands/CommandObjectPlatform.cpp
M lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Utility/ProcessInfo.cpp
M lldb/unittests/Utility/ProcessInfoTest.cpp
Log Message:
-----------
[lldb][NFC] Remove const char * from ProcessInfo interface (#204268)
My primary reason for doing this is so that I can refactor FileSpec's
interface to stop using ConstStrings. But more generally StringRef is
sufficient for ProcessInfo's needs. Any spot that actually needs an
actual `const char *` can create one from the StringRef.
Commit: 42634048c6768891487be239c0ceb409b09da39f
https://github.com/llvm/llvm-project/commit/42634048c6768891487be239c0ceb409b09da39f
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/source/Plugins/ExpressionParser/Clang/InjectPointerSigningFixups.cpp
A lldb/test/API/commands/expression/ptrauth-weak-symbols/Makefile
A lldb/test/API/commands/expression/ptrauth-weak-symbols/TestPtrauthWeakSymbols.py
A lldb/test/API/commands/expression/ptrauth-weak-symbols/dylib.c
A lldb/test/API/commands/expression/ptrauth-weak-symbols/dylib.h
A lldb/test/API/commands/expression/ptrauth-weak-symbols/main.c
A lldb/test/API/commands/expression/ptrauth-weak-symbols/module.modulemap
Log Message:
-----------
[lldb] Support weakly imported symbols with arm64e (#202728)
The use of weakly imported symbols may introduce inline CPAs into
functions in the form of instruction operands. For example, from
TestWeakSymbols.py, we may see IR that looks like this:
```
%cmp = icmp ne ptr ptrauth (ptr @_Z20absent_weak_functionv, i32 0), null
```
which corresponds to this C line:
```
if (&absent_weak_function != null) {
```
Similar to walking global initializers, LLDB must also walk all
instructions looking for CPAs in instruction operands and handle them
accordingly.
I've renamed functions and structs to distinguish between these two
scenarios.
Commit: 0eb257578697efd4ac05f1cf1f9d0c5c4ef5d53f
https://github.com/llvm/llvm-project/commit/0eb257578697efd4ac05f1cf1f9d0c5c4ef5d53f
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/RISCV/RISCVISelLowering.h
Log Message:
-----------
[CodeGen] Pass the correct VT into hasMultipleConditionRegisters (#204375)
hasMultipleConditionRegisters expects the type of the condition value.
Fix shouldNormalizeToSelectSequence to pass this in instead of the type
of the result of a select.
In practice this makes no observable difference yet. AArch64 is the only
target that uses the VT passed into hasMultipleConditionRegisters and it
only checks whether or not it is a scalable vector type.
Commit: 02d6e17313f7b2f89d08fe90a58ec7ac1936d69d
https://github.com/llvm/llvm-project/commit/02d6e17313f7b2f89d08fe90a58ec7ac1936d69d
Author: Ian Anderson <iana at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/test/Driver/clang-offload-bundler-multi-compress.c
Log Message:
-----------
[clang][test][darwin] Driver/clang-offload-bundler-multi-compress.c fails on macOS (#204026)
Driver/clang-offload-bundler-multi-compress.c isn't supported on Darwin,
but neglected to list the macosx target.
Commit: d9492b6da3da97f9cc7f3cd24432e7e16c1f5e1a
https://github.com/llvm/llvm-project/commit/d9492b6da3da97f9cc7f3cd24432e7e16c1f5e1a
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/ADT/GenericUniformityImpl.h
M llvm/include/llvm/ADT/GenericUniformityInfo.h
M llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
M llvm/lib/Target/AMDGPU/AMDGPURewriteUndefForPHI.cpp
M llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp
M llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
M llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
Log Message:
-----------
[Uniformity] Introduce isUniform/DivergentTerminator naming. NFC. (#204343)
Rename the overloads of isUniformAtDef/isDivergentAtDef that take an
InstructionT (instead of a ValueT) to
isUniformTerminator/isDivergentTerminator to make it clear that they
should only be used for terminator instructions, and assert this. Call
sites passing in a non-terminator instruction now resolve to the ValueT
overloads instead.
Commit: 61f3ed17074fada91e4b03f3db6e0c042f47df97
https://github.com/llvm/llvm-project/commit/61f3ed17074fada91e4b03f3db6e0c042f47df97
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/tools/lldb-dap/extension/package.json
Log Message:
-----------
[lldb-dap] Bump the version to 0.6.1 (#204411)
Commit: 6dc69f666ae992388dd2c63d8abadd458b3ac9de
https://github.com/llvm/llvm-project/commit/6dc69f666ae992388dd2c63d8abadd458b3ac9de
Author: theSK2005 <73001618+theSK2005 at users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
Log Message:
-----------
[AMDGPU] Added SRAMECC feature for gfx1250/1251 (#203313)
Added SRAMECC feature in TargetParser.def for gfx1250/1251 to
properly reflect hardware spec
Commit: fea57a97b45b1a15f6229ed9a416fb51a604456c
https://github.com/llvm/llvm-project/commit/fea57a97b45b1a15f6229ed9a416fb51a604456c
Author: jimingham <jingham at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/bindings/interface/SBTargetDocstrings.i
M lldb/include/lldb/API/SBTarget.h
M lldb/include/lldb/Target/Language.h
M lldb/source/API/SBTarget.cpp
M lldb/source/Target/Language.cpp
A lldb/test/API/python_api/persistent_decls/Makefile
A lldb/test/API/python_api/persistent_decls/TestPersistentDecls.py
A lldb/test/API/python_api/persistent_decls/main.c
Log Message:
-----------
Add the ability to look up persistent types and variables defined in the expression parser through the SB API's. (#203128)
In responding to the question here:
https://discourse.llvm.org/t/creating-nested-synthetic-children/90997/3
it became clear that getting the persistent variable/type results from
the expression parser was much harder than it needed to be. I filed a
couple issues for this:
https://github.com/llvm/llvm-project/issues/201952
https://github.com/llvm/llvm-project/issues/201949
though after thinking about this a bit more, I decided to go with
dedicated API for getting Persistent Expression variables & types. We
don't allow redefinitions of persistent variables and types within the
same Target, so a "FirstType" API didn't make sense, nor did one
returning a list of types or values.
Plus, this will be easier to discover.
Commit: a2f4a1cabb083337ccb17c77cafb36d94c1ef52b
https://github.com/llvm/llvm-project/commit/a2f4a1cabb083337ccb17c77cafb36d94c1ef52b
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/test/Transforms/LoopVectorize/VPlan/expand-scev.ll
M llvm/test/Transforms/LoopVectorize/pr58811-scev-expansion.ll
M llvm/test/Transforms/LoopVectorize/single-early-exit-deref-assumptions.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
Log Message:
-----------
[VPlan] Also expand SCEVUDivExpr in expandSCEVExpr. (#203093)
Add support for expanding SCEVUDivExpr to VPInstructions, completing the
set of SCEV expression kinds that can be fully expanded without falling
back to SCEVExpander.
PR: https://github.com/llvm/llvm-project/pull/203093
Commit: 1774af87364d62b329344a646984c59322e35a42
https://github.com/llvm/llvm-project/commit/1774af87364d62b329344a646984c59322e35a42
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M .gitignore
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/SemaLifetimeSafety.h
A clang/test/Sema/LifetimeSafety/safety-c.c
A clang/test/Sema/attr-lifetime-capture-by.c
A clang/test/Sema/attr-lifetimebound.c
Log Message:
-----------
[LifetimeSafety] Support C Language in LifetimeSafety (#203270)
There are a few constraints that make supporting C a bit cumbersome:
* C assignment expressions are rvalues, unlike C++ assignment
expressions. The analysis has to account for the different origin shape
of the assignment result by stripping an origin from `LHSExpr`.
* Function addresses in C do not need lifetime tracking. Taking `&f`
should not create origins because functions do not have local object
lifetime (unlike in C++).
* GNU C permits `void*` subscripting/pointer arithmetic. Expressions
like `bytes[0]` (where `bytes` is `void*`) have type `void` and do not
produce an addressable object with origins, even though `void*` itself
can carry pointer origins.
* Some C subscripts, such as vector subscripts, are not GLValues, so
they do not have storage origins to track.
* `va_arg(ap, array_type)` is undefined behavior, so we skip it instead
of trying to model origins for it.
* C does not have a spelling for `[[gsl::Owner]]` / `[[gsl::Pointer]]`,
so C support is limited to pointer/object cases that can be represented
in C and `__attribute__((lifetimebound))`.
What validation I performed:
* Ran a crash-smoke test over C files in the LLVM tree with
`-Wlifetime-safety`. It finished without crashes after the fixes.
* Generated a C-only subset of `warn-lifetime-safety.cpp` and compiled
it with `-Wlifetime-safety`, to reuse existing pointer-flow coverage in
C mode.
* Built the Linux kernel (with `allmodconfig` build) and got a few
warnings. So firstly there are a few uninteresting true positives that
are intentional in the tests, and our checker catches them. (this is the
majority, approximately 90% of all warnings come from these intentional
leaky tests). There were also a few conservative warnings where the
analysis does not prove the relevant path condition, so they look like
expected false positives rather than C support issues. And our analysis
also got 1 correctly!
Closes #203213
Assisted-by: GPT-5.5 for writing bash scripts to perform validation.
Commit: 6bf6e39d3b07b2f7c6e83d1274deea15105f1b87
https://github.com/llvm/llvm-project/commit/6bf6e39d3b07b2f7c6e83d1274deea15105f1b87
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M libc/hdr/CMakeLists.txt
A libc/hdr/sys_resource_macros.h
M libc/include/llvm-libc-macros/linux/unistd-macros.h
M libc/include/unistd.yaml
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/sysinfo.h
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/sysconf.cpp
M libc/test/src/unistd/sysconf_test.cpp
Log Message:
-----------
[libc] Implement _SC_ARG_MAX, _SC_OPEN_MAX, and _SC_PHYS_PAGES (#204364)
This commit adds the sysinfo syscall wrapper and implements the
_SC_ARG_MAX, _SC_OPEN_MAX, and _SC_PHYS_PAGES options in sysconf.
- Added sysinfo inline syscall wrapper.
- Implemented _SC_ARG_MAX, _SC_OPEN_MAX, and _SC_PHYS_PAGES.
- Added integration tests.
Commit: 81072db8dd57c8a9b276708a35b33c3bbd3dbfc8
https://github.com/llvm/llvm-project/commit/81072db8dd57c8a9b276708a35b33c3bbd3dbfc8
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M libcxx/docs/PostMeetingProcedure.rst
M libcxx/utils/conformance
Log Message:
-----------
[libc++] Create issues in batch in libcxx/utils/conformance (#204428)
Also improve the output as a drive-by. Creating issues in batch makes it
easier to automate the creation of these issues.
Assisted by Claude, tweaked and reviewed by hand
Commit: c11a0993281f0e14ef0ce87e391f66bf7b335488
https://github.com/llvm/llvm-project/commit/c11a0993281f0e14ef0ce87e391f66bf7b335488
Author: Gábor Horváth <xazax.hun at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/test/Sema/LifetimeSafety/dangling-global.cpp
M clang/test/Sema/LifetimeSafety/safety.cpp
Log Message:
-----------
[LifetimeSafety] Propagate loans through the comma operator (#204379)
VisitBinaryOperator had no comma case, so a comma expression carried
none of its right operand's loans and a borrow used via a comma result
(e.g. `g = (f(), p)`) was silently dropped. Flow the RHS's origin into
the result.
Assisted-by: Claude Opus 4.8
Commit: 9db7cd5709d22dfbae75a85867b6eb6e5c3e0c76
https://github.com/llvm/llvm-project/commit/9db7cd5709d22dfbae75a85867b6eb6e5c3e0c76
Author: Kazu Hirata <kazu at google.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/ProfileData/SampleProfReader.h
M llvm/include/llvm/ProfileData/SampleProfWriter.h
M llvm/unittests/ProfileData/SampleProfTest.cpp
Log Message:
-----------
[ProfileData] Add traits for on-disk function offset hash table (NFC) (#202110)
This patch introduces serialization helper classes (traits) for the
on-disk chained hash table that will be used to index function offsets
in the SecFuncOffsetTable section:
- FuncOffsetHashTableWriterInfo (in SampleProfWriter.h) for writing.
- FuncOffsetHashTableInfo (in SampleProfReader.h) for reading.
These traits map a 64-bit function name GUID to a 32-bit byte offset
pointing into the SecLBRProfile section. This index structure is
intended to replace the flat layout of the SecFuncOffsetTable section
in the upcoming v104 format. This will allow the compiler to query the
offset of a function sample without having to parse the entire
SecFuncOffsetTable section at startup.
While these two trait classes share identical boilerplate for type
definitions and key comparison, they are kept separate to maintain
clean interface separation between the reader and writer headers. We
also choose not to define a shared base class in SampleProf.h to keep
that common header free of serialization-specific details.
An isolated unit test is added to verify serialization and
deserialization.
This is Phase 1 of the RFC: Faster Sample Profile Loading.
RFC:
https://discourse.llvm.org/t/rfc-faster-sample-profile-loading/90957/4
Commit: 9d26a1990af20c3773b13f6df72332ceb51daa90
https://github.com/llvm/llvm-project/commit/9d26a1990af20c3773b13f6df72332ceb51daa90
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/make/WASI.rules
Log Message:
-----------
[lldb][test] Don't export all symbols when building Wasm test inferiors (#204426)
WASI.rules linked test inferiors with -Wl,--export-all and the
reactor-style -Wl,--no-entry. I cargo-culted them and neither flag is
needed as our test inferiors all have a main and crt1 provided _start.
The --export-all flag was also harmful: for a no-argument main(),
wasi-libc renames the user's main to __original_main and emits a small
`main` trampoline. The --export-all flag caused that trampoline to an
exported `main` symbol, so `break main` resolved to two locations.
Drop both flags but keep --allow-undefined for inferiors that reference
runtime-provided symbols.
Commit: 5eeaf89ea923a1b0df30cdfcaf015d0b7766f008
https://github.com/llvm/llvm-project/commit/5eeaf89ea923a1b0df30cdfcaf015d0b7766f008
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
A llvm/test/Transforms/InstCombine/assume-cache-update.ll
Log Message:
-----------
[InstCombine] Register manually created assumes in the AssumptionCache. (#204416)
Instructions inserted via Result->insertInto() bypassing the IRBuilder
inserter that would otherwise register new @llvm.assume calls in the
AssumptionCache.
Register the assume when inserting such a Result, mirroring what the
IRBuilder inserter does.
PR: https://github.com/llvm/llvm-project/pull/204416
Commit: 500fc937b0f9f9dad99d0e9bfc46cf3b8706a0cf
https://github.com/llvm/llvm-project/commit/500fc937b0f9f9dad99d0e9bfc46cf3b8706a0cf
Author: lntue <lntue at google.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M libc/src/__support/FPUtil/double_double.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/hypot.h
Log Message:
-----------
[libc][math] Implement fast path for double precision hypot function. (#204292)
Compute `hypot(x, y) = sqrt(x^2 + y^2)` in double-double with relative
errors < 2^-102.
Using the approximation:
```
a = maximum_mag(x, y);
b = minimum_mag(x, y);
(hi, lo) ~ a^2 + b^2;
r_hi = sqrt(hi);
r_lo = (a + b - r_hi^2) * (0.5 / r_hi)
------
r_hi + r_lo ~ sqrt(x^2 + y^2).
```
Performance benchmark with CORE-MATH:
Before the patch:
```
$ ./perf.sh hypot --llvm
GNU libc version: 2.42
GNU libc release: stable
-- CORE-MATH reciprocal throughput --
[####################] 100 %
Ntrial = 20 ; Min = 23.183 + 0.311 clc/call; Median-Min = 0.319 clc/call; Max = 23.620 clc/call;
-- System LIBC reciprocal throughput --
[####################] 100 %
Ntrial = 20 ; Min = 14.218 + 0.299 clc/call; Median-Min = 0.193 clc/call; Max = 15.240 clc/call;
-- LIBC reciprocal throughput --
[####################] 100 %
Ntrial = 20 ; Min = 204.764 + 0.593 clc/call; Median-Min = 0.576 clc/call; Max = 206.057 clc/call;
```
After the patch without FMA:
```
-- LIBC reciprocal throughput --
[####################] 100 %
Ntrial = 20 ; Min = 26.920 + 0.063 clc/call; Median-Min = 0.048 clc/call; Max = 27.139 clc/call;
```
After the patch with FMA:
```
-- LIBC reciprocal throughput --
[####################] 100 %
Ntrial = 20 ; Min = 15.180 + 0.189 clc/call; Median-Min = 0.178 clc/call; Max = 15.461 clc/call;
```
Commit: 25836aff3d21e3eddbf62ef30d409e62308a1dea
https://github.com/llvm/llvm-project/commit/25836aff3d21e3eddbf62ef30d409e62308a1dea
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h
M llvm/test/CodeGen/NVPTX/packed-aggr.ll
Log Message:
-----------
Revert `[NVPTX] Properly emit narrow ptrtoint in aggregate initializers. (#201217)` (#204418)
Revert c625725b06987f05e8742df291da082a964dab03 (#201217) along with
build fix d84819d39e3103f92ad9b375cea7864280f3325c (#204380) due to test
failures in global-ordering.ll mentioned here:
https://github.com/llvm/llvm-project/pull/201217#issuecomment-4734212548
Commit: cddebef5a9cefe4006fa54129a99f650a9c03d29
https://github.com/llvm/llvm-project/commit/cddebef5a9cefe4006fa54129a99f650a9c03d29
Author: Arda Serdar Pektezol <arda at pektezol.dev>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Analysis/CtxProfAnalysis.cpp
A llvm/test/Analysis/CtxProfAnalysis/flatten-prethinlink-requires-guid-metadata.ll
Log Message:
-----------
[CtxProf] emit fatal usage error when flatten-prethinlink runs without guid metadata (#194383)
`ctx-prof-flatten-prethinlink` can call `AssignGUIDPass::getGUID()` on
defined functions even when the GUID metadata is missing. In that case,
LLVM currently asserts on missing `!guid` metadata.
Replace the assertion with `reportFatalUsageError()` so the pass fails
with a clear user-facing error, and add a regression test for invoking
only `ctx-prof-flatten-prethinlink`.
Fixes #194185
Commit: 2f6dedc94c649dfb46c7d9e21a8ec45db51c1424
https://github.com/llvm/llvm-project/commit/2f6dedc94c649dfb46c7d9e21a8ec45db51c1424
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 6bf6e39 (#204429)
This fixes 6bf6e39d3b07b2f7c6e83d1274deea15105f1b87.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: a71ca081f6f716bcae756626b4c1592863afbdcd
https://github.com/llvm/llvm-project/commit/a71ca081f6f716bcae756626b4c1592863afbdcd
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
Log Message:
-----------
[RISCV][P-ext] Replace v4i8/v2i16 mul and v4i8 mulh patterns on RV32 with custom lowering. (#204382)
Instead of emitting 2 instructions from an isel pattern, custom lower to
PWMUL(S)(U)+SRL+TRUNC.
This only slightly reduces the number of isel patterns today, but we
will need the WMUL patterns for intrinsics. Exposing the SRL+TRUNC to
DAG combine may allow additional optimizations.
Assisted-by: Claude Sonnet 4.6
Commit: 39d83f90368f75fb17069946d952a07ea52c4ecf
https://github.com/llvm/llvm-project/commit/39d83f90368f75fb17069946d952a07ea52c4ecf
Author: David Green <david.green at arm.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/test/CodeGen/AArch64/fmaximumnum-fminimumnum-select.ll
Log Message:
-----------
[AArch64] Fix swapped operands in tryFoldCselToFMaxMin (#203230)
These swapped operands will treat nan the wrong way, make sure we only
use the matching direction when converting to fminnm/fmaxnm.
Commit: 626cba7e467364603895dfcdb598e31cdd70a953
https://github.com/llvm/llvm-project/commit/626cba7e467364603895dfcdb598e31cdd70a953
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.td
M llvm/lib/IR/Verifier.cpp
M llvm/test/Verifier/get-active-lane-mask.ll
Log Message:
-----------
[NFC][LLVM] Tighten overload types for `@llvm.get.active.lane.mask` (#204356)
Change return type to `llvm_any_vector_int_ty` and the 2 argument types
to `llvm_any_scalar_int_ty`.
Commit: 8cf8aa030ed07b904c2b6dbd72947ec32f2ed1a6
https://github.com/llvm/llvm-project/commit/8cf8aa030ed07b904c2b6dbd72947ec32f2ed1a6
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/test/Analysis/MemorySSA/ptr-const-mem.ll
M llvm/test/CodeGen/AMDGPU/alloca.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-inline.ll
M llvm/test/CodeGen/AMDGPU/amdgpu.private-memory.ll
M llvm/test/CodeGen/AMDGPU/coexec-rewrite-mfma.ll
M llvm/test/CodeGen/AMDGPU/fence-barrier.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-bitcast-function.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-calling-conv.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-globals.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-pointer-array.ll
M llvm/test/Transforms/Attributor/heap_to_stack_gpu.ll
M llvm/test/Transforms/Attributor/memory_locations_gpu.ll
M llvm/test/Transforms/Attributor/reduced/openmp_opt_constant_type_crash.ll
M llvm/test/Transforms/EarlyCSE/AMDGPU/memrealtime.ll
M llvm/test/Transforms/FunctionAttrs/make-buffer-rsrc.ll
M llvm/test/Transforms/InferAddressSpaces/AMDGPU/noop-ptrint-pair.ll
M llvm/test/Transforms/InferAddressSpaces/AMDGPU/old-pass-regressions.ll
M llvm/test/Transforms/LoopLoadElim/pr46854-adress-spaces.ll
M llvm/test/Transforms/LoopUnroll/AMDGPU/scev-mul-expansion-cost.ll
M llvm/test/Transforms/LoopUnroll/AMDGPU/unroll-for-private.ll
M llvm/test/Transforms/OpenMP/custom_state_machines_pre_lto.ll
M llvm/test/Transforms/OpenMP/indirect_call_kernel_info_crash.ll
M llvm/test/Transforms/OpenMP/spmdization_constant_prop.ll
M llvm/test/Transforms/OpenMP/spmdization_indirect.ll
M llvm/test/Transforms/OpenMP/spmdization_kernel_env_dep.ll
M llvm/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/split-gep-and-gvn-addrspace-addressing-modes.ll
M llvm/test/Transforms/StraightLineStrengthReduce/AMDGPU/pr23975.ll
M llvm/test/Transforms/StraightLineStrengthReduce/AMDGPU/reassociate-geps-and-slsr-addrspace.ll
M llvm/test/tools/llvm-objdump/ELF/AMDGPU/source-lines.ll
Log Message:
-----------
AMDGPU/Tests: Remove redundant explicit data layouts from AMDGPU tests (#203447)
These all look like either cargo culting of outdated requirements or
test cases that were not fully reduced. Since the data layout evolves
over time with new address spaces being added, it seems good practice to
avoid hard-coding it in tests that don't need it.
Commit: a9b492db3d50683e446cd1a5c9ffaf4e92cb77a7
https://github.com/llvm/llvm-project/commit/a9b492db3d50683e446cd1a5c9ffaf4e92cb77a7
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
R llvm/test/Verifier/intrinsic-bad-arg-type.ll
A llvm/test/Verifier/masked-load-store.ll
Log Message:
-----------
[NFC][LLVM] Drop redundant verifier checks for masked load/stores (#204359)
All current verifier checks for masked load/store intrinsics are
redundant as they are covered by the generic intrinsic signature
verification. Drop them.
Rename verifier `intrinsic-bad-arg-type.ll` lit test to
`masked-load-store.ll` and extend it to cover cases corresponding to the
dropped checks to verify that generic intrinsic signature verification
will still flag them.
Commit: 0afb39976dfa7520781ce63f615ec7befeba6f34
https://github.com/llvm/llvm-project/commit/0afb39976dfa7520781ce63f615ec7befeba6f34
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Passes/CMakeLists.txt
M llvm/lib/Passes/PassBuilderBindings.cpp
M llvm/unittests/Passes/PassBuilderBindings/CMakeLists.txt
M llvm/unittests/Passes/PassBuilderBindings/PassBuilderBindingsTest.cpp
Log Message:
-----------
Revert "[LLVM] Register static pass plugins in LLVMRunPasses C-API" (#204410)
Reverts llvm/llvm-project#196754
Breaks bots, e.g.
https://lab.llvm.org/buildbot/#/builders/97/builds/14257
Commit: f6750f80df26f3116e513c631137ad723960ab74
https://github.com/llvm/llvm-project/commit/f6750f80df26f3116e513c631137ad723960ab74
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel][libc] Fix 500fc937b0f9f9dad99d0e9bfc46cf3b8706a0cf (#204436)
Add deps
Commit: 140fc5aa2a0a754db87c68b2e3861c70dd94360b
https://github.com/llvm/llvm-project/commit/140fc5aa2a0a754db87c68b2e3861c70dd94360b
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/MemRef/Transforms/Transforms.h
M mlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt
M mlir/lib/Dialect/MemRef/Transforms/ExtractAddressComputations.cpp
M mlir/test/Dialect/MemRef/extract-address-computations.mlir
M mlir/test/lib/Dialect/Vector/CMakeLists.txt
Log Message:
-----------
[mlir][memref] Use access interfaces in address extraction (#198421)
Rework extract-address-computation patterns to use
IndexedAccessOpInterface for direct memref accesses and
VectorTransferOpInterface update hooks for transfer ops.
These rewrites are limited to operations that declare in-bounds indices
(so no vector.load currently) for now so that we always create valid
`memref.subview` opp.
As a consequence of this PR, the Memref dialect no longer depends on the
GPU and NVGPU dialects.
Note: if you used this pass downstream, you may need to start registering the external interface implementations for IndexedAccessOpInterface on the GPU, NVGPU, etc. dialects.
AI: Codex wrote the first draft, I simplified it a bunch and made sure
the names of internal functions made sense.
---------
Co-authored-by: Codex <codex at openai.com>
Commit: 5efef02b66419e9a9482c0546be912cbdb448681
https://github.com/llvm/llvm-project/commit/5efef02b66419e9a9482c0546be912cbdb448681
Author: Vladimir Vereschaka <vvereschaka at accesssoftek.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Lex/PreprocessorOptions.h
M clang/include/clang/Options/Options.td
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Lex/PPMacroExpansion.cpp
A clang/test/Driver/cl-deterministic.c
A clang/test/Preprocessor/init-datetime-macros-nowarns.c
A clang/test/Preprocessor/init-datetime-macros-warns.c
A clang/test/Preprocessor/init-datetime-macros.c
Log Message:
-----------
[clang-cl] Add cl compiler build deterministic options for compatibility. (#194779)
Added the following options to clang-cl:
* `/experimental:deterministic`
The original CL's option enables emitting of warnings on usage of
non-deterministic macros `__DATE__`, `__TIME__` and `__TIMESTAMP__` and
provides few additional operations to help produce a deterministic
output:
- sets .obj COFF header timestamp (offset 4) to a hash based on a path
to the source file.
- removes a host name from the hash gen for the anon namespace and
lambdas.
- zeroed PE timestamps, when passed to the linker.
- sets PDB Guid field to `{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}`.
- sets PDB Signature field to `1`.
Currently `clang-cl` does not use a hostname to generate the symbols
hash, also it does not produce PDB files, because of it the option only
implements the warning emission on the date/time macros (`-Wdate-time
option`) and sets COFF's timestamp to 0 (by using overlapped `/Brepro` /
`-mno-incremental_linker_compatible` options).
* `/Brepro`
The original CL's option does the following:
- defines `__DATE__`, `__TIME__`, and `__TIMESTAMP__` to the literal
string `"1"`.
- sets PE timestamps to 0, but does not affect .obj COFF's header
timestamp (still current timestamp).
- sets PCH unique IDs to content hash instead.
Currently `clang-cl` sets to 0 .obj and .exe timestamps by `/Brepro`
option. These changes keep it unmodified for compatibility and add the
extra macros definitions. `clang-cl` provides its own PCH format and
requires the different operations to make it reproducable.
* `/d1nodatetime`
Undefine the standard preprocessor macros `__DATE__`, `__TIME__` and
`__TIMESTAMP__`. This option allows redefinitions for these macros from
the command line.
Commit: ee890eb04639464cd523d1305c75a82628a6a8a6
https://github.com/llvm/llvm-project/commit/ee890eb04639464cd523d1305c75a82628a6a8a6
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/test/Transforms/ConstraintElimination/geps-unsigned-predicates.ll
Log Message:
-----------
[ConstraintElim] Do not model negative nuw-only GEP offset as signed. (#203620)
decomposeGEP added the GEP's constant offset to the unsigned
decomposition using its signed value (getSExtValue()). For a GEP that
only carries nuw (without nusw/inbounds), the indices must be
interpreted as unsigned.
Alive2 Proof of mis-compile https://alive2.llvm.org/ce/z/7G8uE3
PR: https://github.com/llvm/llvm-project/pull/203620
Commit: 6e21a04a5a96b2a06f0b456813fd427d4e7a1227
https://github.com/llvm/llvm-project/commit/6e21a04a5a96b2a06f0b456813fd427d4e7a1227
Author: Aviral Goel <aviralg at users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormat.h
M clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/Artifact.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/WPASuite.cpp
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-edges.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-id.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-empty.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-no-key.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-odd-count.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-bad-epls.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-bad-id.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-empty.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-no-key.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-odd-count.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/all.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/both.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/pairs.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/tags.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/missing-type.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-lu-empty.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-tu-empty.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-wpa-empty.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/unknown-type.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/round-trip.test
A clang/test/Analysis/Scalable/ssaf-format/Artifact/top-level.test
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/mismatched-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-lu-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-not-array.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/mismatched-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-tu-namespace.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-link-unit.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/duplicate-analysis-name.json
A clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/mismatched-type.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/missing-results.json
A clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-bad-count.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-bad-pair-counts.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-entry-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-analysis-name-not-string.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-deserializer-error.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-missing-analysis-name.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-missing-result-field.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-result-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/results-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-all-results.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-empty.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-multiple-results.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tags-result-bad-element.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tags-result-missing-tags.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tagspairs-result-bad-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tagspairs-result-missing-field.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/without-plugin.test
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
M clang/tools/clang-ssaf-format/SSAFFormat.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.h
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/TUSummaryTest.cpp
Log Message:
-----------
[clang][ssaf] Make TUSummary, LUSummary, and WPASuite JSON representations self-describing (#204409)
This commit introduces the following changes:
- Add a self-describing `"type"` field (`"TUSummary"`, `"LUSummary"`, or
`"WPASuite"`) to the root of every artifact JSON file written by
`JSONFormat`. Kind-specific readers (`readTUSummary`, `readLUSummary`,
`readWPASuite`, plus the encoding flavors) validate that the field is
present and matches the expected value.
- Introduce two variant aliases on `SerializationFormat`: `Artifact =
std::variant<TUSummary, LUSummary, WPASuite>` and `ArtifactEncoding =
std::variant<TUSummaryEncoding, LUSummaryEncoding>`. Each gets a generic
`read*/write*` pair that peeks the `type` field once and dispatches to
the matching reader/writer; the file is read and parsed only once per
call.
- Refactor every kind-specific reader into `read{Kind}` (loads file +
validates type) plus a private `read{Kind}FromObject(const Object&)`
helper. `readArtifact`/`readArtifactEncoding` reuse those helpers
directly, avoiding the file-and-parse-twice pattern.
- Default `clang-ssaf-format`'s `--type` to `auto`, which uses the
artifact APIs. Explicit `--type tu|lu|wpa` still forces the
kind-specific path; `--encoding` selects the encoding flavor in either
mode.
rdar://168179368
Commit: 6e4a7eef94416f51968c04909b6220ac96fca05f
https://github.com/llvm/llvm-project/commit/6e4a7eef94416f51968c04909b6220ac96fca05f
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/test/Driver/hip-phases.hip
M clang/test/Driver/hip-toolchain-no-rdc.hip
M clang/test/Driver/spirv-amd-toolchain.c
Log Message:
-----------
[HIP][SPIR-V] Enable SPIR-V backend by default (#198338)
Use -no-use-spirv-backend to get SPIR-V by llvm-spirv tool.
Commit: cebc501cf2f47f274384d5e71dab4ae2a429a9a3
https://github.com/llvm/llvm-project/commit/cebc501cf2f47f274384d5e71dab4ae2a429a9a3
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvp-simd-32.ll
Log Message:
-----------
[RISCV][P-ext] Fold (PSRL/PSRA (trunc (PSRL X, C1)), C2) -> (trunc (PSRL/PSRA X, C1+C2)) (#204385)
when C1 equals the number of bits discarded by the truncate. This
matches an existing DAGCombine for ISD::SRA/SRL which doesn't get
a chance to fire before the inner PSRL is formed.
Assisted-by: Claude Sonnet 4.6
Commit: 9237b264dfc0ef910a08b4c18e5bc7628ffeb9d8
https://github.com/llvm/llvm-project/commit/9237b264dfc0ef910a08b4c18e5bc7628ffeb9d8
Author: Joshua Batista <jbatista at microsoft.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXContainerPDB.cpp
Log Message:
-----------
[DirectX] Fix IO sandbox violation in DXContainerPDB pass (#204461)
`DXContainerPDB::runOnModule` writes a PDB file to disk via
`PDBFileBuilder::commit`, which calls through `MSFBuilder::commit` ->
`FileOutputBuffer::create` -> `llvm::sys::fs::status()`. These are raw
filesystem APIs that trigger a fatal "IO sandbox violation" when the IO
sandbox is enabled.
The sandbox is enabled in `CC1Command::Execute` (Job.cpp) to enforce
that all filesystem access goes through the VFS. Since `PDBFileBuilder`
doesn't support VFS-based output, bypass the sandbox for the commit call
using `scopedDisable()`, matching the established pattern used in
`raw_ostream.cpp`, `VirtualFileSystem.cpp`, `BackendUtil.cpp`, and
others.
This crash occurs on any clang invocation targeting the DirectX backend
with PDB emission enabled, e.g.:
`Target: dxilv1.7-unknown-shadermodel6.7-library`
and was introduced with this commit:
https://github.com/llvm/llvm-project/pull/202762, which added the
`Builder.commit(DebugFileName, ...)` call that writes a PDB file via
raw filesystem APIs, which violates the IO sandbox.
Stack trace:
```
reportFatalInternalError("IO sandbox violation")
llvm::sys::fs::status()
FileOutputBuffer::create()
MSFBuilder::commit()
PDBFileBuilder::commit()
DXContainerPDB::runOnModule()
```
Assisted by: Github Copilot
Fixes: https://github.com/llvm/llvm-project/issues/204468
Commit: eb3c37f6e1e72ee83ae52021d142f845952d27a7
https://github.com/llvm/llvm-project/commit/eb3c37f6e1e72ee83ae52021d142f845952d27a7
Author: Sam Clegg <sbc at chromium.org>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lld/test/wasm/reloc-relative.s
M lld/wasm/InputChunks.cpp
M lld/wasm/InputFiles.cpp
M llvm/include/llvm/BinaryFormat/WasmRelocs.def
M llvm/lib/BinaryFormat/Wasm.cpp
M llvm/lib/MC/WasmObjectWriter.cpp
M llvm/lib/Object/RelocationResolver.cpp
M llvm/lib/Object/WasmObjectFile.cpp
M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
M llvm/test/MC/WebAssembly/reloc-relative.ll
Log Message:
-----------
[WebAssembly] Add support for R_WASM_MEMORY_ADDR_LOCREL_I64 relocation (#204055)
This relocation is needed for WASM64 to support location-relative memory
addresses, which are used e.g. in profile instrumentation (for
CounterPtr in __llvm_profile_data).
Without this, the compiler falls back to absolute relocations and drops
the subtraction, resulting in malformed profile data.
Fixes: https://github.com/emscripten-core/emscripten/issues/26865
Commit: 3663599225f8248e0ed0ae6702c7990a266492dd
https://github.com/llvm/llvm-project/commit/3663599225f8248e0ed0ae6702c7990a266492dd
Author: Sam Clegg <sbc at chromium.org>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
A llvm/test/Instrumentation/AddressSanitizer/wasm.ll
Log Message:
-----------
[WebAssembly] Default to 0 shadow offset for wasm64 ASan (#204437)
For Wasm64, ASan instrumentation was defaulting to a 16TB shadow offset,
while the runtime configures it to 0. Align them by defaulting to 0 for
all WebAssembly targets.
Commit: 668800da4bd581a4992d935e5c66a010782f6a82
https://github.com/llvm/llvm-project/commit/668800da4bd581a4992d935e5c66a010782f6a82
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M .github/workflows/release-binaries.yml
M llvm/CMakeLists.txt
M llvm/utils/release/build_llvm_release.bat
Log Message:
-----------
workflows/release-binaries: Use Wix to create Windows installer (#200734)
The NSIS based installer had a limit of 2GB, and we started going over
that, so we needed to move to Wix which supports much larger installer
sizes.
Commit: 26d99622d6aa9c7c1da13d0c48d813befd152a69
https://github.com/llvm/llvm-project/commit/26d99622d6aa9c7c1da13d0c48d813befd152a69
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M flang/test/Driver/fakeflang.F
M flang/tools/fakeflang/ensure_flang_exists.cmake
M flang/tools/fakeflang/fakeflang.cpp
Log Message:
-----------
[Flang] Match additional CMake Fortran detection probes (#204438)
Support the following additional patterns that CMake may use to
introspect the Fortran compiler:
1. `__GNUC__` may be tested before `__flang__` which results in the
compiler to be identified as "GNU" instead of "LLVMFlang"
2. Invoke with `-E -cpp` to explicitly use the preprocessor
Fakeflang was added in #203481 to not have to build all of flang just to
pass CMake's compiler detection.
Tested with CMake 3.20, 3.28, and 4.4-rc.
Should fix the
[flang-aarch64-rel-assert](https://lab.llvm.org/buildbot/#/builders/29)
and [flang-aarch64-dylib](https://lab.llvm.org/buildbot/#/builders/50)
buildbots.
Commit: 13ee12d8fe178a68d84a8fba92ea75078feb0dc1
https://github.com/llvm/llvm-project/commit/13ee12d8fe178a68d84a8fba92ea75078feb0dc1
Author: Utkarsh Saxena <usx at google.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M .gitignore
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/SemaLifetimeSafety.h
R clang/test/Sema/LifetimeSafety/safety-c.c
R clang/test/Sema/attr-lifetime-capture-by.c
R clang/test/Sema/attr-lifetimebound.c
Log Message:
-----------
Revert "[LifetimeSafety] Support C Language in LifetimeSafety" (#204481)
Reverts llvm/llvm-project#203270 because of changes to .gitignore
Commit: bf5f523583d33d9d59c4199264ab33e6f8a9d387
https://github.com/llvm/llvm-project/commit/bf5f523583d33d9d59c4199264ab33e6f8a9d387
Author: Bhavesh M <85327930+beamandala at users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M mlir/lib/Target/Cpp/TranslateToCpp.cpp
M mlir/test/Target/Cpp/class.mlir
Log Message:
-----------
[mlir][emitc] Set operator precedence for `GetFieldOp` (#203416)
This sets the precedence for the `GetFieldOp`, preventing an unsupported
operation error. The precedence is set to 18, the same as `GetGlobalOp`,
because `GetFieldOp` behaves the same way.
Commit: d9d54466071219fd4093780ca068193f60d2dc71
https://github.com/llvm/llvm-project/commit/d9d54466071219fd4093780ca068193f60d2dc71
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/packages/Python/lldbsuite/test/dotest.py
Log Message:
-----------
[lldb] Only run libc++ tests when the architecture matches (#204267)
It does not make sense to run the libc++ tests when the libc++ dylib has
an architecture that does not match the test binary.
I ran into this when running the test suite with arm64e test binaries
and the locally-built libc++ is built arm64.
---------
Co-authored-by: Dave Lee <davelee.com at gmail.com>
Commit: 53dabae40fb3a85148f1bb72e885e32081482dbe
https://github.com/llvm/llvm-project/commit/53dabae40fb3a85148f1bb72e885e32081482dbe
Author: Jan Korous <jkorous at apple.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/include/clang/ScalableStaticAnalysisFramework/BuiltinAnchorSources.def
A clang/include/clang/ScalableStaticAnalysisFramework/SourceTransformation/SourceEditEmitter.h
A clang/include/clang/ScalableStaticAnalysisFramework/SourceTransformation/Transformation.h
A clang/include/clang/ScalableStaticAnalysisFramework/SourceTransformation/TransformationRegistry.h
A clang/include/clang/ScalableStaticAnalysisFramework/SourceTransformation/TransformationReportEmitter.h
M clang/lib/Driver/CMakeLists.txt
M clang/lib/FrontendTool/CMakeLists.txt
M clang/lib/ScalableStaticAnalysisFramework/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/SourceTransformation/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/SourceTransformation/TransformationRegistry.cpp
M clang/tools/clang-ssaf-analyzer/CMakeLists.txt
M clang/tools/clang-ssaf-format/CMakeLists.txt
M clang/tools/clang-ssaf-linker/CMakeLists.txt
M clang/unittests/ScalableStaticAnalysisFramework/CMakeLists.txt
A clang/unittests/ScalableStaticAnalysisFramework/SourceTransformation/EmitterTest.cpp
A clang/unittests/ScalableStaticAnalysisFramework/SourceTransformation/RegistryTest.cpp
Log Message:
-----------
[clang][ssaf] Add source-transformation library scaffolding (#204214)
Introduces the abstract base classes, registries, and force-linker
anchor for the SSAF source-transformation library.
A `Transformation` is an `ASTConsumer` that consumes a previously
computed `WPASuite` and emits source edits and findings through two
sinks: `SourceEditEmitter` (accumulates `clang::tooling::Replacement`s)
and `TransformationReportEmitter` (accumulates `(ruleId, level, range,
message)` tuples). The accumulated state is then handed to a
`SourceEditFormat` and a `TransformationReportFormat` for serialization.
Three `llvm::Registry`-backed registries — keyed by transformation name
and by file extension respectively — let transformations and formats be
linked in statically (with a force-linker anchor) or loaded dynamically
as a clang plugin. Each registry exposes the standard `is*Registered` /
`make*` / `printAvailable*` helpers used elsewhere in SSAF.
No transformation or format ships yet; this commit only adds the
plumbing. Existing tools (`clang-ssaf-format`, `clang-ssaf-linker`,
`clang-ssaf-analyzer`) and the clang driver gain the new lib in their
link line so the framework anchor resolves under static linking.
Assisted-By: Claude Opus 4.7
Commit: 5f3e70ca97a835605ee54f01e00d883a3be0d220
https://github.com/llvm/llvm-project/commit/5f3e70ca97a835605ee54f01e00d883a3be0d220
Author: Fabian Parzefall <parzefall at meta.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/test/AArch64/instrument-no-fini.s
M bolt/test/X86/instrument-no-fini.s
A bolt/test/X86/instrument-static-pie.s
M bolt/test/runtime/X86/instrument-wrong-target.s
Log Message:
-----------
[BOLT] Instrument static PIEs through entry point (#204475)
Static PIEs contain DT_INIT and DT_FINI. However, statically linked libc
does not read the dynamic entries, so patching those entries has no
effect. Check DT_FLAGS_1 to detect input static PIEs and rely on entry
point patching accordingly.
Fixes #201371.
Commit: 5796aa936dfbfe7a1cfdb1707f3b407c67053345
https://github.com/llvm/llvm-project/commit/5796aa936dfbfe7a1cfdb1707f3b407c67053345
Author: LeeYoungJoon <dog3hk.dev at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang-tools-extra/docs/ReleaseNotes.rst
A clang-tools-extra/test/clang-tidy/checkers/bugprone/branch-clone-inline-asm.cpp
M clang/docs/ReleaseNotes.rst
M clang/lib/AST/StmtProfile.cpp
A clang/test/Modules/asm-stmt-odr.cppm
Log Message:
-----------
[clang][AST] Fix StmtProfile handling of GCCAsmStmt asm strings and clobbers (#201481)
`VisitGCCAsmStmt` did not profile asm strings and clobbers because they
are not child statements.
As a result, different inline asm statements could produce the same
profile.
This fixes a false positive in `bugprone-branch-clone` where branches
containing inline asm were incorrectly reported as identical.
I used AI assistance when writing the test code, but I personally
reviewed it. 🤖
Fixes https://github.com/llvm/llvm-project/issues/198616
Commit: 0a92811e2c6825a9fb1528b49aad896c3795e629
https://github.com/llvm/llvm-project/commit/0a92811e2c6825a9fb1528b49aad896c3795e629
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 53dabae (#204494)
This fixes 53dabae40fb3a85148f1bb72e885e32081482dbe.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: aedf92c5612595c295efa0a78be5080aaee3ddb0
https://github.com/llvm/llvm-project/commit/aedf92c5612595c295efa0a78be5080aaee3ddb0
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/test/CodeGen/AMDGPU/trans-coexecution-hazard.mir
Log Message:
-----------
[AMDGPU] Introduce TransCoexecutionHazard target feature (#204412)
TransCoexecutionHazard implies there is data hazard between TRANS and
the following VALU instruction when they are co-executed. Currently
gfx1250 and gfx1251 have this target feature.
Commit: dd069b691dd365d447a87cd606b315ec445c7ae4
https://github.com/llvm/llvm-project/commit/dd069b691dd365d447a87cd606b315ec445c7ae4
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/source/Symbol/Function.cpp
A lldb/test/Shell/SymbolFile/DWARF/x86/prologue-entry-not-covered.s
Log Message:
-----------
[lldb] Skip the prologue when a function's entry has no line row (#204480)
Function::GetPrologueByteSize computed the prologue only when a line
table row contained the function's entry address (low_pc). When no row
covers low_pc it returned 0, leaving a name breakpoint sitting on the
function's entry address. For WebAssembly the entry address is the
function's locals-declaration byte rather than an instruction, so the
line table has no row there and the breakpoint is never hit.
When low_pc has no covering row, fall back to the first line row that
begins within the function's range and run the existing prologue logic
on it. For functions whose entry is already covered (all normally
compiled native code) this branch is not taken, so behavior is remains
unchanged.
This PR adds a hand (Claude) crafted regression test with a function
whose entry address is not covered by a line row.
Commit: 8b0361bba242d0f69560a717b52f26b289a7ebc2
https://github.com/llvm/llvm-project/commit/8b0361bba242d0f69560a717b52f26b289a7ebc2
Author: Sang Ik Lee <sang.ik.lee at intel.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
M mlir/test/Dialect/XeGPU/sg-to-lane-distribute-unit.mlir
Log Message:
-----------
[MLIR][XeGPU] Treat lane_data repacks as compatible layouts (#204016)
A subgroup-level convert_layout that only repacks lane_data while keeping
lane_layout unchanged (e.g. [N, 1] to [1, 1] with order = [1, 0]) is a no-op
after lane distribution: each lane owns the same elements in the same order.
Previously isCompatibleWith compared per-distribution-unit block starts, which
encode the lane_data blocking, so such layouts looked incompatible.
Handle this at the Lane level in isCompatibleWith by expanding the block
starts into per-element coordinates before comparing. The expansion only runs
when lane_data differ; otherwise the cheaper block-start comparison is exact.
The shared logic lives in a compareDistributedCoords helper used by both
LayoutAttr and SliceAttr. The Subgroup level is left for a follow-up (TODO).
Add a lit test covering the fold in sg-to-lane-distribute-unit.mlir.
Commit: 14d163e977182bb80a37f43eb61d80699ba6eb05
https://github.com/llvm/llvm-project/commit/14d163e977182bb80a37f43eb61d80699ba6eb05
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.cpp
M lldb/test/Shell/ObjectFile/wasm/basic.yaml
M lldb/test/Shell/ObjectFile/wasm/embedded-debug-sections.yaml
M lldb/test/Shell/ObjectFile/wasm/stripped-debug-sections.yaml
M lldb/test/Shell/ObjectFile/wasm/unified-debug-sections.yaml
Log Message:
-----------
[lldb] Report a generic wasm32 architecture for Wasm object files (#204496)
ObjectFileWasm hardcoded the architecture of every Wasm module as
"wasm32-unknown-unknown-wasm". A Wasm binary does not actually encode a
vendor or OS, those are properties of the runtime executing it.
When debugging via a runtime whose gdb stub reports a more specific
triple (e.g. WAMR reports "wasm32-wamr-wasi-wasm"), lldb adopts that
triple and clears the module list. The dynamic loader then tries to
reload the main executable, but GetOrCreateModule rejects the on-disk
file because the triples are incompatible. This causes lldb to back to
reading from memory.
Fix all this by reporting a bare "wasm32"/"wasm64" architecture instead.
Commit: e4a0e1dfcb5e23e1e5acf7e3521cea840e4383d6
https://github.com/llvm/llvm-project/commit/e4a0e1dfcb5e23e1e5acf7e3521cea840e4383d6
Author: Anton Shepelev <44649959+amemov at users.noreply.github.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M libc/benchmarks/CMakeLists.txt
A libc/benchmarks/LibcRsqrtf16GoogleBenchmarkMain.cpp
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/rsqrtf16.h
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][math][c23] Improve rsqrtf16 function for targets without fp32 FPUs. (#160639)
Closes #159378
#### Changes
- This PR adds math approximation for targets that don't have hardware
for floats - in other words, targets that don't have
`LIBC_TARGET_CPU_HAS_FPU_FLOAT`
- This PR also introduces Google Benchmark for rsqrtf16
- Fixed typo in `+inf` case. Should return +0 according to
[F.10.4.9](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
Commit: 5dc8ac225fa7965518fb49cce90516b46c745e0f
https://github.com/llvm/llvm-project/commit/5dc8ac225fa7965518fb49cce90516b46c745e0f
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/lib/Target/DirectX/CMakeLists.txt
A llvm/lib/Target/DirectX/DXILRemoveUnusedResources.cpp
A llvm/lib/Target/DirectX/DXILRemoveUnusedResources.h
M llvm/lib/Target/DirectX/DirectX.h
M llvm/lib/Target/DirectX/DirectXPassRegistry.def
M llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
M llvm/test/CodeGen/DirectX/Binding/binding-overlap-3.ll
M llvm/test/CodeGen/DirectX/Binding/binding-overlap-4.ll
M llvm/test/CodeGen/DirectX/Binding/binding-overlap-5.ll
M llvm/test/CodeGen/DirectX/Binding/binding-overlap-7.ll
M llvm/test/CodeGen/DirectX/ContainerData/PSVResources-order.ll
M llvm/test/CodeGen/DirectX/ContainerData/PSVResources.ll
M llvm/test/CodeGen/DirectX/Metadata/cbuffer-metadata.ll
M llvm/test/CodeGen/DirectX/Metadata/srv_metadata.ll
M llvm/test/CodeGen/DirectX/Metadata/uav_metadata.ll
M llvm/test/CodeGen/DirectX/ShaderFlags/max-64-uavs-array-valver1.6.ll
M llvm/test/CodeGen/DirectX/ShaderFlags/max-64-uavs.ll
M llvm/test/CodeGen/DirectX/ShaderFlags/overflow-uavs-array.ll
M llvm/test/CodeGen/DirectX/ShaderFlags/uavs-at-every-stage-lib-valver1.7.ll
M llvm/test/CodeGen/DirectX/ShaderFlags/unbounded-uavs-array.ll
M llvm/test/CodeGen/DirectX/llc-pipeline.ll
A llvm/test/CodeGen/DirectX/resources-in-unused-function.ll
A llvm/test/CodeGen/DirectX/unused-resources-impl-binding.ll
A llvm/test/CodeGen/DirectX/unused-resources.ll
Log Message:
-----------
[DirectX] Add DXILRemoveUnusedResources pass (#200965)
Adds `DXILRemoveUnusedResources` pass that scans the module and removes
any resource that is not used. It means that it removes calls to
`dx_resource_handlefrom{implicit}binding` whose return value is either
not used at all, or it is saved to a global variable that does not have
external linkage and is not used anywhere else in the module.
This pass needs to run before implicit resource binding assignment pass.
The test `unused-resources-impl-binding.ll` makes sure the implicit
binding assignments are not affected by the unused resources.
Since we have many tests that are initializing resources without
actually using them, an internal option
`-disable-dxil-remove-unused-resource` has been added to `llc` so we can
keep these tests simple without adding extra code to artificially use
each resource.
Depends on #200312
Fixes #192524
Commit: a40055caee3c372675da0190dcce1e7b14831485
https://github.com/llvm/llvm-project/commit/a40055caee3c372675da0190dcce1e7b14831485
Author: Owen Anderson <resistor at mac.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/CHERICapabilityFormat.h
M llvm/lib/Support/CHERICapabilityFormat.cpp
M llvm/unittests/Support/CHERICapabilityFormatTest.cpp
Log Message:
-----------
[CHERI] Fix incorrect MAX_E for RV64Y capabilities. (#204487)
Add tests for all capability formats at the upper end of their ranges, which would have caught this oversight.
Commit: d6d93464c59eb5f93452b27dd9e9e7e489606b4f
https://github.com/llvm/llvm-project/commit/d6d93464c59eb5f93452b27dd9e9e7e489606b4f
Author: Ethan Luis McDonough <ethanluismcdonough at gmail.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M llvm/include/llvm/Transforms/IPO/InstrumentorRuntimeHelper.h
M llvm/lib/Transforms/IPO/Instrumentor.cpp
M llvm/test/Instrumentation/Instrumentor/default_rt.h
Log Message:
-----------
[Instrumentor] Move NumericFlags into InstrumentorRuntimeHelper.h (#204068)
This patch makes the `NumericFlags` enum visible to the end user by
moving it into `InstrumentorRuntimeHelper.h`.
Commit: ced82d8d8b7924077692a46f30fab67be7268073
https://github.com/llvm/llvm-project/commit/ced82d8d8b7924077692a46f30fab67be7268073
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/Headers/amdgpuintrin.h
M clang/lib/Headers/nvptxintrin.h
M clang/lib/Headers/spirvintrin.h
Log Message:
-----------
[Clang] Make the pointers to gpuintrin AS query const (#204492)
Summary:
Right now these force a const cast if the user is checking a read-only
pointer, not great.
Commit: b2ffc0d9c30a7eca584d67ea8ea93e5ed79d9091
https://github.com/llvm/llvm-project/commit/b2ffc0d9c30a7eca584d67ea8ea93e5ed79d9091
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
A llvm/test/Transforms/LoopInterchange/inner-header-has-duplicate-succs.ll
Log Message:
-----------
[LoopInterchange] Reject if inner loop header has duplicate successors (#204128)
Previously, loop interchange crashed in several cases where the inner
loop header had duplicate successors. In practice, the following was
happening:
- During the transformation phase, the inner loop header was not split
because its first non-PHI instruction was its terminator.
- `updateSuccessor` was called on the header with `MustUpdateOnce=true`,
which triggers an assertion failure.
This patch fixes the issue by rejecting such cases during the legality
check phase. I believe this situation is rare, so it should not
significantly affect real-world cases.
Fix #203887.
Commit: 258b68fd169a4d6f9e670c0120d0f466a6ec9a3f
https://github.com/llvm/llvm-project/commit/258b68fd169a4d6f9e670c0120d0f466a6ec9a3f
Author: lrzlin <linrunze at loongson.cn>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/fptosi.ll
M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/fptoui.ll
M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/fptosi.ll
M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/fptoui.ll
Log Message:
-----------
[LoongArch] Combine FP_TO_UINT/FP_TO_SINT with [X]VFTINTRZ instruction (#201569)
Combine double conversion to signed 32-bit integer with
`[X]VFTINTRZ_W_D` instructions.
There are three cases:
1. For VT smaller than i32, we promote it to i32 then truncate to the
final result.
2. For `fptoui double to i32`, we convert it to `fptosi double to i64`
then truncate, avoid doing so with LASX enabled because we already have
the corresponding pattern in TableGen.
3. Last, for `fptosi double to i32`, we'll split them into blocks
(128-bit or 256-bit depending on whether LASX is enabled or not) and
then feed them into `[X]VFINTRZ_W_D` instructions, we using the XV
version, a shuffle is need because of the data layout is per 128-bit
lane.
Commit: d3ac9b5c4cab4ced92f7027ee214d54a04387e78
https://github.com/llvm/llvm-project/commit/d3ac9b5c4cab4ced92f7027ee214d54a04387e78
Author: Thrrreeee <shijinrui at bytedance.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M bolt/include/bolt/Core/DIEBuilder.h
M bolt/include/bolt/Core/DebugData.h
M bolt/include/bolt/Rewrite/DWARFRewriter.h
M bolt/lib/Core/DIEBuilder.cpp
M bolt/lib/Core/DebugData.cpp
M bolt/lib/Rewrite/DWARFRewriter.cpp
M bolt/test/X86/dwarf4-cross-cu-backward-different-abbrev.test
A bolt/test/X86/dwarf4-cross-cu-ranges.test
Log Message:
-----------
[RFC][BOLT] Add a new parallel DWARF processing(2/2) (#197859)
This PR implements a new parallel DWARF debug info processing pipeline
for BOLT that significantly speeds up `--update-debug-sections` for
large binaries. It is the second part of the split from the overall RFC
changes
RFC - [[RFC][BOLT] A New Parallel DWARF Processing Approach in
BOLT](https://discourse.llvm.org/t/rfc-bolt-a-new-parallel-dwarf-processing-approach-in-bolt/90736)
(The overall changes.)
This PR does the following:
1. **Equivalence-class CU partitioning:** Replaces batchsize grouping
with union-find over DW_FORM_ref_addr references. Connected CUs share a
bucket; isolated CUs become singletons.
> For the non-LTO case, CUs have no cross-CU dependencies, so each CU is
placed into its own singleton bucket and processed fully in parallel.
> For the LTO case, CUs with cross-CU dependencies are grouped into the
same bucket and processed sequentially within that bucket, while
different buckets are still processed in parallel.
2. **Per-bucket parallel processing with in-order merge:** Each bucket
gets its own DIEBuilder and local range/loc writers; completed buckets
are then merged sequentially in partition order, applying offset fixups
and emitting CUs to ensure deterministic output.
3. **Add main-binary parallel process** : Main-binary CU update and
split-DWO processing both happen within the same per-bucket task.
Commit: fecb127c3a6553b2a7b060954c5b1a15c644beed
https://github.com/llvm/llvm-project/commit/fecb127c3a6553b2a7b060954c5b1a15c644beed
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/test/Preprocessor/init-datetime-macros.c
Log Message:
-----------
[clang-cl][test] Use /Zs to avoid writing unnecessary output files (#204501)
#194779 adds a test clang/test/Preprocessor/init-datetime-macros.c which
verifies some diagnostics. However, it does so with `/c`, which will
unnecessarily generate an output, and when run on a build system that
does not run tests in a writeable dir by default, will cause the test to
fail.
Since we don't care about the resulting object file, use `/Zs`
(equivalent of `-fsyntax-only`) to check the diagnostics but not produce
any output files.
Commit: 909773de330b9217443fb678d8185a2229359576
https://github.com/llvm/llvm-project/commit/909773de330b9217443fb678d8185a2229359576
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-17 (Wed, 17 Jun 2026)
Changed paths:
M clang/lib/AST/TypePrinter.cpp
A clang/test/AST/ast-dump-riscv-rvv-fixed-length-mask-types.c
Log Message:
-----------
[RISCV] Fix the AST type printing code for VectorKind::RVVFixedLengthMask_1/2/4 (#204498)
These types have a fixed size of 1, 2, 4. The formula used for the other
types does not apply.
Assisted-by: Claude
Commit: 42743abe0a77cede08b203226a240155e50b4adb
https://github.com/llvm/llvm-project/commit/42743abe0a77cede08b203226a240155e50b4adb
Author: Zhaoxuan Jiang <jiangzhaoxuan94 at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M lld/MachO/InputFiles.cpp
A lld/test/MachO/icf-ignore-literal-ptr-labels.s
A lld/test/MachO/ignore-literal-cstring-labels.s
Log Message:
-----------
[lld-macho] Ignore labels on sections ld64 treats as ignoreLabel (#194275)
In ld64, labels on records in some sections never become named atoms and
never enter the symbol table:
- Unconditionally: __cfstring, __objc_classrefs, and __objc_selrefs
- Prefix-gated on `L`/`l`: __literal{4,8,16} and __cstring-family
sections such as __objc_methname
LLD, however, ran every such label through `SymbolTable::addDefined`,
which diverged from ld64 whenever an identically-named symbol appeared
in another section. This patch mirrors ld64's behavior in LLD. The
Defined is still created for the affected labels, but it bypasses the
symbol table entirely and cannot collide with any cross-TU symbol.
I have encountered a few link failures caused by this, and reduced them
into the regression tests in the patch.
Commit: 14de4e5479ccff5eff346d77a7ab6b9bbc9fa32c
https://github.com/llvm/llvm-project/commit/14de4e5479ccff5eff346d77a7ab6b9bbc9fa32c
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/test/AST/ByteCode/cxx23.cpp
Log Message:
-----------
[clang][bytecode][NFC] Remove an outdated comment (#204509)
They don't disagree anymore.
Commit: d5194e2514533067c5a7a7c2e7af33b112e3aad5
https://github.com/llvm/llvm-project/commit/d5194e2514533067c5a7a7c2e7af33b112e3aad5
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M openmp/runtime/src/kmp_adt.h
M openmp/runtime/unittests/ADT/CMakeLists.txt
A openmp/runtime/unittests/ADT/TestVector.cpp
Log Message:
-----------
[libomp] Add kmp_vector (ADT 2/2) (#176163)
See rationale in the commit adding kmp_str_ref.
This commit introduces kmp_vector, a class intended primarily for small
vectors. It currently only includes methods I need at the moment, but
it's easily extensible.
Commit: a02e66b1c1b70cd910ea0cd758f3f3930f9f7a2a
https://github.com/llvm/llvm-project/commit/a02e66b1c1b70cd910ea0cd758f3f3930f9f7a2a
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-insert-vector-elt.mir
M llvm/test/CodeGen/AArch64/GlobalISel/select-insert-vector-elt.mir
Log Message:
-----------
[AArch64][GlobalISel] Select narrow G_INSERT_VECTOR_ELT GPR operands (#203568)
RegBankSelect currently extends narrow i8/i16 G_INSERT_VECTOR_ELT GPR
operands to 32-bits. Move this widening to pre-isel lowering. This will
help enable a simple fast pure type-based RBS alternative.
Assisted-by: codex
Commit: 8199e9fa55270686b5ad8bb490fbf414736b027c
https://github.com/llvm/llvm-project/commit/8199e9fa55270686b5ad8bb490fbf414736b027c
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M lldb/test/API/commands/process/attach/TestProcessAttach.py
Log Message:
-----------
[lldb][test] Speed up ProcessAttach test (#201530)
ProcessAttach is our slowest test and runs for about 70s. We spend 60s
in the autocontinue test waiting for the target program to terminate.
The reason we wait for the program is that our autocontinue test is not
running its command in async mode, and we wait after the attach for the
next breakpoint or the program terminates.
This patch makes the attach and autocontinue run in async mode so we
don't wait for the program to finish. This reduces the test time from
70s to about 10s.
It also replaces the assertTrue call that was supposed to be an
assertEqual, which made the test succeed even though the inferior
process already terminated.
Commit: 316e5a3ed4a58f415c166f9d32b89b18a8f4531f
https://github.com/llvm/llvm-project/commit/316e5a3ed4a58f415c166f9d32b89b18a8f4531f
Author: adalal-2441 <adalal at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
Log Message:
-----------
[X86] Simplify duplicate MMO offset tracking in breakBlockedCopies (NFC) (#202904)
LMMOffset and SMMOffset in breakBlockedCopies/buildCopies/buildCopy were
both initialized to 0 and advanced in lockstep by identical amounts, so
they were always equal. Collapse them into a single Offset used for both
the load and store MachineMemOperands.
This also removes a latent typo: the final buildCopies call passed
LMMOffset for the store offset argument instead of SMMOffset. Since the
two were always equal this was harmless, and the unified Offset makes
the divergence unrepresentable.
Found via @jlebar's X86 LLVM bug hunt / FuzzX effort:
https://github.com/SemiAnalysisAI/FuzzX/blob/master/x86/bugs/042-sfb-buildcopies-wrong-mmo-offset/NOTES.md
cc @jlebar
Commit: 004f829fd0c5ecfebc7bfd05107160c97027d1e9
https://github.com/llvm/llvm-project/commit/004f829fd0c5ecfebc7bfd05107160c97027d1e9
Author: Haowei <haowei at google.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[clang][cmake] Disable exceptions for ASan runtime on Fuchsia (#204512)
Fuchsia's default runtime environment prefers no-exceptions. Compiling
the C++ slice of ASan (asan_new_delete.cpp) with exceptions introduces
dependencies on EH symbols
(__cxa_begin_catch, etc.) in libclang_rt.asan.so. This causes link
failures when linking ASan-enabled binaries with noexcept libc++abi.
Explicitly disable COMPILER_RT_ASAN_ENABLE_EXCEPTIONS for Fuchsia
targets in the stage2 cache.
Commit: 836f91b3a196b20cef6c1090fea6533ba872e37d
https://github.com/llvm/llvm-project/commit/836f91b3a196b20cef6c1090fea6533ba872e37d
Author: Ege Beysel <beysel at roofline.ai>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M mlir/test/lib/Dialect/Test/TestInterfaces.td
M mlir/tools/mlir-tblgen/OpInterfacesGen.cpp
M mlir/unittests/IR/InterfaceAttachmentTest.cpp
Log Message:
-----------
[mlir][tblgen]: forward overloaded interface methods to external models (#203507)
The FallbackModel/ExternalModel forwarders generated for an OpInterface
dispatched to the concrete model by the method's unique name (e.g.
`getOverloadedValue_1`), whereas the Model path already forwards by the
method's source name. For an interface that overloads a method this
prevents an external model from overriding an overload by its real name.
Forward by the source name in both paths so external models can
implement overloaded interface methods. No change for non-overloaded
methods, where the unique and source names coincide.
Previously, the external model interfaces exposed the internal name
mangling that we do for overloaded methods to the implementers,
prohibiting them from overriding these. This PR fixes that and hides the
internal name mangling from the implementers/users, and exposes source
names for overloaded methods, symmetrically to the `Model` case. E.g.
this PR allows:
```cpp
// An external model can override an OVERLOADED
// interface method by its normal (source) name.
struct BaseInterface {
// Two overloads, both with default implementations.
int overloadedMethod(int a) { return a * 2; }
int overloadedMethod(int a, int b) { return a * b; }
};
struct SpecializedInterface
: public BaseInterface::ExternalModel<SpecializedInterface, some::Op> {
// First overload: always worked, nothing about it is mangled.
int overloadedMethod(int a) { ... }
// Second overload: this is the case the PR fixes. Internally the overload is
// given a mangled name, and the generated forwarder used to dispatch to that
// mangled name, so this source-name override was bypassed: the call fell
// through to the default (`a * b`), or failed to compile if no default
// existed. The PR forwards by the source name instead, so this override is
// the one that runs.
int overloadedMethod(int a, int b) { return a * b + 3; }
};
```
You can also find a more concrete use-case of this in this (yet) [draft
PR](https://github.com/llvm/llvm-project/pull/204007) that depends on
this PR.
Assisted-by: Claude Code
---------
Signed-off-by: Ege Beysel <beyselege at gmail.com>
Commit: fe0e658e25619cc86779e836f192010559d7b591
https://github.com/llvm/llvm-project/commit/fe0e658e25619cc86779e836f192010559d7b591
Author: Yuyang Zhang <Yuyang.Zhang at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/test/Transforms/InstCombine/freeze.ll
M llvm/test/Transforms/InstCombine/shift.ll
M llvm/test/Transforms/PGOProfile/chr.ll
Log Message:
-----------
[InstCombine] Re-queue users after freezeOtherUses rewrites their operands (#202306)
`freezeOtherUses()` rewrites dominated uses to a single frozen copy, but
does not re-queue the rewritten users. Any fold enabled by the rewrite
is therefore left for the next InstCombine iteration, which breaks the
expected single-iteration fixpoint and requires
`instcombine-no-verify-fixpoint` in the affected tests.
Re-queue each rewritten user and its users so the newly exposed folds
are visited in the same iteration.
Commit: 1969e3061d58627f38397616862ce65f8f0d9e82
https://github.com/llvm/llvm-project/commit/1969e3061d58627f38397616862ce65f8f0d9e82
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
A llvm/test/Transforms/WholeProgramDevirt/virtual-const-prop-interposable.ll
Log Message:
-----------
[WPD] Don't perform virtual constant propagation for interposable functions (#204317)
We can't do constant propagation through interposable functions, as the
definition we see may not be the prevailing one. Doing it through
inexact definitions (linkonce_odr) is fine.
TBH, I'm not completely sure whether this is necessary, maybe there is
some precondition for this pass (given that it's whole-program) that
makes it unnecessary. This behavior came up in
https://github.com/llvm/llvm-project/pull/203304.
Commit: 8b5f178358ede90aaa0709d48648403db39835e2
https://github.com/llvm/llvm-project/commit/8b5f178358ede90aaa0709d48648403db39835e2
Author: Rahul <quic_rahulana at quicinc.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
A llvm/test/Analysis/LoopCacheAnalysis/partially-perfect-nest.ll
Log Message:
-----------
[LoopCacheAnalysis] Add tests for #198694 (NFC) (#204319)
This change adds tests corresponding to PR #204323
Commit: 57c571877d732dd032f9216fe6b478efff2919bb
https://github.com/llvm/llvm-project/commit/57c571877d732dd032f9216fe6b478efff2919bb
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/test/AST/ByteCode/builtin-functions.cpp
Log Message:
-----------
[clang][bytecode] `extOrTrunc()` when pushing builtin results (#204516)
We're not necessarily using an APSInt of the appropriate size from the
start, so get it to the right bitwidth here.
Commit: e727e5b51fbecdd0cac1619686b16758cdf8a426
https://github.com/llvm/llvm-project/commit/e727e5b51fbecdd0cac1619686b16758cdf8a426
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Record.cpp
M clang/test/AST/ByteCode/invalid.cpp
Log Message:
-----------
[clang][bytecode] Diagnose invalid virtual base casts (#204518)
Commit: 9a9e893f44bca9911cbdb1e0238ce40f23a359d1
https://github.com/llvm/llvm-project/commit/9a9e893f44bca9911cbdb1e0238ce40f23a359d1
Author: Gaëtan Bossu <gaetan.bossu at arm.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
A llvm/test/Transforms/LoopVectorize/allowExtraAnalysis-invalid-cfg.ll
Log Message:
-----------
[LV] Fix unsafe canVectorizeWithIfConvert() checks (#203273)
When allowExtraAnalysis is true, we might not have a canonical loop form
to work with. This fixes the code paths that can be reached in legality
checks to support loops with e.g. multiple latches.
Commit: 12ecfc73d4c2b94ea32d1daad7b80a48bc18bfda
https://github.com/llvm/llvm-project/commit/12ecfc73d4c2b94ea32d1daad7b80a48bc18bfda
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/assume-i32.ll
M llvm/test/Transforms/InstCombine/assume.ll
Log Message:
-----------
[InstCombine] Drop redundant alignment assumptions with offsets (#204321)
Commit: baad7c3238b3203c974787fc4881453b6b23a0b6
https://github.com/llvm/llvm-project/commit/baad7c3238b3203c974787fc4881453b6b23a0b6
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/Expr.h
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpState.h
M clang/lib/AST/ByteCode/State.cpp
M clang/lib/AST/ComputeDependence.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/Sema/SemaExpr.cpp
Log Message:
-----------
[clang][ExprConst] Add `EvalStatus::DiagEmitted` flag (#203838)
There are some instances where we want to know _if_ a diagnostic has
been emitted, but we're not interested in the actual diagnostic.
Emitting the diagnostics can be rather costly, especially because we add
the callstack as notes.
Commit: f999ca3037dfb43fc9b14612f03708a6435fab5e
https://github.com/llvm/llvm-project/commit/f999ca3037dfb43fc9b14612f03708a6435fab5e
Author: hby <79170515+hbystuff at users.noreply.github.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/include/llvm/Bitcode/BitcodeReader.h
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/unittests/Bitcode/BitReaderTest.cpp
Log Message:
-----------
[Bitcode] Add SkipDebugIntrinsicUpgrade hook to ParserCallbacks (#201456)
Expose CanUpgradeDebugIntrinsicsToRecords (already an opt-in parameter
on UpgradeIntrinsicFunction) through ParserCallbacks. When set, the
bitcode reader's globalCleanup() no longer auto-upgrades debug intrinsic
calls (llvm.dbg.\*) to non-instruction debug records; the caller is then
responsible for performing the upgrade manually (e.g. via
Module::convertToNewDbgValues()) after any custom processing of the
intrinsic-form IR.
This is useful for out-of-tree consumers that run passes operating on
intrinsic-form debug metadata before opting into the new debug records
format.
Commit: b8def5078487c120e85972c06e79809121d337f2
https://github.com/llvm/llvm-project/commit/b8def5078487c120e85972c06e79809121d337f2
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
A llvm/test/tools/llvm-pdbutil/dxcontainer-export.test
M llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
M llvm/tools/llvm-pdbutil/llvm-pdbutil.h
Log Message:
-----------
[llvm-pdbutil] Add `--dxcontainer` option to `llvm-pdbutil export` (#200486)
Adds a `--dxcontainer` option to export a `DXContainer` from a PDB file.
It basically serves as an alias to `--stream=5`, and is clearly seen in
`--help`.
Commit: 3d37689b894457acb02efa6b33e9a113c022bdb9
https://github.com/llvm/llvm-project/commit/3d37689b894457acb02efa6b33e9a113c022bdb9
Author: michaelselehov <michael.selehov at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/test/CodeGen/AMDGPU/agpr-register-count.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i16.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i32.ll
M llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
M llvm/test/CodeGen/AMDGPU/load-global-i16.ll
M llvm/test/CodeGen/AMDGPU/load-global-i8.ll
M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats.mir
M llvm/test/CodeGen/AMDGPU/occupancy-levels.ll
M llvm/test/CodeGen/AMDGPU/resource-optimization-remarks.ll
M llvm/test/CodeGen/AMDGPU/schedule-amdgpu-tracker-physreg.ll
M llvm/test/CodeGen/MIR/AMDGPU/long-branch-reg-all-sgpr-used.ll
M llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-after-pei.ll
M llvm/test/MC/AMDGPU/mcexpr_amd_err.s
M llvm/test/MC/AMDGPU/occupancy_mcexpr.s
M llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.cpp
Log Message:
-----------
[AMDGPU] Make SGPR occupancy the exact inverse of getMaxNumSGPRs (#201342)
The SGPR->occupancy table ignored the allocation granule and the
trap-handler reservation, so it disagreed with getMaxNumSGPRs() (e.g. 80
and 81 SGPRs reported the same occupancy and hid the cliff). Compute
occupancy by inverting the per-wave SGPR budget instead, sharing one
helper (getSGPRBudgetPerWave) with getMaxNumSGPRs()/getMinNumSGPRs() so
the budget and its inverse cannot drift apart. Thread that budget
(total/granule/trap reserve) through the occupancy MCExpr because the
asm printer's MCSubtargetInfo does not carry the implicit amdhsa
+trap-handler feature.
This aligns the SGPR-limited occupancy heuristic with the register
budget for all pre-GFX10 targets (including non-trap), which accounts
for the codegen test updates.
Assisted-by: Claude Opus
---------
Co-authored-by: mselehov <mselehov at amd.com>
Commit: 4e9609bbd05b0b23d13f36905c5b02e3e02b369d
https://github.com/llvm/llvm-project/commit/4e9609bbd05b0b23d13f36905c5b02e3e02b369d
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Analysis/Delinearization.cpp
Log Message:
-----------
[Delinearization] Fix indentation (NFC) (#204531)
Commit: 69c9c023ada07c8cba7fc454f3f66b2d6a73acd0
https://github.com/llvm/llvm-project/commit/69c9c023ada07c8cba7fc454f3f66b2d6a73acd0
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
Log Message:
-----------
[clang][bytecode][NFC] Remove StmtExprScope (#204530)
We can use a simple llvm::SaveAndRestore instead.
Commit: 879786170a480c871a10ca27b93bb97af9135942
https://github.com/llvm/llvm-project/commit/879786170a480c871a10ca27b93bb97af9135942
Author: halbi2 <hehiralbi at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/cmake/modules/HandleLLVMOptions.cmake
Log Message:
-----------
[llvm] Fix typo UNSPPORTED -> UNSUPPORTED (#138628)
This word was misspelled in c63f2581f.
Commit: c37248074b85dce34159b2807ffdcf8b59c905fb
https://github.com/llvm/llvm-project/commit/c37248074b85dce34159b2807ffdcf8b59c905fb
Author: NeKon69 <nobodqwe at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/SemaLifetimeSafety.h
A clang/test/Sema/LifetimeSafety/safety-c.c
A clang/test/Sema/attr-lifetime-capture-by.c
A clang/test/Sema/attr-lifetimebound.c
Log Message:
-----------
Reapply "[LifetimeSafety] Support C Language in LifetimeSafety" (#204536)
There are a few constraints that make supporting C a bit cumbersome:
* C assignment expressions are rvalues, unlike C++ assignment
expressions. The analysis has to account for the different origin shape
of the assignment result by stripping an origin from `LHSExpr`.
* Function addresses in C do not need lifetime tracking. Taking `&f`
should not create origins because functions do not have local object
lifetime (unlike in C++).
* GNU C permits `void*` subscripting/pointer arithmetic. Expressions
like `bytes[0]` (where `bytes` is `void*`) have type `void` and do not
produce an addressable object with origins, even though `void*` itself
can carry pointer origins.
* Some C subscripts, such as vector subscripts, are not GLValues, so
they do not have storage origins to track.
* `va_arg(ap, array_type)` is undefined behavior, so we skip it instead
of trying to model origins for it.
* C does not have a spelling for `[[gsl::Owner]]` / `[[gsl::Pointer]]`,
so C support is limited to pointer/object cases that can be represented
in C and `__attribute__((lifetimebound))`.
What validation I performed:
* Ran a crash-smoke test over C files in the LLVM tree with
`-Wlifetime-safety`. It finished without crashes after the fixes.
* Generated a C-only subset of `warn-lifetime-safety.cpp` and compiled
it with `-Wlifetime-safety`, to reuse existing pointer-flow coverage in
C mode.
* Built the Linux kernel (with `allmodconfig` build) and got a few
warnings. So firstly there are a few uninteresting true positives that
are intentional in the tests, and our checker catches them. (this is the
majority, approximately 90% of all warnings come from these intentional
leaky tests). There were also a few conservative warnings where the
analysis does not prove the relevant path condition, so they look like
expected false positives rather than C support issues. And our analysis
also got 1 correctly!
Closes #203213
Assisted-by: GPT-5.5 for writing bash scripts to perform validation.
Different to #203270 in that it doesn't add unrelated `.gitignore`
changes.
Commit: d85766e2053a35d4fc5b2593d8076e6c7d96a49a
https://github.com/llvm/llvm-project/commit/d85766e2053a35d4fc5b2593d8076e6c7d96a49a
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/test/AST/ByteCode/literals.cpp
Log Message:
-----------
[clang][bytecode] Diagnose jumps to case labels in StmtExprs (#204539)
We need another bit of state to save if the switch was also in the
StmtExpr or not.
Commit: 7c05d28b817fff25507c0c1aa8a1129f4a69f223
https://github.com/llvm/llvm-project/commit/7c05d28b817fff25507c0c1aa8a1129f4a69f223
Author: Martin Storsjö <martin at martin.st>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
M llvm/test/Transforms/PhaseOrdering/AArch64/loopflatten.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/matrix-extract-insert.ll
M llvm/test/Transforms/PhaseOrdering/X86/hoist-load-of-baseptr.ll
M llvm/test/Transforms/PhaseOrdering/unswitch-cold-func.ll
R llvm/test/Transforms/PhaseOrdering/unswitch-nontrivial-cold-func.ll
M llvm/test/Transforms/SimpleLoopUnswitch/AMDGPU/uniform-unswitch.ll
M llvm/test/Transforms/SimpleLoopUnswitch/PGO-nontrivial-unswitch2.ll
M llvm/test/Transforms/SimpleLoopUnswitch/PGO-nontrivial-unswitch3.ll
R llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-loop-guard.ll
M polly/test/Support/pipelineposition.ll
Log Message:
-----------
Revert "[SimpleLoopUnswitch] Generalize the notion of trivial unswitching" (#204538)
Reverts llvm/llvm-project#193989.
That change caused failed assertions, see that PR for examples.
Commit: 4d812375c17489019500fa475d76098074d9681a
https://github.com/llvm/llvm-project/commit/4d812375c17489019500fa475d76098074d9681a
Author: Graham Hunter <graham.hunter at arm.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
M llvm/test/Transforms/LoopVectorize/AArch64/early_exit_with_stores.ll
M llvm/test/Transforms/LoopVectorize/RISCV/early_exit_with_stores.ll
M llvm/test/Transforms/LoopVectorize/VPlan/early_exit_with_stores_vplan.ll
M llvm/test/Transforms/LoopVectorize/early_exit_with_stores.ll
M llvm/test/Transforms/LoopVectorize/interleave_uncountable_exits.ll
M llvm/test/Transforms/LoopVectorize/scalarized_conditional_ops_uncountable_exits.ll
M llvm/test/Transforms/LoopVectorize/tail_fold_uncountable_exits.ll
M llvm/unittests/Transforms/Vectorize/CMakeLists.txt
M llvm/unittests/Transforms/Vectorize/VPlanTestBase.h
R llvm/unittests/Transforms/Vectorize/VPlanUncountableExitTest.cpp
Log Message:
-----------
[LV] Follow up to uncountable exit with side effects vectorization (#201589)
Addressing post-commit comments on #178454.
Commit: 2563af1c9ec15c2dbdebf8d7aa8ff9817204ab0e
https://github.com/llvm/llvm-project/commit/2563af1c9ec15c2dbdebf8d7aa8ff9817204ab0e
Author: Mark Murray <mark.murray at arm.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/test/Driver/aarch64-mcpu.c
M clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c
M clang/test/Misc/target-invalid-cpu-note/aarch64.c
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/unittests/TargetParser/TargetParserTest.cpp
Log Message:
-----------
[AArch64] Add armagicpu CPU (#202557)
Commit: b636f436d3a00bc3cc81812cf646d8b3c5ef435a
https://github.com/llvm/llvm-project/commit/b636f436d3a00bc3cc81812cf646d8b3c5ef435a
Author: Valery Pykhtin <valery.pykhtin at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/SIDefines.h
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
Log Message:
-----------
[NFC][AMDGPU] Introduce SIInstrFlags predicates for TSFlags access (#201512)
Add inline predicate templates to SIDefines.h for each TSFlags bit
(isSALU, isVOP3, isFLAT, isMaybeAtomic, hasFPClamp, ...) plus compound
predicates (isAtomic, isSegmentSpecificFLAT, isImage, isVMEM).
Route all SIInstrInfo.h thin wrapper bodies through the new predicates
instead of reading TSFlags bits directly.
---------
Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>
Commit: 567eeec75c26f4d0fca28659fb829b8b466539f2
https://github.com/llvm/llvm-project/commit/567eeec75c26f4d0fca28659fb829b8b466539f2
Author: JoshuaGrindstaff <99843934+JoshuaGrindstaff at users.noreply.github.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
M llvm/test/CodeGen/AMDGPU/agpr-register-count.ll
M llvm/test/CodeGen/AMDGPU/amdpal-metadata-agpr-register-count.ll
M llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size-vgpr-limit.ll
M llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
M llvm/test/CodeGen/AMDGPU/dvgpr-vgpr-count-propagation-direct-chain.ll
M llvm/test/CodeGen/AMDGPU/dvgpr-vgpr-count-propagation-indirect.ll
M llvm/test/CodeGen/AMDGPU/dvgpr-vgpr-count-propagation.ll
M llvm/test/CodeGen/AMDGPU/function-resource-usage.ll
A llvm/test/CodeGen/AMDGPU/indirect-call-agpr-cap.ll
A llvm/test/CodeGen/AMDGPU/indirect-call-sgpr-cap.ll
A llvm/test/CodeGen/AMDGPU/indirect-call-vgpr-cap.ll
M llvm/test/CodeGen/AMDGPU/mcexpr-knownbits-assign-crash-gh-issue-110930.ll
M llvm/test/CodeGen/AMDGPU/object-linking-local-resources.ll
Log Message:
-----------
[AMDGPU] Capping max number of registers to function's occupancy budget for indirect calls (#199765)
Depends on https://github.com/llvm/llvm-project/pull/199746
Changed the SetMaxReg Lambda function to cap at
ST.getMaxNumVectorRegs(F) for VGPRs and AGPRs and ST.getMaxNumSGPRs(F)
for SGPR. ST.getMaxNumVectorRegs(F) and ST.getMaxNumSGPRs(F) returns the
budget for the given function F and is mainly determined by the
occupancy of the function.
This cap is needed since the module's max could overestimate register
usage because it includes functions that earlier in the compiler was
determined inaccessible by that indirect call. ST.getMaxNumVectorRegs(F)
and ST.getMaxNumSGPRs(F) were calculated according to an more accurate
call graph.
This fixes an issue of overinflated number of VGPR/AGPR for kernels that
have indirect function calls. This inflation has led to some kernels
with indirect calls to go over the limit for VGPR/AGPR and crash.
Included SGPR in fixes since the same issue could conceivably happen
with those also.
---------
Co-authored-by: JoshuaGrindstaff <jgrindst at amd.com>
Commit: 08b557bf5139394194be22359268b7b88f81faae
https://github.com/llvm/llvm-project/commit/08b557bf5139394194be22359268b7b88f81faae
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
A clang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_12-5-generic.bc
M clang/test/Driver/hip-sanitize-options.hip
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
R llvm/test/CodeGen/AMDGPU/gfx12-5-generic-no-xnack.ll
Log Message:
-----------
AMDGPU: Remove xnack-any-only subtarget feature and handling (#204514)
This reverts commit f4caa0a172d96597c375e6b6b2192c289723a6b9.
This feature was added to gfx12-5-generic only, which does not make
sense given that both gxf1250 and gfx1251 have the same unconditional
xnack handling. It also does not make sense to diagnose trying to use
a specific xnack mode on the generic target only, and only from the
backend.
The current feature management is a confusing mess, given that we have
2 parallel feature systems. AMDGPUTargetParser has a table containing
a bitmask of features, which already contained FEATURE_XNACK_ALWAYS
for gfx1250/gfx1251, but not gfx12-5-generic. Add this handling there
so the sanitizer detection is consistent on the generic target.
These 2 feature tables probably should be unified in some way. We also
probably should have a subtarget feature for the xnack handling, but it
should be inverted. xnack-any-only is an antifeature, in that it removes
functionality from the base target. It would be better to invert this,
so all of the older targets support configurable xnack modes.
Commit: 12aefe26cedd9a8f94546cc1f2be285cfddcc861
https://github.com/llvm/llvm-project/commit/12aefe26cedd9a8f94546cc1f2be285cfddcc861
Author: shivaramaarao <58245296+shivaramaarao at users.noreply.github.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/include/clang/Options/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/include/flang/Frontend/CodeGenOptions.def
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Frontend/FrontendActions.cpp
A flang/test/Driver/split-lto-unit.f90
A flang/test/Integration/split-lto-unit-2.f90
Log Message:
-----------
[Flang][Driver] Support for -fsplit-lto-unit option in flang driver (#202858)
When mixing Fortran objects from Flang with C/C++ objects compiled by
Clang during a combined LTO build, it is necessary to ensure that all
files use the same setting for split-lto-unit. This requires the support
for -fsplit-lto-unit option in the flang driver. This support is added
as part of this commit.
Co-authored-by: Shivarama Rao <shivarama.rao at amd.com>
Commit: d65d7a15997473c4831e8486b8aaf5242aecf99e
https://github.com/llvm/llvm-project/commit/d65d7a15997473c4831e8486b8aaf5242aecf99e
Author: Gábor Horváth <xazax.hun at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/lib/Analysis/LifetimeSafety/LoanPropagation.cpp
M clang/test/Sema/LifetimeSafety/dangling-field.cpp
M clang/test/Sema/LifetimeSafety/dangling-global.cpp
Log Message:
-----------
[LifetimeSafety] Count escape facts when classifying persistent origins (#204485)
computePersistentOrigins marks an origin persistent (kept across CFG
blocks)
only if it appears in more than one block, but it omitted
OriginEscapesFact.
A global is not seeded at function entry, so a global assigned a stack
address
on a conditional or loop path had its origin appear only in the storing
block;
misclassified as block-local, its loan was dropped at the join before
the
escape check, a silently missed dangling-global
(stack-use-after-return).
Count the escaped origin as a cross-block appearance.
Assisted-by: Claude Opus 4.8
Co-authored-by: Gabor Horvath <gaborh at apple.com>
Commit: 61f46186b0fd72cfdff9bd9d455e5141d1dd1c35
https://github.com/llvm/llvm-project/commit/61f46186b0fd72cfdff9bd9d455e5141d1dd1c35
Author: Evgenii Kudriashov <evgenii.kudriashov at intel.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp
A llvm/test/CodeGen/X86/isel-invoke.ll
Log Message:
-----------
[X86][GlobalISel] Explicitly legalize G_INVOKE_REGION_START (#203503)
Removing dependency on the legacy ruleset similarly to #197374
The missing testing coverage was found during LegacyLegalizerInfo
removal in #197308
Commit: 6236b9a421d387eea836e123a091df585ae5dc9e
https://github.com/llvm/llvm-project/commit/6236b9a421d387eea836e123a091df585ae5dc9e
Author: adalal-2441 <adalal at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86CompressEVEX.cpp
A llvm/test/CodeGen/X86/compress-evex-vpmov-kill.mir
Log Message:
-----------
[X86] Fix stale kill flag when folding VPMOV*2M + KMOV to VMOVMSK (#204342)
tryCompressVPMOVPattern folds VPMOV*2M + KMOV into a single VMOVMSK in
place: it changes the KMOV's opcode and repoints its source operand from
the mask k-register to the XMM source via MachineOperand::setReg().
setReg() only changes the register number and keeps the operand's other
flags, so the kill flag computed for the mask ("killed $k0") is reused
for the XMM source. When the source is still live this marks it killed,
which the machine verifier reports as a use of an undefined register.
We should instead use the kill flag from the VPMOV's source operand. The
forward scan already guarantees the source is not redefined between the
VPMOV and the KMOV, so the VPMOV's flag is correct at the relocated
read.
Found via @jlebar's X86 LLVM bug-hunt / FuzzX effort:
https://github.com/SemiAnalysisAI/FuzzX/tree/master/x86/bugs/043-compress-evex-vpmov-srcvec-clobber-kmov
cc @jlebar
Commit: 5fe913294935636bb725b330dff499eae5d7bcab
https://github.com/llvm/llvm-project/commit/5fe913294935636bb725b330dff499eae5d7bcab
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Core/BUILD.gn
Log Message:
-----------
[gn build] Port 6e21a04a5a96 (#204576)
Commit: 8b0462ff960d71201e2eabd8789333b74a240a9c
https://github.com/llvm/llvm-project/commit/8b0462ff960d71201e2eabd8789333b74a240a9c
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/lib/Driver/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/FrontendTool/BUILD.gn
A llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/SourceTransformation/BUILD.gn
M llvm/utils/gn/secondary/clang/tools/clang-ssaf-analyzer/BUILD.gn
M llvm/utils/gn/secondary/clang/tools/clang-ssaf-linker/BUILD.gn
M llvm/utils/gn/secondary/clang/unittests/ScalableStaticAnalysisFramework/BUILD.gn
Log Message:
-----------
[gn] port 53dabae40fb3a8514 (ssaf/SourceTransformation) (#204574)
Commit: 7fda520854cd3993f46c417cdc94c83cd3d192fb
https://github.com/llvm/llvm-project/commit/7fda520854cd3993f46c417cdc94c83cd3d192fb
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/Transforms/Vectorize/BUILD.gn
Log Message:
-----------
[gn build] Port 4d812375c174 (#204575)
Commit: 1343b646697fff896af5c2a0a99135db177ae43d
https://github.com/llvm/llvm-project/commit/1343b646697fff896af5c2a0a99135db177ae43d
Author: Andrew Haberlandt <ahaberlandt at apple.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M compiler-rt/cmake/builtin-config-ix.cmake
Log Message:
-----------
[compiler-rt] Fix default builtins target _Float16 detection on x86_64/i386 (#204474)
Commit: d77f3bf53f43f5b5c7c00c8320b3f5773a5751c4
https://github.com/llvm/llvm-project/commit/d77f3bf53f43f5b5c7c00c8320b3f5773a5751c4
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/clang/tools/clang-ssaf-format/BUILD.gn
Log Message:
-----------
[gn] port 53dabae40fb3a8514 more (#204578)
Commit: 23abfa0a812fc22353c640c9311960ed63e7fdd9
https://github.com/llvm/llvm-project/commit/23abfa0a812fc22353c640c9311960ed63e7fdd9
Author: ziereis <44057120+ziereis at users.noreply.github.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td
M mlir/test/Conversion/TosaToArith/tosa-to-arith.mlir
Log Message:
-----------
[mlir][tosa] Allow rank-0 vector operands in tosa.apply_scale (#199924)
I was facing a bug that can be reproduced this way:
```mlir
// RUN: mlir-opt --transform-interpreter tosa_apply_scale_rank0_repro.mlir
#map = affine_map<(d0) -> (d0)>
#map_scalar = affine_map<(d0) -> ()>
func.func @repro(%input: tensor<64xi32>, %scalar_t: tensor<i32>,
%out_init: tensor<64xi8>) -> tensor<64xi8> {
%c31_i8 = arith.constant 31 : i8
%cScale_i32 = arith.constant -1010580540 : i32
%tile_out = linalg.generic
{ indexing_maps = [#map, #map_scalar, #map],
iterator_types = ["parallel"] }
ins(%input, %scalar_t : tensor<64xi32>, tensor<i32>)
outs(%out_init : tensor<64xi8>) {
^bb0(%in: i32, %in_4: i32, %out: i8):
%scaled = tosa.apply_scale %in_4, %cScale_i32, %c31_i8
{ rounding_mode = SINGLE_ROUND } : (i32, i32, i8) -> i32
%as_i8 = arith.trunci %scaled : i32 to i8
linalg.yield %as_i8 : i8
} -> tensor<64xi8>
return %tile_out : tensor<64xi8>
}
module attributes {transform.with_named_sequence} {
transform.named_sequence @__transform_main(%arg0: !transform.any_op {transform.readonly}) {
%func = transform.structured.match ops{["func.func"]} in %arg0
: (!transform.any_op) -> !transform.any_op
%op = transform.structured.match ops{["linalg.generic"]} in %arg0
: (!transform.any_op) -> !transform.any_op
transform.structured.vectorize %op vector_sizes [64] : !transform.any_op
transform.apply_patterns to %func {
transform.apply_patterns.vector.transfer_permutation_patterns
transform.apply_patterns.vector.sink_ops
} : !transform.any_op
transform.yield
}
}
```
Which lead to the following error:
```mlir
error: 'tosa.apply_scale' op operand #0 must be signless-integer-like, but got 'vector<i32>'
note: see current operation: %5 = "tosa.apply_scale"(%4, %1, %0) ... : (vector<i32>, vector<i32>, vector<i8>) -> vector<i32>
```
After this patch it gives the following IR:
```mlir
func.func @repro(%arg0: tensor<64xi32>, %arg1: tensor<i32>, %arg2: tensor<64xi8>) -> tensor<64xi8> {
%cst = arith.constant dense<31> : vector<i8>
%cst_0 = arith.constant dense<-1010580540> : vector<i32>
%c0 = arith.constant 0 : index
%0 = ub.poison : i32
%1 = vector.transfer_read %arg1[], %0 : tensor<i32>, vector<i32>
%2 = tosa.apply_scale %1, %cst_0, %cst {rounding_mode = SINGLE_ROUND} : (vector<i32>, vector<i32>, vector<i8>) -> vector<i32>
%3 = arith.trunci %2 : vector<i32> to vector<i8>
%4 = vector.broadcast %3 : vector<i8> to vector<64xi8>
%5 = vector.transfer_write %4, %arg2[%c0] {in_bounds = [true]} : vector<64xi8>, tensor<64xi8>
return %5 : tensor<64xi8>
}
```
Claude suggested the best fix for this is to ease the "no 0 rank vectors" restriction on the tosa.apply_scale op so this is what this PR includes. I honestly can't 100% judge if this is the right way to fix this but i couldn't find anything that would speak against it.
Assisted by: Claude Code 4.7
Commit: e8a022afb1f371a036d990054f916bcb67a8ced5
https://github.com/llvm/llvm-project/commit/e8a022afb1f371a036d990054f916bcb67a8ced5
Author: Pavel Labath <pavel at labath.sk>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M libc/include/llvm-libc-macros/linux/sys-ioctl-macros.h
Log Message:
-----------
[libc] Include linux headers to get ioctl macros (#204555)
Linux has many existing ioctls and keeps adding them, so a
hand-maintained list would always be out of date. Additionally, some
ioctls have architecture specific numbers (some in a very subtle way --
by having the number depend on the size of a structure).
asm/ioctls.h and linux/sockios.h are pretty clean, and are already
included by glibc, so we can just do the same to get the latest
definitions.
Commit: 3c33c36d925f5d278501fea55ef5a2e1f8f331ca
https://github.com/llvm/llvm-project/commit/3c33c36d925f5d278501fea55ef5a2e1f8f331ca
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M libcxx/src/atomic.cpp
Log Message:
-----------
[libc++] Use public os_sync API instead of private __ulock on newer Apple platforms (#202519)
The atomic wait and wake implementation on Apple platforms currently
relies on `__ulock_wait` and `__ulock_wake`, which are private kernel
APIs. This is a problem for anyone shipping apps through the App Store
since Apple flags private symbol usage during review.
Starting with macOS 14.4 and iOS 17.4, Apple ships public replacements
through `os_sync_wait_on_address` and `os_sync_wake_by_address_any/all`
in `<os/os_sync_wait_on_address.h>`. These cover the same functionality
and are documented, stable, and safe for App Store submissions.
This patch makes use of the public APIs instead of the private ones
whenever the underlying OS permits it.
This takes over #182947.
Fixes #182908
Fixes #146142
Co-authored-by: Bbn08 <atrancendentbeing at gmail.com>
Commit: d2dd4ce545bd5753f37181f2821bc8ac07601de8
https://github.com/llvm/llvm-project/commit/d2dd4ce545bd5753f37181f2821bc8ac07601de8
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/EvaluationResult.h
Log Message:
-----------
[clang][bytecode][NFC] Mark results as non-empty when taking a value (#204568)
This was missing and all the EvaluationResults always ended up being
empty even though their APValue was set. Since the assert(!empty()) was
missing from `takeAPValue()`, nobody noticed though.
Commit: f1bdb76cbf817c584cdd2853a49d9a992558c954
https://github.com/llvm/llvm-project/commit/f1bdb76cbf817c584cdd2853a49d9a992558c954
Author: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
M mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
M mlir/test/Conversion/MemRefToLLVM/convert-dynamic-memref-ops.mlir
M mlir/test/Conversion/MemRefToLLVM/expand-then-convert-to-llvm.mlir
Log Message:
-----------
[mlir][MemRefToLLVM] fix incorrect `nuw` on `GEP/mul` when lowering `memref.load/store` with negative strides (#204309)
`MemRefToLLVM` was unconditionally emitting `getelementptr inbounds|nuw`
(and consequently `mul overflow<nsw,nuw>` on every intermediate index
computation inside `getStridedElementPtr`) for all `memref.load` and
`memref.store` lowerings.
This is _unsound_ when any stride is negative or dynamic.
`getStridedElementPtr` propagates `GEPNoWrapFlags::nuw` to
`IntegerOverflowFlags::nuw` on every intermediate `llvm.mul` and
`llvm.add` it emits. With a negative stride (e.g. `-1`, which is
`2^64-1` unsigned), an access like index=5 produces `mul nuw 5,
(2^64-1)`, which unsigned-overflows and yields poison per LangRef —
regardless of whether the final offset happens to be non-negative.
This issue came up in the discussion in PR #202118. Thanks to
@banach-space for the detailed discussion.
This PR hopefully concludes the path to fix the regression related to
`affine-super-vectorize` (see
#201180 and #202766 for details).
---------
Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Co-authored-by: Tobias Gysi <tobias.gysi at nextsilicon.com>
Commit: add2d9a68915ce4eb1482863951f98277867e00b
https://github.com/llvm/llvm-project/commit/add2d9a68915ce4eb1482863951f98277867e00b
Author: Ilia Kuklin <ikuklin at accesssoftek.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/test/tools/llvm-pdbutil/dxcontainer.test
M llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
M llvm/tools/llvm-pdbutil/DumpOutputStyle.h
M llvm/tools/llvm-pdbutil/StreamUtil.cpp
M llvm/tools/llvm-pdbutil/StreamUtil.h
M llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
M llvm/tools/llvm-pdbutil/llvm-pdbutil.h
Log Message:
-----------
[llvm-pdbutil] Add DXContainer support to `llvm-pdbutil dump` (#200485)
This patch adds `--dxcontainer` option that attempts to parse a
`DXContainer` from stream 5 data (generated by DirectX tools) of a PDB
file, and if successful, dumps the basic info about it. If `DXContainer`
wasn't parsed, shows that it is not present in the file.
Commit: 02cdcc22c96483987dbe1bad1803607db8fdbab2
https://github.com/llvm/llvm-project/commit/02cdcc22c96483987dbe1bad1803607db8fdbab2
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M libcxx/docs/Status/Cxx29Issues.csv
M libcxx/docs/Status/Cxx29Papers.csv
Log Message:
-----------
[libc++] Add Github issue links in Brno-voted papers (#204579)
Commit: de9bb21c7acdbfe2bfb763f161c49ec8fa9bf251
https://github.com/llvm/llvm-project/commit/de9bb21c7acdbfe2bfb763f161c49ec8fa9bf251
Author: Nikita Grivin <neuronspectrelin at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M libcxx/docs/ReleaseNotes/23.rst
Log Message:
-----------
[libc++] Restore release note dropped during rebase of #196495 (#204435)
A release note about transitive include removals was inadvertently
dropped during a rebase of #196495 before merge. This restores it.
Commit: 586b892672b478d0aa739e49eb3a5ef7f960530f
https://github.com/llvm/llvm-project/commit/586b892672b478d0aa739e49eb3a5ef7f960530f
Author: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M mlir/include/mlir/Conversion/Passes.td
M mlir/include/mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
A mlir/test/Conversion/VectorToLLVM/vector-load-store-to-llvm.mlir
M mlir/test/Conversion/VectorToLLVM/vector-to-llvm-interface.mlir
M mlir/test/Dialect/Affine/SuperVectorize/vectorize_2d_inbounds.mlir
Log Message:
-----------
[mlir][VectorToLLVM] add opt-in `enable-gep-inbounds-nuw` pass flag for `vector.load/store` (#202118)
> This patch follows up on #201180 and the refactoring #202766 (which
made `affine-super-vectorize` emit `in_bounds = [true]` on
`vector.transfer_read`/`write` when accesses are statically provable to
be within bounds). With that in place, the `VectorToLLVM` lowering was
still emitting `llvm.getelementptr` without `inbounds`/`nuw`, so LLVM
could not exploit the no-wrap guarantee: SCEV could not prove the index
arithmetic monotone (loop vectorizer bailed out) and BasicAliasAnalysis
fell back to conservative aliasing.
Without `inbounds`/`nuw` on the GEP that `vector.load`/`vector.store`
lower to, LLVM cannot exploit no-wrap guarantees: SCEV fails to prove
loop-index monotonicity (loop vectorizer bails), and BasicAliasAnalysis
falls back to conservative aliasing.
### Why opt-in
Unlike `memref.load`, `vector.load`/`vector.store` intentionally allow
out-of-bounds indices on several targets (SPIR-V robust buffer access,
AMDGPU buffer fat pointers read zeros / drop writes). Emitting
`inbounds` unconditionally would silently miscompile those targets. A
pass flag lets a caller assert the preconditions hold for a given
pipeline.
### What this patch does
Adds `enable-gep-inbounds-nuw` (default: off) to the
`ConvertVectorToLLVM` pass.
When set:
- `inbounds` (which implies `nusw`, hence `nsw` on intermediate
arithmetic) is always emitted.
- `nuw` is emitted only when all memref strides are statically
non-negative. `getStridedElementPtr` propagates `GEPNoWrapFlags::nuw` to
every intermediate `llvm.mul` and `llvm.add`; with a negative stride
(represented as 2^64−1 unsigned), `mul nuw idx, (2^64−1)` wraps unsigned
→ poison, even for an in-bounds index. Gating on non-negative strides
prevents this.
Masked variants (`vector.maskedload`/`vector.maskedstore`) are excluded:
they are designed for near-boundary access and must never receive these
flags.
An `assert` is added in the lowering to make the unit-trailing-stride
invariant explicit (the verifier already guarantees it).
**Thanks to @banach-space, @krzysz00 and @fabianmcg for the detailed
semantics discussion that shaped this design.**
Depends on: #201180 and #202766
AI Disclaimer: I used AI for the tests.
---------
Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Commit: 84ed575d755d3994397b7c2b591f22d01bef314a
https://github.com/llvm/llvm-project/commit/84ed575d755d3994397b7c2b591f22d01bef314a
Author: Hui <hui.xie1990 at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M libcxx/modules/std/utility.inc
Log Message:
-----------
[libc++] Add missing constant_wrapper in the std module (#202038)
The std module declaration of `constant_wrapper` was missed in #191695.
Commit: 068220af2388737552e70a6cf7cae4b709bd4eb9
https://github.com/llvm/llvm-project/commit/068220af2388737552e70a6cf7cae4b709bd4eb9
Author: eiytoq <eiytoq at outlook.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M libcxx/test/std/containers/views/mdspan/layout_left/index_operator.pass.cpp
M libcxx/test/std/containers/views/mdspan/layout_right/index_operator.pass.cpp
M libcxx/test/std/containers/views/mdspan/layout_stride/index_operator.pass.cpp
Log Message:
-----------
[libc++][mdspan][test] Correct `mapping::operator()` constraint tests (#201061)
The previous requires-expression only checked that `std::is_same_v<...>`
was a well-formed expression, so the test would pass even when the
result was false.
Commit: 6d895d02e95218907633d77ddfabd1368643938d
https://github.com/llvm/llvm-project/commit/6d895d02e95218907633d77ddfabd1368643938d
Author: Gábor Horváth <xazax.hun at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/Origins.cpp
M clang/test/Sema/LifetimeSafety/safety.cpp
Log Message:
-----------
[LifetimeSafety] Propagate loans through the GNU binary conditional (#204439)
FactsGenerator only handled the ternary, so a borrow used through the
GNU binary conditional `a ?: b` was silently dropped. Handle both via
VisitAbstractConditionalOperator, flowing from
getTrueExpr()/getFalseExpr(). For `a ?: b` getTrueExpr() is an
OpaqueValueExpr, so make OpaqueValueExpr transparent in the origin
manager and peel it in the arm-reachability check; guard against flowing
a void (e.g. throw) arm.
Assisted-by: Claude Opus 4.8
Co-authored-by: Gabor Horvath <gaborh at apple.com>
Commit: 0d02d3965c3bc4259231e9b7de7959fdd1453b15
https://github.com/llvm/llvm-project/commit/0d02d3965c3bc4259231e9b7de7959fdd1453b15
Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
M llvm/test/CodeGen/AMDGPU/agpr-register-count.ll
M llvm/test/CodeGen/AMDGPU/amdpal-metadata-agpr-register-count.ll
M llvm/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size-vgpr-limit.ll
M llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
M llvm/test/CodeGen/AMDGPU/dvgpr-vgpr-count-propagation-direct-chain.ll
M llvm/test/CodeGen/AMDGPU/dvgpr-vgpr-count-propagation-indirect.ll
M llvm/test/CodeGen/AMDGPU/dvgpr-vgpr-count-propagation.ll
M llvm/test/CodeGen/AMDGPU/function-resource-usage.ll
R llvm/test/CodeGen/AMDGPU/indirect-call-agpr-cap.ll
R llvm/test/CodeGen/AMDGPU/indirect-call-sgpr-cap.ll
R llvm/test/CodeGen/AMDGPU/indirect-call-vgpr-cap.ll
M llvm/test/CodeGen/AMDGPU/mcexpr-knownbits-assign-crash-gh-issue-110930.ll
M llvm/test/CodeGen/AMDGPU/object-linking-local-resources.ll
Log Message:
-----------
Revert "[AMDGPU] Capping max number of registers to function's occupancy budget for indirect calls" (#204605)
Reverts llvm/llvm-project#199765
Broke https://lab.llvm.org/buildbot/#/builders/10
Commit: 6ea75ecbac5337e7f8f1eb4e7647482da75f0ba7
https://github.com/llvm/llvm-project/commit/6ea75ecbac5337e7f8f1eb4e7647482da75f0ba7
Author: Max Desiatov <m_desiatov at apple.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/lib/Basic/Targets/WebAssembly.h
A clang/test/CodeGen/WebAssembly/wasm-swiftasynccall.c
A clang/test/Sema/wasm-swiftasynccall.c
Log Message:
-----------
clang: enable `swiftasynccall` for Wasm (#203330)
Follow-up to https://github.com/llvm/llvm-project/pull/188296, where in
LLVM `swiftasynccall` is lowered to Wasm `return_call` and
`return_call_indirect` instructions when tail calls are enabled. This
still needed to be enabled at the Clang level in
`checkCallingConvention` in `lib/Basic/Targets/WebAssembly.h`.
Commit: b02659ab5c405dd221f625085e2656a190d87a54
https://github.com/llvm/llvm-project/commit/b02659ab5c405dd221f625085e2656a190d87a54
Author: TelGome <93700071+TelGome at users.noreply.github.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsRISCV.td
M clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
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/include/llvm/IR/IntrinsicsRISCV.td
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvp-simd-32.ll
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
Log Message:
-----------
[RISCV][P-ext] Support Packed Absolute Value and Absolute Difference (#203840)
This pr support RISC-V P extension intrinsics [Packed Absolute Value and
Absolute
Difference](https://github.com/riscv/riscv-p-spec/blob/master/P-ext-intrinsics.adoc#packed-absolute-value-and-absolute-difference)
Commit: ee2c8969c73990ca878167c496b4b135dff9c00e
https://github.com/llvm/llvm-project/commit/ee2c8969c73990ca878167c496b4b135dff9c00e
Author: Mircea Trofin <mtrofin at google.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/include/llvm/Transforms/Coroutines/CoroInstr.h
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/Coroutines/CoroCleanup.cpp
M llvm/lib/Transforms/Coroutines/Coroutines.cpp
A llvm/test/Transforms/Coroutines/coro-id-alias.ll
Log Message:
-----------
[Coro] Handle aliases to coroutines (#204408)
Aliases to coroutines appear to not be handled, this PR addresses that.
Commit: fabd3396429b09a265d272ca891dbabe278ba594
https://github.com/llvm/llvm-project/commit/fabd3396429b09a265d272ca891dbabe278ba594
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/combine-binop-neg.mir
Log Message:
-----------
[GISel] CombinerHelper::matchBinopWithNegInner should only look for not on the LHS of G_SUB. (#204257)
Fixes #204219.
Commit: a696a09aa7a40a3f764157b090367dd74399d863
https://github.com/llvm/llvm-project/commit/a696a09aa7a40a3f764157b090367dd74399d863
Author: Julian Nagele <j.nagele at apple.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/include/module.modulemap
Log Message:
-----------
[clang][modules] Add BuiltinsAVR.def as textual header in module.modulemap (#204584)
The new 'BuiltinsAVR.def' was introduced in https://github.com/llvm/llvm-project/pull/203214.
Commit: 3f7f7323401a51db5cd858e6511c7b85db420aa2
https://github.com/llvm/llvm-project/commit/3f7f7323401a51db5cd858e6511c7b85db420aa2
Author: Wael Yehia <wmyehia2001 at yahoo.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
A llvm/test/Transforms/PGOProfile/atomic_counter_promote.ll
M llvm/test/Transforms/PGOProfile/counter_promo.ll
Log Message:
-----------
[PGO] Implement PGO counter promotion for atomic updates (#202487)
Currently PGO counter updates are promoted/hoisted out of loops where
possible, in order to reduce memory accesses. The promotion is
implemented via the LoadAndStorePromoter and SSAUpdater classes.
When the updates are relaxed atomic, however, hoisting doesn't happen.
Reading the semantics of relaxed atomics, it should be legal to do
similar promotions, but teaching LoadAndStorePromoter and SSAUpdater
seems like alot of work and would touch common code used by alot of
llvm optimizations such as SROA.
An easier approach, implemented here, is to perform the promotions on
non-atomic updates, then transform the promoted updates to (relaxed)
atomic.
I also added a flag-guarded sanity check, that a user can use to make
sure all PGO counter updates have been made atomic (in case we miss
some).
On a subset of SPEC2017, which is single threaded, on a Power9 system,
the training run times are as follows:
```
Below are data from 3 test runs:
noatomic: -fprofile-generate
atomic.nopromote: -fprofile-generate -fprofile-update=atomic -mllvm -do-counter-promotion=0
atomic.promote: -fprofile-generate -fprofile-update=atomic -mllvm -do-counter-promotion=1
The values are runtime in seconds of the -fprofile-generate instrumented binary (the train step).
and the percentages are the ratio of the runtime over the noatomic runtime (the baseline).
atomic.nopromote atomic.promote noatomic
508.namd_r 113.6 250.22% 52.2 114.98% 45.4
511.povray_r 45.8 551.81% 39.3 473.49% 8.3
519.lbm_r 44.6 228.72% 44.5 228.21% 19.5
538.imagick_r 565 1822.58% 46.6 150.32% 31
544.nab_r 824.4 611.12% 224.5 166.42% 134.9
500.perlbench_r 464.5 470.62% 525.3 532.22% 98.7
505.mcf_r 664.9 638.71% 537.7 516.52% 104.1
520.omnetpp_r 373.8 364.33% 271.8 264.91% 102.6
523.xalancbmk_r 1383.2 606.67% 1028.1 450.92% 228
525.x264_r 1097.7 3118.47% 179.7 510.51% 35.2
531.deepsjeng_r 913.1 844.68% 778.2 719.89% 108.1
541.leela_r 1753.3 1109.68% 1336.9 846.14% 158
557.xz_r 392.3 797.36% 224.7 456.71% 49.2
============================================================================
average 878.07% 417.79%
```
---------
Co-authored-by: Wael Yehia <wyehia at ca.ibm.com>
Commit: dde579becf31add55c5a473f28fd010df36d2490
https://github.com/llvm/llvm-project/commit/dde579becf31add55c5a473f28fd010df36d2490
Author: Sairudra More <sairudra60 at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A mlir/test/Target/LLVMIR/openmp-taskgroup-task-reduction.mlir
M mlir/test/Target/LLVMIR/openmp-todo.mlir
Log Message:
-----------
[mlir][OpenMP] Translate task_reduction on omp.taskgroup (#199565)
This patch adds LLVM IR translation for `task_reduction` on
`omp.taskgroup`.
Flang already parses, checks, and lowers the relevant task-reduction
constructs to OpenMP MLIR, but the LLVM IR translation path was
incomplete. This patch implements the taskgroup reduction setup needed
by the follow-up taskloop and task `in_reduction` work.
For each reducer on `omp.taskgroup`, the translation emits init and
combiner helpers from the corresponding `omp.declare_reduction` regions,
builds the `kmp_taskred_input_t` descriptor array, and calls
`__kmpc_taskred_init` before entering the taskgroup body.
This patch intentionally keeps `reduction` / `in_reduction` on
`omp.taskloop.context` unsupported. Those are handled in follow-up PRs.
### Stack / review order
This PR is the first layer of the OpenMP task-reduction translation
stack:
1. #199565 — `omp.taskgroup task_reduction` translation
2. #199670 — `omp.taskloop` `reduction` / `in_reduction` translation
3. #202611 — explicit `omp.task in_reduction` translation
Related sibling follow-up:
* #199967 — `omp.target in_reduction` host-fallback lowering
The intended main review order is:
#199565 → #199670 → #202611
Please review this PR as the taskgroup `task_reduction` layer only. The
taskloop, explicit task, and target-specific pieces are split out so
each runtime lowering step can be reviewed separately.
Part of #199560.
Commit: edbba7c5c6f833d3a631d9bf70785ac5230d4ec1
https://github.com/llvm/llvm-project/commit/edbba7c5c6f833d3a631d9bf70785ac5230d4ec1
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-no-rdc-amdgcnspirv.c
M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
Log Message:
-----------
[HIP][SPIR-V] Ignore --no-lto for SPIR-V targets (#204609)
The patch adds a guard to workaround the issue, when HIP is compiled
with multiple --offload-arch options, one of which is pointing to SPIR-V
offloading. As SPIR-V has no 'no-lto' pipeline - we need to ignore
'no-lto' request for this target.
Commit: 126115f92994900cfa7c1e221317922d02278f83
https://github.com/llvm/llvm-project/commit/126115f92994900cfa7c1e221317922d02278f83
Author: Luke Hutton <luke.hutton at arm.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
M mlir/test/Dialect/Tosa/canonicalize.mlir
Log Message:
-----------
[mlir][tosa] Canonicalize avg_pool2d/max_pool2d no-ops (#203571)
Removes avg_pool2d/max_pool2d ops with unit kernel, unit stride, and
zero padding, as these are no-ops.
Commit: c0a9c4463b01afe6006012d38a4926dd317ec7f3
https://github.com/llvm/llvm-project/commit/c0a9c4463b01afe6006012d38a4926dd317ec7f3
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/IR/AutoUpgrade.cpp
A llvm/test/Assembler/autoupgrade-lifetime-intrinsics-invalid-decl.ll
Log Message:
-----------
[LLVM] Fix a bug in auto upgrading lifetime start/end intrinsics (#204601)
When creating the new intrinsic declaration, use the correct pointer
argument (arg #1) from the existing call. Currently, we use arg #0
(size) and end up creating an invalid intrinsic declaration. However,
later on we do not use this declaration directly and instead call
`CreateLifetimeStart` or `CreateLifetimeEnd` IRBuilder functions that
end up creating valid intrinsic declarations. The net result is that we
are left with a stray unused invalid declaration.
Fix this issue by creating the intrinsic with the right pointer argument
type.
Commit: de53dd06a2c3a3f4c58f057773bbfc0863f1fb75
https://github.com/llvm/llvm-project/commit/de53dd06a2c3a3f4c58f057773bbfc0863f1fb75
Author: Balaji V. Iyer. <43187390+bviyer at users.noreply.github.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M mlir/test/Analysis/DataFlow/test-staged-analyses.mlir
M mlir/test/lib/Analysis/TestDataFlowFramework.cpp
Log Message:
-----------
Added a check for unsigned integer before accessing (#204276)
Possible fix for #203862
Unsigned value is assumed but signed is possible. So added a check if it
is unsigned before accessing as unsigned, otherwise access as integer
and typecast to unsigned.
Commit: 1e2d1bbc12f6a5f5931c77d39894ee1b8679f5f8
https://github.com/llvm/llvm-project/commit/1e2d1bbc12f6a5f5931c77d39894ee1b8679f5f8
Author: Prasoon <prasoonkumar054 at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/utils/lit/lit/main.py
M llvm/utils/lit/lit/run.py
Log Message:
-----------
[lit] Migrate lit to ProcessPoolExecutor (#202681)
This PR is a foundational refactor for the lit single-process
re-architecture.
It migrates test execution from `multiprocessing.Pool` to
`concurrent.futures.ProcessPoolExecutor`. While the process model
remains unchanged (this is purely correctness and API modernization with
no behavior change on a passing suite), this migration establishes the
`concurrent.futures` API foundation required to introduce a
`ThreadPoolExecutor` backend in future PRs.
By collecting results with `as_completed` via an explicit `{future:
test}` map, this refactor also fixes two latent bugs:
1. **Stale timeout bug**: The per-iteration timeout budget was
previously computed once and reused. It is now correctly anchored to an
absolute deadline.
2. **Submission-order coupling**: Results are now safely routed by
future identity rather than submission index.
Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
Commit: 154115307ba171489125550ece373302f0ab01e1
https://github.com/llvm/llvm-project/commit/154115307ba171489125550ece373302f0ab01e1
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/test/Driver/hip-toolchain-rdc-static-lib.hip
M clang/test/Driver/hip-toolchain-rdc.hip
Log Message:
-----------
[HIP] Remove default `-flto-partitions=8` in the HIP toolchain (#203948)
Summary:
This was added and made it into a release, but it never should've been a
default argument. Partitioning the LTO is a fundamentally different
compilation model and has real impacts on the generated code. Right now
it is added silently, which breaks non-Hostcall printf and degreades
performance due to split uselists.
This is a contract that should not be made default. "Compile times" is
not a justification to silently change compilation semantics, that is
the user's build system's job. Parititioning to a magic number is not an
appropriate solution when passing -flto-partitions=8 or `-Xarch_device
-flto-partitions=8` is perfectly viable and not hidden from the user.
This resolves the 12% performance regression observed when switching to
the LTO toolchain in HIP for dcsrgemm.
Commit: bd5da5b539d471f909d75268a8ae8ceeb22a3300
https://github.com/llvm/llvm-project/commit/bd5da5b539d471f909d75268a8ae8ceeb22a3300
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M lldb/test/API/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
M lldb/test/API/functionalities/exec/TestExec.py
M lldb/test/API/functionalities/fork/resumes-child/TestForkResumesChild.py
M lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py
M lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashing.py
M lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashingStep.py
M lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
M lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferiorStep.py
M lldb/test/API/functionalities/longjmp/TestLongjmp.py
M lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py
M lldb/test/API/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
M lldb/test/API/lang/cpp/floating-types-specialization/TestCppFloatingTypesSpecialization.py
M lldb/test/API/tools/lldb-dap/exception/cpp/TestDAP_exception_cpp.py
Log Message:
-----------
[lldb][test] Skip wasm-unsupported API tests (#204625)
WebAssembly inferiors are built with -fno-exceptions and run on a wasip1
runtime with no exec/fork/setpgid, no setjmp/longjmp (needs the
exception-handling proposal), no memory-protection faults/signals, and
no _Float16/__bf16 support. Mark the corresponding API tests as skipped
on wasm so they report unsupported instead of failing to build or run.
Commit: 74a146dd9c28c083db057d7f87afbcc617319392
https://github.com/llvm/llvm-project/commit/74a146dd9c28c083db057d7f87afbcc617319392
Author: Mark Zhuang <mark.zhuang at spacemit.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M openmp/runtime/src/ompd-specific.cpp
Log Message:
-----------
[OpenMP] Improve dladdr error handling in ompd_init() (#201043)
Guard dlerror() result against NULL before passing to fprintf to avoid
confusing "(null)" output. Also guard dli_fname against NULL on the
success path before calling strrchr.
Assisted-by: Claude Sonnet 4.6
Commit: d81069d7c3da46ea7bd000c3d6ab618e3db79bd4
https://github.com/llvm/llvm-project/commit/d81069d7c3da46ea7bd000c3d6ab618e3db79bd4
Author: Mark Zhuang <mark.zhuang at spacemit.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M openmp/runtime/CMakeLists.txt
M openmp/runtime/cmake/config-ix.cmake
M openmp/runtime/src/kmp.h
M openmp/runtime/src/kmp_config.h.cmake
M openmp/runtime/src/z_Linux_util.cpp
Log Message:
-----------
[OpenMP] Control KMP_CANCEL_THREADS via CMake and detect pthread_cancel (#193681)
KMP_CANCEL_THREADS was a preprocessor switch in kmp.h, with Android and
WASI explicitly #undef-ing it. Move the control to CMake:
- Detect pthread_cancel via check_symbol_exists()
- Drive KMP_CANCEL_THREADS from that result, emitted as a 0/1 #define in
kmp_config.h.cmake (overridable with -DLIBOMP_USE_CANCEL_THREADS=OFF).
- Drop the Android/WASM special-casing
Commit: 42058d48ef4b1de3c0b11ac59a1edca35f82db74
https://github.com/llvm/llvm-project/commit/42058d48ef4b1de3c0b11ac59a1edca35f82db74
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/llvm.fptrunc.round.err.ll
M llvm/test/CodeGen/AMDGPU/llvm.fptrunc.round.ll
Log Message:
-----------
AMDGPU/GlobalISel: Regbanklegalize rules for G_INTRINSIC_FPTRUNC_ROUND (#185491)
Commit: 0f707d4dd7f098d254551f69306845bfaebb9ce4
https://github.com/llvm/llvm-project/commit/0f707d4dd7f098d254551f69306845bfaebb9ce4
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/test/CodeGen/RISCV/rvp-simd-32.ll
Log Message:
-----------
[RISCV] Remove unused CHECK prefixes in `rvp-simd-32.ll` (#204383)
They were probably introduced by merge conflicts + UTC script changes.
---------
Co-authored-by: Craig Topper <craig.topper at sifive.com>
Commit: fb6e3c8c36ba8412d6860ffe1013c1c66860a487
https://github.com/llvm/llvm-project/commit/fb6e3c8c36ba8412d6860ffe1013c1c66860a487
Author: Alexis Perry-Holby <aperry at lanl.gov>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
A flang/docs/MeetingNotes/2026/2026-06-17.md
Log Message:
-----------
[flang] Add Flang Community Call Notes from June 17th meeting (#204622)
Commit: 0a73d41791b858b9107f64d39b7541e8b3a2f230
https://github.com/llvm/llvm-project/commit/0a73d41791b858b9107f64d39b7541e8b3a2f230
Author: YongKang Zhu <yongzhu at fb.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M bolt/lib/Passes/LongJmp.cpp
Log Message:
-----------
[BOLT][AArch64] Only reserve constant-island space when an island exists (#204261)
`tentativeLayout()` aligns every function's tail to its constant island
alignment even when the function has no constant island. This over-padded
nearly every function, drifting tentative layout from emitted layout non
trivially, while the emitter only pads when emitting real constant island.
Guard with `estimateConstantIslandSize() > 0` so tentative better matches
emitted.
Commit: 8c6409765283993193ae63e3685858886a69f952
https://github.com/llvm/llvm-project/commit/8c6409765283993193ae63e3685858886a69f952
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M lldb/source/Host/windows/PythonRuntimeLoaderWindows.cpp
Log Message:
-----------
[lldb][Windows] fix missing include (#204628)
lldb fails to build when `LLDB_PYTHON_DLL_RELATIVE_PATH` is set because
of a missing include.
Commit: 2b76fe3877b626020dbc1aecbaab61a77d835f21
https://github.com/llvm/llvm-project/commit/2b76fe3877b626020dbc1aecbaab61a77d835f21
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M libc/src/math/docs/add_math_function.md
Log Message:
-----------
[libc][docs] Fix file path for fputil (#204534)
Fixes a nit in the file path ( replaces `FPUtils` correctly with `FPUtil` )
Commit: 4a86da464e16b8f18d105e620268db3ef808da97
https://github.com/llvm/llvm-project/commit/4a86da464e16b8f18d105e620268db3ef808da97
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M compiler-rt/lib/scudo/standalone/combined.h
M compiler-rt/lib/scudo/standalone/fuzz/CMakeLists.txt
R compiler-rt/lib/scudo/standalone/fuzz/get_error_info_fuzzer.cpp
M compiler-rt/lib/scudo/standalone/include/scudo/interface.h
M compiler-rt/lib/scudo/standalone/wrappers_c.cpp
Log Message:
-----------
[scudo] Remove static error info functions. (#204483)
Android was the only platform using the static error info functions. The
latest Android no longer uses them, so delete these unused functions.
These functions were implicitly exporting implementation details and
made it difficult to implement the multi-region code. This is the final
step to submit the multi-region code and modify how the region code
works.
Remove the error info fuzzer since that was only necessary since so many
values were passed in to the function.
Commit: e5ce3ed2f4ab0723e91c8d8aa04e254b8a217dc6
https://github.com/llvm/llvm-project/commit/e5ce3ed2f4ab0723e91c8d8aa04e254b8a217dc6
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/test/Transforms/SLPVectorizer/X86/runtime-alias-checks.ll
Log Message:
-----------
[SLP][NFC]Add a test with rt checks in optsize function, NFC
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/204646
Commit: 0edadae062e0e9a2d2f87c2f9f61cfdac7bedb28
https://github.com/llvm/llvm-project/commit/0edadae062e0e9a2d2f87c2f9f61cfdac7bedb28
Author: vitbur <vittorioburani at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoXCV.td
M llvm/lib/Target/RISCV/RISCVSubtarget.h
M llvm/test/CodeGen/RISCV/xcvbitmanip.ll
Log Message:
-----------
[RISCV][XCV] Fix incorrect llvm.ctlz lowering to cv.fl1 (#197288)
Fixes #197006.
The XCVbitmanip pattern `def : PatGpr<ctlz, CV_FL1, i32>;` is
semantically incorrect: `cv.fl1` returns a bit position while
`llvm.ctlz` returns a leading-zero count. They differ by up to 31 on
every non-zero input, miscompiling every use of `__builtin_clz`,
including compiler-rt's `__udivdi3`.
This PR:
- Replaces the pattern with one matching `llvm.ctlz` with
`is_zero_poison=true`, lowered to `xori (cv.fl1 rs1), 31`.
- Adds explicit `setOperationAction` calls in `RISCVISelLowering.cpp`
to route `ISD::CTLZ` to generic expansion and keep
`ISD::CTLZ_ZERO_*` matched by the `.td` pattern.
The companion `def : PatGpr<cttz, CV_FF1, i32>;` is correct as-is
(both return 32 on zero, coincide on non-zero), and is left
untouched.
See the linked issue for the full analysis including a CV32E40P sim
trace showing miscompilation of `__udivdi3` in compiler-rt.
Commit: ece20ef68083e29fe450a8f188ce90fbd2bb6356
https://github.com/llvm/llvm-project/commit/ece20ef68083e29fe450a8f188ce90fbd2bb6356
Author: Jeremy Kun <jkun at google.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitC.cpp
A mlir/test/Conversion/MemRefToEmitC/memref-with-custom-types.mlir
M mlir/test/lib/Dialect/Test/CMakeLists.txt
M mlir/test/lib/Dialect/Test/TestDialectInterfaces.cpp
M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
Log Message:
-----------
[mlir][emitc] Apply type converter to memref element types in -convert-memref-to-emitc (#203742)
This change fixes a few places where the memref-to-emitc
conversion didn't properly convert memref element types.
This PR updates both memref.alloc and memref.copy to convert the memref
element type when using the element type for `sizeof` calls, as well as
generating the output pointer type (just for `alloc`).
This was missed because there are no `convert-to-emitc` tests that use a
type converter with custom types, so I added such a registration to the
test dialect. It is worth noting that, while this patch only affects
`-convert-memref-to-emitc`, the change has no impact without the
additional type converter registrations in `-convert-to-emitc` because
there are no builtin types that have nontrivial emit conversions today.
As a drive-by improvement, I deduped a "total size in bytes" calculation
that was happening in the lowerings for both `memref.alloc` and
`memref.copy`.
Commit: 410484f0b82017cc5ee7d70c2499446e8bc1f110
https://github.com/llvm/llvm-project/commit/410484f0b82017cc5ee7d70c2499446e8bc1f110
Author: Yao Qi <yao_qi at apple.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp
M lldb/unittests/CMakeLists.txt
A lldb/unittests/ObjectContainer/CMakeLists.txt
A lldb/unittests/ObjectContainer/ObjectContainerUniversalMachOTest.cpp
Log Message:
-----------
[lldb][Mach-O] Fix two fuzzer-found hangs/crashes parsing universal Mach-O fat headers (#204471)
This fixes two denial-of-service issues in the universal (fat) Mach-O
container parser, both found by `lldb-target-fuzzer` and both reachable
from
`SBDebugger::CreateTarget` → `ObjectFile::GetModuleSpecifications` →
`ObjectContainerUniversalMachO::{GetModuleSpecifications,ParseHeader}`.
### 1. Bound the fat header arch loop by available data
`ParseHeader` read the untrusted 32-bit `nfat_arch` field and used it
directly
as the loop bound when indexing the `fat_arch` records, without
validating it
against the data actually present. A crafted header claiming
`nfat_arch = 0xFFFFFFFF` with only a few bytes of payload made the loop
spin
~4.29 billion times — `ValidOffsetForDataOfSize()` fails on every
iteration
past the real data, but the loop keeps going up to `nfat_arch`, so the
call
never returns in practice (~20 minutes under ASan). The reduced
reproducer is
40 bytes.
Fix: break out of the loop as soon as the next `fat_arch` record no
longer fits
in the remaining data. This is behavior-preserving — a failed
`ValidOffsetForDataOfSize` never advanced the offset, so the set of
parsed
`fat_archs` is unchanged; it just stops the useless spinning.
### 2. Reject self-referential slices in the fat container
`GetModuleSpecifications` re-parses every fat slice by recursing into
`ObjectFile::GetModuleSpecifications` at the slice's offset, with no
recursion-depth limit and no check that a slice advances past the
current
offset. A slice whose offset is 0 produces a recursive call with
identical
arguments (same file, same offset, same size) and recurses until the
stack
overflows. Fixing the `nfat_arch` loop bound above unmasked this for the
same
input: the initial 512-byte read zero-pads a short file, `ParseHeader`
then
parses a trailing all-zero arch record whose offset is 0, and the slice
recurses on itself.
Fix: require `slice_file_offset > file_offset` before recursing, so
every
recursive call strictly advances into the file. Offsets at or before the
current offset (including 0) and offsets inside the fat header are
skipped.
### Tests
Two API tests in `TestTargetCommand.py`, each with a `yaml2obj` fixture:
- `fat_nfat_arch_huge.yaml` — `nfat_arch = 0xFFFFFFFF` with a single
real
slice; `target create` must complete promptly.
- `fat_slice_offset_zero.yaml` — a self-referential slice at offset 0;
`target create` must skip it and fail gracefully ("is not a valid
executable") rather than crashing.
Commit: feace0917af56e35550e459e3abf41acdea1b6a9
https://github.com/llvm/llvm-project/commit/feace0917af56e35550e459e3abf41acdea1b6a9
Author: David Green <david.green at arm.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
R llvm/test/CodeGen/AArch64/aggressive-interleaving.ll
A llvm/test/Transforms/LoopVectorize/AArch64/aggressive-interleaving.ll
Log Message:
-----------
[AArch64] Move aggressive-interleaving.ll test to LoopVectorizer tests. NFC (#204652)
It looks like this test was put into CodeGen where it would better live
with
other vectorizer tests in Transforms/LoopVectorize/AArch64.
Commit: 150ddcf32ba27b1555bcafbb58356537a1c4aa73
https://github.com/llvm/llvm-project/commit/150ddcf32ba27b1555bcafbb58356537a1c4aa73
Author: Guo Chen <guochen2 at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/spillv16Kernel.ll
A llvm/test/CodeGen/AMDGPU/spillv16Kernel.mir
Log Message:
-----------
[AMDGPU][True16] NFC. update two lit test for spill v16 (#203922)
Follow up from
https://github.com/llvm/llvm-project/pull/203589#discussion_r3406309174.
Update two tests
Commit: 075795005ef85e933f5ff63ef7004a4dab655946
https://github.com/llvm/llvm-project/commit/075795005ef85e933f5ff63ef7004a4dab655946
Author: janr-bay <jrehders at baylibre.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/include/llvm/ADT/APFloat.h
M llvm/lib/Support/APFloat.cpp
M llvm/unittests/ADT/APFloatTest.cpp
Log Message:
-----------
[APFloat] Extend fltSemantics and drop special case E8M0 bit conversionJan/apfloat e8m0 (#204200)
This is one step towards being able to make APFloat extensible with
custom formats in the future.
fltSemantics gained a new flag to indicate lack of denormal support.
Combined with hasZero = 0 it means exponent 0 does not have a special
meaning. This makes it possible to remove the special case
implementation for initFromFloat8E8M0FNUAPInt and handle it in the
generic version.
The generic initFromIEEEAPInt function now also supports existing
fltSemantics flags for hasZero, and hasSignedRepr which where only
needed in the specialized initFromFloat8E8M0FNUAPInt.
Also adds new tests for bitcasting to and from APInt. There are several
tests involving bitcastToAPInt together with convert functions but none
explicitly verify the functionality of bitcastToAPInt.
The implementations of convertIEEEFloatToAPInt and initFromIEEEAPInt
also diverged a bit in the past and have been synchronized, again. This
is a separate commit as it is not strictly required and could be dropped
if the risk is considered higher than it's benefit and so it can be
tested independently.
Commit: 77f7abc772e85fbe2a1f2b21d3614334cf0041fd
https://github.com/llvm/llvm-project/commit/77f7abc772e85fbe2a1f2b21d3614334cf0041fd
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/Analysis/CostModel/AArch64/clmul-fixed.ll
M llvm/test/Analysis/CostModel/AArch64/clmul-scalable.ll
M llvm/test/Analysis/CostModel/AArch64/clmul.ll
M llvm/test/Analysis/CostModel/X86/clmul.ll
M llvm/test/CodeGen/AArch64/clmul-fixed.ll
M llvm/test/CodeGen/AArch64/clmul-scalable.ll
M llvm/test/CodeGen/AArch64/clmul.ll
M llvm/test/CodeGen/AMDGPU/clmul.ll
M llvm/test/CodeGen/PowerPC/clmul-vector.ll
M llvm/test/CodeGen/RISCV/clmul.ll
M llvm/test/CodeGen/RISCV/clmulh.ll
M llvm/test/CodeGen/RISCV/clmulr.ll
M llvm/test/CodeGen/RISCV/rvv/clmul-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-clmul.ll
M llvm/test/CodeGen/Thumb2/mve-clmul.ll
M llvm/test/CodeGen/X86/clmul-vector.ll
M llvm/test/CodeGen/X86/clmul.ll
Log Message:
-----------
[ISel] Improve `clmul` fallback implementation for `i32` and `i64` (#203727)
Improve the `clmul` fallback implementation for `i32..=i64`.
The new approach is "multiplication with holes", based on [bearssl
source](https://github.com/unkaktus/bearssl/blob/6a1dab03beac9a324fdaed36ffdeb5081ac64b9a/src/hash/ghash_ctmul64.c#L27-L56),
https://www.bearssl.org/constanttime.html#ghash-for-gcm, and the
[polyval](https://github.com/RustCrypto/universal-hashes/blob/815ddc90ea652b09804565e193e34784c94a3849/polyval/src/field_element/soft.rs#L74-L108)
crate. https://www.bearssl.org/constanttime.html#ghash-for-gcm explains
the idea.
Future work is
- extend the fallback to smaller integer types. These can use a smaller
hole (the wider hole works but uses more instructions than the naive
fallback)
- investigate how to extend this approach to wider integers. We can use
wider holes, but a recursive definition defined in terms of smaller
integer types might be better.
https://timtaubert.de/blog/2017/06/verified-binary-multiplication-for-ghash/
has some good info.
I've tested this locally with a fuzzer against the current LLVM
implementation (via the rust standard library) and `pclmulqdq`.
CC https://github.com/llvm/llvm-project/issues/203694
CC: @RKSimon, @topperc, @eisenwave, @xarkenz, @artagnon.
Commit: 3aad8a1e53acfaf5af909dd7c4e14096a5baae1c
https://github.com/llvm/llvm-project/commit/3aad8a1e53acfaf5af909dd7c4e14096a5baae1c
Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
A llvm/test/CodeGen/AMDGPU/coexec-sched-flavor-classification.mir
Log Message:
-----------
[AMDGPU] Classify VMEM as VMEM for CoExecSched (#203396)
Previously classifyFlavor wasn't classifying buffer_loads as VMEM
Commit: bb2fcd01b8008779c2c1f178599bc22a94daa3d4
https://github.com/llvm/llvm-project/commit/bb2fcd01b8008779c2c1f178599bc22a94daa3d4
Author: vporpo <vasileios.porpodas at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
A llvm/test/CodeGen/AMDGPU/mir-dynamic-vgpr-block-size-roundtrip.mir
M llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-no-ir.mir
Log Message:
-----------
[AMDGPU][MFI] Implement missing deserialization of dynamicVGPRBlockSize (#201939)
dynamicVGPRBlockSize can be set by the amdgpu-dynamic-vgpr-block-size
attribute. MFI takes precedence when we deserialize.
Commit: 2bbec86cc5835e10085d4598d4ff189bf89fc194
https://github.com/llvm/llvm-project/commit/2bbec86cc5835e10085d4598d4ff189bf89fc194
Author: Scott Linder <scott.linder at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst
Log Message:
-----------
[AMDGPU][docs] Correct DWARF extension attribute encodings (#204419)
These were not updated when the final numbers were committed in
Dwarf.def, so update them now.
Change-Id: Ide931b835dc2c5def60dd7fad29525f598e8c8b6
Commit: a7a3849b63d17494866cd697e958e53aa1b3aed2
https://github.com/llvm/llvm-project/commit/a7a3849b63d17494866cd697e958e53aa1b3aed2
Author: Yuyang Zhang <yuyzhang at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
Log Message:
-----------
[InstCombine] Drop assumption-cache update in freezeOtherUses (#204599)
Redundant now that freezeOtherUses re-queues the rewritten users
(#202306), which re-processes them in the same iteration. Added in
#192935 to avoid a fixpoint-verifier failure.
Commit: 05ca09a60323f18a7cdf6dd67b54f057a54049fd
https://github.com/llvm/llvm-project/commit/05ca09a60323f18a7cdf6dd67b54f057a54049fd
Author: Kunal Pathak <kunalspathak.github at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
A llvm/test/Transforms/SimplifyCFG/AArch64/two-entry-phi-fold-unpredictable.ll
Log Message:
-----------
[AArch64][TTI] Surface per-CPU branch misprediction penalty to SimplifyCFG (#201484)
AArch64 scheduling models already define `MispredictPenalty` per CPU
(e.g.,
Neoverse V2 = 11, Cortex-A55 = 8, Cyclone = 16), but this value was
never surfaced through TargetTransformInfo. The base class default of 0
effectively disabled profile-guided speculation of unpredictable
branches
in SimplifyCFG's foldTwoEntryPHINode.
Override `getBranchMispredictPenalty` in AArch64TTIImpl to read from the
scheduling model, enabling SimplifyCFG to speculate instructions into
conditional selects when the speculation cost is justified by the
misprediction penalty, matching the behavior X86 already has (hardcoded
at 14 cycles).
Godbolt: https://godbolt.org/z/68czz556j
(note: I am not sure why godbolt is not showing the compiler I saved,
but essentially the example shows the comparison of aarch64 clang vs.
gcc with `-O3` flags)
---------
Co-authored-by: Kunal Pathak <kupathak at fb.com>
Commit: 9824d350b87a7c1f813268dc66a3f311a57d0448
https://github.com/llvm/llvm-project/commit/9824d350b87a7c1f813268dc66a3f311a57d0448
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
A lldb/test/Shell/Expr/wasm-no-objc-codegen.test
Log Message:
-----------
[lldb] Don't enable Objective-C in expressions on unsupported formats (#204639)
Evaluating any expression against a WebAssembly target aborted LLDB:
```
(lldb) expr (int)sizeof(Point)
LLVM ERROR: Objective-C support is unimplemented for object file format
```
WebAssembly can't JIT expressions (RuntimeDyld doesn't support the Wasm
object format, so ProcessWasm sets CanJIT to false), but it can handle
simple expressions that can be IR interpreted.
When setting up the expression's language options, LLDB speculatively
enables Objective-C, which trips up the fatal error as Objective-C code
generation only supports Mach-O, ELF, and COFF.
Add ObjCLanguageRuntime::IsSupportedForArchitecture and disable
Objective-C in the expression's language options when the target's
object file format can't support it, parsing as C/C++ instead. The IR
interpreter can then evaluate what it supports, and the rest fails
cleanly instead of crashing.
Commit: 0607caafdf51a4cddc123fc3a3d78bb244854a85
https://github.com/llvm/llvm-project/commit/0607caafdf51a4cddc123fc3a3d78bb244854a85
Author: Osman Yasar <osmanyas05 at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/include/llvm/Target/GlobalISel/Combine.td
A llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll
A llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir
M llvm/test/CodeGen/AMDGPU/bitop3-shared-operand.ll
Log Message:
-----------
[GlobalISel] Add `or_and_xor_to_or` pattern from SelectionDAG (#204614)
PR #201108 was merged and then reverted due to a failing test. This PR
fixes the tests that failed.
Commit: a358c6cac126c4088ae0bb7308acb59ad6cdd8b8
https://github.com/llvm/llvm-project/commit/a358c6cac126c4088ae0bb7308acb59ad6cdd8b8
Author: gulfemsavrun <gulfem at google.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/cmake/caches/Fuchsia-stage2.cmake
Log Message:
-----------
[CMake][Fuchsia] Add llvm-profgen to Fuchsia toolchain (#204638)
Commit: d0283591800c1ae5018f665e452743fcb778c9dc
https://github.com/llvm/llvm-project/commit/d0283591800c1ae5018f665e452743fcb778c9dc
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.h
A llvm/test/tools/dsymutil/X86/fat-multiarch-parallel-link.test
Log Message:
-----------
[DWARFLinker] Fix data race on the global parallel strategy (#204642)
DWARFLinkerImpl::link() assigned the process-global
llvm::parallel::strategy on entry. dsymutil runs link() concurrently,
one call per architecture of a universal binary, so those assignments
race. An inconsistent strategy can route per-compile-unit cloning onto a
thread that is not an llvm::parallel ThreadPoolExecutor worker, where
the per-thread allocators call getThreadIndex().
This manifested itself as an assert, but otherwise returns in a
out-of-bounds.
```
Assertion failed: ((threadIndex != UINT_MAX) && "getThreadIndex() must be called from a thread created by " "ThreadPoolExecutor"), function getThreadIndex, file Parallel.h, line 51.
```
The assert is non-deterministic and needs more than one architecture to
reproduce.
Set the strategy under llvm::call_once so only the first link writes it.
Base it on the requested thread count, which is the same for every
architecture, rather than the per-architecture compile-unit count the
code used before which would race.
rdar://179339642
Commit: adae5c0902cd05bc682a18971d7261da006471a1
https://github.com/llvm/llvm-project/commit/adae5c0902cd05bc682a18971d7261da006471a1
Author: LU-JOHN <John.Lu at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/sdiv64.ll
M llvm/test/CodeGen/AMDGPU/srem64.ll
Log Message:
-----------
[AMDGPU] Fix 64->32 bit division corner case (#204469)
Do not implement 64-bit signed division with 32-bit division if operands
are only constrained to a 32-bit signed range.
-2147483648/-1 != -2147483648/1, but their lower 32-bits are identical.
32-bit division cannot generate the correct result for both sets of
operands. Only use 32-bit division if operands are constrained to a
31-bit signed range.
Bug appears in both AMDGPUCodeGenPrepare.cpp and AMDGPUISelLowering.cpp.
Tested in https://github.com/llvm/llvm-test-suite/pull/428.
---------
Signed-off-by: John Lu <John.Lu at amd.com>
Commit: 01b8de8010d7590877c1fe5d9984706c808202c0
https://github.com/llvm/llvm-project/commit/01b8de8010d7590877c1fe5d9984706c808202c0
Author: Sairudra More <sairudra60 at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A mlir/test/Target/LLVMIR/openmp-taskloop-reduction.mlir
M mlir/test/Target/LLVMIR/openmp-todo.mlir
Log Message:
-----------
[mlir][OpenMP] Translate reductions on taskloop (#199670)
This patch adds LLVM IR translation for `reduction` and `in_reduction`
clauses on `omp.taskloop.context`.
For `taskloop reduction`, the lowering emits the implicit taskgroup
reduction setup, builds the task-reduction descriptor array, and maps
each generated task to runtime-provided private reduction storage
through `__kmpc_task_reduction_get_th_data`.
For `taskloop in_reduction`, the lowering uses the same runtime lookup
path with a null descriptor, allowing the runtime to find the enclosing
task-reduction context.
Unsupported byref, cleanup-region, and two-argument initializer forms
remain diagnosed.
### Stack / review order
This PR is part of the OpenMP task-reduction translation stack:
1. #199565 — `omp.taskgroup task_reduction` translation
2. #199670 — `omp.taskloop` `reduction` / `in_reduction` translation
3. #202611 — explicit `omp.task in_reduction` translation
Related sibling follow-up:
* #199967 — `omp.target in_reduction` host-fallback lowering
The intended main review order is:
#199565 → #199670 → #202611
This PR is stacked on #199565. Please review only the taskloop changes
in this PR for now. Once #199565 lands, I will rebase this branch onto
`main` so the diff contains only this patch.
Part of #199560.
Commit: 631aa1c8fdb4b720accf1ea1576ffbb05fbdce38
https://github.com/llvm/llvm-project/commit/631aa1c8fdb4b720accf1ea1576ffbb05fbdce38
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/openmp/runtime/src/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes d81069d (#204629)
This fixes d81069d7c3da46ea7bd000c3d6ab618e3db79bd4.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: e99e343dfdb2b1b490789a7bcba6d646a4824f15
https://github.com/llvm/llvm-project/commit/e99e343dfdb2b1b490789a7bcba6d646a4824f15
Author: mygitljf <101249452+mygitljf at users.noreply.github.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix annotation of alternative operator and (#199112)
I now annotate`and` as TT_BinaryOperator before the pointer/reference
heuristic. I left `bitand` alone since, like `&`, it can still be a
reference.
Fixes #199027.
Commit: 6c118c38a87620850ff21e3c4aa1817c9ecde5a6
https://github.com/llvm/llvm-project/commit/6c118c38a87620850ff21e3c4aa1817c9ecde5a6
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/test/CodeGen/AMDGPU/carryout-selection.ll
M llvm/test/CodeGen/AMDGPU/trans-coexecution-hazard.mir
Log Message:
-----------
[AMDGPU] Remove TransCoexecutionHazard feature from gfx13 (#204645)
No TRANS coexecution hazard on gfx13 based on the latest SPG.
Commit: 2848608d11ef6214c611045c7f56132bf4aae803
https://github.com/llvm/llvm-project/commit/2848608d11ef6214c611045c7f56132bf4aae803
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/test/CodeGen/AMDGPU/wmma-coexecution-valu-hazards.mir
M llvm/test/CodeGen/AMDGPU/wmma-hazards-gfx1250-w32.mir
Log Message:
-----------
[AMDGPU] Introduce WMMACoexecutionHazards target feature (#204654)
gfx1250, gfx1251 and gfx12-5-generic have this feature, but gfx1310
does not have it.
Commit: 8c3fc449d742055dc3a596b0cce0988bd199b1d9
https://github.com/llvm/llvm-project/commit/8c3fc449d742055dc3a596b0cce0988bd199b1d9
Author: mygitljf <101249452+mygitljf at users.noreply.github.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Fix crash on malformed operator input (#199098)
fixes the remaining clang-format crash case after #199100 landed.
The problematic input is:
```cpp
{ operator } a
```
When annotating operator, clang-format should stop scanning at } instead
of consuming it and disturbing brace scope tracking. And adds a no-crash
regression test for it.
Commit: 19f6c18e389bfea2885179fb4f50e019ef7ea002
https://github.com/llvm/llvm-project/commit/19f6c18e389bfea2885179fb4f50e019ef7ea002
Author: Wael Yehia <wmyehia2001 at yahoo.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
Log Message:
-----------
[NFC] Add comments and Fix No-Asserts build by using [[maybe_unused]] (#202488) (#204672)
Co-authored-by: Wael Yehia <wyehia at ca.ibm.com>
Commit: df9b1f89a4f4f0c7b5afc03d273a825caef268fb
https://github.com/llvm/llvm-project/commit/df9b1f89a4f4f0c7b5afc03d273a825caef268fb
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/docs/UsersManual.rst
M clang/include/clang/Options/Options.td
M clang/test/Driver/femit-dwarf-unwind.c
M clang/test/Driver/femit-dwarf-unwind.s
M clang/tools/driver/cc1as_main.cpp
M llvm/include/llvm/MC/MCTargetOptions.h
M llvm/lib/MC/MCObjectFileInfo.cpp
M llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
A llvm/test/MC/AArch64/compact-unwind-force-dwarf.s
M llvm/test/MC/MachO/ARM/compact-unwind-armv7k.s
A llvm/test/MC/X86/compact-unwind-force-dwarf.s
Log Message:
-----------
[clang][Mach-O] Add an option to force UNWIND_*_MODE_DWARF compact unwind info (#204005)
The new option value extends: `-femit-dwarf-unwind=dwarf-only`. This is
primarily intended as a testing mechanism to ensure coverage on the
DWARF-only parts of the unwinder, where previously the compact unwinder
would have taken care of most functions.
Commit: 0f4d8cefbf0e00e560d57cffe84064d1887246b4
https://github.com/llvm/llvm-project/commit/0f4d8cefbf0e00e560d57cffe84064d1887246b4
Author: Łukasz Plewa <lukasz.plewa at intel.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M offload/plugins-nextgen/level_zero/include/L0CmdListManager.h
M offload/plugins-nextgen/level_zero/include/L0Context.h
M offload/plugins-nextgen/level_zero/include/L0Device.h
M offload/plugins-nextgen/level_zero/include/L0Queue.h
M offload/plugins-nextgen/level_zero/src/L0Context.cpp
M offload/plugins-nextgen/level_zero/src/L0Device.cpp
M offload/plugins-nextgen/level_zero/src/L0Queue.cpp
M offload/unittests/OffloadAPI/memory/olMemFill.cpp
M offload/unittests/OffloadAPI/queue/olLaunchHostFunction.cpp
Log Message:
-----------
[offload][l0] Implement olLaunchHost function for level zero plugin (#204173)
Adds support to enqueue host tasks in Inorder queues for the L0 plugin.
Commit: 46b5bc7d786cf4cb889ae3489964f1809ab4689b
https://github.com/llvm/llvm-project/commit/46b5bc7d786cf4cb889ae3489964f1809ab4689b
Author: Craig Topper <craig.topper at sifive.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvp-simd-64.ll
Log Message:
-----------
[RISCV][P-ext] Fold (PSRL/PSRA (concat (trunc (PSRL X, C1)), (trunc (PSRL Y, C1))), C2). (#204659)
into (concat (trunc (PSRL/PSRA X, C1+C2)), (trunc (PSRL/PSRA Y,
C1+C2))). If C1 is equal to the number of bits discarded by the truncate.
We recently added this for for a single truncate. This expands it to
concatenated truncates.
Assisted-by: Claude
Commit: 6093c0e055d8ba3fbe0173627114cf4cad9f3900
https://github.com/llvm/llvm-project/commit/6093c0e055d8ba3fbe0173627114cf4cad9f3900
Author: Endre Fülöp <endre.fulop at sigmatechnology.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/docs/analyzer/checkers.rst
M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
M clang/test/Analysis/analyzer-enabled-checkers.c
M clang/test/Analysis/bstring.c
M clang/test/Analysis/bstring.cpp
M clang/test/Analysis/bstring_UninitRead.c
M clang/test/Analysis/cstring-uninitread-notes.c
M clang/test/Analysis/infeasible-crash.c
M clang/test/Analysis/std-c-library-functions-arg-enabled-checkers.c
M clang/test/Analysis/wstring.c
Log Message:
-----------
[analyzer] Bring unix.cstring.UninitializedRead checker out of alpha (#196292)
There have been recent improvements (#186802) and fixes (#191061)
related to this checker. The reports are no longer noisy, as evaluated
on 14 OS projects.
---------
Co-authored-by: Donát Nagy <donat.nagy at ericsson.com>
Commit: def1355cf14cec28f71b8ca947b7723641c1580d
https://github.com/llvm/llvm-project/commit/def1355cf14cec28f71b8ca947b7723641c1580d
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/AssumptionCache.h
M llvm/lib/Analysis/AssumptionCache.cpp
M llvm/lib/Transforms/Scalar/DropUnnecessaryAssumes.cpp
Log Message:
-----------
[AssumptionCache] Add replaceAssumption() to replace in-place. (#204432)
Add replaceAssumption and use it to replace assumptions when removing
bundles from assume in DropUnnecessaryAssumesPass, as suggested in PR
#203765.
Unfortunately I could not find any other candidates,that would not
require finding the WeakVH entry for assumes manually.
Compile-time impact is neutral/in the noise:
https://llvm-compile-time-tracker.com/compare.php?from=a2f4a1cabb083337ccb17c77cafb36d94c1ef52b&to=61a64fc62cbb38001894b75053f4add124869fe0&stat=instructions:u
PR: https://github.com/llvm/llvm-project/pull/204432
Commit: 5471cdb0185c262e8e5fd5219f11095ccf7ddacb
https://github.com/llvm/llvm-project/commit/5471cdb0185c262e8e5fd5219f11095ccf7ddacb
Author: Sam Elliott <aelliott at qti.qualcomm.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M compiler-rt/lib/builtins/cpu_model/riscv/hwprobe.inc
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/TargetParser/Host.cpp
Log Message:
-----------
[RISCV] Implement Zicfiss Extension Bitmask (#201699)
This implements the proposal here:
https://github.com/riscv-non-isa/riscv-c-api-doc/pull/187
This was prepared with the assistance of AI.
Commit: a20244b9463263b7e098c4c938aa7277cba5f48a
https://github.com/llvm/llvm-project/commit/a20244b9463263b7e098c4c938aa7277cba5f48a
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-constant-ops.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops-chained.ll
M llvm/test/Transforms/LoopVectorize/RISCV/interleaved-accesses.ll
M llvm/test/Transforms/LoopVectorize/narrow-interleave-groups-scalable-vf.ll
M llvm/test/Transforms/LoopVectorize/pr128062-interleaved-accesses-narrow-group.ll
Log Message:
-----------
[VPlan] Narrow interleave groups with distinct live-in operands. (#203778)
Extend narrowInterleaveGroups so bundles with live-ins can be narrowed
by using BuildVector for the operands.
This only applies to fixed VFs: for scalable VFs the number of original
iterations processed by the narrowed plan depends on vscale, so a fixed
per-field vector cannot be built.
Another missing piece for
https://github.com/llvm/llvm-project/issues/128062
On a large IR corpus based on C/C++ workloads (32k modules), this
triggers in ~38 modules.
PR: https://github.com/llvm/llvm-project/pull/203778
Commit: 8eb3b11a7cc6f87658eb82437b6e9e56fd694f89
https://github.com/llvm/llvm-project/commit/8eb3b11a7cc6f87658eb82437b6e9e56fd694f89
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVCLOps.td
M mlir/test/Dialect/SPIRV/IR/ocl-ops.mlir
M mlir/test/Target/SPIRV/ocl-ops.mlir
Log Message:
-----------
[mlir][SPIR-V] Add CL expm1 and log1p ops (#203881)
Commit: 8d2165ee2db4b355ecc79c773684f2e7618cbf98
https://github.com/llvm/llvm-project/commit/8d2165ee2db4b355ecc79c773684f2e7618cbf98
Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVGLOps.td
M mlir/test/Dialect/SPIRV/IR/gl-ops.mlir
M mlir/test/Target/SPIRV/gl-ops.mlir
Log Message:
-----------
[mlir][SPIR-V] Add GL Radians and Degrees ops (#203879)
Commit: d0981541cb55ad1ad53150b46a672f9e8149477f
https://github.com/llvm/llvm-project/commit/d0981541cb55ad1ad53150b46a672f9e8149477f
Author: Scott Linder <scott.linder at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst
Log Message:
-----------
[AMDGPU][docs] Remove abandoned augementation-related changes (#204420)
These haven't been carried forward in the DWARF committee proposal, and
we don't expect them to standardized (at least in the form presented
here). Drop them to avoid confusion.
Change-Id: I60dd6ffb5df1bb63d132733466ecf3d697f79276
Commit: 729d7ab4810e7e9765880c93d268a84e79b73068
https://github.com/llvm/llvm-project/commit/729d7ab4810e7e9765880c93d268a84e79b73068
Author: Dan Brown <61992655+danbrown-amd at users.noreply.github.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaHLSL.cpp
Log Message:
-----------
Warns that the WaveSize attribute is unsupported for the SPIR-V target. (#196004)
Addresses #187188.
Commit: 7eef82d4ff37870e8ff2288f3f0f38b2a4bfb57e
https://github.com/llvm/llvm-project/commit/7eef82d4ff37870e8ff2288f3f0f38b2a4bfb57e
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/include/clang/Frontend/CompilerInstance.h
M clang/include/clang/Frontend/CompilerInvocation.h
M clang/include/clang/Frontend/FrontendOptions.h
M clang/include/clang/Options/Options.td
A clang/include/clang/ScalableStaticAnalysisFramework/Frontend/SSAFOptions.h
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
Log Message:
-----------
[clang][ssaf][NFC] Move SSAF flags from FrontendOptions to a dedicated SSAFOptions (#204621)
This class will help keeping SSAF options apart from generic
FrontendOptions. It is inspired by AnalyzerOptions.
This way all of these SSAF (and future) options will be at a centralized place.
In preparation of rdar://179151023
Co-authored-by: Claude Opus 4.7 <noreply at anthropic.com>
Commit: a9e444adf3ca38add1d6f255a9f1802da1249dfa
https://github.com/llvm/llvm-project/commit/a9e444adf3ca38add1d6f255a9f1802da1249dfa
Author: Andrei Elovikov <andrei.elovikov at sifive.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
A llvm/test/Transforms/LoopVectorize/VPlan/scalarize-irregular-type-memops.ll
M llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-before-after-all.ll
A llvm/test/Transforms/LoopVectorize/VPlan/widen_mem_idioms.ll
Log Message:
-----------
[VPlan] Split `makeMemOpWideningDecisions` into subpasses (#182593)
The idea is to have handling of strided memory operations (either from
https://github.com/llvm/llvm-project/pull/147297 or for VPlan-based
multiversioning for unit-strided accesses) done after some mandatory
processing has been performed (e.g., some types **must** be scalarized)
but before legacy CM's decision to widen (gather/scatter) or scalarize
has been committed.
And in longer term, we can uplift all other memory widening decision to
be done here directly at VPlan level. I expect this structure would also
be beneficial for that.
Changes behavior in the presence of
`-force-target-supports-gather-scatter-ops` option, but it's probably
right to scalarize irregular types regardless of that option.
---------
Co-authored-by: Luke Lau <luke at igalia.com>
Co-authored-by: Florian Hahn <flo at fhahn.com>
Commit: e65135507e5dce715aebb1e583bc792bc2d62bec
https://github.com/llvm/llvm-project/commit/e65135507e5dce715aebb1e583bc792bc2d62bec
Author: Balázs Benics <benicsbalazs at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/include/clang/Frontend/CompilerInstance.h
M clang/include/clang/Frontend/CompilerInvocation.h
M clang/include/clang/Frontend/FrontendOptions.h
M clang/include/clang/Options/Options.td
R clang/include/clang/ScalableStaticAnalysisFramework/Frontend/SSAFOptions.h
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
Log Message:
-----------
Revert "[clang][ssaf][NFC] Move SSAF flags from FrontendOptions to a dedicated SSAFOptions" (#204686)
Reverts llvm/llvm-project#204621
Broke a Windows bot:
https://github.com/llvm/llvm-project/pull/204621#issuecomment-4746295964
https://lab.llvm.org/buildbot/#/builders/46/builds/36811
```
FAILED: ... project\clang\lib\Frontend\CompilerInvocation.cpp
tools\clang\include\clang/Options/Options.inc(9974): error C2065: 'SSAFOpts': undeclared identifier
tools\clang\include\clang/Options/Options.inc(9975): note: see reference to function template instantiation 'auto GenerateSSAFArgs::<lambda_fd4588547196dccacaf54a707a47a2b4>::operator ()<T>(const T &) const' being compiled
with
[
T=std::vector<std::string,std::allocator<std::string>>
]
```
Commit: 59d60d096048d37ff62b259eca71ac6cf1463845
https://github.com/llvm/llvm-project/commit/59d60d096048d37ff62b259eca71ac6cf1463845
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M lldb/test/API/commands/frame/diagnose/inheritance/main.cpp
M lldb/test/API/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py
M lldb/test/API/functionalities/plugins/python_os_plugin/main.c
M lldb/test/API/lang/cpp/extern_c/main.cpp
M lldb/test/API/lang/cpp/unique-types/main.cpp
M lldb/test/API/python_api/sbvalue_const_addrof/main.cpp
M lldb/test/API/python_api/sbvalue_unsigned_enum_bitfield_value/main.cpp
M lldb/test/API/python_api/target/main.c
M lldb/test/API/tools/lldb-dap/launch/main.c
M lldb/test/API/tools/lldb-dap/restart/main.c
Log Message:
-----------
[lldb][test] Avoid a 3-argument main in test inferiors (#204656)
On WebAssembly clang only wires a 0- or 2-argument main to the program
entry point: EmitMainVoidAlias emits the __main_void alias for a
no-argument main, and the 2-argument form is mangled to
__main_argc_argv.
A 3-argument main(argc, argv, envp) matches neither, so main is never
connected to the entry point and is left as an undefined-weak stub whose
body is `unreachable`. The affected inferiors trap with "Exception:
unreachable" before reaching main (even when run outside the debugger)
so any test using them fails on wasm.
Drop the unused third parameter, and where the environment is actually
iterated read it from `environ` instead. The inferiors now run on
WebAssembly and behave identically on other platforms.
Commit: 040a641988f6ed6f4fab250706ca2b620c1de2d8
https://github.com/llvm/llvm-project/commit/040a641988f6ed6f4fab250706ca2b620c1de2d8
Author: Gregory Roth <goyoroth at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/test/CodeGenHLSL/builtins/ddx-coarse-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/ddx-coarse.hlsl
M clang/test/CodeGenHLSL/builtins/ddx-fine-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/ddx-fine.hlsl
M clang/test/CodeGenHLSL/builtins/ddx.hlsl
M clang/test/CodeGenHLSL/builtins/ddy-coarse-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/ddy-coarse.hlsl
M clang/test/CodeGenHLSL/builtins/ddy-fine-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/ddy-fine.hlsl
M clang/test/CodeGenHLSL/builtins/ddy.hlsl
Log Message:
-----------
[HLSL] Correct SPIRV CHECKs in derivative tests (#176609)
The LABEL CHECKS intended to correspond to the CHECK-SPIRV directives
were misformed such that they had no effect. Given the similarity of the
output for SPIRV and DXIL, I've replaced them with common checks using
variables to match the parts that differ.
Commit: d0734df2c434c15815b2a9086102f3329dbd0a2a
https://github.com/llvm/llvm-project/commit/d0734df2c434c15815b2a9086102f3329dbd0a2a
Author: Ian Anderson <iana at apple.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/test/background-index.test
M clang-tools-extra/clangd/test/include-cleaner-batch-fix.test
M clang-tools-extra/clangd/test/path-mappings.test
M clang-tools-extra/test/clang-tidy/checkers/misc/header-include-cycle.cpp
M clang-tools-extra/test/clang-tidy/checkers/portability/restrict-system-includes-transitive.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-symlink.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/clang-tidy-mac-libcxx.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/remarks.cpp
M clang/test/APINotes/module-cache.m
M clang/test/ClangScanDeps/build-session-validation-relocated-modules.c
M clang/test/ClangScanDeps/header-search-pruning.cpp
M clang/test/ClangScanDeps/modules-context-hash.c
M clang/test/ClangScanDeps/modules-relocated-mm-macro.c
M clang/test/Driver/hip-runtime-libs-linux.hip
M clang/test/Driver/hip-version.hip
M clang/test/Driver/rocm-detect-lib-llvm.hip
M clang/test/Driver/rocm-detect.hip
M clang/test/InstallAPI/binary-attributes.test
M clang/test/InstallAPI/diagnostics-zippered.test
M clang/test/InstallAPI/directory-scanning-dylib.test
M clang/test/InstallAPI/directory-scanning-frameworks.test
M clang/test/InstallAPI/directory-scanning-subdirectories.test
M clang/test/InstallAPI/exclusive-passes-zippered.test
M clang/test/InstallAPI/extra-exclude-headers.test
M clang/test/InstallAPI/forwarded-search-paths.test
M clang/test/InstallAPI/umbrella-headers-unix.test
M clang/test/InstallAPI/umbrella-headers.test
M clang/test/Modules/add-remove-private.m
M clang/test/Modules/build-session-validation-relocated-modules.c
M clang/test/Modules/dependent-module-different-location.m
M clang/test/Modules/implicit-invalidate-common.c
M clang/test/Modules/include-relative.c
M clang/test/Modules/relative-import-path.c
M clang/test/Tooling/clang-check-mac-libcxx-abspath.cpp
M clang/test/Tooling/clang-check-mac-libcxx-fixed-compilation-db.cpp
M clang/test/Tooling/clang-check-mac-libcxx-relpath.cpp
M llvm/test/tools/llvm-cov/coverage-prefix-map.test
M llvm/test/tools/llvm-cov/directory_coverage.test
M llvm/test/tools/llvm-cov/multithreaded-report.test
M llvm/test/tools/llvm-cov/sources-specified.test
M llvm/utils/docker/build_docker_image.sh
M llvm/utils/lit/tests/filter-failed-delete.py
M llvm/utils/lit/tests/filter-failed-rerun.py
M llvm/utils/lit/tests/filter-failed.py
M llvm/utils/vscode/llvm/README.md
Log Message:
-----------
`cp -r` replaces symlinks, update to `cp -R` (#201463)
`cp -r` translates to `cp -RL` on at least FreeBSD and macOS. `-L`
replaces symlinks with flat directories which effectively breaks Apple
style bundles like frameworks. Switch to `-R` so that the symlinks don't
get broken.
Commit: 7f63067356cc142588248bbbce9577f58583cac0
https://github.com/llvm/llvm-project/commit/7f63067356cc142588248bbbce9577f58583cac0
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M lldb/include/lldb/Host/Editline.h
M lldb/source/Host/common/Editline.cpp
M lldb/unittests/Editline/EditlineTest.cpp
Log Message:
-----------
[lldb] Apply pending terminal resize before repainting the prompt (#203045)
Editline defers ApplyTerminalSizeChange() (el_resize plus refreshing the
cached terminal dimensions) to its read loop on the main thread, but
Refresh() and PrintAsync() repaint the prompt synchronously from the
resize notification on the signal thread, ahead of that apply. The
repaint therefore used the dimensions cached before the resize. Apply
any pending resize first via a shared helper. The output stream lock
already serializes these paths, and it is a no-op when nothing is
pending.
Editline keeps querying its own size (el_resize/EL_GETTC) rather than
using the dimensions the driver reports: el_resize must update libedit's
internal line-wrapping model regardless (libedit exposes no way to set
it), and editline's cursor arithmetic must use the same width libedit
wraps at. EL_GETTC reads back exactly that value, so the two cannot
diverge, while sourcing the width from the driver's separate ioctl
could.
Commit: 304c5a6587d4c23a920cc63e10c9337e285f41f9
https://github.com/llvm/llvm-project/commit/304c5a6587d4c23a920cc63e10c9337e285f41f9
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M offload/plugins-nextgen/common/src/RPC.cpp
Log Message:
-----------
[Offload] Flush pending RPC ports when tearing down a device (#204681)
The RPC client can push asynchronous work and then quit. These can be
lost if the kernel returns and is torn down before the RPC server gets
to run to check it. To handle this, we just manually flush the interface
once when we tear the device down. The interface is lock-free so this
should be safe even if the other thread is working through it as well.
Commit: d1c5cf2eac6b09c46adeb5593c11ecc0469b7bb6
https://github.com/llvm/llvm-project/commit/d1c5cf2eac6b09c46adeb5593c11ecc0469b7bb6
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M compiler-rt/test/fuzzer/fork.test
M compiler-rt/test/fuzzer/fork_corpus_groups.test
Log Message:
-----------
[Fuzzer] Bump rss_limit again (#204701)
These tests are still somewhat flaky, even after
3e11b3be3b86d4e72e73e610fb15fe431169f16e, so bump the limit again.
See
https://github.com/llvm/llvm-project/pull/203450#issuecomment-4737237866
for info on failures.
Commit: 15fa0c72562fbeb569c81352b55f3914f9e512d2
https://github.com/llvm/llvm-project/commit/15fa0c72562fbeb569c81352b55f3914f9e512d2
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M lldb/unittests/Host/HostTest.cpp
Log Message:
-----------
[lldb][test] Wait on the exit-status future in HostTest (#204704)
libc++ marks `std::future::get()` as` `[[nodiscard]]`. The cleanup
lambda only needs to block until the child is reaped, not read the
status. Use `wait()` to avoid the `-Wunused-result` warning.
Commit: 1fc592a0ebae43c222a01d90760373fcdb8e6da7
https://github.com/llvm/llvm-project/commit/1fc592a0ebae43c222a01d90760373fcdb8e6da7
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M .github/workflows/spirv-tests.yml
Log Message:
-----------
workflows/spirv-tests: Pin container image reference (#199479)
I pinned the image to the version that was used in the last successful
workflow run.
https://github.com/llvm/llvm-project/security/code-scanning/1807
https://docs.zizmor.sh/audits/#unpinned-images
Commit: a64928f267f3aeeb3571bfc7de92c432126d74e9
https://github.com/llvm/llvm-project/commit/a64928f267f3aeeb3571bfc7de92c432126d74e9
Author: Tony Varghese <tonypalampalliyil at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/PragmaKinds.h
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/Parse/ParsePragma.cpp
M clang/test/CXX/module/cpp.pre/module_decl.cpp
A clang/test/CodeGen/PowerPC/pragma-comment-copyright-modules.cpp
A clang/test/CodeGen/PowerPC/pragma-comment.c
M clang/test/CodeGen/lto-newpm-pipeline.c
A clang/test/Preprocessor/pragma-comment.c
A llvm/include/llvm/Transforms/Utils/LowerCommentStringPass.h
M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/Transforms/IPO/FunctionImport.cpp
M llvm/lib/Transforms/Utils/CMakeLists.txt
A llvm/lib/Transforms/Utils/LowerCommentStringPass.cpp
M llvm/lib/Transforms/Utils/SCCPSolver.cpp
A llvm/test/Analysis/ModuleSummaryAnalysis/implicit-ref-edges.ll
M llvm/test/CodeGen/AArch64/print-pipeline-passes.ll
M llvm/test/CodeGen/Hexagon/print-pipeline-passes.ll
M llvm/test/Other/new-pm-O0-defaults.ll
M llvm/test/Other/new-pm-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
A llvm/test/Transforms/LowerCommentString/lower-comment-string.ll
A llvm/test/Transforms/SCCP/implicit-ref-propagation.ll
Log Message:
-----------
[PowerPC][AIX] Support #pragma comment copyright for AIX (#178184)
This change supports **pragma comment copyright**.
Signature: `#pragma comment (copyright, "token_sequence")`
- The token_sequence is included in the generated executable and loaded
into memory when the program is run.
- copyright `comment` directive can appear only once in a translation
unit.
Implementation :
- Frontend (Clang): Parses `#pragma comment (copyright, "string")` for
AIX targets and emits :
- Emit weak_odr hidden hash-named global variables (e.g.,
`__loadtime_comment_str_<hash>`)
- Place strings in `__loadtime_comment` section and mark with
`!loadtime_comment` metadata
- Add to `llvm.compiler.used` to prevent early elimination
- Middle-end:
- `LowerCommentStringPass` Attaches `!implicit.ref` metadata from all
defined functions to the copyright string globals (that have
`!loadtime_comment` metadata).
- `ModuleSummaryAnalysis` (ThinLTO support) : `findImplicitRefEdges()`
collects globals referenced via `!implicit.ref` metadata and adds them
as explicit reference edges in the module summary. This ensures ThinLTO
import analysis treats copyright strings as live when their referencing
functions are live.
- `FunctionImport` (ThinLTO support):`protectImplicitRefGlobals()` finds
imported functions with `!implicit.ref` metadata pointing to
`available_externally` globals and adds those globals to
`llvm.compiler.used` to prevent DCE.
- `SCCPSolver` (optimization support):`propagateImplicitRefFromCall()`
preserves `!implicit.ref` metadata when calls are optimized away. When a
call is removed, propagates the callee's !implicit.ref metadata to the
caller and ensures copyright strings remain reachable even after
aggressive inlining/constant propagation.
- Backend: recognizes `!implicit.ref` metadata on functions and emits
`.ref` directives creating relocations from functions to copyright
strings. Linker keeps copyright strings as long as any referencing
function is kept.
Note:
- Emitting weak_odr, hidden, hash-named strings helps identical strings
from different TUs to be merged during import.
- Copyright strings are placed in a dedicated `__loadtime_comment`
section. In full LTO builds, multiple strings may be grouped into a
single csect, preventing individual linker GC. However, this groups
copyright strings "out of the way" from other data, which is beneficial
for memory layout. ThinLTO is not affected by this grouping.
- This change builds on top of [XCOFF associated
metadata](https://github.com/llvm/llvm-project/pull/159096)
---------
Co-authored-by: Tony Varghese <tony.varghese at ibm.com>
Co-authored-by: Hubert Tong <hubert.reinterpretcast at gmail.com>
Commit: 58f086d0cd58252b2b18fa95f96a566a06e96a36
https://github.com/llvm/llvm-project/commit/58f086d0cd58252b2b18fa95f96a566a06e96a36
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
A llvm/test/Transforms/RelLookupTableConverter/AArch64/no_relative_lookup_table.ll
M llvm/test/Transforms/RelLookupTableConverter/unnamed_addr.ll
Log Message:
-----------
Disable RelLookupTableConverter on AArch64 (#204669)
We're seeing miscompiles due to relative offsets overflowing 2GB.
AArch64 allows text + data to span up to 4GB in the small code model:
https://github.com/ARM-software/abi-aa/blob/main/sysvabi64/sysvabi64.rst#code-models.
We could also use 64-bit offsets, but I'll leave that for the futute.
Assisted-by: Gemini
Commit: 5a02a6d85aac93f5c47610300968a22b30892b8f
https://github.com/llvm/llvm-project/commit/5a02a6d85aac93f5c47610300968a22b30892b8f
Author: jofrn <jo7frn1 at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/test/CodeGen/X86/atomic-load-store.ll
Log Message:
-----------
[X86] Add aligned atomic vector load tests wider than 128 bits (NFC) (#204495)
These >128-bit loads are expanded to __atomic_load libcalls regardless
of alignment, since x86 caps atomic ops at 128 bits.
Store version: https://github.com/llvm/llvm-project/pull/202537
Commit: cc16c2cabacf3cfb904e94f2030b25eefb31c71f
https://github.com/llvm/llvm-project/commit/cc16c2cabacf3cfb904e94f2030b25eefb31c71f
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M clang/bindings/xml/comment-xml-schema.rng
A clang/test/Index/Inputs/CommentXML/invalid-concept-01.xml
A clang/test/Index/Inputs/CommentXML/valid-concept-01.xml
A clang/test/Index/Inputs/CommentXML/valid-concept-02.xml
M clang/test/Index/comment-xml-schema.c
Log Message:
-----------
[clang] Add concepts to XML comment schema, add tests (#202774)
Commit: 9fc458a1d95b9c3edf288e4ec2cd9dcd1fe0d895
https://github.com/llvm/llvm-project/commit/9fc458a1d95b9c3edf288e4ec2cd9dcd1fe0d895
Author: yonghong-song <yhs at fb.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Target/BPF/BPFAsmPrinter.cpp
A llvm/test/CodeGen/BPF/jump_table_func_ptr_array.ll
Log Message:
-----------
[BPF] Fix erroneous removal of non-jump-table globals (#204594)
Jump tables are supported only for cpu v4. After lowering them into
.jumptables entries, BPFAsmPrinter::doFinalization() removes the private
constant arrays that backed the jump tables. But the below 'for' loop is
actually a no-op.
for (unsigned i = 1, e = CA->getNumOperands(); i != e; ++i) {
if (!dyn_cast<BlockAddress>(CA->getOperand(i)))
continue;
}
Targets.push_back(&Global);
With current implementation, 'Global' will be added to 'Targets' and
later in doFinalization(), 'Global' will be removed. But it is possible
in 'Global' there exists non BlockAddress which are used in later code.
This will cause the problem like:
error: Undefined temporary symbol .L__const.select_fn.fns
To fix the problem, For the above 'for' loop, only if all operands are
with BlockAddress, 'Global' can be pushed to 'Targets'.
The issue is discovered when running bpf selftest with -O1. The related
file is
tools/testing/selftests/bpf/progs/kprobe_multi_session.c
Before optimization, we have
@__const.session_check.kfuncs = private unnamed_addr constant [8 x ptr]
[ptr @bpf_fentry_test1, ptr @bpf_fentry_test2, ptr @bpf_fentry_test3,
ptr @bpf_fentry_test4, ptr @bpf_fentry_test5, ptr @bpf_fentry_test6,
ptr @bpf_fentry_test7, ptr @bpf_fentry_test8], align 8
With -O1, `@__const.session_check.kfuncs` is used in codegen like
...
$r2 = LD_imm64 @__const.session_check.kfuncs
...
which triggered the compilation failure.
With -O2, `@__const.session_check.kfuncs` is inlined in llvm
GlobalOptPass and each individual funciton `@bpf_fentry_test1` etc. is
directly used in IR, e.g.,
...
%9 = icmp eq i64 %8, ptrtoint (ptr @bpf_fentry_test1 to i64), !dbg !95
...
Commit: 4a1d8bbca2e4453ba680b6cf130e833338ac9490
https://github.com/llvm/llvm-project/commit/4a1d8bbca2e4453ba680b6cf130e833338ac9490
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
A llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.async.to.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.to.lds.ll
Log Message:
-----------
[AMDGPU][NFC]: Pre-commit load.async.to.lds.ll test (#204695)
Commit: 4da60b8a877d2ca4c8d57ed996da2bd3be5807e3
https://github.com/llvm/llvm-project/commit/4da60b8a877d2ca4c8d57ed996da2bd3be5807e3
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Utils/LowerCommentStringPass.cpp
Log Message:
-----------
[NFC] LowerCommentStringPass: remove unused #include (#204719)
This pass was added in a64928f267f3aeeb3571bfc7de92c432126d74e9 but does
not actually use PassBuilder
Commit: 17308a961710f91e073923405712bacc981c936a
https://github.com/llvm/llvm-project/commit/17308a961710f91e073923405712bacc981c936a
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M orc-rt/lib/executor/Session.cpp
M orc-rt/unittests/SessionTest.cpp
Log Message:
-----------
[orc-rt] Fix assertion, add fail-to-connect unit test. (#204720)
If a ControllerAccess object's connect method calls notifyDisconnected
then by the time we return to Connect we may have completed the detach,
in which case TargetState will be None, and CurrentState will be >=
Detached. This case was not covered by the assert after the return from
connect, leading to assertions when connect failed.
This commit relaxes the assertion to include the case above, and adds a
unit test to cover it.
Commit: 54ce8fc400f5e576e86437914829b1cba321e8ad
https://github.com/llvm/llvm-project/commit/54ce8fc400f5e576e86437914829b1cba321e8ad
Author: Chinmay Deshpande <chdeshpa at amd.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/fptrunc.ll
Log Message:
-----------
[AMDGPU][NFC] Pre-commit test for fabs/fneg fold into fptrunc source modifiers (#204666)
Commit: 79349e509ab569636647829945e20a6f244d6c36
https://github.com/llvm/llvm-project/commit/79349e509ab569636647829945e20a6f244d6c36
Author: Kevin Sala Penades <salapenades1 at llnl.gov>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M offload/libomptarget/device.cpp
M offload/libomptarget/omptarget.cpp
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/include/RecordReplay.h
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M offload/plugins-nextgen/common/src/RecordReplay.cpp
M openmp/docs/design/Runtimes.rst
Log Message:
-----------
[offload] Improve report printing for kernel recording (#204505)
This commit extends the record reporting mechanism:
- `LIBOMPTARGET_RECORD_REPORT_FILENAME` enables the reporting mechanism
and allows specifying the name of the output file.
- The report of recorded kernels are ordered in recording order. This is
really useful for tests that need to record and replay more than one
kernel.
Commit: 24d6172f0c00d62287c211c9f0b84e4b6f6063d9
https://github.com/llvm/llvm-project/commit/24d6172f0c00d62287c211c9f0b84e4b6f6063d9
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/include/llvm/MC/MCStreamer.h
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCObjectStreamer.cpp
M llvm/lib/MC/MCStreamer.cpp
Log Message:
-----------
[MC] Remove unused FileNo parameter from MCStreamer::checkCVLocSection. NFC (#204729)
Commit: ed287c064db043a94b5470ebf36524153aeaf33f
https://github.com/llvm/llvm-project/commit/ed287c064db043a94b5470ebf36524153aeaf33f
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
A clang/test/CodeGenHLSL/resources/ConstantBufferT.hlsl
Log Message:
-----------
[HLSL][NFC] Add codegen test for ConstantBuffer<T> element access and initialization (#204507)
Adding tests coverage for `ConstantBuffer<T>` element access and
initialization.
Related to llvm/wg-hlsl#302 and llvm/llvm-project#195153
Commit: 21622397c16f65d00361cd883c769189b06df13c
https://github.com/llvm/llvm-project/commit/21622397c16f65d00361cd883c769189b06df13c
Author: Sairudra More <sairudra60 at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
A mlir/test/Target/LLVMIR/openmp-task-in-reduction.mlir
M mlir/test/Target/LLVMIR/openmp-todo.mlir
Log Message:
-----------
[mlir][OpenMP] Translate explicit task in_reduction (#202611)
Lower `in_reduction` on explicit `omp.task` operations to LLVM IR.
Inside the outlined task body, obtain the executing thread's `gtid` and call `__kmpc_task_reduction_get_th_data` with a null descriptor and the original reduction variable address. This lets the runtime find the enclosing taskgroup reduction registration and return the per-task private reduction storage.
The `in_reduction` block arguments are remapped to the returned private storage, so updates inside the explicit task body target the task-private reduction copy instead of the original shared variable.
Unsupported cases remain guarded, including byref `in_reduction` and richer `declare_reduction` forms such as two-argument initializers, cleanup regions, and missing combiners.
Commit: 1e0899794dd432c6c3c7bbba6940e8640e6a201c
https://github.com/llvm/llvm-project/commit/1e0899794dd432c6c3c7bbba6940e8640e6a201c
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[DAG] visitEXTRACT_SUBVECTOR - Fold EXTRACT_SUBVECTOR(EXTRACT_SUBVECTOR(X,C1),C0) with nonzero indices (#204533)
Removed equivalent fold from x86 and added generic DAG fold to replace
it - net zero test changes
Refactored version of #200935
Commit: 4b2a02d47e31da4764aa6e204e6c502ccc69e201
https://github.com/llvm/llvm-project/commit/4b2a02d47e31da4764aa6e204e6c502ccc69e201
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/CodeGen/TargetBuiltins/X86.cpp
M clang/test/CodeGen/X86/bmi2-builtins.c
M llvm/include/llvm/IR/IntrinsicsX86.td
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp
M llvm/lib/Target/X86/X86InstrFragments.td
M llvm/lib/Target/X86/X86InstrMisc.td
M llvm/lib/Target/X86/X86IntrinsicsInfo.h
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/CodeGen/X86/bmi2.ll
M llvm/test/Instrumentation/MemorySanitizer/bmi.ll
M llvm/test/Instrumentation/MemorySanitizer/pdep.ll
M llvm/test/Instrumentation/MemorySanitizer/pext.ll
M llvm/test/Transforms/InstCombine/pdep.ll
M llvm/test/Transforms/InstCombine/pext.ll
Log Message:
-----------
[X86] Replace X86 specific PDEP/PEXT handling with generic intrinsics (#204144)
* Remove X86ISD::PDEP/PEXT and use ISD::PDEP/PEXT instead
* AutoUpgrade x86 pdep/pext intrinsics to llvm.pdep/pext generics
* Move X86 DAG knownbits/demandedbits handling to generic (unchanged)
* Move X86 InstCombine folds to generic (unchanged)
* Add memory sanitizer handling for generic pdep/pext intrinsics
* Updated clang builtins to emit generics
Fixes #204537
Commit: f0134cc7a5a56b53dfbe2887cd759806845c8797
https://github.com/llvm/llvm-project/commit/f0134cc7a5a56b53dfbe2887cd759806845c8797
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/Basic/TargetID.cpp
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/test/Driver/invalid-target-id.cl
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
A llvm/test/CodeGen/AMDGPU/target-id-xnack-always-on.ll
Log Message:
-----------
AMDGPU: Add subtarget feature for controllable xnack modes (#204523)
This replaces the previously removed xnack-any-only feature,
with the inversion xnack-on-off-modes. All pre-gfx12.5 xnack
targets support the controllable mode. Ignore explicitly
set xnack settings the same way as is done for xnack requests
on other unsupported targets.
Commit: b65d5100d712e49abe85b337b03663ec1dcbd266
https://github.com/llvm/llvm-project/commit/b65d5100d712e49abe85b337b03663ec1dcbd266
Author: Kevin Sala Penades <salapenades1 at llnl.gov>
Date: 2026-06-18 (Thu, 18 Jun 2026)
Changed paths:
M offload/libomptarget/omptarget.cpp
M offload/plugins-nextgen/common/src/RecordReplay.cpp
A offload/test/tools/omp-kernel-replay/record-replay-empty-memory.cpp
M offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp
Log Message:
-----------
[offload][OpenMP] Fix record replay when no memory is used (#201771)
Progams that do not use any memory (e.g., no mappings) were failing
because we were trying to execute zero size transfers. This commit adds
handling for this case.
Commit: 9c50867e78707c7ad9b46b6c2c71ef45ac124bbb
https://github.com/llvm/llvm-project/commit/9c50867e78707c7ad9b46b6c2c71ef45ac124bbb
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/examples/OrcV2Examples/CMakeLists.txt
A llvm/examples/OrcV2Examples/LLJITWithSymbolAliases/CMakeLists.txt
A llvm/examples/OrcV2Examples/LLJITWithSymbolAliases/LLJITWithSymbolAliases.cpp
Log Message:
-----------
[ORC][examples] Add a new example showing basic symbolAliases usage. (#204733)
LLJITWithSymbolAliases shows how the symbolAliases function can be used
to introduce aliases for both JIT'd and precompiled symbols.
Commit: 0ad5d54be53f34f71e25575964785670720a5f4c
https://github.com/llvm/llvm-project/commit/0ad5d54be53f34f71e25575964785670720a5f4c
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/Target/AArch64/AArch64Combine.td
M llvm/lib/Target/AArch64/GISel/AArch64GlobalISelUtils.cpp
M llvm/lib/Target/AArch64/GISel/AArch64GlobalISelUtils.h
M llvm/lib/Target/AArch64/GISel/AArch64O0PreLegalizerCombiner.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
M llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp
Log Message:
-----------
[GlobalISel] TableGen memcpy-like prelegalizer combines (#203235)
This removes the corresponding handwritten C++ combine handling from the
AArch64 prelegalizer combiners.
Assisted-by: codex
Commit: d87e513d454714d08b6deeb055bf6f6cc959b450
https://github.com/llvm/llvm-project/commit/d87e513d454714d08b6deeb055bf6f6cc959b450
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/test/Sema/enable_if.c
M clang/test/SemaCXX/enable_if.cpp
Log Message:
-----------
[clang][test] Use #marker in enable_if tests (#204624)
I just wasted way too long trying to figure out why my newly added RUN
lines were randomly broken or not.
Stop using absolute line numbers.
Commit: 7d122c329944a6be4ed93929c99f5e8fc75b6892
https://github.com/llvm/llvm-project/commit/7d122c329944a6be4ed93929c99f5e8fc75b6892
Author: Gábor Horváth <xazax.hun at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/test/Sema/LifetimeSafety/dangling-global.cpp
M clang/test/Sema/LifetimeSafety/safety-c.c
Log Message:
-----------
[LifetimeSafety] Propagate loans through pointer inc/dec and compound assignment (#204477)
Commit: 6352a584c409a4ad44804f06e06260be587866d3
https://github.com/llvm/llvm-project/commit/6352a584c409a4ad44804f06e06260be587866d3
Author: Matthias Springer <me at m-sp.org>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M mlir/include/mlir/IR/BuiltinAttributes.td
Log Message:
-----------
[mlir][IR] Fix typo in code example of DenseTypedElementsAttr (#204739)
There was a typo in the type-first syntax code example.
Commit: 3b1a922a6d02705ef30b1527e34af7b6208dc02f
https://github.com/llvm/llvm-project/commit/3b1a922a6d02705ef30b1527e34af7b6208dc02f
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/reg-usage.ll
M llvm/test/Transforms/LoopVectorize/VPlan/interleave-and-scalarize-only.ll
M llvm/test/Transforms/LoopVectorize/X86/cost-model.ll
M llvm/test/Transforms/LoopVectorize/X86/invariant-store-vectorization.ll
M llvm/test/Transforms/LoopVectorize/X86/pr36524.ll
M llvm/test/Transforms/LoopVectorize/X86/uniform_mem_op.ll
M llvm/test/Transforms/LoopVectorize/first-order-recurrence-with-uniform-ops.ll
M llvm/test/Transforms/LoopVectorize/hoist-predicated-loads.ll
M llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
M llvm/test/Transforms/LoopVectorize/invariant-store-vectorization-2.ll
M llvm/test/Transforms/LoopVectorize/invariant-store-vectorization.ll
M llvm/test/Transforms/LoopVectorize/metadata.ll
M llvm/test/Transforms/LoopVectorize/pr47343-expander-lcssa-after-cfg-update.ll
M llvm/test/Transforms/LoopVectorize/pr59319-loop-access-info-invalidation.ll
M llvm/test/Transforms/LoopVectorize/reduction-with-invariant-store.ll
M llvm/test/Transforms/LoopVectorize/runtime-check.ll
M llvm/test/Transforms/LoopVectorize/single-scalar-cast-minbw.ll
M llvm/test/Transforms/LoopVectorize/skeleton-lcssa-crash.ll
Log Message:
-----------
[VPlan] Extend licm to sink replicate stores (#191026)
Follow up on hoisting replicate loads in VPlan-licm to also sink
replicate stores.
Commit: f8bd135b6faef0675f1b8cb088373337d0439bb8
https://github.com/llvm/llvm-project/commit/f8bd135b6faef0675f1b8cb088373337d0439bb8
Author: Simon Tatham <simon.tatham at arm.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/utils/lit/lit/TestRunner.py
Log Message:
-----------
[lit] Make RecursionError less likely in internal shell (#204573)
The lit internal shell chains together the contents of multiple RUN:
lines by connecting them with implicit && nodes, forming a binary tree
structure which is then executed recursively by `_executeShCommand`.
However the tree structure is constructed in a very simple way which
makes it effectively just a linked list, so `_executeShCommand` must
recurse to a depth equal to the number of commands.
If a test file contains more than 1000 RUN: lines (e.g. running the
clang driver only, with lots of different options), then this causes a
RecursionError exception, which did not happen using the external shell.
Failures of this kind can be avoided by instead connecting the commands
together in a _balanced_ binary tree, which has equivalent behaviour,
since the && shell operator is associative.
Commit: 9361b3d9570596231ffa2b9a1a2ae4ee5fe7eb9d
https://github.com/llvm/llvm-project/commit/9361b3d9570596231ffa2b9a1a2ae4ee5fe7eb9d
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/widen-call-op-scalar-vector.ll
Log Message:
-----------
[LV] Add test for WidenCall with mixed scalar-vector operands (#203092)
Commit: b9587a78a090fa53bed1dc1b478502e3038a0028
https://github.com/llvm/llvm-project/commit/b9587a78a090fa53bed1dc1b478502e3038a0028
Author: Jiang Ning <jiangninghx at foxmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M lld/ELF/Arch/AArch64.cpp
M lld/test/ELF/aarch64-tls-le.s
M lld/test/ELF/aarch64-tlsld-ldst.s
Log Message:
-----------
[ELF][AArch64] Relax zero TLSLE add to nop (#204286)
Optimize AArch64 local-exec TLS relocation handling by replacing a
self-add R_AARCH64_TLSLE_ADD_TPREL_HI12 instruction with nop when the
high 12 bits are zero.
The optimization is disabled by --no-relax and avoids non-equivalent
forms such as non-self-adds and 32-bit destination registers.
Commit: b496d0623824060af20726f89bbf8fe662dd49e4
https://github.com/llvm/llvm-project/commit/b496d0623824060af20726f89bbf8fe662dd49e4
Author: Gábor Horváth <xazax.hun at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/Origins.cpp
M clang/test/Sema/LifetimeSafety/safety-c.c
M clang/test/Sema/LifetimeSafety/safety.cpp
Log Message:
-----------
[LifetimeSafety] Model bit_cast and atomic casts in the fact generator (#204591)
VisitCastExpr dropped several borrow-carrying cast kinds into its
default case. Propagate the borrow through
`__builtin_bit_cast`/`std::bit_cast` of a pointer and through
wrapping/unwrapping `_Atomic(T*)`, so a stack address laundered through
either is caught (matching reinterpret_cast). hasOrigins and
buildListForType now see through AtomicType, which is transparent for
lifetimes.
Assisted-by: Claude Opus 4.8
Co-authored-by: Gabor Horvath <gaborh at apple.com>
Commit: c327ab359a959de2e4241a5fcda409958f2c0d11
https://github.com/llvm/llvm-project/commit/c327ab359a959de2e4241a5fcda409958f2c0d11
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
A llvm/test/CodeGen/AArch64/windows-elf-frame-record-pairing.ll
Log Message:
-----------
[AArch64] Fix Windows target detection in FrameLowering (#204347)
In #156467, we switched to using `getMCAsmInfo()->usesWindowsCFI()` to
recognize "Windows". This does not include Windows triples with ELF
binary formats.
So, for aarch64-pc-windows-msvc-elf we would use the Windows callee-save
list in `AArch64RegisterInfo::getCalleeSavedRegs()`, but FrameLowering
would handle this like Linux, and fail to invalidate the (x29, x28)
pairing.
This patch switches back to using AArch64Subtarget::isTargetWindows(),
which aligns with getCalleeSavedRegs().
Note: We were using `usesWindowsCFI()` to include UEFI targets, however,
there does not seem to be tests/support for UEFI triples on AArch64
(basic examples that compile for x86 fail: https://godbolt.org/z/dPWdTrEG7).
So, this has been moved to a TODO.
Fixes #204060
Commit: 06137a53cc96643f17f34c6affa8838c5c86e2cb
https://github.com/llvm/llvm-project/commit/06137a53cc96643f17f34c6affa8838c5c86e2cb
Author: Fabrice de Gans <Steelskin at users.noreply.github.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/include/llvm/BinaryFormat/DXContainer.h
M llvm/include/llvm/CAS/ActionCache.h
M llvm/include/llvm/CAS/MappedFileRegionArena.h
M llvm/include/llvm/CAS/OnDiskDataAllocator.h
M llvm/include/llvm/CAS/OnDiskGraphDB.h
M llvm/include/llvm/CAS/OnDiskKeyValueDB.h
M llvm/include/llvm/CAS/OnDiskTrieRawHashMap.h
M llvm/include/llvm/CAS/UnifiedOnDiskCache.h
M llvm/include/llvm/CGData/StableFunctionMap.h
M llvm/include/llvm/CodeGen/MIR2Vec.h
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/Option/ArgList.h
M llvm/include/llvm/SandboxIR/Argument.h
M llvm/include/llvm/SandboxIR/BasicBlock.h
M llvm/include/llvm/SandboxIR/Function.h
M llvm/include/llvm/SandboxIR/Instruction.h
M llvm/include/llvm/SandboxIR/Pass.h
M llvm/include/llvm/SandboxIR/Region.h
M llvm/include/llvm/SandboxIR/Tracker.h
M llvm/include/llvm/SandboxIR/Use.h
M llvm/include/llvm/Support/Compiler.h
M llvm/include/llvm/Support/GlobPattern.h
M llvm/include/llvm/Support/LSP/Logging.h
M llvm/include/llvm/Support/LSP/Protocol.h
M llvm/include/llvm/Support/LSP/Transport.h
M llvm/include/llvm/Support/VirtualOutputConfig.h
M llvm/include/llvm/Transforms/Utils/DebugSSAUpdater.h
M llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h
Log Message:
-----------
[llvm] Remove LLVM_ABI_FOR_TEST in public headers (#204627)
These annotations were mistakenly set up as LLVM_ABI_FOR_TEST. Since
these are public headers, they should be using LLVM_ABI.
The effort to build LLVM as a dylib is tracked in #109483.
Commit: 47b29c2eadbd9d7ddfb26bd6104a0a1f9e4a13a1
https://github.com/llvm/llvm-project/commit/47b29c2eadbd9d7ddfb26bd6104a0a1f9e4a13a1
Author: Faijul Amin <md.faijul.amin at intel.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
A llvm/test/CodeGen/SPIRV/instructions/phi-large-vector-shader.ll
A llvm/test/CodeGen/SPIRV/instructions/phi-large-vector.ll
Log Message:
-----------
[SPIR-V] Legalize G_PHI of oversized vectors via fewer-elements (#203993)
`G_PHI` on vectors wider than the SPIR-V max vector size previously
failed legalization. This PR adds a `fewerElementsIf` rule that splits
them down to `MaxVectorSize`, matching how other vector ops are handled
in `SPIRVLegalizerInfo.cpp`.
Added the following test
`llvm/test/CodeGen/SPIRV/instructions/phi-large-vector.ll` covering
spirv32 and spirv64.
Commit: 40cbc98bb17718eef5e0b1f47e3b58900aac354a
https://github.com/llvm/llvm-project/commit/40cbc98bb17718eef5e0b1f47e3b58900aac354a
Author: Gaëtan Bossu <gaetan.bossu at arm.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/test/CodeGen/AArch64/sve-masked-gather-64b-scaled.ll
M llvm/test/CodeGen/AArch64/sve-masked-gather-64b-unscaled.ll
M llvm/test/CodeGen/AArch64/sve-masked-gather-legalize.ll
M llvm/test/CodeGen/AArch64/sve-masked-gather.ll
M llvm/test/CodeGen/AArch64/sve-masked-scatter-64b-scaled.ll
M llvm/test/CodeGen/AArch64/sve-masked-scatter-64b-unscaled.ll
M llvm/test/CodeGen/AArch64/sve-masked-scatter.ll
Log Message:
-----------
[AArch64][SDAG] Legalise nxv1 gather/scatter nodes (#204620)
This updates WidenVecRes_MGATHER and WidenVecOp_MSCATTER to support
scalable vector types.
Commit: a5e83b9a9b16d770792f7cd02ebe30bcfd95cbfe
https://github.com/llvm/llvm-project/commit/a5e83b9a9b16d770792f7cd02ebe30bcfd95cbfe
Author: Paul Walker <paul.walker at arm.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/include/clang/Basic/arm_neon.td
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/test/CodeGen/AArch64/bf16-getset-intrinsics.c
M clang/test/CodeGen/AArch64/bf16-lane-intrinsics.c
M clang/test/CodeGen/AArch64/bf16-ldst-intrinsics.c
M clang/test/CodeGen/AArch64/bf16-reinterpret-intrinsics.c
M clang/test/CodeGen/AArch64/neon-luti.c
M clang/test/CodeGen/arm-bf16-reinterpret-intrinsics.c
M clang/test/Sema/aarch64-neon-immediate-ranges/luti.c
M clang/test/Sema/aarch64-neon-target.c
M clang/test/Sema/aarch64-neon-without-target-feature.cpp
M clang/test/Sema/arm-neon-target.c
Log Message:
-----------
[Clang][NEON ACLE] Remove +bf16 requirement from opaque bfloat builtins. (#204201)
Builtins that only care about the size of the element type but not its
format (e.g loads, stores and shuffles) do not require any special
instructions to code generate beyond those already available to +neon.
Fixes https://github.com/llvm/llvm-project/issues/203159
Commit: fdf3d44c9004eaf2ed112ced60b3f0e384724281
https://github.com/llvm/llvm-project/commit/fdf3d44c9004eaf2ed112ced60b3f0e384724281
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/test/Transforms/InstCombine/pdep.ll
M llvm/test/Transforms/InstCombine/pext.ll
Log Message:
-----------
[InstCombine] Add tests showing failure to fold pdep(0,x) and pext(0,x) to 0 (#204783)
As noted on #204144
Commit: e6daa6810e5ed49104a0f409d51e953905c9752e
https://github.com/llvm/llvm-project/commit/e6daa6810e5ed49104a0f409d51e953905c9752e
Author: Garvit Gupta <garvgupt at qti.qualcomm.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M compiler-rt/test/builtins/Unit/lit.cfg.py
Log Message:
-----------
Revert "Revert "[Compiler-rt][test] Fix circular link dependency between builtins and libc"" (#204728)
Reverts llvm/llvm-project#203152
Commit: 500d1f848c9a5488b7ff5ab2aad09041935ae7ff
https://github.com/llvm/llvm-project/commit/500d1f848c9a5488b7ff5ab2aad09041935ae7ff
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
A llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fun-ptr-void-call-aggregate-arg.ll
Log Message:
-----------
[SPIR-V] Fix crash on void indirect call with aggregate argument (#204388)
removeAggregateTypesFromCalls named the call to key the type-restoration
metadata, which asserts for void-returning calls. Key the metadata via
instruction metadata on the call instead, which works for void results.
Commit: b90ec9c2747f336991f392dc843ecff1ca2faed7
https://github.com/llvm/llvm-project/commit/b90ec9c2747f336991f392dc843ecff1ca2faed7
Author: Ömer Sinan Ağacan <omeragacan at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/StackColoring.cpp
Log Message:
-----------
[StackColoring] Remove unused BB numbering state (#204414)
Commit: f6fd6ea3c1b59728c3c8f3443ef9a02d367ec8e0
https://github.com/llvm/llvm-project/commit/f6fd6ea3c1b59728c3c8f3443ef9a02d367ec8e0
Author: bogdan-petkovic <bpetkovi at amd.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M mlir/lib/ExecutionEngine/CMakeLists.txt
Log Message:
-----------
[mlir][ExecutionEngine] Fix dead -Wno-c++98-compat-extra-semi guard (#204524)
`check_cxx_compiler_flag` stores its result in
`CXX_SUPPORTS_NO_CXX98_COMPAT_EXTRA_SEMI_FLAG`, but the guarding `if()`
checked `CXX_SUPPORTS_CXX98_COMPAT_EXTRA_SEMI_FLAG` (without `_NO_`),
which is never set. The condition was therefore always false and the
`-Wno-c++98-compat-extra-semi` suppression for `mlir_rocm_runtime` was
never applied.
The sibling flag checks in the same block (`-Wno-return-type-c-linkage`,
`-Wno-nested-anon-types`, `-Wno-gnu-anonymous-struct`) already use
matching variable names, so this aligns the typo'd guard with the
established pattern.
No test is included, this is a build-system-only (CMake) change to a
warning-suppression guard and is not unit-testable.
Signed-off-by: bogdan-petkovic <bpetkovi at amd.com>
Commit: 3cc94639047973169a9874139b8d95e17cdba50b
https://github.com/llvm/llvm-project/commit/3cc94639047973169a9874139b8d95e17cdba50b
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Analysis/Delinearization.cpp
A llvm/test/Analysis/Delinearization/inconsistent-types.ll
Log Message:
-----------
[Delinearization] Narrow the scope of the term collection (#204145)
In parametric delinearization, it collects subexpressions whose SCEV
type is `SCEVUnknown` and uses them as candidates for the array
dimensions. When traversing these subexpressions, it may follow any kind
of expression. For example, if it follows a `sext` expression, this can
lead to type inconsistencies among the collected terms.
This patch fixes this issue by preventing traversal into subexpressions
other than `SCEVAddExpr` or `SCEVAddRecExpr`.
Note: I tried to minimize the test case, but this seems to be as far as
it can go.
Fix #204066.
Commit: 60a2d437bd040a494cfe87fa8f44ebad18db2196
https://github.com/llvm/llvm-project/commit/60a2d437bd040a494cfe87fa8f44ebad18db2196
Author: Graham Hunter <graham.hunter at arm.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.h
M llvm/lib/Target/AArch64/AArch64PassRegistry.def
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/CMakeLists.txt
A llvm/lib/Target/AArch64/SVEShuffleOpts.cpp
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
A llvm/test/CodeGen/AArch64/sve-tbl-folding-new-pm.ll
A llvm/test/CodeGen/AArch64/sve-tbl-folding-opts.ll
Log Message:
-----------
[AArch64] Add SVE shuffle optimization pass (#193951)
Add a pass to perform VLA shuffle optimizations for SVE.
First up is using tbl to replace deinterleave4+uunpk+zext/uitofp
by generating shuffle masks with index, exploiting the fact that
out-of-range indices in the mask produce zeroes in the result
vector. That way, we can easily zero-extend smaller elements
by using the destination type when generating the mask, and
having one index in range with several out-of-range for each
destination element.
Commit: 80c80e6d04515acf7dac8c256a1a3b3dc14cfa4d
https://github.com/llvm/llvm-project/commit/80c80e6d04515acf7dac8c256a1a3b3dc14cfa4d
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/test/AST/ByteCode/cxx20.cpp
Log Message:
-----------
[clang][bytecode] Check const writes more thorougly (#204529)
We used to only have a list of blocks under construction, but now we
have a list of pointers, which gives us more information.
Use this new list to diagnose a case we couldn't previously diagnose.
The test case is from `constant-expression-cxx14.cpp` and shows that a
write to a const member is invalid, even if the parent object is being
constructed right now.
Commit: a6fe3c7422db83346c336346e0b7a56ff084b17f
https://github.com/llvm/llvm-project/commit/a6fe3c7422db83346c336346e0b7a56ff084b17f
Author: Xavier Roche <xavier.roche at algolia.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M libcxx/test/libcxx/concepts/concepts.arithmetic/__libcpp_signed_integer.compile.pass.cpp
M libcxx/test/libcxx/concepts/concepts.arithmetic/__libcpp_unsigned_integer.compile.pass.cpp
M libcxx/test/std/containers/views/mdspan/extents/bitint.pass.cpp
M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp
M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp
M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp
M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp
M libcxx/test/std/numerics/bit/bit.pow.two/bit_ceil.pass.cpp
M libcxx/test/std/numerics/bit/bit.pow.two/bit_floor.pass.cpp
M libcxx/test/std/numerics/bit/bit.pow.two/bit_width.pass.cpp
M libcxx/test/std/numerics/bit/bit.pow.two/has_single_bit.pass.cpp
M libcxx/test/std/numerics/bit/bitops.count/countl_one.pass.cpp
M libcxx/test/std/numerics/bit/bitops.count/countl_zero.pass.cpp
M libcxx/test/std/numerics/bit/bitops.count/countr_one.pass.cpp
M libcxx/test/std/numerics/bit/bitops.count/countr_zero.pass.cpp
M libcxx/test/std/numerics/bit/bitops.count/popcount.pass.cpp
M libcxx/test/std/numerics/bit/bitops.rot/rotl.pass.cpp
M libcxx/test/std/numerics/bit/bitops.rot/rotr.pass.cpp
M libcxx/test/std/numerics/bit/byteswap.pass.cpp
M libcxx/test/std/numerics/bit/byteswap.verify.cpp
M libcxx/test/std/numerics/numeric.ops/numeric.ops.sat/saturating.bitint.pass.cpp
R libcxx/test/std/utilities/format/format.arguments/format.arg.store/make_format_args.bitint.verify.cpp
M libcxx/test/std/utilities/utility/utility.intcmp/intcmp.bitint.pass.cpp
M libcxx/test/support/test_macros.h
Log Message:
-----------
[libc++][test] Migrate _BitInt probe to __BITINT_MAXWIDTH__ and fix latent test bugs (#203876)
`libcxx` tests gate `_BitInt` blocks on `TEST_HAS_EXTENSION(bit_int)`,
which is not a recognized Clang extension and returns 0 in every
language mode. The blocks have been compiling as dead code, hiding
latent bugs across 23 files.
Migrate to a `TEST_HAS_BITINT` helper backed by the standard
`__BITINT_MAXWIDTH__`. The latent bugs the activation surfaces are fixed
in the same commit:
- overflow-safe `min`;
- post-P4052R0 saturating-arithmetic renames plus a
`clang-21`/`apple-clang-21` skip for `saturating.bitint.pass.cpp` (Clang
21 asserts in constexpr eval on non-byte-aligned `_BitInt`);
- an `intcmp` syntax fix;
- `byteswap.verify` directive tightening;
- a missing `<climits>` include in `byteswap.pass` (only visible under
`-fmodules`);
- C++03-compatible `static_assert` form in `digits10`; gating
`digits`/`digits10` `_BitInt` blocks behind
`!_LIBCPP_USE_FROZEN_CXX03_HEADERS` since the fix from #193002 was not
backported to the frozen snapshot; and
- `make_format_args` reduced to a placeholder pending a SFINAE-friendly
rejection path.
Discussion:
https://discourse.llvm.org/t/implementing-p3666r4-bit-precise-integers-in-libc/91070
Assisted-by: Claude (Anthropic)
---------
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: eb7ce80944ee06b09c0bd6474254a155461dddd9
https://github.com/llvm/llvm-project/commit/eb7ce80944ee06b09c0bd6474254a155461dddd9
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Target/CGPassBuilderOption.h
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
Log Message:
-----------
CodeGenPassBuilder: Use cl::boolOrDefault directly in CGPassBuilderOption (#204196)
Current implementation that uses std::optional<bool> captures cl::BOU_FALSE,
for example -global-isel=0, as true. Explictly setting option to 0 should be
false, forced option not set.
This could be fixed but I find it cleaner to use boolOrDefault directly and
use same logic as in TargetPassConfig.
Options EnableIPRA and EnableGlobalISelAbort are left as optional since for
them it is explicitly checked if they are set using getNumOccurrences.
boolOrDefault has encoded unset option.
Commit: 54a7896acfb97d7935e085eebbc18fd5e694f67d
https://github.com/llvm/llvm-project/commit/54a7896acfb97d7935e085eebbc18fd5e694f67d
Author: mkovacevic99 <mkovacevic at baylibre.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/ExecutionEngine/JITLink/COFF_x86_64.cpp
A llvm/test/ExecutionEngine/JITLink/x86-64/COFF_dllimport_iat.s
Log Message:
-----------
[JITLink][COFF] Synthesize __imp_ IAT entries (#203906)
Adds a default COFF/x86_64 JITLink pass that synthesizes `__imp_` Import
Address Table (IAT) entries for dllimport references. This allows COFF
objects using dllimport to be JIT-linked without a hand-built import library or
a special generator.
On COFF, `__declspec(dllimport)` codegen emits indirect accesses through a named
`__imp_X` symbol (`callq *__imp_bar(%rip)`; `movq __imp_g(%rip)` for data),
with `__imp_X` left undefined. JITLink had no handling for this. The new pass —
the COFF counterpart of the ELF/Mach-O GOT builder — defines each undefined
external `__imp_X` over an 8-byte slot holding the address of `X`, and leaves `X`
as an ordinary external to be resolved normally (import library, dynamic-library
search generator, etc.). Both the call and data-access forms then resolve
indirectly through the slot.
Rather than the `GOTTableManager` pattern (anonymous entry + edge redirection),
the pass defines the *named* `__imp_X` symbol over the slot. ELF GOT references
are nameless edge kinds, so that builder must create an anonymous entry and
redirect edges; COFF references `__imp_X` by name, so defining it is simpler —
no edge rewriting, no orphaned-external cleanup, sharing is automatic,
and the call/data-access forms are handled identically.
x86_64 only (runs in the COFF/x86_64 backend's default pass pipeline). New lit
test `COFF_dllimport_iat.s`: assembles an object referencing `__imp_bar` (call)
and `__imp_foo` (data load), supplies `foo`/`bar` via `-abs`, links with
`-noexec`, and uses `jitlink-check` to verify each `__imp_` slot holds the
target's address and that the references resolve through the slot.
Partly implements github issue:
https://github.com/llvm/llvm-project/issues/190122
In the comment section of the github issue there is this comment
https://github.com/llvm/llvm-project/issues/190122#issuecomment-4617328036
This PR implements point 2 Synthesis IAT entries.
Commit: 12ee71c377db385c4af0cfe92488406b9a8fa13c
https://github.com/llvm/llvm-project/commit/12ee71c377db385c4af0cfe92488406b9a8fa13c
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/test/Driver/lto.c
Log Message:
-----------
[Clang] Respect `-fno-slp-vectorize` for the LTO pipeline (#201585)
Summary:
This is related to reported regressions in the GROMACS suite when
offloading to AMDGCN devices through the RDC / LTO interface. The
application intentionally passes `-fno-slp-vectorize` to disable that
pass, but there's currently no way to do this through the LTO pipline.
This PR causes the driver to emit `plugin-opt=` for the `-mllvm` option.
That means the pass is still enabled but it should be a no-op now.
Commit: 0390898335f9f32ea71ff288a5b4085cecc10391
https://github.com/llvm/llvm-project/commit/0390898335f9f32ea71ff288a5b4085cecc10391
Author: Jeremy Kun <jkun at google.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/Affine/Analysis/LoopAnalysis.h
M mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
M mlir/lib/Dialect/Affine/Analysis/LoopAnalysis.cpp
M mlir/lib/Dialect/Affine/Analysis/Utils.cpp
M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
M mlir/lib/Dialect/Affine/Transforms/AffineLoopInvariantCodeMotion.cpp
M mlir/lib/Dialect/Affine/Transforms/LoopTiling.cpp
M mlir/lib/Dialect/Affine/Transforms/LoopUnroll.cpp
M mlir/lib/Dialect/Affine/Transforms/PipelineDataTransfer.cpp
M mlir/lib/Dialect/Affine/Utils/LoopFusionUtils.cpp
M mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
A mlir/test/Dialect/Affine/trip-count.mlir
Log Message:
-----------
[mlir][affine] Implement LoopLikeInterface::getStaticTripCount on AffineForOp (#204687)
LoopLikeInterface is useful, but missing `getStaticTripCount` requires
adding extra cases to check when processing otherwise dialect-agnostic
code.
There is an existing free function `getConstantTripCount`, which I
deprecated and replaced (NFC) with the new implementation. I believe the
new implementation is slightly more efficient than
`getConstantTripCount` because it checks if the expression is constant
and fast-fails before constructing the output `AffineMap` that was
returned by `getTripCountMapAndOperands`.
Assisted by Gemini
Commit: 72af16e1a1cc3e1db9a5cd458f4ed410ca90cb87
https://github.com/llvm/llvm-project/commit/72af16e1a1cc3e1db9a5cd458f4ed410ca90cb87
Author: aokblast <aokblast at FreeBSD.org>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/test/lit.cfg.py
Log Message:
-----------
[clang][FreeBSD] Re-enable the crash-recovery test on FreeBSD (#192608)
All of the tests work now on FreeBSD, so we re-enable the feature again
on FreeBSD.
Commit: 825950238fffb9549b7fd81700bb241e1473c866
https://github.com/llvm/llvm-project/commit/825950238fffb9549b7fd81700bb241e1473c866
Author: quic-k <kushpal at qti.qualcomm.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/Basic/Targets/Hexagon.cpp
M clang/lib/Basic/Targets/OSTargets.h
M clang/test/Preprocessor/hexagon-predefines.c
Log Message:
-----------
[Clang][Hexagon] Predefine _GNU_SOURCE for C++ compilations (#201599)
Predefine _GNU_SOURCE in C++ mode for H2, QuRT, and baremetal
Hexagon targets.
Signed-off-by: Kushal Pal <kushpal at qti.qualcomm.com>
Commit: 8eae496effc992b28c12c23374e89474956b9860
https://github.com/llvm/llvm-project/commit/8eae496effc992b28c12c23374e89474956b9860
Author: Vinay Deshmukh <vinay_deshmukh at outlook.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M libcxx/include/map
M libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each.associative.pass.cpp
M libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/ranges.for_each.associative.pass.cpp
M libcxx/test/std/containers/associative/map/map.cons/move_alloc.pass.cpp
M libcxx/test/std/containers/associative/map/map.cons/move_assign.pass.cpp
M libcxx/test/std/containers/associative/map/map.modifiers/merge.pass.cpp
M libcxx/test/std/containers/associative/map/map.ops/contains.pass.cpp
M libcxx/test/std/containers/associative/map/map.ops/contains_transparent.pass.cpp
M libcxx/test/std/containers/associative/multimap/empty.pass.cpp
M libcxx/test/std/containers/associative/multimap/get_allocator.pass.cpp
M libcxx/test/std/containers/associative/multimap/incomplete_type.pass.cpp
M libcxx/test/std/containers/associative/multimap/iterator.pass.cpp
M libcxx/test/std/containers/associative/multimap/max_size.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/assign_initializer_list.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/compare.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/compare_alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/copy.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/copy_alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/copy_assign.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/deduct.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/deduct_const.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/default.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/default_noexcept.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/from_range.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/initializer_list.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/initializer_list_compare.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/initializer_list_compare_alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/iter_iter.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/iter_iter_comp.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/iter_iter_comp_alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/move.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/move_alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/move_assign.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.erasure/erase_if.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/clear.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/emplace.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/emplace_hint.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/erase_iter.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/erase_iter_iter.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/erase_key.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/extract_iterator.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/extract_key.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_allocator_requirements.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_cv.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_initializer_list.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_iter_cv.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_iter_iter.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_iter_rv.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_node_type.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_node_type_hint.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_range.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_rv.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/merge.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.nonmember/compare.three_way.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.nonmember/op_compare.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.observers/key_comp.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.observers/value_comp.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/count.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/count0.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/count_transparent.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/equal_range.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/equal_range0.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/equal_range_transparent.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/find.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/find0.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/lower_bound.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/lower_bound0.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/upper_bound.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/upper_bound0.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.special/member_swap.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.special/non_member_swap.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.special/swap_noexcept.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.value_compare/invoke.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.value_compare/types.pass.cpp
M libcxx/test/std/containers/associative/multimap/size.pass.cpp
M libcxx/test/std/containers/associative/multimap/types.pass.cpp
M libcxx/test/std/containers/container.node/node_handle.pass.cpp
Log Message:
-----------
[libc++] Make std::multimap constexpr as part of P3372R3 (#161901)
Fixes #128661
Co-authored-by: Nikolas Klauser <nikolasklauser at berlin.de>
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Commit: 46ece19eef8199137c0df10b492cadcb91060846
https://github.com/llvm/llvm-project/commit/46ece19eef8199137c0df10b492cadcb91060846
Author: Takuto Ikuta <tikuta at google.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M libcxx/include/string.h
Log Message:
-----------
[libc++] Add a missing include in string.h (#135134)
`stddef.h` is necessary for `size_t` in explicit Clang modules build.
Commit: 8ca5830992768650b77ee318dad5402108e8bed3
https://github.com/llvm/llvm-project/commit/8ca5830992768650b77ee318dad5402108e8bed3
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M libcxx/include/string
Log Message:
-----------
[libc++] Default the allocator argument for most string constructors (#169901)
Allocators are generally very cheap to copy, so avoiding copies by
having separate overloads is not that useful. Defaulting them
significanlty reduces the overload set the compiler has to consider and
simplifies the code, since we can remove some functions in the future.
Closes #87368
Commit: d6ccc29cb3a79631818e30f2f523fc6a91718f8a
https://github.com/llvm/llvm-project/commit/d6ccc29cb3a79631818e30f2f523fc6a91718f8a
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/test/AST/ByteCode/cxx20.cpp
Log Message:
-----------
[clang][bytecode] Take AccessKinds into account in diagnoseNonConstVa… (#204824)
…riable
And diagnose it as a modification and not a read if applicable.
Commit: bf18f6f43052cb558502e3e6f4db6a7368fe7b61
https://github.com/llvm/llvm-project/commit/bf18f6f43052cb558502e3e6f4db6a7368fe7b61
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Support/CommandLine.h
M llvm/include/llvm/Target/CGPassBuilderOption.h
M llvm/lib/CodeGen/BranchFolding.cpp
M llvm/lib/CodeGen/GlobalMerge.cpp
M llvm/lib/CodeGen/MachineCopyPropagation.cpp
M llvm/lib/CodeGen/RegisterCoalescer.cpp
M llvm/lib/CodeGen/ShrinkWrap.cpp
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/MC/MCAsmInfo.cpp
M llvm/lib/MC/MCAsmInfoXCOFF.cpp
M llvm/lib/Remarks/RemarkStreamer.cpp
M llvm/lib/Support/CommandLine.cpp
M llvm/lib/Support/WithColor.cpp
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/ARM/ARMTargetMachine.cpp
M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
M llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/tools/llvm-cov/CodeCoverage.cpp
M llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
M llvm/tools/llvm-readobj/ELFDumper.cpp
M llvm/tools/llvm-readobj/ObjDumper.h
M llvm/tools/llvm-readobj/llvm-readobj.cpp
M llvm/utils/yaml-bench/YAMLBench.cpp
Log Message:
-----------
[CommandLine] Make cl::boolOrDefault a scoped enum (#204553)
Prevents implicit conversion to bool/int, where BOU_FALSE wrongly
evaluated as true. All uses qualified as cl::boolOrDefault::BOU_*.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply at anthropic.com>
Commit: 8c7b7dda518a28447660256c44c39d94d0c7e793
https://github.com/llvm/llvm-project/commit/8c7b7dda518a28447660256c44c39d94d0c7e793
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M lldb/source/Target/Target.cpp
Log Message:
-----------
[lldb] Fix format string (#204837)
GetLoadAddress() returns an integer value, not a null-terminated string.
Commit: 16a0a1042f7e4e5a0c667096fcdeb5803e06d120
https://github.com/llvm/llvm-project/commit/16a0a1042f7e4e5a0c667096fcdeb5803e06d120
Author: Graham Hunter <graham.hunter at arm.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/SVEShuffleOpts.cpp
Log Message:
-----------
[NFC] Remove SVEShuffleOpts variable unused in release build (#204833)
Fixes a warning-as-error build failure for #193951
Commit: 5bb3690d08fd89b3bba9866fc68df56f02379294
https://github.com/llvm/llvm-project/commit/5bb3690d08fd89b3bba9866fc68df56f02379294
Author: Tim Gymnich <tim at gymni.ch>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
M llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
Log Message:
-----------
[llvm][Target] Avoid premature Twine .str() materialization (#204836)
Call sites in the AMDGPU and SPIRV parsers and the SystemZ AsmPrinter /
InstrInfo pass `expr.str()` (or `.str().c_str()`) to parameters of type
`const llvm::Twine &`, forcing a throwaway heap std::string that is
immediately rewrapped into a Twine. Drop the materialization and let
Twine accept the concatenation directly.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
Commit: 467a5fe378edfce2d495417c1b224cc2967570a2
https://github.com/llvm/llvm-project/commit/467a5fe378edfce2d495417c1b224cc2967570a2
Author: Tim Gymnich <tim at gymni.ch>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/Analysis/FlowSensitive/FormulaSerialization.cpp
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Format/Format.cpp
M clang/lib/Frontend/DependencyFile.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/StaticAnalyzer/Checkers/Yaml.h
Log Message:
-----------
[clang] Avoid premature Twine .str() materialization (#204830)
Several call sites pass `expr.str()` to parameters of type `const
llvm::Twine &`, forcing a throwaway heap std::string that is immediately
rewrapped into a Twine. Drop the `.str()` and let Twine accept the
StringRef/concatenation directly.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
Commit: 22dce64361a23b954e5275b151cdbefc92eaa204
https://github.com/llvm/llvm-project/commit/22dce64361a23b954e5275b151cdbefc92eaa204
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.h
Log Message:
-----------
[AMDGPU] Remove some functions unused since #105645. NFC. (#204844)
Commit: 29692c150f86d76cfb58e8bf2c0e97dc6afd2088
https://github.com/llvm/llvm-project/commit/29692c150f86d76cfb58e8bf2c0e97dc6afd2088
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/CMakeLists.txt
M libc/docs/headers/index.rst
M libc/include/CMakeLists.txt
A libc/include/libgen.yaml
M libc/src/CMakeLists.txt
M libc/src/__support/CPP/string_view.h
A libc/src/libgen/CMakeLists.txt
A libc/src/libgen/basename.cpp
A libc/src/libgen/basename.h
A libc/src/libgen/dirname.cpp
A libc/src/libgen/dirname.h
M libc/test/src/CMakeLists.txt
A libc/test/src/libgen/CMakeLists.txt
A libc/test/src/libgen/basename_death_test.cpp
A libc/test/src/libgen/basename_test.cpp
A libc/test/src/libgen/dirname_death_test.cpp
A libc/test/src/libgen/dirname_test.cpp
A libc/utils/docgen/libgen.yaml
Log Message:
-----------
[libc] Implement basename and dirname in libgen.h (#204554)
Added the POSIX standard functions basename and dirname under a new
libgen.h header. The implementations modify the input path in-place
using cpp::string_view to determine boundaries safely.
Added find_last_not_of to cpp::string_view to support trailing slash
removal.
Implemented:
* libc/include/libgen.yaml, libgen.h.def: Public API definitions.
* libc/src/libgen/basename.cpp, dirname.cpp: Generic implementations.
* libc/test/src/libgen/: Unit and hermetic tests.
Registered the new entrypoints for all active Linux targets (x86_64,
aarch64, arm, riscv) and added docgen configuration.
Assisted-by: Automated tooling, human reviewed.
Commit: fd6a30b11da2bcbce657aa26a362e7d24aa9cd44
https://github.com/llvm/llvm-project/commit/fd6a30b11da2bcbce657aa26a362e7d24aa9cd44
Author: aokblast <aokblast at FreeBSD.org>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
M libcxx/utils/gdb/libcxx/printers.py
Log Message:
-----------
[libcxx] Make std::pair pretty-printer ABI-independent (#201768)
std::pair is printed explicitly instead of relying on GDB's default
struct formatting to keep output stable across ABI configurations.
With _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR (default on
some platforms, e.g. FreeBSD), std::pair gains an empty
__non_trivially_copyable_base base class. GDB would otherwise render
this as <...__non_trivially_copyable_base<...>> = {<No data fields>},
which makes output ABI-dependent.
Only first and second are meaningful, so print them directly.
Commit: d43b360c0625f930fc9bc3bfedb9419bd4acf928
https://github.com/llvm/llvm-project/commit/d43b360c0625f930fc9bc3bfedb9419bd4acf928
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/reduced-value-replace-extractelement-cost.ll
Log Message:
-----------
[SLP] Fix reduction cost crash for reduced values replaced by extractelement
A reduced value may be replaced by an extractelement while vectorizing a
previous subvector, so it is no longer a key in ReducedValsToOps.
Look through replaced values to the reduction operation among their users.
Fixes #204814
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/204847
Commit: 8c922aa493a3357ef9a9fab28e903b12fc2250ce
https://github.com/llvm/llvm-project/commit/8c922aa493a3357ef9a9fab28e903b12fc2250ce
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
Log Message:
-----------
[MemorySanitizer] Merge x86 BMI and PackedBits handlers into handleGenericBitManipulation (#204786)
As discussed on #204144 - its not necessary to have separate handlers, just because some are target intrinsics
Commit: abbb031d386908d4274306f77c9c2cdc3e34d28d
https://github.com/llvm/llvm-project/commit/abbb031d386908d4274306f77c9c2cdc3e34d28d
Author: David CARLIER <devnexen at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
A bolt/test/binary-analysis/AArch64/cfg-warning.s
Log Message:
-----------
[BOLT][rewrite] warn about functions without CFG before binary analyses. (#197294)
Commit: 85c81a23e759d9f45da28d074beacffe14c2ba99
https://github.com/llvm/llvm-project/commit/85c81a23e759d9f45da28d074beacffe14c2ba99
Author: Daniel Paoliello <danpao at microsoft.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/MC/MCWin64EH.cpp
M llvm/lib/Target/X86/X86WinEHUnwindV3.cpp
A llvm/test/CodeGen/X86/win64-eh-unwindv3-split-large.ll
M llvm/test/MC/COFF/seh-unwindv3-inheritance.s
M llvm/test/MC/COFF/seh-unwindv3-large.s
M llvm/test/MC/COFF/seh-unwindv3-nonmirror.s
Log Message:
-----------
[x64][win] Windows x64 unwind v3: Use tail-relative epilog offsets and add size-based splitting (#203108)
Win64 Unwind v3 encodes each epilog's EpilogOffset as a signed 16-bit
field. The encoder previously measured the first epilog offset from the
fragment start, which overflowed for large functions and produced a
cryptic "<unknown>:0: value too large for field" error (and, on the
early .seh_handlerdata path, an assertion failure).
Two changes:
- MCWin64EH.cpp: Always emit epilog offsets tail-relative. The first
epilog descriptor is measured from the fragment end and subsequent ones
as deltas from the previous epilog, so descriptors are emitted in
descending address order (all non-positive, per spec). A new lazy
MCUnwindV3EpilogOffsetTargetExpr resolves the fragment-end-relative
value at layout time (it may not have a symbol yet when emitted via
.seh_handlerdata) and reports a clean, function-named diagnostic on
genuine overflow.
- X86WinEHUnwindV3.cpp: Add Unwind-v2-style size-based sub-fragment
splitting. In addition to the existing >7-epilog split, the pass now
splits a funclet into chained fragments when an epilog is too far from
its fragment tail (using the V2 approximate-instruction-count heuristic,
tunable via -x86-wineh-unwindv3-epilog-distance-threshold). Splits use
SEH_SplitChainedAtEndOfBlock so the split lands after the epilog,
keeping every epilog close to its tail; a long trailing region becomes
its own epilog-free chained fragment.
Updates seh-unwindv3-large.s expectations to the new tail-relative
values and adds win64-eh-unwindv3-split-large.ll covering size-based
splitting.
Commit: e995171352b00123961e5c55600dd96bd11e7b60
https://github.com/llvm/llvm-project/commit/e995171352b00123961e5c55600dd96bd11e7b60
Author: Vicky Nguyen <vicky.trucviennguyen at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon/add.c
M clang/test/CodeGen/AArch64/neon/intrinsics.c
Log Message:
-----------
[CIR][AArch64] Upstream widening-addition and vector-shift-left-and-widen NEON builtins (#204285)
Related to https://github.com/llvm/llvm-project/issues/185382
CIR lowering for
- widening-addition intrinsics
(https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#widening-addition)
- vector-shift-left-and-widen intrinsics
(https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#vector-shift-left-and-widen)
Port tests:
- `clang/test/CodeGen/AArch64/neon_intrinsics.c` to
`clang/test/CodeGen/AArch64/neon/add.c`
- `clang/test/CodeGen/AArch64/neon_intrinsics.c` to
`clang/test/CodeGen/AArch64/neon/intrinsics.c`
Commit: ae60782c82682d20764f888321efb5d53df18a4a
https://github.com/llvm/llvm-project/commit/ae60782c82682d20764f888321efb5d53df18a4a
Author: Jeff Bailey <jbailey at raspberryginger.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/CMakeLists.txt
M libc/docs/headers/index.rst
M libc/include/CMakeLists.txt
R libc/include/libgen.yaml
M libc/src/CMakeLists.txt
M libc/src/__support/CPP/string_view.h
R libc/src/libgen/CMakeLists.txt
R libc/src/libgen/basename.cpp
R libc/src/libgen/basename.h
R libc/src/libgen/dirname.cpp
R libc/src/libgen/dirname.h
M libc/test/src/CMakeLists.txt
R libc/test/src/libgen/CMakeLists.txt
R libc/test/src/libgen/basename_death_test.cpp
R libc/test/src/libgen/basename_test.cpp
R libc/test/src/libgen/dirname_death_test.cpp
R libc/test/src/libgen/dirname_test.cpp
R libc/utils/docgen/libgen.yaml
Log Message:
-----------
Revert "[libc] Implement basename and dirname in libgen.h (#204554)" (#204856)
Reverted due to death tests failing with ASan on buildbots. Reverts
commit 29692c150f86d76cfb58e8bf2c0e97dc6afd2088.
Commit: 403ce0dc4bf3b288323a6e62d7d9056befdde483
https://github.com/llvm/llvm-project/commit/403ce0dc4bf3b288323a6e62d7d9056befdde483
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M flang/test/Semantics/OpenMP/declarative-directive01.f90
M flang/test/Semantics/OpenMP/requires01.f90
M flang/test/Semantics/OpenMP/requires03.f90
M flang/test/Semantics/OpenMP/requires04.f90
M flang/test/Semantics/OpenMP/requires05.f90
M flang/test/Semantics/OpenMP/requires06.f90
M flang/test/Semantics/OpenMP/requires07.f90
M flang/test/Semantics/OpenMP/requires08.f90
M flang/test/Semantics/OpenMP/requires10.f90
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[flang][OpenMP] Emit warning that REVERSE_OFFLOAD is not supported (#204647)
Right now we quietly ignore it, whereas the OpenMP spec mandates a
compilation error for requirements that the implementation does not
support.
The REVERSE_OFFLOAD was not causing a compilation error to allow testing
of incremental implementation improvements, but we should at least warn
about not supporting it.
Commit: ef5d544f9bc18c41941e0a701ed11124623fb480
https://github.com/llvm/llvm-project/commit/ef5d544f9bc18c41941e0a701ed11124623fb480
Author: Carlos Seo <carlos.seo at linaro.org>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/Support/ReductionProcessor.cpp
M flang/test/Lower/OpenMP/Todo/multiple-types-declare_reduction.f90
M flang/test/Lower/OpenMP/declare-reduction-character-allocatable.f90
M flang/test/Lower/OpenMP/declare-reduction-finalizer.f90
M flang/test/Lower/OpenMP/declare-reduction-initializer-component.f90
M flang/test/Lower/OpenMP/declare-reduction-initializer-defined-assign.f90
M flang/test/Lower/OpenMP/declare-reduction-initializer-rhs-call.f90
M flang/test/Lower/OpenMP/declare-reduction-no-initializer-intrinsic.f90
M flang/test/Lower/OpenMP/declare-reduction-no-initializer-target-derived.f90
A flang/test/Lower/OpenMP/declare-reduction-same-name-different-scope.f90
M flang/test/Lower/OpenMP/declare-reduction-target-intrinsic.f90
M flang/test/Lower/OpenMP/omp-declare-reduction-combsub.f90
M flang/test/Lower/OpenMP/omp-declare-reduction-derivedtype.f90
M flang/test/Lower/OpenMP/omp-declare-reduction-initsub.f90
M flang/test/Lower/OpenMP/omp-declare-reduction.f90
Log Message:
-----------
[flang][OpenMP] Scope-qualify user-defined reduction names in lowering (#202474)
A named !$omp declare reduction was lowered to an omp.declare_reduction
operation whose symbol name was just the bare reduction name (e.g.
`@a`), without any scope qualification. Semantic name resolution was
correct and gave each scope its own reduction symbol, but lowering
deduplicates the declare reduction op by name, so two subroutines that
declared a reduction with the same name collapsed onto a single op.
As a result, a reduction(name:var) clause could bind to a declaration
that leaked in from a different scope.
Per OpenMP 6.0 7.6.14, a user-defined reduction has the same visibility
and accessibility as a variable declared at the same location.
Qualify the generated op name with the scope in which the reduction is
declared using mangleName, the same approach already used for
omp.private and declare mapper. This is applied consistently when the op
is created, when a clause references it, and when its existence is
checked, so the names always agree.
Fixes #181270
Commit: fa135bb8cb8c4adf9fb7d5eb93143182dd632cd4
https://github.com/llvm/llvm-project/commit/fa135bb8cb8c4adf9fb7d5eb93143182dd632cd4
Author: Zhige Chen <zhige_chen at outlook.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/test/tools/llubi/assume_invalid_align.ll
M llvm/test/tools/llubi/controlflow.ll
M llvm/test/tools/llubi/intr_vector_manip.ll
M llvm/test/tools/llubi/invoke_poison.ll
M llvm/test/tools/llubi/metadata.ll
A llvm/test/tools/llubi/verify.ll
M llvm/tools/llubi/lib/Interpreter.cpp
M llvm/tools/llubi/llubi.cpp
Log Message:
-----------
[llubi] Run verifier on the input IR (#204095)
This PR runs the IR verifier in llubi by default and adds a
`--disable-verify` opt-out.
Commit: eb21e784ce4a9ade6f00fad259889f9ab3f25d1a
https://github.com/llvm/llvm-project/commit/eb21e784ce4a9ade6f00fad259889f9ab3f25d1a
Author: Daniel Paoliello <danpao at microsoft.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86WinEHUnwindV3.cpp
Log Message:
-----------
Mark LastEpilogIdx as maybe_unused (#204857)
#203108 added a variable which is read only in debug builds, so we are
seeing warning in release builds without asserts.
Commit: d10349cb51e19e25697be1ce19324274a8570d07
https://github.com/llvm/llvm-project/commit/d10349cb51e19e25697be1ce19324274a8570d07
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstCombine/pdep.ll
M llvm/test/Transforms/InstCombine/pext.ll
Log Message:
-----------
[InstSimplify] Add fold for pdep(0,x) -> 0 and pext(0,x) -> 0 (#204810)
As noted on #204144
Commit: bb87fbb82b93fec4f1f39015a1d9262746a4e62f
https://github.com/llvm/llvm-project/commit/bb87fbb82b93fec4f1f39015a1d9262746a4e62f
Author: Tim Gymnich <tim at gymni.ch>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/CAS/OnDiskGraphDB.cpp
M llvm/lib/CAS/OnDiskKeyValueDB.cpp
M llvm/lib/MC/MCObjectFileInfo.cpp
M llvm/lib/ObjCopy/COFF/COFFObjcopy.cpp
M llvm/lib/TableGen/TGParser.cpp
M llvm/lib/Transforms/IPO/InstrumentorConfigFile.cpp
M llvm/lib/Transforms/IPO/InstrumentorUtils.cpp
M llvm/tools/llvm-debuginfod/llvm-debuginfod.cpp
M llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
M llvm/tools/llvm-objdump/llvm-objdump.cpp
Log Message:
-----------
[llvm] Avoid premature Twine .str() materialization (#204828)
Commit: 394aa60e5678f07de7ad2f1923ddb2290f9ad7c6
https://github.com/llvm/llvm-project/commit/394aa60e5678f07de7ad2f1923ddb2290f9ad7c6
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
Log Message:
-----------
[CIR][NFC] Sync AArch64 NEON intrinsics with Clang (#204862)
Sync AArch64 NEON intrinsics with Clang after changes merged from
#204201
Commit: 7319a3cf812f487728a6f1de4f70846f9fee7513
https://github.com/llvm/llvm-project/commit/7319a3cf812f487728a6f1de4f70846f9fee7513
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/include/llvm/DebugInfo/DWARF/LowLevel/DWARFDataExtractorSimple.h
M llvm/include/llvm/Support/DataExtractor.h
M llvm/lib/DWP/DWP.cpp
M llvm/tools/llvm-dwarfdump/Statistics.cpp
M llvm/tools/llvm-objdump/SourcePrinter.cpp
M llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h
M llvm/tools/llvm-readobj/ELFDumper.cpp
M llvm/tools/obj2yaml/elf2yaml.cpp
M llvm/unittests/DebugInfo/DWARF/DWARFExpressionCompactPrinterTest.cpp
M llvm/unittests/Support/DataExtractorTest.cpp
Log Message:
-----------
[Support] Remove unused parameter of DataExtractor constructor (#204840)
#190519 removed the uses of the parameter, and several follow-up patches
cleaned up call sites. This is the last patch in the series that finally
removes the parameter.
While here, also remove the unused "truncating constructor".
Commit: 95e321951ad3041998e49bc0353482bcd27c65db
https://github.com/llvm/llvm-project/commit/95e321951ad3041998e49bc0353482bcd27c65db
Author: lonely eagle <2020382038 at qq.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M mlir/lib/Conversion/PtrToLLVM/PtrToLLVM.cpp
M mlir/test/Conversion/PtrToLLVM/ptr-to-llvm.mlir
Log Message:
-----------
[mlir][ptr] Add constantop convertion (#204846)
Previously, Ptr.ConstantOp was missing the lowering pattern to LLVM IR.
This PR adds the missing conversion logic. See
https://github.com/llvm/llvm-project/pull/190527#issuecomment-4751141164.
---------
Co-authored-by: Fabian Mora <fmora.dev at gmail.com>
Commit: f4043dbcafc93f9107b7c93ee8740cdb0fe22d7c
https://github.com/llvm/llvm-project/commit/f4043dbcafc93f9107b7c93ee8740cdb0fe22d7c
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
A lldb/test/API/macosx/deny-attach/Makefile
A lldb/test/API/macosx/deny-attach/TestDenyAttach.py
A lldb/test/API/macosx/deny-attach/main.c
M lldb/tools/debugserver/source/MacOSX/MachProcess.mm
Log Message:
-----------
[lldb] Survive ptrace(PT_DENY_ATTACH) when attaching (#204688)
A process can opt out of being debugged with ptrace(PT_DENY_ATTACH). The
XNU kernel enforces this by delivering SIGSEGV to the *attaching*
process while it is still inside the ptrace(PT_ATTACHEXC) syscall. This
means debugserver gets killed before it can inspect the result. LLDB
only sees the dropped connection ("error: attach failed: lost
connection").
The condition can't be detected up front: the target's P_LNOATTACH flag
is not exposed to userspace. To work around this, install a temporary
SIGSEGV handler around the ptrace(PT_ATTACHEXC) call in AttachForDebug
and siglongjmp back out if it fires, turning the fatal signal into an
EPERM that propagates to lldb as a clear message:
```
error: attach failed: cannot attach to process N because it has
disabled debugging via ptrace(PT_DENY_ATTACH)
```
The handler only acts on a SIGSEGV that arrives on the attaching thread
while the guard is armed. Any other SIGSEGV restores the default handler
and re-raises. Genuine, unrelated, crashes still report normally.
rdar://44542907
Assisted-by: Claude
Commit: 6b7dbd8f485dc710f41fe5383ac99c2c42f9f6b9
https://github.com/llvm/llvm-project/commit/6b7dbd8f485dc710f41fe5383ac99c2c42f9f6b9
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for gfx950 mfmas (#204696)
Commit: d1c306c5ef9fc687df3630145b256f0d67a767b2
https://github.com/llvm/llvm-project/commit/d1c306c5ef9fc687df3630145b256f0d67a767b2
Author: Amr Hesham <amr96 at programmer.net>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
A clang/test/CIR/CodeGen/agg-atomic-cast.cpp
Log Message:
-----------
[CIR] Implement Aggregate non-atomic to atomic cast (#204653)
Implement support for Aggregate non-atomic to atomic cast
Commit: e6a92e0d2dbe413f994ad743f3f94cc9f0281b82
https://github.com/llvm/llvm-project/commit/e6a92e0d2dbe413f994ad743f3f94cc9f0281b82
Author: Kevin Sala Penades <salapenades1 at llnl.gov>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/src/RecordReplay.cpp
M offload/test/tools/omp-kernel-replay/record-replay-diff-teams-threads.cpp
M offload/test/tools/omp-kernel-replay/record-replay-diff-threads.cpp
M offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp
Log Message:
-----------
[offload] Fix teams/threads limits in record replay (#200639)
The recording phase now sets the teams and threads limits provided by
the user (in the corresponding OpenMP clauses) or zero if not specified.
Additionally, the PR #199483 already enforces that replay's configuration
of threads and teams are respected.
This commit also changes the way we test record and replay when multiple
kernels are recorded in the same test. We use the record report to know how
to associate a json record descriptor file to the target region in the code. We
do not rely anymore on the modification time of the files to know the order,
which was problematic.
Commit: f1931891a9fe19c4b003b7dd2665ddc887f91a0d
https://github.com/llvm/llvm-project/commit/f1931891a9fe19c4b003b7dd2665ddc887f91a0d
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M libcxx/include/__cstddef/byte.h
M libcxx/test/libcxx/language.support/nodiscard.verify.cpp
Log Message:
-----------
[libc++][byte] Apply [[nodiscard]] to std::byte (#204674)
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
Towards: #172124
Commit: fe9521d11834f9c408406b5a5d6c617c6156d1b8
https://github.com/llvm/llvm-project/commit/fe9521d11834f9c408406b5a5d6c617c6156d1b8
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Log Message:
-----------
[LV] Unify header phi fixup and remove fixNonInductionPHIs (NFC). (#204886)
Unify the execute logic for VPPhi and VPWidenPHIRecipe into a shared
executePhiRecipe helper that handles both scalar and vector phis. For
header phis, only the preheader incoming value is added during execute;
the backedge is fixed up later by VPlan::execute().
This allows generalizing the VPlan::execute() fixup loop to handle all
loop headers (not just the first), removing the VPWidenPHIRecipe skip,
and eliminating fixNonInductionPHIs entirely.
Commit: 39f8f90cc9d8cf650823f397e56244b4d84168ff
https://github.com/llvm/llvm-project/commit/39f8f90cc9d8cf650823f397e56244b4d84168ff
Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
A llvm/test/CodeGen/SPIRV/instructions/undef-composite.ll
Log Message:
-----------
[SPIR-V] Lower undef nested in a constant aggregate (#204377)
A constant aggregate whose element is itself an aggregate `undef` was
never lowered to a placeholder. The raw aggregate operand reached
IRTranslator on the llvm.spv.const.composite call and aborted with
"unable to translate instruction".
A similar issue was found and fixed during SPV_KHR_poison_freeze
implementation. So instead of re-inventing a wheel - unify lowering with
poison.
Addresses the following observation:
https://github.com/llvm/llvm-project/pull/198037#discussion_r3304013315
Commit: 4195b294cb82f50fdfb980434439a22a0f5be315
https://github.com/llvm/llvm-project/commit/4195b294cb82f50fdfb980434439a22a0f5be315
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M .github/workflows/subscriber.yml
Log Message:
-----------
workflows/subscriber: Update to latest github automation container (#204692)
This one is about 33% smaller than the previous version.
Commit: 086f6331a5a904da8de84b30dcdaddc0a6220ed1
https://github.com/llvm/llvm-project/commit/086f6331a5a904da8de84b30dcdaddc0a6220ed1
Author: vangthao95 <vang.thao at amd.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.async.to.lds.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for load_async_to_lds (#204683)
Commit: f9fa59867f663d965dd7a6a72777477c4decee4d
https://github.com/llvm/llvm-project/commit/f9fa59867f663d965dd7a6a72777477c4decee4d
Author: Shilei Tian <i at tianshilei.me>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
M llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll
M llvm/test/CodeGen/AMDGPU/addsub64_carry.ll
M llvm/test/CodeGen/AMDGPU/carryout-selection.ll
M llvm/test/CodeGen/AMDGPU/dag-divergence.ll
M llvm/test/CodeGen/AMDGPU/div_i128.ll
M llvm/test/CodeGen/AMDGPU/div_v2i128.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64_noprivate.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64_system.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64_system_noprivate.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_i64_system.ll
A llvm/test/CodeGen/AMDGPU/i128-add-carry-chain.ll
M llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll
M llvm/test/CodeGen/AMDGPU/itofp.i128.ll
M llvm/test/CodeGen/AMDGPU/mad_64_32.ll
M llvm/test/CodeGen/AMDGPU/rem_i128.ll
M llvm/test/CodeGen/AMDGPU/uaddo.ll
M llvm/test/CodeGen/AMDGPU/usubo.ll
Log Message:
-----------
[AMDGPU] Use explicit carry nodes for i64 wide integer lowering (#204694)
This PR switches widened i64 add/sub lowering to use explicit
UADDO/USUBO carry
nodes instead of glue-based carry chains.
Commit: 90b204888de4da58d4f3b68355658c16a14a1e46
https://github.com/llvm/llvm-project/commit/90b204888de4da58d4f3b68355658c16a14a1e46
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
A llvm/test/Bitcode/Inputs/invalid-summary-version.bc
A llvm/test/Bitcode/invalid-summary-version.test
Log Message:
-----------
bitcode: Improve invalid summary version error (#204888)
Commit: c890f4dbc248cf5f22e9f5b212d03be44b77d499
https://github.com/llvm/llvm-project/commit/c890f4dbc248cf5f22e9f5b212d03be44b77d499
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 95e3219 (#204873)
This fixes 95e321951ad3041998e49bc0353482bcd27c65db.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: a8aba704b0972253ffb6d7bda770ecef43f5b131
https://github.com/llvm/llvm-project/commit/a8aba704b0972253ffb6d7bda770ecef43f5b131
Author: Steve Scalpone <sscalpone at nvidia.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Lower/MultiImageFortran.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/Transforms/MIFOpConversion.cpp
M flang/test/Lower/MIF/coarray_allocation3.f90
M flang/test/Lower/MIF/coarray_allocation4.f90
M flang/test/Lower/MIF/coarray_allocation5.f90
Log Message:
-----------
[Flang] Standardize coarray TODO() diagnostic messages (#204708)
Commit: ba5384a3e154e6f43ddc951ebc81b4b5edafcc1b
https://github.com/llvm/llvm-project/commit/ba5384a3e154e6f43ddc951ebc81b4b5edafcc1b
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/CommandLine.h
M llvm/lib/Support/CommandLine.cpp
M llvm/unittests/Support/CommandLineTest.cpp
Log Message:
-----------
[Support] Add a parser for cl::opt<ElementCount> (#203969)
This adds command-line option parsing support for ElementCount.
This allows the following syntax:
```
--my-option=4 ; Maps to ElementCount::getFixed(4)
--my-option="vscale x 8" ; Maps to ElementCount::getScalable(8)
```
This is intended to unify fixed/scalable option handling in the loop
vectorizer. Currently, we have options like
'`EpilogueVectorizationForceVF`' defined as `cl::opt<unsigned>` which do
not allow specifying scalable VFs.
Assisted-by: Codex
Commit: b32488f78b6c029aa0b0a011dbc8c593f2e8cb34
https://github.com/llvm/llvm-project/commit/b32488f78b6c029aa0b0a011dbc8c593f2e8cb34
Author: Hubert Tong <hubert.reinterpretcast at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CGExprCXX.cpp
M clang/test/CodeGen/ubsan-aggregate-null-align-bounds.c
Log Message:
-----------
[Clang][UBSan] Use EmitCheckedLValue for C++ trivial operator= operands (#203737)
Further to https://github.com/llvm/llvm-project/pull/190739, use
EmitCheckedLValue for trivial operator= operands
* for the LHS (`lhs->` not handled yet), and
* for the RHS also for function call syntax.
Commit: e47530b9f4d6c2417aeb578af615710cdce50597
https://github.com/llvm/llvm-project/commit/e47530b9f4d6c2417aeb578af615710cdce50597
Author: YongKang Zhu <yongzhu at fb.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M bolt/include/bolt/Core/BinaryContext.h
M bolt/lib/Passes/Aligner.cpp
M bolt/lib/Passes/LongJmp.cpp
M bolt/lib/Rewrite/BinaryPassManager.cpp
Log Message:
-----------
[BOLT][AArch64] Align tentative layout bases using per-section alignment (#204262)
Move `AssignSections` pass before `AlignerPass` so it can record the max
code alignment per output section, then align the tentative hot/cold
section bases using the recorded alignment, which makes tentative layout
better match actually emitted.
Commit: 092858485f00e6786da8a88c0c4d462247e64571
https://github.com/llvm/llvm-project/commit/092858485f00e6786da8a88c0c4d462247e64571
Author: owenca <owenpiano at gmail.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M clang/lib/Format/FormatTokenLexer.cpp
M clang/lib/Format/FormatTokenLexer.h
Log Message:
-----------
[clang-format][NFC] Clean up FormatTokenLexer (#203825)
Commit: 359bfe62ed1b1cd498cee558ed8699b2b88ae58b
https://github.com/llvm/llvm-project/commit/359bfe62ed1b1cd498cee558ed8699b2b88ae58b
Author: Zeyi Xu <mitchell.xu2 at gmail.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M clang/docs/LifetimeSafety.rst
M clang/include/clang/Basic/LangOptions.h
M clang/include/clang/Options/Options.td
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/test/Sema/LifetimeSafety/annotation-suggestions-fixits.cpp
M clang/test/Sema/LifetimeSafety/misplaced-lifetimebound-intra-tu.cpp
Log Message:
-----------
[LifetimeSafety] Allow configuring lifetimebound fix-it spelling (#204045)
When suggesting `[[clang::lifetimebound]]` fix-its, allow users to
provide a project-specific macro spelling with
`-lifetime-safety-lifetimebound-macro=...`.
If no spelling is configured, use a visible macro whose replacement
tokens spell the attribute, preferring the most recently defined
matching macro, and fall back to `[[clang::lifetimebound]]` or
`__attribute((lifetimebound))` otherwise.
Closes https://github.com/llvm/llvm-project/issues/200232
Commit: 2678b8f51e10df0beacade724b781ee214ec58f6
https://github.com/llvm/llvm-project/commit/2678b8f51e10df0beacade724b781ee214ec58f6
Author: Helena Kotas <hekotas at microsoft.com>
Date: 2026-06-19 (Fri, 19 Jun 2026)
Changed paths:
M llvm/lib/Target/DirectX/DXILOpLowering.cpp
M llvm/lib/Target/DirectX/DXILResourceAccess.cpp
A llvm/test/CodeGen/DirectX/ResourceAccess/load-constant-buffer-t.ll
Log Message:
-----------
[DirectX] Handle llvm.dx.resource.getbasepointer intrinsic in DXILResourceAccess pass (#204732)
The `llvm.dx.resource.getbasepointer` intrinsic is emitted for
`Constantbuffer<T>` element access and needs to be translated to
`llvm.dx.resource.load.cbufferrow` calls in the `DXILResourceAccess`
pass. The handling is identical to `llvm.dx.resource.getpointer` with a
0 offset.
Fixes #204234
Commit: e9acb01904be7c32e98dedee27b68f939d79549a
https://github.com/llvm/llvm-project/commit/e9acb01904be7c32e98dedee27b68f939d79549a
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/test/Driver/openmp-offload-gpu.c
M clang/test/OpenMP/bug60602.cpp
M clang/test/OpenMP/declare_target_local_codegen.cpp
M clang/test/OpenMP/distribute_codegen.cpp
M clang/test/OpenMP/distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_codegen.cpp
M clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/map_struct_ordering.cpp
M clang/test/OpenMP/nvptx_lambda_capturing.cpp
R clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp
M clang/test/OpenMP/reduction_implicit_map.cpp
M clang/test/OpenMP/spirv_target_teams_reduction_addrspace.c
M clang/test/OpenMP/target_codegen_global_capture.cpp
M clang/test/OpenMP/target_default_codegen.cpp
M clang/test/OpenMP/target_defaultmap_codegen_03.cpp
M clang/test/OpenMP/target_dyn_groupprivate_codegen.cpp
M clang/test/OpenMP/target_firstprivate_codegen.cpp
M clang/test/OpenMP/target_has_device_addr_codegen.cpp
M clang/test/OpenMP/target_has_device_addr_codegen_01.cpp
M clang/test/OpenMP/target_is_device_ptr_codegen.cpp
M clang/test/OpenMP/target_map_array_of_structs_with_nested_mapper_codegen.cpp
M clang/test/OpenMP/target_map_array_section_no_length_codegen.cpp
M clang/test/OpenMP/target_map_array_section_of_structs_with_nested_mapper_codegen.cpp
M clang/test/OpenMP/target_map_codegen_03.cpp
M clang/test/OpenMP/target_map_codegen_hold.cpp
M clang/test/OpenMP/target_map_deref_array_codegen.cpp
M clang/test/OpenMP/target_map_member_expr_codegen.cpp
M clang/test/OpenMP/target_offload_mandatory_codegen.cpp
M clang/test/OpenMP/target_ompx_dyn_cgroup_mem_codegen.cpp
M clang/test/OpenMP/target_parallel_codegen.cpp
M clang/test/OpenMP/target_parallel_for_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-2.cpp
M clang/test/OpenMP/target_parallel_generic_loop_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_parallel_if_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_strict_codegen.cpp
M clang/test/OpenMP/target_task_affinity_codegen.cpp
M clang/test/OpenMP/target_teams_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_order_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_if_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_order_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_private_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_teams_map_codegen.cpp
M clang/test/OpenMP/target_teams_num_teams_codegen.cpp
A clang/test/OpenMP/target_teams_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_thread_limit_codegen.cpp
M clang/test/OpenMP/teams_codegen.cpp
M clang/test/OpenMP/teams_distribute_codegen.cpp
M clang/test/OpenMP/teams_distribute_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_copyin_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_num_threads_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_num_threads_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/teams_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_codegen-1.cpp
M clang/test/OpenMP/teams_generic_loop_collapse_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_private_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_reduction_codegen.cpp
M clang/test/OpenMP/teams_private_codegen.cpp
M llvm/include/llvm/Frontend/OpenMP/OMPConstants.h
M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/test/Transforms/OpenMP/add_attributes.ll
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/allocatable_gpu_reduction_teams.mlir
M mlir/test/Target/LLVMIR/omptarget-multi-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-region-device-llvm.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction-array-descriptor.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-reduction.mlir
M mlir/test/Target/LLVMIR/openmp-target-launch-device.mlir
M offload/include/Shared/Environment.h
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M openmp/device/include/Interface.h
M openmp/device/src/Reduction.cpp
Log Message:
-----------
[OpenMP][offload] Cross-team reductions with variable number of teams (#195102)
This is a part of a series of patches that rework OpenMP cross-team
reductions.
This patch changes the cross-team reduction runtime to no longer work
through larger number of teams in chunks. Instead, we allocate a
suitable-sized global buffer for the team values and let all teams run
at once. The last team that finishes uses a strided loop to reduce the
team values from the global buffer.
We also use `mapping::getNumberOfThreadsInBlock()` instead of
`omp_get_num_threads()` because the reduction of the team values runs
outside of the parallel region device code, which would make
`omp_get_num_threads()` always return 1. For Generic-SPMD mode, we also
want to use all available threads, which means that we need to copy the
reduction data from LDS (where it lives in that mode by default) to
scratch in codegen before calling the cross-team reduction.
Performance:
All performance tests can be reproduced with
https://github.com/ro-i/xteam-test @ commit
2f09ae1f566f13189d20b414d8b83bf2986564d2. To reproduce, simply create a
`local.mk` file in the cloned directory with a suitable `OFFLOAD_ARCH`
for your machine and `CXX_trunk` + `CXX_trunk_dev` set to the paths of
the clang++ binaries for llvm/main and this patch. (llvm/main should
best be at the commit that is currently the base for this PR. At the
moment, this is fe87c971bf07eb38af97ca96bf2810e94e7549dc). Then, run
`make trunk trunk_dev` to build the benchmark binaries for 208 and 10400
teams. Run them with `./run_bench.sh -rq -n10 red_trunk_208
red_trunk_dev_208 red_trunk_10400 red_trunk_dev_10400` to get the avg
performance numbers over 10 rounds.
This tests multiple reduction workloads, including reductions that run
in the Generic-SPMD mode, with 208 teams and with 10400 teams, both à
512 threads, and with a reduction array size of 177,777,777. I tested on
a gfx942 and didn't find any regressions - here are some numbers showing
the performance of this patch relative to the baseline:
```
red_comb_sep_arr_32 double dev_208: +84.37% dev_10400: +54.06%
red_sum_arr_32 double dev_208: +9.72% dev_10400: +51.29%
red_comb double dev_208: +2.73% dev_10400: +8.73%
red_comb_sep double dev_208: +1.89% dev_10400: +87.13%
red_dot double dev_208: +1.46% dev_10400: +25.66%
red_indirect double dev_208: +1.51% dev_10400: +23.54%
red_kernel_part double dev_208: +1.27% dev_10400: +88.28%
red_max double dev_208: +1.29% dev_10400: +22.69%
red_mult double dev_208: +1.96% dev_10400: +22.02%
red_sum double dev_208: +2.03% dev_10400: +22.00%
red_pi double dev_208: +1.08% dev_10400: +1.22%
red_comb_sep_arr_32 uint dev_208: +139.10% dev_10400: +88.02%
red_sum_arr_32 uint dev_208: +49.70% dev_10400: +143.24%
red_dot uint dev_208: +0.77% dev_10400: +24.91%
red_max uint dev_208: +3.43% dev_10400: +36.61%
red_sum uint dev_208: +4.56% dev_10400: +36.95%
red_comb_sep_arr_32 ulong dev_208: +85.22% dev_10400: +58.17%
red_sum_arr_32 ulong dev_208: +9.01% dev_10400: +55.14%
red_dot ulong dev_208: +2.94% dev_10400: +26.89%
red_max ulong dev_208: +2.83% dev_10400: +23.10%
red_sum ulong dev_208: +1.59% dev_10400: +22.82%
red_comb_sep_arr_32 Value dev_208: +29.88% dev_10400: +24.17%
red_sum_arr_32 Value dev_208: +7.26% dev_10400: +38.14%
red_dot Value dev_208: +2.65% dev_10400: +8.60%
red_max Value dev_208: +2.86% dev_10400: +4.77%
red_sum Value dev_208: +0.47% dev_10400: +10.22%
```
This patch uses ideas from Johannes Doerfert, ideas from the AOMP
cross-team reduction implementation, and was assisted by Claude.
Commit: 4c16440e1edc00cd1b5a64944fc651064fe6425b
https://github.com/llvm/llvm-project/commit/4c16440e1edc00cd1b5a64944fc651064fe6425b
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/test/Driver/openmp-offload-gpu.c
M clang/test/OpenMP/bug60602.cpp
M clang/test/OpenMP/declare_target_local_codegen.cpp
M clang/test/OpenMP/distribute_codegen.cpp
M clang/test/OpenMP/distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_codegen.cpp
M clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/map_struct_ordering.cpp
M clang/test/OpenMP/nvptx_lambda_capturing.cpp
A clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp
M clang/test/OpenMP/reduction_implicit_map.cpp
M clang/test/OpenMP/spirv_target_teams_reduction_addrspace.c
M clang/test/OpenMP/target_codegen_global_capture.cpp
M clang/test/OpenMP/target_default_codegen.cpp
M clang/test/OpenMP/target_defaultmap_codegen_03.cpp
M clang/test/OpenMP/target_dyn_groupprivate_codegen.cpp
M clang/test/OpenMP/target_firstprivate_codegen.cpp
M clang/test/OpenMP/target_has_device_addr_codegen.cpp
M clang/test/OpenMP/target_has_device_addr_codegen_01.cpp
M clang/test/OpenMP/target_is_device_ptr_codegen.cpp
M clang/test/OpenMP/target_map_array_of_structs_with_nested_mapper_codegen.cpp
M clang/test/OpenMP/target_map_array_section_no_length_codegen.cpp
M clang/test/OpenMP/target_map_array_section_of_structs_with_nested_mapper_codegen.cpp
M clang/test/OpenMP/target_map_codegen_03.cpp
M clang/test/OpenMP/target_map_codegen_hold.cpp
M clang/test/OpenMP/target_map_deref_array_codegen.cpp
M clang/test/OpenMP/target_map_member_expr_codegen.cpp
M clang/test/OpenMP/target_offload_mandatory_codegen.cpp
M clang/test/OpenMP/target_ompx_dyn_cgroup_mem_codegen.cpp
M clang/test/OpenMP/target_parallel_codegen.cpp
M clang/test/OpenMP/target_parallel_for_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-2.cpp
M clang/test/OpenMP/target_parallel_generic_loop_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_parallel_if_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_strict_codegen.cpp
M clang/test/OpenMP/target_task_affinity_codegen.cpp
M clang/test/OpenMP/target_teams_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_order_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_if_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_order_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_private_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_teams_map_codegen.cpp
M clang/test/OpenMP/target_teams_num_teams_codegen.cpp
R clang/test/OpenMP/target_teams_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_thread_limit_codegen.cpp
M clang/test/OpenMP/teams_codegen.cpp
M clang/test/OpenMP/teams_distribute_codegen.cpp
M clang/test/OpenMP/teams_distribute_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_copyin_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_num_threads_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_num_threads_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/teams_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_codegen-1.cpp
M clang/test/OpenMP/teams_generic_loop_collapse_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_private_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_reduction_codegen.cpp
M clang/test/OpenMP/teams_private_codegen.cpp
M llvm/include/llvm/Frontend/OpenMP/OMPConstants.h
M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/test/Transforms/OpenMP/add_attributes.ll
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/allocatable_gpu_reduction_teams.mlir
M mlir/test/Target/LLVMIR/omptarget-multi-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-region-device-llvm.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction-array-descriptor.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-reduction.mlir
M mlir/test/Target/LLVMIR/openmp-target-launch-device.mlir
M offload/include/Shared/Environment.h
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M openmp/device/include/Interface.h
M openmp/device/src/Reduction.cpp
Log Message:
-----------
Revert "[OpenMP][offload] Cross-team reductions with variable number of teams" (#204914)
Reverts llvm/llvm-project#195102 due to some missed debug info issue
revealed by https://lab.llvm.org/buildbot/#/builders/67/builds/7022
Commit: a38998941b2f57ffce38d6161a48d59d7d481964
https://github.com/llvm/llvm-project/commit/a38998941b2f57ffce38d6161a48d59d7d481964
Author: Ferdinand Lemaire <flscminecraft at gmail.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M mlir/include/mlir/Conversion/Passes.h
M mlir/include/mlir/Conversion/Passes.td
A mlir/include/mlir/Conversion/RaiseWasm/RaiseWasmMLIR.h
M mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSAOps.td
M mlir/lib/Conversion/CMakeLists.txt
A mlir/lib/Conversion/RaiseWasm/CMakeLists.txt
A mlir/lib/Conversion/RaiseWasm/RaiseWasmMLIR.cpp
M mlir/lib/Dialect/WasmSSA/IR/WasmSSAOps.cpp
A mlir/test/Conversion/RaiseWasm/wasm-abs-to-math-abs.mlir
A mlir/test/Conversion/RaiseWasm/wasm-add-to-arith-add.mlir
A mlir/test/Conversion/RaiseWasm/wasm-and-to-arith-and.mlir
A mlir/test/Conversion/RaiseWasm/wasm-ceil-to-math-ceil.mlir
A mlir/test/Conversion/RaiseWasm/wasm-clz-to-math-clz.mlir
A mlir/test/Conversion/RaiseWasm/wasm-const-to-arith-const.mlir
A mlir/test/Conversion/RaiseWasm/wasm-convert-to-arith-tofp.mlir
A mlir/test/Conversion/RaiseWasm/wasm-copysign-to-math-copysign.mlir
A mlir/test/Conversion/RaiseWasm/wasm-ctz-to-math-ctz.mlir
A mlir/test/Conversion/RaiseWasm/wasm-demote-to-arith-trunc.mlir
A mlir/test/Conversion/RaiseWasm/wasm-div-to-arith-div.mlir
A mlir/test/Conversion/RaiseWasm/wasm-floor-to-math-floor.mlir
A mlir/test/Conversion/RaiseWasm/wasm-func-to-func.mlir
A mlir/test/Conversion/RaiseWasm/wasm-global-to-memref-global.mlir
A mlir/test/Conversion/RaiseWasm/wasm-local-to-memref.mlir
A mlir/test/Conversion/RaiseWasm/wasm-max-to-arith-maximumf.mlir
A mlir/test/Conversion/RaiseWasm/wasm-min-to-arith-minimumf.mlir
A mlir/test/Conversion/RaiseWasm/wasm-mul-to-arith-mul.mlir
A mlir/test/Conversion/RaiseWasm/wasm-neg-to-arith-neg.mlir
A mlir/test/Conversion/RaiseWasm/wasm-or-to-arith-or.mlir
A mlir/test/Conversion/RaiseWasm/wasm-popcnt-to-math-ctpop.mlir
A mlir/test/Conversion/RaiseWasm/wasm-promote-to-arith-ext.mlir
A mlir/test/Conversion/RaiseWasm/wasm-reinterpret-to-arith-bitcast.mlir
A mlir/test/Conversion/RaiseWasm/wasm-rem-to-arith-rem.mlir
A mlir/test/Conversion/RaiseWasm/wasm-shl-to-arith-shl.mlir
A mlir/test/Conversion/RaiseWasm/wasm-shr_s-to-arith-shrs.mlir
A mlir/test/Conversion/RaiseWasm/wasm-shr_u-to-arith-shru.mlir
A mlir/test/Conversion/RaiseWasm/wasm-sqrt-to-math-sqrt.mlir
A mlir/test/Conversion/RaiseWasm/wasm-sub-to-arith-sub.mlir
A mlir/test/Conversion/RaiseWasm/wasm-trunc-to-math-trunc.mlir
A mlir/test/Conversion/RaiseWasm/wasm-wrap-to-arith-trunc.mlir
A mlir/test/Conversion/RaiseWasm/wasm-xor-to-arith-xor.mlir
Log Message:
-----------
[MLIR][WASM] Introduce the RaiseWasmMLIRPass to convert WasmSSA MLIR to core dialects (#164562)
This is following https://github.com/llvm/llvm-project/pull/154674 and
still related to
https://discourse.llvm.org/t/rfc-mlir-dialect-for-webassembly/86758.
This PR introduces the RaiseWasmMLIRPass. This pass lowers WasmSSA MLIR
to other dialects of the LLVM ecosystem (namely: arith, math, cf and
memref).
This is the first PR of a series of 2 or 3 to introduce the lowering, as
an introduction it brings support for function calls, local and global
variables and handling of arithmetic operations. As explained in the
RFC, most WasmSSA operations have been made to stay close to other
dialects' semantics so that conversion is trivialized.
---------
Signed-off-by: Ferdinand Lemaire <flemairen6 at gmail.com>
Co-authored-by: Ferdinand Lemaire <ferdinand.lemaire at woven-planet.global>
Co-authored-by: Ferdinand Lemaire <flemairen6 at gmail.com>
Commit: ea9bae08990f581e9dce8f65844bc16b3249f91e
https://github.com/llvm/llvm-project/commit/ea9bae08990f581e9dce8f65844bc16b3249f91e
Author: Luc Forget <github at alias.lforget.fr>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M mlir/include/mlir/Conversion/Passes.h
M mlir/include/mlir/Conversion/Passes.td
R mlir/include/mlir/Conversion/RaiseWasm/RaiseWasmMLIR.h
M mlir/include/mlir/Dialect/WasmSSA/IR/WasmSSAOps.td
M mlir/lib/Conversion/CMakeLists.txt
R mlir/lib/Conversion/RaiseWasm/CMakeLists.txt
R mlir/lib/Conversion/RaiseWasm/RaiseWasmMLIR.cpp
M mlir/lib/Dialect/WasmSSA/IR/WasmSSAOps.cpp
R mlir/test/Conversion/RaiseWasm/wasm-abs-to-math-abs.mlir
R mlir/test/Conversion/RaiseWasm/wasm-add-to-arith-add.mlir
R mlir/test/Conversion/RaiseWasm/wasm-and-to-arith-and.mlir
R mlir/test/Conversion/RaiseWasm/wasm-ceil-to-math-ceil.mlir
R mlir/test/Conversion/RaiseWasm/wasm-clz-to-math-clz.mlir
R mlir/test/Conversion/RaiseWasm/wasm-const-to-arith-const.mlir
R mlir/test/Conversion/RaiseWasm/wasm-convert-to-arith-tofp.mlir
R mlir/test/Conversion/RaiseWasm/wasm-copysign-to-math-copysign.mlir
R mlir/test/Conversion/RaiseWasm/wasm-ctz-to-math-ctz.mlir
R mlir/test/Conversion/RaiseWasm/wasm-demote-to-arith-trunc.mlir
R mlir/test/Conversion/RaiseWasm/wasm-div-to-arith-div.mlir
R mlir/test/Conversion/RaiseWasm/wasm-floor-to-math-floor.mlir
R mlir/test/Conversion/RaiseWasm/wasm-func-to-func.mlir
R mlir/test/Conversion/RaiseWasm/wasm-global-to-memref-global.mlir
R mlir/test/Conversion/RaiseWasm/wasm-local-to-memref.mlir
R mlir/test/Conversion/RaiseWasm/wasm-max-to-arith-maximumf.mlir
R mlir/test/Conversion/RaiseWasm/wasm-min-to-arith-minimumf.mlir
R mlir/test/Conversion/RaiseWasm/wasm-mul-to-arith-mul.mlir
R mlir/test/Conversion/RaiseWasm/wasm-neg-to-arith-neg.mlir
R mlir/test/Conversion/RaiseWasm/wasm-or-to-arith-or.mlir
R mlir/test/Conversion/RaiseWasm/wasm-popcnt-to-math-ctpop.mlir
R mlir/test/Conversion/RaiseWasm/wasm-promote-to-arith-ext.mlir
R mlir/test/Conversion/RaiseWasm/wasm-reinterpret-to-arith-bitcast.mlir
R mlir/test/Conversion/RaiseWasm/wasm-rem-to-arith-rem.mlir
R mlir/test/Conversion/RaiseWasm/wasm-shl-to-arith-shl.mlir
R mlir/test/Conversion/RaiseWasm/wasm-shr_s-to-arith-shrs.mlir
R mlir/test/Conversion/RaiseWasm/wasm-shr_u-to-arith-shru.mlir
R mlir/test/Conversion/RaiseWasm/wasm-sqrt-to-math-sqrt.mlir
R mlir/test/Conversion/RaiseWasm/wasm-sub-to-arith-sub.mlir
R mlir/test/Conversion/RaiseWasm/wasm-trunc-to-math-trunc.mlir
R mlir/test/Conversion/RaiseWasm/wasm-wrap-to-arith-trunc.mlir
R mlir/test/Conversion/RaiseWasm/wasm-xor-to-arith-xor.mlir
Log Message:
-----------
Revert "[MLIR][WASM] Introduce the RaiseWasmMLIRPass to convert WasmSSA MLIR to core dialects" (#204917)
Reverts llvm/llvm-project#164562
Co-authored-by: Luc Forget <lforg37 at users.noreply.github.com>
Commit: ec3b4186a0f5bd182692721d14ed50af1f4af47d
https://github.com/llvm/llvm-project/commit/ec3b4186a0f5bd182692721d14ed50af1f4af47d
Author: A. Jiang <de34 at live.cn>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
A libcxx/test/std/language.support/support.types/byte.compile.pass.cpp
R libcxx/test/std/language.support/support.types/byte.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/and.assign.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/and.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/enum_direct_init.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/lshift.assign.compile.fail.cpp
M libcxx/test/std/language.support/support.types/byteops/lshift.assign.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/lshift.compile.fail.cpp
M libcxx/test/std/language.support/support.types/byteops/lshift.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/not.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/or.assign.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/or.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/rshift.assign.compile.fail.cpp
M libcxx/test/std/language.support/support.types/byteops/rshift.assign.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/rshift.compile.fail.cpp
M libcxx/test/std/language.support/support.types/byteops/rshift.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/to_integer.compile.fail.cpp
M libcxx/test/std/language.support/support.types/byteops/to_integer.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/xor.assign.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/xor.pass.cpp
Log Message:
-----------
[libc++][test] Rewrite tests for `std::byte` (#204116)
Previously, test files for `std::byte` were less than ideal. There were
many issues.
- `byte.pass.cpp` tested many properties which hold for enumeration
types, but failed to verity that `std::byte` is a scoped enumeration
type. Also, it was not a `.compile.pass.cpp`.
- `enum_direct_init.pass.cpp` seemed to be completely redundant.
- It was not tested that compound assignment operators return references
to their left operands.
- Return types of operators were rarely tested.
- Constraints of functions were not tested using SFINAE techniques.
- Test cases were not made run in both constant evaluation and at run
time in the conventional way.
This patch
- rewrites tests for `std::byte` to address these issues,
- expands test coverage for integer types listed in `type_algorithms.h`,
and
- updates lit comments to new-style `// REQUIRES: std-at-least-c++17`.
Commit: 9f578bc595ca7c1a5ce35b17c483fd6c557d11ef
https://github.com/llvm/llvm-project/commit/9f578bc595ca7c1a5ce35b17c483fd6c557d11ef
Author: Damian Höster <damian.hoester at posteo.de>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Format/UnwrappedLineParser.h
M clang/unittests/Format/FormatTest.cpp
Log Message:
-----------
[clang-format] Reset `Line->IsModuleOrImportDecl` in `addUnwrappedLine` (#204565)
The `IsModuleOrImportDecl` flag was not reset in `addUnwrappedLine`.
Since the parser recycles the `Line` object, this flag remained `true`
for all subsequent lines in the file, which disabled wrapping
(`CanBreakBefore` in `TokenAnnotator.cpp`) for expression-level
constructs after any C++20 module or import statement, causing some
formatting rules to not be applied in places. This patch fixes the issue
by resetting the flag to `false`.
---------
Co-authored-by: Owen Pan <owenpiano at gmail.com>
Commit: f21080724d2067b5acf01893bf2d544b49239161
https://github.com/llvm/llvm-project/commit/f21080724d2067b5acf01893bf2d544b49239161
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Analysis/LoopCacheAnalysis.cpp
Log Message:
-----------
[LoopCacheAnalysis] Drop isLoopSimplifyForm check (NFCI) (#204822)
This patch removes the isLoopSimplifyForm() check from
LoopCacheAnalysis. This check was problematic when I tried migrating
LoopCachePrinterPass from a loop pass to a function pass (i.e.,
#204807), because the former applies the loop-simplify pass via
FunctionToLoopPassAdapter, whereas the latter does not. I believe this
check is meaningless because the analysis doesn't pay attention to the
details of the actual loop structure. So this change should not affect
the behavior of the pass.
Commit: 342de06a7692e76a23b30761e576e58e675b65d8
https://github.com/llvm/llvm-project/commit/342de06a7692e76a23b30761e576e58e675b65d8
Author: Hazarath <92698778+hazarathayya at users.noreply.github.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/Reassociate.cpp
A llvm/test/Transforms/Reassociate/reassociate-distribute.ll
Log Message:
-----------
[Reassociate] Distribute multiply over add to enable factorization (#178201)
### This patch improves ReassociatePass to handle patterns like:
(x*C1) - ((y+x)*C2) → x*(C1-C2) - (y*C2)
The optimization consists of two changes:
1. Distribution pre-processing: Transform (A+B)*C → A*C + B*C when:
- The add has exactly one use (avoids code bloat)
- Both add operands are non-constant (avoids unprofitable cases)
This exposes common factors that would otherwise be hidden inside
the addition, enabling subsequent factorization.
2. Factorization heuristic: Prefer extracting non-constant factors
(Instructions/Arguments) over constant factors when occurrence
counts are equal. This enables better constant folding opportunities.
Note: undef is excluded from this preference to maintain existing
test expectations.
Example transformation:
Input IR:
```
%add = add nsw i16 %y, %x
%mul1 = mul nsw i16 %x, 8697
%mul2 = mul nsw i16 %add, 6436
%sub = sub nsw i16 %mul1, %mul2
ret i16 %sub
```
After distribution:
```
%1 = mul nsw i16 %y, 6436
%2 = mul nsw i16 %x, 6436
%3 = add nsw i16 %1, %2
%sub = sub nsw i16 %mul1, %3
```
After reassociation (factors %x, folds 8697-6436):
```
%neg = mul i16 %y, -6436
%reass.mul = mul i16 %x, 2261
%result = add i16 %reass.mul, %neg
```
The transformation preserves nsw/nuw flags during distribution.
Note that flags may be dropped by subsequent reassociation passes;
comprehensive flag preservation can be addressed in future work.
Fixes #167190
Commit: 56262f29ea23c50e82640c8bdc50cc17e9498688
https://github.com/llvm/llvm-project/commit/56262f29ea23c50e82640c8bdc50cc17e9498688
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M .github/workflows/new-prs.yml
Log Message:
-----------
workflows/new-prs: Use github-automation container (#204706)
Commit: 68079bb518dcdaec15ee3b202f45701d3a78fa91
https://github.com/llvm/llvm-project/commit/68079bb518dcdaec15ee3b202f45701d3a78fa91
Author: Jan Schultke <me at eisenwave.net>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/Builtins.td
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/test/AST/ByteCode/builtin-functions.cpp
M clang/test/CodeGen/builtins-elementwise-math.c
M clang/test/Sema/builtins-elementwise-math.c
Log Message:
-----------
[clang] Implement `__builtin_elementwise_pext` and `__builtin_elementwise_pdep` (#204296)
Closes #204126
This PR adds `__builtin_elementwise_pext` to emit `@llvm.pext` and `__builtin_elementwise_pdep` to emit `@llvm.pdep`.
Commit: 9019eff661e2c0e93f2389cf25a59fd24b0dd18a
https://github.com/llvm/llvm-project/commit/9019eff661e2c0e93f2389cf25a59fd24b0dd18a
Author: AZero13 <gfunni234 at gmail.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/test/Transforms/InstCombine/scmp.ll
M llvm/test/Transforms/InstCombine/select-to-cmp.ll
M llvm/test/Transforms/InstCombine/ucmp.ll
Log Message:
-----------
[InstCombine] Fold trunc scmp/ucmp -> scmp/ucmp with the target type being what we truncate (#196847)
I don't think I need an alive2 for this, since this is basically a
tautology/self-definition.
Commit: d186503ccc7ad93f695f60302c5def5efc3ac2dd
https://github.com/llvm/llvm-project/commit/d186503ccc7ad93f695f60302c5def5efc3ac2dd
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
Log Message:
-----------
[clang][bytecode][NFC] Remove dead code (#204910)
Unions can't have base classes so this is never used.
Commit: 465c904272709002665bd86765d8f11dc9390a98
https://github.com/llvm/llvm-project/commit/465c904272709002665bd86765d8f11dc9390a98
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] combineX86ShufflesRecursively - delay widening shuffle inputs. NFC. (#204931)
Perform resolveTargetShuffleInputsAndMask earlier as widening shouldn't
merge any inputs (we canonicalize small shuffle inputs earlier).
We should be able to move the widenSubVector calls inside
combineX86ShuffleChain in a future commit, but this patch should be NFC.
Commit: e26ff5491b91c66bb27bfd2b2ca8afe76bb7489d
https://github.com/llvm/llvm-project/commit/e26ff5491b91c66bb27bfd2b2ca8afe76bb7489d
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Log Message:
-----------
[InstCombine] Remove fold with OneUse as there is fold without the check (NFC) (#204925)
Commit: 2ec6f2870e13bb8807360f2278108b7d5240fe40
https://github.com/llvm/llvm-project/commit/2ec6f2870e13bb8807360f2278108b7d5240fe40
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/test/Transforms/InstCombine/set.ll
Log Message:
-----------
[InstCombine] Fold sext(and/or/xor(trunc nsw x), y) -> and/or/xor(sext(y), x) (#204928)
Proof: https://alive2.llvm.org/ce/z/ntVE_8
Commit: f6296fb4507e80f507024a28a21654e12543b62e
https://github.com/llvm/llvm-project/commit/f6296fb4507e80f507024a28a21654e12543b62e
Author: Andreas Jonson <andjo403 at hotmail.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/test/Transforms/InstCombine/zext.ll
Log Message:
-----------
[InstCombine] Fold zext(and/or/xor(trunc nuw x), y) -> and/or/xor(zext(y), x) (#204927)
proof: https://alive2.llvm.org/ce/z/ZORvJ6
Commit: b2c0c48595ab840c5b949d871302b0d1186acf53
https://github.com/llvm/llvm-project/commit/b2c0c48595ab840c5b949d871302b0d1186acf53
Author: AZero13 <gfunni234 at gmail.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/test/Transforms/InstCombine/add.ll
M llvm/test/Transforms/InstCombine/and-or-icmps.ll
M llvm/test/Transforms/InstCombine/or.ll
Log Message:
-----------
[InstCombine] Fold or (ashr X, BW-1), zext (icmp ne|sgt X, 0) to scmp(X, 0) (#196828)
Recognize the bitwise signum encoding
or (ashr X, BW-1), zext (icmp ne X, 0) --> llvm.scmp(X, 0)
or (ashr X, BW-1), zext (icmp sgt X, 0) --> llvm.scmp(X, 0)
Alive2: https://alive2.llvm.org/ce/z/UZ7a7Q
Commit: bae51e7ffb767d08d684290d34515b91f2cbb2ed
https://github.com/llvm/llvm-project/commit/bae51e7ffb767d08d684290d34515b91f2cbb2ed
Author: Arda Serdar Pektezol <arda at pektezol.dev>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/IR/Instructions.cpp
M llvm/test/Transforms/InstCombine/alloca-big.ll
Log Message:
-----------
[IR] handle oversized constant alloca counts in getAllocationSize (#204540)
AllocaInst::getAllocationSize() unconditionally calls getZExtValue() for
array allocas, which asserts when the constant element count is wider
than 64 bits.
Use tryZExtValue() when reading the constant array size instead. If the
count cannot be represented in uint64_t, return std::nullopt rather than
asserting, matching the existing contract.
Fixes #203519
Commit: c888371ff0a3e10f8472676dc992f4347fca58d9
https://github.com/llvm/llvm-project/commit/c888371ff0a3e10f8472676dc992f4347fca58d9
Author: player <playerc at msn.cn>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/CompileCommands.cpp
Log Message:
-----------
[clangd] Look for resource-dir relative to detected compiler path as a fallback (#203332)
If the standard resource directory (which is searched for relative to the clangd
executable) does not exist, look for one relative to the detected compiler as a
fallback. This handles some packaging schemes where clangd and clang are
installed in different prefixes and the resource directory is only located in the
latter.
Also print an error message to the log if the fallback didn't find an existing
directory either.
Commit: 0c3c664f32d5b15ae542ed66fa52ebf86974ccaa
https://github.com/llvm/llvm-project/commit/0c3c664f32d5b15ae542ed66fa52ebf86974ccaa
Author: Adam Scott <88979030+as4230 at users.noreply.github.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/PhaseOrdering/X86/madd.ll
M llvm/test/Transforms/PhaseOrdering/X86/sad.ll
M llvm/test/Transforms/PhaseOrdering/X86/vector-reductions.ll
M llvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll
M llvm/test/Transforms/VectorCombine/AArch64/partial-reduce-crash.ll
M llvm/test/Transforms/VectorCombine/X86/extract-binop-inseltpoison.ll
M llvm/test/Transforms/VectorCombine/X86/extract-binop.ll
A llvm/test/Transforms/VectorCombine/X86/shuffle-chain-reduction-subvector.ll
M llvm/test/Transforms/VectorCombine/X86/shuffle-chain-reduction-umin.ll
M llvm/test/Transforms/VectorCombine/fold-shuffle-chains-to-reduce.ll
Log Message:
-----------
[VectorCombine] Add subvector reduction support to foldShuffleChainsToReduce (#199872)
Extends foldShuffleChainsToReduce to recognise subvector reductions
where the chain narrows through shuffles before extracting lane 0.
The matcher tracks per output lane attribution as the chain is walked.
Each lane carries a per source bitmask of contributing source lanes plus
a poison flag. Shuffles permute these records. Binops union them. At the
extract, lane 0's bitmasks rebuild the reduction as one or more partial
reduce intrinsics. The walk is capped at 32 chain nodes.
Also added new test file with 11 tests:
| Test | Reason |
| ------------------------------------------------------ |
--------------------------------------------- |
| `_add_v4i32`, `_add_v8i16`, `_add_v16i8`, `_add_v64i8` | basic
subvector reductions across types/sizes |
| `_mul_v16i8` | non-add reduction |
| `_swapped_v8i16` | root operand swap |
| `_deinterleave_v8i16` | non-contiguous shuffle masks |
| `_multishuffle_accumulator_v8i32` | reduction with multiple shuffle
leaves |
| `_multisource_full_plus_scalar_v4i32` | multi-source reduction chain |
| `_neg_overlapping_masks_v8i16` | overlapping-mask reject case |
| `_neg_different_sources_v8i16` | non-profitable fold reject |
A few patterns the old matcher didn't fold get caught by the new one. In
`extract-binop.ll`, `ext_ext_partial_add_reduction_and_extra_add_v4i32`
mixes two source vectors. The old matcher walked a single chain
bottom-up assuming one source at the leaves so it bailed. The partial
reduction patterns in `load-extractelement-scalarization.ll` fold for
the same reason.
Fixes #197919
---------
Co-authored-by: Simon Pilgrim <llvm-dev at redking.me.uk>
Commit: 2c022e8d946619602e967924a7291f197119e8a5
https://github.com/llvm/llvm-project/commit/2c022e8d946619602e967924a7291f197119e8a5
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
M llvm/test/CodeGen/AArch64/lower-range-metadata-func-call.ll
M llvm/test/CodeGen/X86/legalize-vec-assertzext.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i16.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fma.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maximum.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maximumnum.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maxnum.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-minimum.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-minimumnum.ll
M llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-minnum.ll
M llvm/test/Verifier/nofpclass-metadata.ll
A llvm/test/Verifier/nonnull-metadata.ll
R llvm/test/Verifier/nonnull_metadata.ll
A llvm/test/Verifier/noundef-metadata.ll
R llvm/test/Verifier/range-1.ll
A llvm/test/Verifier/range-metadata.ll
M llvm/test/tools/llubi/metadata.ll
Log Message:
-----------
[Verifier] Only accept noundef metadata on loads and update metadata tests (#204922)
noundef metadata has been accepted everywhere so far, which seems to be
an oversight. This patch rejects it everywhere except for load
instructions, which seem to be the only ones where it's supposed to be
supported. The other metadata tests are also updated so they are
somewhat similar to each other.
Commit: cd532fe7fbcb72b6ca7a73f15cc8cb0023e7a9de
https://github.com/llvm/llvm-project/commit/cd532fe7fbcb72b6ca7a73f15cc8cb0023e7a9de
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/LoopCacheAnalysis.h
M llvm/lib/Analysis/LoopCacheAnalysis.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/LoopnestFixedSize.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/compute-cost-m32.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/compute-cost.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/loads-store.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/matmul.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/matvecmul.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/multi-store.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/single-store.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/stencil.ll
M llvm/test/Analysis/LoopCacheAnalysis/compute-cost.ll
M llvm/test/Analysis/LoopCacheAnalysis/interchange-cost-beneficial.ll
M llvm/test/Analysis/LoopCacheAnalysis/interchange-refcost-overflow.ll
M llvm/test/Analysis/LoopCacheAnalysis/partially-perfect-nest.ll
M llvm/utils/UpdateTestChecks/common.py
Log Message:
-----------
[LoopCacheAnalysis] Generate tests by update_analyze_test_checks.py (#204807)
Since loop interchange has been enabled in the default pipeline,
development on LoopCacheAnalysis, which is used by LoopInterchange, is
becoming more active. So I think it's a good time to support automatic
test generation for LoopCacheAnalysis.
This patch does two things. First, it changes LoopCachePrinterPass from
a loop pass to a function pass to make it possible to use
update_analyze_test_checks.py. Second, it rewrites all the CHECK
directives in the existing LoopCacheAnalysis tests using the script.
Commit: 6619aa70071db7d3a589fe50474e19c58dbca8f9
https://github.com/llvm/llvm-project/commit/6619aa70071db7d3a589fe50474e19c58dbca8f9
Author: Jeffrey Byrnes <jeffrey.byrnes at amd.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUBarrierLatency.cpp
A llvm/test/CodeGen/AMDGPU/fence-barrier-latency.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.update.dpp.ll
M llvm/test/CodeGen/AMDGPU/schedule-barrier-latency-gfx9.mir
Log Message:
-----------
[AMDGPU] Use SchedModel latencies for Fence barrier edges (#204657)
For memory->fence dependencies, this PR sets the latency of the edge to
the instr latency of the predecessor memory instruction.
During lowering of these fences, we insert the necessary waitcnts, and
we end up waiting for any outstanding memory op at these fences. Thus,
the latency of the edges should be based on latency of the associated
load/stores.
Commit: b9c334de33a9a0b5713b191f214de8c3c8990507
https://github.com/llvm/llvm-project/commit/b9c334de33a9a0b5713b191f214de8c3c8990507
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/insertvalue-reordered-operands.ll
Log Message:
-----------
[SLP] Fix scheduling crash for reordered insertvalue buildvector nodes
Insertvalue nodes keep scalars in program order but reorder operands, like
stores. Remap the operand lane via ReorderIndices for InsertValueInst (not
just StoreInst) in scheduling and the copyable helpers, fixing the
"Operand not found" assertion.
Fixes https://github.com/llvm/llvm-project/pull/200274#issuecomment-4753792761
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/204941
Commit: cb85dfeb3275dce8f00ab7bf18f6ef3734222069
https://github.com/llvm/llvm-project/commit/cb85dfeb3275dce8f00ab7bf18f6ef3734222069
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
A llvm/test/Transforms/LoopVectorize/shl-shift-amount-out-of-range-scev.ll
Log Message:
-----------
[VPlan] Skip shl->mul SCEV rewrite for out-of-range shift amounts. (#204921)
getSCEVExprForVPValue rewrites `shl x, c` as `x * (1 << c)` using
ScalarEvolution::getPowerOfTwo, which asserts that the power is less
than the type's bit width.
Only perform the rewrite when the shift amount is less than the
operand's bit width, to avoid assertion.
Commit: 18c1cbce6874a7341f357014befb66d4c11a04a9
https://github.com/llvm/llvm-project/commit/18c1cbce6874a7341f357014befb66d4c11a04a9
Author: Sungbin Jo <goranmoomin at daum.net>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/ObjCopy/MachO/MachOLayoutBuilder.cpp
M llvm/lib/ObjCopy/MachO/MachOWriter.cpp
A llvm/test/tools/llvm-objcopy/MachO/linkedit-alignment.test
M llvm/test/tools/llvm-objcopy/MachO/linkedit-order-1.test
M llvm/test/tools/llvm-objcopy/MachO/linkedit-order-2.test
M llvm/test/tools/llvm-objcopy/MachO/symbol-table.test
Log Message:
-----------
[llvm-objcopy][MachO] Align __LINKEDIT entries to pointer size (#203680)
Align Mach-O __LINKEDIT entries to the target pointer size when building
the tail layout. This matches the behavior of ld64 and lld-macho.
dyld on macOS 27 rejects loading dylibs with misaligned __LINKEDIT
entries.
See #203678 for details and the motivation of this fix.
AI Tool Use Disclosure:
Regarding the PR and the linked issue, I have personally wrote every
single part of the PR by myself, and have/ran/verified every single part
of the issue report as well without any AI tool usage.
I have used LLM-based coding agents only for debugging purposes, e.g. to
figure out why the dylib was not loading (from the original bug report),
and figuring out how to build, run, and test my local `llvm-objcopy`.
Commit: a891d7b38b31fd7e229f88c2555184713935ea60
https://github.com/llvm/llvm-project/commit/a891d7b38b31fd7e229f88c2555184713935ea60
Author: Daniel Rodríguez Troitiño <danielrodriguez at meta.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/ObjCopy/MachO/MachOLayoutBuilder.cpp
M llvm/lib/ObjCopy/MachO/MachOLayoutBuilder.h
M llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp
Log Message:
-----------
[llvm-objcopy][MachO] Use alignToPowerOf2 instead of alignTo (#204033)
During the review of #203680 I noticed that Mach-O objcopy files seems
to use `alignTo` and import `Alignment.h` to align some offsets to page
boundaries and similar requirements. However, the `alignTo` in
`Alignment.h`, while being intended for powers of 2, requires using an
alignment of type `llvm::Align`, and needs explicit conversion from
`uint64_t` and similar. Single `Alignment.h` includes `MathExtras.h`,
the `alignTo` being invoked ends up being a generic `alignTo` that does
not require powers of 2, and perform divisions and multiplications.
While some of those might be optimized by the compiler into efficient
power of 2 operations, there's an explicit `alignToPowerOf2` version
that is optimized and asserts the alignment is a power of 2 (with
asserts enabled). Since all the alignments should be power of 2 for the
Mach-O binary format, change from `alignTo` to `alignToPowerOf2` to make
the fact more visible (and get the extra safety net of the assertions).
As expected, the test suite of objcopy doesn't show any regressions, but
I have not done a performance benchmark around this either.
Commit: d0c27761d4f1e25d1ab4b672d23bc7e46f517bcd
https://github.com/llvm/llvm-project/commit/d0c27761d4f1e25d1ab4b672d23bc7e46f517bcd
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/test/Analysis/BasicAA/phi-aa.ll
M llvm/test/Analysis/BasicAA/phi-and-select.ll
M llvm/test/Analysis/BasicAA/recphi.ll
Log Message:
-----------
[BasicAA] Add additional tests with GEPs with phi/select pointer ops (NFC) (#204947)
Commit: 5502491546363465ef2b58dbf5821a67a3be6164
https://github.com/llvm/llvm-project/commit/5502491546363465ef2b58dbf5821a67a3be6164
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops-and-casts.ll
M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops.ll
Log Message:
-----------
[VPlan] Properly check predicates and types in canNarrowOps. (#204948)
Update canNarrowOps to properly check the types of all members match.
Similarly, for recipes with predicates, the predicates must match.
Commit: 3c5f0c2d3e00a22a275f404bac29ce62c69d95d5
https://github.com/llvm/llvm-project/commit/3c5f0c2d3e00a22a275f404bac29ce62c69d95d5
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
A llvm/test/Transforms/LoopVectorize/VPlan/AArch64/vplan-memory-op-decisions.ll
Log Message:
-----------
[VPlan] Add memory op decision test for scalarizing loads. (NFC) (#204949)
VPlan printing tests for
https://github.com/llvm/llvm-project/pull/196842
Commit: 959f069f442d75dd7c365cb608140693e834b93e
https://github.com/llvm/llvm-project/commit/959f069f442d75dd7c365cb608140693e834b93e
Author: jofrn <jo7frn1 at gmail.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/test/CodeGen/X86/atomic-load-store.ll
Log Message:
-----------
[SelectionDAG] Keep split vector atomic store value in a vector register (#201566)
When the value of an ATOMIC_STORE has a vector type whose legalization
action is split (e.g. <4 x half>/<4 x bfloat> on X86 without F16C),
SplitVecOp_ATOMIC_STORE bitcast the value straight to a scalar integer
spanning the memory width. For a split vector that bitcast is expanded
element by element, reassembling the value in GPRs (a long pextrw/shl/or
sequence) before the store.
Instead, keep the value in a vector register when a legal vector form
exists: reinterpret it as a same-shaped integer-element vector (an FP
element type may have no legal vector form, e.g. bfloat on SSE2, while
the integer-of-element-size form does), widen that to a legal vector,
and extract the low integer element of the memory width. This issues the
store directly from a vector register (a single MOVQ/MOVD on X86),
matching the widen-path codegen already produced on AVX targets. Falls
back to the scalar bitcast when no suitable legal vector type exists.
Stacked on top of https://github.com/llvm/llvm-project/pull/197861; and
below of #197862.
Commit: 61d601e796beef1b891ca437dd3167fbabad4451
https://github.com/llvm/llvm-project/commit/61d601e796beef1b891ca437dd3167fbabad4451
Author: Zach Goldthorpe <Zach.Goldthorpe at amd.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNVOPDUtils.cpp
Log Message:
-----------
[AMDGPU][VOPD] Cache load reachability checks in VOPDpairing (#204854)
#201930 causes significant compilation time regression when building
ROCm mathlibs.
Major regressions are caused by repeated queries to `DAG->IsReachable`
to detect possible scalarisation of loads when fusing a pair of
VOPD-capable instructions.
This patch caches the set of reachable loads for every potentially
hazardous load instruction to avoid the need to invoke
`DAG->IsReachable` at all.
Commit: afac572cd4c58b02ebe9a72c04f63a91dccc7901
https://github.com/llvm/llvm-project/commit/afac572cd4c58b02ebe9a72c04f63a91dccc7901
Author: owenca <owenpiano at gmail.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M clang/test/CMakeLists.txt
Log Message:
-----------
[clang] Add clang-format-check-format instead to CLANG_TEST_DEPS (#204908)
Ensure that clang-format doesn't break the existing format of its own
source.
Reverts #199169 and #199638.
Commit: ec56065709fe771c90da191f107126ac71bc09ad
https://github.com/llvm/llvm-project/commit/ec56065709fe771c90da191f107126ac71bc09ad
Author: Tom Stellard <tstellar at redhat.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M .github/workflows/new-prs.yml
Log Message:
-----------
workflows/new-prs: Remove obsolete code (#204955)
This was left over after 57e4352de0d2617bae1656dc2e2b3ca430e83c4c and
causing the jobs to fail.
Commit: 9d6c686a8a77e8c5ff9b42803c1bf07bcc1b66b3
https://github.com/llvm/llvm-project/commit/9d6c686a8a77e8c5ff9b42803c1bf07bcc1b66b3
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M orc-rt/include/orc-rt/Session.h
M orc-rt/lib/executor/Session.cpp
Log Message:
-----------
[orc-rt] Sink Session::sendWrapperResult into Session.cpp. NFC. (#204956)
This function is never called inline (except by Session::wrapperReturn,
which is also in Session.cpp), so there's no need for it to be in the
header.
Commit: 7376a706150289cf60fb3648e75e909ab6e86f68
https://github.com/llvm/llvm-project/commit/7376a706150289cf60fb3648e75e909ab6e86f68
Author: Tamir Duberstein <tamird at gmail.com>
Date: 2026-06-20 (Sat, 20 Jun 2026)
Changed paths:
M compiler-rt/lib/tsan/rtl/tsan_platform.h
Log Message:
-----------
[tsan] fit Go/s390x mapping under QEMU (#204503)
QEMU linux-user first tries guest_base=0. In that identity-mapped mode,
fixed guest mappings use the same host addresses. On an x86-64 host
with four-level page tables, the Go/s390x meta shadow starts at
144 TiB, beyond the 128 TiB userspace limit, and its mmap fails with
ENOMEM during TSan initialization.
Move the meta shadow down by 32 TiB to
[0x700000000000, 0x780000000000), restoring the 16 TiB gap after the
shadow and placing all Go/s390x TSan regions below 2^47. Correct the
mapping comment's shadow size and ratio.
Failure report and native s390x comparison:
https://github.com/golang/go/issues/67881
QEMU identity guest-base selection:
https://github.com/qemu/qemu/blob/v10.2.3/linux-user/elfload.c#L1036-L1042
QEMU guest-to-host address translation:
https://github.com/qemu/qemu/blob/v10.2.3/include/user/guest-host.h#L46-L50
QEMU fixed-mapping implementation:
https://github.com/qemu/qemu/blob/v10.2.3/linux-user/mmap.c#L600-L628
x86-64 four-level paging documentation:
https://docs.kernel.org/arch/x86/x86_64/5level-paging.html
Commit: f42072ed8de552ce25b7a978c052acca6ab13246
https://github.com/llvm/llvm-project/commit/f42072ed8de552ce25b7a978c052acca6ab13246
Author: Jan Schultke <me at eisenwave.net>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/KnownBits.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/Support/KnownBits.cpp
A llvm/test/Analysis/ValueTracking/knownbits-pdep.ll
A llvm/test/Analysis/ValueTracking/knownbits-pext.ll
M llvm/unittests/Support/KnownBitsTest.cpp
Log Message:
-----------
[Analysis] Add `KnownBits` optimization for `pdep` and `pext` (#204223)
Fixes #204136
Commit: 8947e494f92e37d036ec22b79464368292eae177
https://github.com/llvm/llvm-project/commit/8947e494f92e37d036ec22b79464368292eae177
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/assume.ll
Log Message:
-----------
[InstCombine] Move alignment assumptions to the base of constant offset GEPs (#204602)
Commit: 71c2feb30426af725dd93297b9dccc18f8210a0e
https://github.com/llvm/llvm-project/commit/71c2feb30426af725dd93297b9dccc18f8210a0e
Author: shivaramaarao <58245296+shivaramaarao at users.noreply.github.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M flang/test/Integration/split-lto-unit-2.f90
Log Message:
-----------
Support for -fsplit-lto-unit option in flang driver (#204904)
Fix for buildbot failures in #202858
This commit fixes a regression introduced in commit
12aefe26cedd9a8f94546cc1f2be285cfddcc861 (Support for -fsplit-lto-unit
option in flang driver). When the compiler is built only for aarch64 one
of the testcase failed.
Added explicit check %if x86-registered-target for this testcase to
resolve the issue.
Commit: 441725611d0e166a144ac85665bf0ac3611851de
https://github.com/llvm/llvm-project/commit/441725611d0e166a144ac85665bf0ac3611851de
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
A llvm/test/Transforms/LoopVectorize/AArch64/vplan-native-outer-loop-wide-type.ll
Log Message:
-----------
[LV] Avoid zero-width VF in computeVPlanOuterloopVF. (#204918)
RegSize / WidestType may be 0 for types wider than the vector register
size. Clamp VF to at least 1 (scalar), to avoid a crash. This matches
inner loop behavior.
Commit: 9b36e4fbc789201228ca9b40524996e13959505a
https://github.com/llvm/llvm-project/commit/9b36e4fbc789201228ca9b40524996e13959505a
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M orc-rt/include/CMakeLists.txt
A orc-rt/include/orc-rt/QueueingRunner.h
R orc-rt/include/orc-rt/QueueingTaskDispatcher.h
M orc-rt/include/orc-rt/Session.h
R orc-rt/include/orc-rt/TaskDispatcher.h
A orc-rt/include/orc-rt/ThreadPoolRunner.h
R orc-rt/include/orc-rt/ThreadPoolTaskDispatcher.h
M orc-rt/lib/executor/CMakeLists.txt
R orc-rt/lib/executor/QueueingTaskDispatcher.cpp
M orc-rt/lib/executor/Session.cpp
R orc-rt/lib/executor/TaskDispatcher.cpp
A orc-rt/lib/executor/ThreadPoolRunner.cpp
R orc-rt/lib/executor/ThreadPoolTaskDispatcher.cpp
M orc-rt/unittests/BootstrapInfoTest.cpp
M orc-rt/unittests/CMakeLists.txt
M orc-rt/unittests/CommonTestUtils.h
M orc-rt/unittests/NativeDylibManagerSPSCITest.cpp
M orc-rt/unittests/NativeDylibManagerTest.cpp
A orc-rt/unittests/QueueingRunnerTest.cpp
R orc-rt/unittests/QueueingTaskDispatcherTest.cpp
M orc-rt/unittests/SessionTest.cpp
M orc-rt/unittests/SimpleNativeMemoryMapSPSCITest.cpp
M orc-rt/unittests/SimpleNativeMemoryMapTest.cpp
A orc-rt/unittests/ThreadPoolRunnerTest.cpp
R orc-rt/unittests/ThreadPoolTaskDispatcherTest.cpp
Log Message:
-----------
[orc-rt] Replace TaskDispatcher with Session-supplied wrapper-runner. (#204965)
TaskDispatcher was only used to run wrapper-function calls that
originated from the controller. Replace it with a callable type:
Session::RunWrapperCall = move_only_function<void(
orc_rt_SessionRef, uint64_t, orc_rt_WrapperFunctionReturn,
orc_rt_WrapperFunction, WrapperFunctionBuffer)>
Each call carries an outstanding ManagedCodeTaskGroup token; the runner
must eventually invoke Fn (which calls Return) or call Return directly
to bail out, otherwise Session shutdown blocks indefinitely.
Clients can supply any callable that satisfies the contract above. The
new QueueingRunner and ThreadPoolRunner classes (replacing
QueueingTaskDispatcher and ThreadPoolTaskDispatcher, respectively) are
provided as off-the-shelf options.
Commit: a12b7af17a70f810ac3abe906b42930307efdaf0
https://github.com/llvm/llvm-project/commit/a12b7af17a70f810ac3abe906b42930307efdaf0
Author: Harishankar.1 <88716735+Harishankar14 at users.noreply.github.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/lib/Target/X86/X86InstrMisc.td
M llvm/test/CodeGen/X86/bmi.ll
Log Message:
-----------
[X86] Select BLSI for i8 operands (#202344) (#204746)
Adds a tablegen pattern to select BLSI 32 for `and (neg x), x` at i8.
Fixes #202344
Commit: e0cc08dc1121126392df2b832ee060a60cca6dc3
https://github.com/llvm/llvm-project/commit/e0cc08dc1121126392df2b832ee060a60cca6dc3
Author: Akash Deo <AkashDeo2025 at u.Northwestern.edu>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsX86.td
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/Headers/avx512vlvnniintrin.h
M clang/lib/Headers/avx512vnniintrin.h
M clang/lib/Headers/avxvnniintrin.h
M clang/test/CodeGen/X86/avx512vlvnni-builtins.c
M clang/test/CodeGen/X86/avx512vnni-builtins.c
M clang/test/CodeGen/X86/avxvnni-builtins.c
Log Message:
-----------
[clang][x86] Add constexpr support for VNNI intrinsics (#190549)
Fixes #161340.
It adds constexpr support for VNNI
intrinsics by modifying their header files, their TableGen definitions,
how they're interpreted in InterpBuiltin.cpp and ExprConstant.cpp, and
adds unit tests in the headers' corresponding unit test files.
Commit: 4f3eb803343711c69e287da8a3272ab9449b53a9
https://github.com/llvm/llvm-project/commit/4f3eb803343711c69e287da8a3272ab9449b53a9
Author: Kern Handa <kernhanda at users.noreply.github.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaInstPrinter.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp
Log Message:
-----------
[Xtensa] Call isUInt<8> in range-check asserts (#204731)
`printOffset8m8_AsmOperand` and `getSelect_256OpValue` assert on
`isUInt<8>` without calling it, so the expression takes the function's
address and the range check never runs. This also trips
`-Werror,-Wpointer-bool-conversion` in builds with assertions enabled.
Pass the operand value so the bound is actually checked.
Commit: 3b46feb29499a3a43a166b36ce59bb6d49ec6682
https://github.com/llvm/llvm-project/commit/3b46feb29499a3a43a166b36ce59bb6d49ec6682
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
A llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-tail-folding.ll
Log Message:
-----------
[VPlan] Allow plain active lane mask in LastActiveLane verifier. (#204982)
Active lane masks are prefix masks. After simplifying the backedge, we
may end up with an active-lane-mask operand of LastActiveLane that does
not match the header mask predicate.
This fixes a verifier failure for the new test.
Commit: d6d4921b71e66540bcf582e41b202d533fbfe762
https://github.com/llvm/llvm-project/commit/d6d4921b71e66540bcf582e41b202d533fbfe762
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/utils/gn/build/write_cmake_config.gni
M llvm/utils/gn/secondary/llvm/lib/Transforms/IPO/BUILD.gn
Log Message:
-----------
[gn] Fix missing dependency (#204991)
This fixes an oversight in 27d344d36ecac364.
Commit: 6542d6dec0110452ede41f58938b4225f2d92a98
https://github.com/llvm/llvm-project/commit/6542d6dec0110452ede41f58938b4225f2d92a98
Author: David Green <david.green at arm.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
M llvm/test/CodeGen/Thumb2/cmpxchg.mir
Log Message:
-----------
[ARM] Use lo tCMPr opcode when expanding CMP_SWAP (#204567)
We were always generating the tCMPhir even when the registers were both
low, which is an unpredictable instruction. Generating tCMPr instead
when both the registers are low.
Fixes #204519.
Commit: 48c0a2a551bc0116298a28e67c368b052469641d
https://github.com/llvm/llvm-project/commit/48c0a2a551bc0116298a28e67c368b052469641d
Author: AZero13 <gfunni234 at gmail.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/test/CodeGen/PowerPC/ucmp.ll
Log Message:
-----------
Revert "[Legalizer] Add support for promoting integers for s/ucmp (#198554) (#204978)
This reverts commit 91edd87a801fc5c9d12c7f5c6863edd50327cef8.
It was causing CI failures for Linux.
Commit: 47fd9ed9e958bf6df1d2fdaa50f70501271f27af
https://github.com/llvm/llvm-project/commit/47fd9ed9e958bf6df1d2fdaa50f70501271f27af
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn
Log Message:
-----------
[gn build] Port 60a2d437bd04 (#204996)
Commit: d3b48ccccb3a826515e8bc0def3c9fa3b24880a2
https://github.com/llvm/llvm-project/commit/d3b48ccccb3a826515e8bc0def3c9fa3b24880a2
Author: Nico Weber <thakis at chromium.org>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
Log Message:
-----------
[gn build] Port a64928f267f3 (#204997)
Commit: a3230900a8809a45ac3952af186cf03d87183cfb
https://github.com/llvm/llvm-project/commit/a3230900a8809a45ac3952af186cf03d87183cfb
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
Log Message:
-----------
[VPlan] Add VPReplicateRecipe::getNumOperandsWithoutMask (NFC) (#205004)
Add a getNumOperandsWithoutMask helper to VPReplicateRecipe, mirroring
the existing VPInstruction::getNumOperandsWithoutMask, and use it to
replace some hand-rolled code.
Commit: 5bb5410d5b6d289a0a402ed4de052eb86e8bce5f
https://github.com/llvm/llvm-project/commit/5bb5410d5b6d289a0a402ed4de052eb86e8bce5f
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
Log Message:
-----------
[VPlan] Use pattern matching in isUsedByLoadStoreAddress (NFC) (#205008)
Replace the hand-written check for a VPReplicateRecipe load/store using
the value as its address with VPlan pattern matching via
m_Unary/m_Binary, which also handle masked recipes uniformly.
Commit: d1744cf76fbea0c407c5e793a380ffca4e5829be
https://github.com/llvm/llvm-project/commit/d1744cf76fbea0c407c5e793a380ffca4e5829be
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M orc-rt/include/CMakeLists.txt
A orc-rt/include/orc-rt/InProcessControllerAccess.h
M orc-rt/lib/executor/CMakeLists.txt
A orc-rt/lib/executor/InProcessControllerAccess.cpp
M orc-rt/unittests/CMakeLists.txt
A orc-rt/unittests/InProcessControllerAccessTest.cpp
Log Message:
-----------
[orc-rt] Add InProcessControllerAccess class. (#204976)
Adds a Session::ControllerAccess implementation for in-process JIT
setups, where the controller (LLVM-side) and the executor (orc-rt) live
in the same address space.
The two sides communicate through a refcounted C-ABI struct (Connection)
of function pointers. The C-only interface avoids assuming a common C++
ABI between the two sides and supports symmetric, graceful disconnect:
when either side calls Connection::Disconnect, in-flight cross-calls are
drained and pending continuations are surfaced as out-of-band errors,
after which further cross-calls fail cleanly.
This is intended to be paired with a new ExecutorProcessControl
implementation (llvm::orc::InProcessEPC) on the LLVM side, landing in a
follow-up commit. Unit tests are included covering construction without
connect, attach via Session, OnConnect-failure detach, successful and
out-of-band-error call cases, and the disconnect-drains-pending
behavior.
Commit: 2e87cf8c2b8ec6453ccfa7e448d5b33f1d71a2ca
https://github.com/llvm/llvm-project/commit/2e87cf8c2b8ec6453ccfa7e448d5b33f1d71a2ca
Author: jofrn <jo7frn1 at gmail.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/test/CodeGen/ARM/atomic-load-store.ll
M llvm/test/CodeGen/X86/atomic-load-store.ll
M llvm/test/Transforms/AtomicExpand/X86/expand-atomic-non-integer.ll
Log Message:
-----------
[AtomicExpand] Add bitcasts when expanding store atomic vector (#197862)
AtomicExpand fails for aligned `store atomic <n x T>` because it
does not find a compatible library call. This change adds appropriate
ptrtoint + bitcast so that the call can be lowered, mirroring the
load-side handling.
Store-side counterpart to #148900. Stacked on top of
https://github.com/llvm/llvm-project/pull/201566.
Commit: bc047d40eb3a17451af586a973d6a0e5e4f0fd5c
https://github.com/llvm/llvm-project/commit/bc047d40eb3a17451af586a973d6a0e5e4f0fd5c
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M orc-rt/include/orc-rt/ScopeExit.h
M orc-rt/lib/executor/AllocAction.cpp
M orc-rt/unittests/ScopeExitTest.cpp
Log Message:
-----------
[orc-rt]R Align scope-exit with LLVM (rename to scope_exit, use CTAD) (#205020)
This renames the orc_rt::detail::ScopeExitRunner class to
orc_rt::scope_exit and adds a class template argument deduction guide.
Commit: 75fbd791638e583eb5bf483906fb5a75b7ab18b0
https://github.com/llvm/llvm-project/commit/75fbd791638e583eb5bf483906fb5a75b7ab18b0
Author: Zhaoxuan Jiang <jiangzhaoxuan94 at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lld/MachO/ICF.cpp
A lld/test/MachO/icf-safe-data-addrsig.s
Log Message:
-----------
[lld-macho] Relax safe ICF's keepUnique for ld64-coalesced data sections (#193125)
#188400 regressed data-section folding under --icf=safe{,_thunks}:
no-addrsig fallback, and over-broad compiler-emitted addrsig entries
covering data symbols, both caused markSymAsAddrSig to set keepUnique on
data sections, after which foldIdenticalSections refused to fold them.
ld64 coalesces __cfstring, __objc_classrefs and __objc_selrefs
unconditionally regardless of addrsig, so ignore keepUnique for them as
a workaround for the imprecise addrsig payload.
Commit: fc7bcd0ce864c631b7429f795249ea8cef6634a7
https://github.com/llvm/llvm-project/commit/fc7bcd0ce864c631b7429f795249ea8cef6634a7
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/CodeGen/Targets/RISCV.cpp
M clang/test/CodeGen/RISCV/riscv-vector-callingconv-llvm-ir.c
M clang/test/CodeGen/RISCV/riscv-vector-callingconv-llvm-ir.cpp
Log Message:
-----------
[clang][RISCV] Handle VLS CC on unsupported primitive type in aggregate type (#203898)
We handled this for pure vector type before but missed the aggregate
types, this patch try to apply same mechanism on them where unsupported
vector types are converted to same size i8 vector types.
Commit: f571abab7c49a57cbb0fbaa6e5a0d65c39ab0c03
https://github.com/llvm/llvm-project/commit/f571abab7c49a57cbb0fbaa6e5a0d65c39ab0c03
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/Basic/riscv_sifive_vector.td
M clang/include/clang/Basic/riscv_vector_common.td
M clang/include/clang/Support/RISCVVIntrinsicUtils.h
M clang/lib/Support/RISCVVIntrinsicUtils.cpp
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/non-overloaded/sf_mm_e4m3_e4m3.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/non-overloaded/sf_mm_e4m3_e5m2.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/non-overloaded/sf_mm_e5m2_e4m3.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/non-overloaded/sf_mm_e5m2_e5m2.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_e4m3_e4m3.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_e4m3_e5m2.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_e5m2_e4m3.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_e5m2_e5m2.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_f_f.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_s_s.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_s_u.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_u_s.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_u_u.c
M clang/test/Sema/sifive-xsfmm.c
Log Message:
-----------
[llvm][RISCV] Revise xsfmm intrinsic interface. (#201527)
This patch does 2 things:
1. Change matmul interface to use newly defined OFP8 RVV types.
2. change all of matmul overloaded interfaces to only keep only widen
information and eliminate types information.
Commit: b68b8232ff72535ca1bb43832029cbb480bcbf3f
https://github.com/llvm/llvm-project/commit/b68b8232ff72535ca1bb43832029cbb480bcbf3f
Author: yingopq <115543042+yingopq at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
M llvm/lib/Target/Mips/MipsInstrInfo.td
M llvm/test/MC/Mips/mips64r6/invalid.s
Log Message:
-----------
[Mips] Fix Clang crashes when assembling MIPS64r6 LDPC with non-8-byte-aligned offset (#204320)
Fix #184959.
Commit: 72b891b75f85cd8be4ac125f36f1bc9a97c8e185
https://github.com/llvm/llvm-project/commit/72b891b75f85cd8be4ac125f36f1bc9a97c8e185
Author: Fan Mo <w007878 at hotmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaTemplate.cpp
M clang/test/SemaTemplate/instantiate-member-template.cpp
Log Message:
-----------
[clang] Avoid assertion on invalid member template specialization (#201506)
fixes #201490
It would be possible to have `PrevClassTemplate == false` when `SS` was
invalid.
Since it is already invalid, it would be safe to skip
`setMemberSpecialization` for `NewTemplate`. When the qualified scope
specifier is invalid, Sema may have already diagnosed the declaration
and marked it invalid. In that case there may be no previous class
template declaration, so the assertion is too strong. Avoid marking the
new declaration as a member specialization unless the previous class
template exists.
Commit: 6f98573ebdd8fa826aa841f48e6ed7e671900ecc
https://github.com/llvm/llvm-project/commit/6f98573ebdd8fa826aa841f48e6ed7e671900ecc
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M orc-rt/include/CMakeLists.txt
R orc-rt/include/orc-rt/ScopeExit.h
A orc-rt/include/orc-rt/scope_exit.h
M orc-rt/lib/executor/AllocAction.cpp
M orc-rt/unittests/CMakeLists.txt
R orc-rt/unittests/ScopeExitTest.cpp
A orc-rt/unittests/scope_exit-test.cpp
Log Message:
-----------
[orc-rt] Rename scope_exit header, add nodiscard attribute. (#205030)
The rename brings the scope_exit type's header name into alignment with
other ORC runtime snake_case types.
The [[nodiscard]] attribute should help to prevent accidental misuse of
the type.
Commit: 6a2128a933cbeaccfbff2b81cd9ee2ed80e6071d
https://github.com/llvm/llvm-project/commit/6a2128a933cbeaccfbff2b81cd9ee2ed80e6071d
Author: Kazu Hirata <kazu at google.com>
Date: 2026-06-21 (Sun, 21 Jun 2026)
Changed paths:
M llvm/include/llvm/ProfileData/SampleProfReader.h
M llvm/lib/ProfileData/SampleProfReader.cpp
Log Message:
-----------
[ProfileData] Lazy-load fixed-length MD5 name table (#202014)
When reading extensible binary format profiles with fixed-length MD5
name tables, the reader eagerly allocates and populates a
std::vector<FunctionId> to store the name table. This eager loading
is particularly wasteful when ProfileIsCS is false, as we populate the
entire name table just to support lookups during profile ingestion,
even though we may only use a subset of the profile. Since FunctionId
is 16 bytes on 64-bit systems, a name table containing 10 million MD5
hash values would consume 160MB of heap memory.
This patch implements lazy loading for the name table in extensible
binary format profiles when the fixed-length MD5 layout is used.
Specifically, this patch introduces SampleProfileNameTable to
encapsulate the name table representation, supporting both lazy
loading (pointing directly to the memory-mapped buffer) and eager
loading (using a vector). Eager loading is retained as a fallback for
layouts that do not support O(1) random access (such as
variable-length string tables).
The reader transitions between these modes using setLazy and
resetToEager. The getNameTable interface is updated to return an
iterator_range of SampleProfileNameTable::iterator, which reads the
MD5 values directly from the buffer on-demand when lazy-loaded.
- Heap consumption: Saves 16 bytes of heap memory for each name table
entry by avoiding the std::vector allocation.
- Compilation performance: Saves about 4% on ThinLTO pre-link and 10%
on ThinLTO backend on shared and non-shared profiles.
Commit: 1092b2bad2edf9ee11a9d8e641a22f5b46922a4c
https://github.com/llvm/llvm-project/commit/1092b2bad2edf9ee11a9d8e641a22f5b46922a4c
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/docs/AMDGPUAsyncOperations.rst
Log Message:
-----------
[AMDGPU] Improve the description of asyncmark semantics (#202579)
- The semantics of asyncmarks is now defined purely in terms of
sequences, without referring to the implementation.
- The examples incorrectly used (post)dominance. Fixed that with wording
in terms of asyncmark sequences.
Commit: 9f0b22c61153e8390e3eed74e4a9cf1160bd71fe
https://github.com/llvm/llvm-project/commit/9f0b22c61153e8390e3eed74e4a9cf1160bd71fe
Author: lrzlin <linrunze at loongson.cn>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
M llvm/test/CodeGen/LoongArch/ir-instruction/double-convert.ll
M llvm/test/CodeGen/LoongArch/ir-instruction/float-convert.ll
Log Message:
-----------
[LoongArch] Custom scalar UINT_TO_FP and FP_TO_UINT with LSX instructions (#200901)
Using `vftintrz.lu.d` for converting scalar double/float values to
unsigned 64-bit integers, and `vffint.d.lu` vice versa.
Commit: de045d579791d978cce109f9348d20560e112d74
https://github.com/llvm/llvm-project/commit/de045d579791d978cce109f9348d20560e112d74
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M orc-rt/include/orc-rt/SimplePackedSerialization.h
Log Message:
-----------
[orc-rt] Tidy up some SPS tag types. NFC. (#205038)
Replaces class definitions with decls for tag types that don't need a
body, and moves the SPSError tag down to just above it's
serialization-traits class.
Commit: 15a3238566e799e3dd0e473672307712be8528e6
https://github.com/llvm/llvm-project/commit/15a3238566e799e3dd0e473672307712be8528e6
Author: Weiwen He <60433849+he-weiwen at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
A llvm/test/CodeGen/AArch64/extend-bool-vector-load.ll
Log Message:
-----------
[AArch64] Lower extends of boolean vector loads via scalar load (#203394)
Replace a `load <N x i1>` under a sext/zext with a scalar load +
bitcast, so the `combineToExtendBoolVectorInReg` helper can apply,
avoiding scalarization.
Optimisation for the SVE case with a predicate load to be added in a
follow up.
Fixes #200325
Commit: 6d66cc1e0e953e996048e93a9fa3e1c6b9a27642
https://github.com/llvm/llvm-project/commit/6d66cc1e0e953e996048e93a9fa3e1c6b9a27642
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M orc-rt/include/orc-rt/SimplePackedSerialization.h
M orc-rt/unittests/SimplePackedSerializationTest.cpp
Log Message:
-----------
[orc-rt] Add SPS serialization for ExecutorAddrRange. (#205041)
Allows SPS serialization to/from ExecutorAddrRange. This will be used in
upcoming patches for compact-unwind registration support.
Commit: 25e4057d49055a645dc6a51ae1f40ac647aaed5b
https://github.com/llvm/llvm-project/commit/25e4057d49055a645dc6a51ae1f40ac647aaed5b
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/Options/Options.td
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/AST/ByteCode/command-line-options.cpp
Log Message:
-----------
[clang] Respect `CLANG_USE_EXPERIMENTAL_CONST_INTERP` (#200716)
Seems like https://github.com/llvm/llvm-project/pull/199396 had no
effect at all, even though the patch itself seems pretty obvious.
Change the semantics of the command-line option to support
`-fno-experimental-constant-interpreter` as well. This way, the cmake
option can be used to set the default and the `-f`/`-fno-` command-line
options can be used to override the default behavior.
Commit: 64ad10fcda6952b78b81075d93a31364337ef8f4
https://github.com/llvm/llvm-project/commit/64ad10fcda6952b78b81075d93a31364337ef8f4
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/docs/AMDGPUExecutionSynchronization.rst
Log Message:
-----------
[AMDGPU][doc] Refactor Barrier Execution Model (#204566)
Remove everything that has to do with named barriers and put it in a
series of model extensions specific to /sbarrier/named-barriers.
I had to change a few things to make it fit, in summary:
Base Model:
- (~) Stylistic changes that make it easier to refer to specific rules.
Each rule is in a rubric instead of a bullet point.
- (-) No longer defines `barrier-mutually-exclusive`
- (-) No longer defines barrier `join` and any associated rule.
New named barrier extensions
- (+) Define "named barrier" as a sub-type of barrier objects. This
makes barrier-mutually-exclusive redundant.
- (+) Define barrier join as an op that can exclusively be done on
`named barrier objects`.
- (+) Define rules relating to join and its ordering with other barrier
operations
Following these changes, the target tables changed a bit as well.
Motive: Barrier _join_ + `barrier-mutually-exclusive` only ever makes
sense when considering named barriers in the ISA. They are an alien
concept to higher-level barrier abstractions.
_Join_ has especially been a pain to deal with and explain in the
general, high-level execution model. Kicking it down into an extension
allows to keep the base model much more concise. As the model extension
is defined w.r.t. the ISA, it's an appropriate place to surface
ISA-specific restrictions. For example we don't need to dance around the
concept of "each thread is a member of at most one named barrier" with
`barrier-mutually-exclusive`. We can just say it straight away when
describing the behavior of _join_ in the model extension.
Commit: ff0e4f0830f7913a3c66b28cafcc7dae2a6e10d6
https://github.com/llvm/llvm-project/commit/ff0e4f0830f7913a3c66b28cafcc7dae2a6e10d6
Author: Piotr Fusik <p.fusik at samsung.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Log Message:
-----------
[AArch64][NFC] Refactor duplicate code into getCmpOrCmnOperandFoldingProfit (#198981)
Commit: 5492d06d4fb99795b3b7247be374cdcb47f5ac03
https://github.com/llvm/llvm-project/commit/5492d06d4fb99795b3b7247be374cdcb47f5ac03
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/ConstantFolding.h
M llvm/include/llvm/Analysis/InstSimplifyFolder.h
M llvm/include/llvm/Analysis/InstructionSimplify.h
M llvm/include/llvm/Analysis/TargetFolder.h
M llvm/include/llvm/IR/ConstantFolder.h
M llvm/include/llvm/IR/IRBuilderFolder.h
M llvm/include/llvm/IR/NoFolder.h
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/CodeGen/VE/Scalar/atomic.ll
M llvm/test/CodeGen/VE/Scalar/atomic_cmp_swap.ll
M llvm/test/Transforms/IRCE/correct-loop-info.ll
M llvm/test/Transforms/IndVarSimplify/lcssa-preservation.ll
M llvm/test/Transforms/LoopUnroll/runtime-loop-multiexit-dom-verify.ll
M llvm/test/Transforms/LoopVectorize/X86/replicating-load-store-costs.ll
M llvm/test/Transforms/LoopVectorize/trip-count-expansion-may-introduce-ub.ll
M llvm/test/Transforms/LoopVectorize/version-mem-access.ll
M llvm/test/Transforms/VectorCombine/AArch64/shuffle-of-intrinsics.ll
M llvm/test/Transforms/VectorCombine/AArch64/shuffletoidentity.ll
M llvm/test/Transforms/VectorCombine/RISCV/shuffle-of-intrinsics.ll
M llvm/test/Transforms/VectorCombine/X86/shuffle-of-intrinsics.ll
M polly/test/CodeGen/scop_expander_insert_point.ll
Log Message:
-----------
[IRBuilder] (Target|InstSimplify)-fold intrinsics (#204967)
Includes changes to guard against a nullptr TLI and Call. TargetFold or
InstSimplify fold in IRBuilderBase::CreateIntrinsic, in the same way we
fold in Create(Unary|Binary)Intrinsic.
Commit: 5951daf0f0cf67a0c75ced322c88aef86c9349de
https://github.com/llvm/llvm-project/commit/5951daf0f0cf67a0c75ced322c88aef86c9349de
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
M llvm/test/Transforms/LoopVectorize/first-order-recurrence-scalable-vf1.ll
M llvm/test/Transforms/LoopVectorize/narrow-interleave-groups-scalable-vf.ll
M llvm/test/Transforms/LoopVectorize/narrow-to-single-scalar-widen-gep-scalable.ll
M llvm/test/Transforms/LoopVectorize/scalable-assume.ll
M llvm/test/Transforms/LoopVectorize/scalable-first-order-recurrence.ll
M llvm/test/Transforms/LoopVectorize/scalable-iv-outside-user.ll
M llvm/test/Transforms/LoopVectorize/scalable-lifetime.ll
M llvm/test/Transforms/LoopVectorize/scalable-loop-unpredicated-body-scalar-tail.ll
M llvm/test/Transforms/LoopVectorize/scalable-noalias-scope-decl.ll
M llvm/test/Transforms/LoopVectorize/scalable-reduction-inloop.ll
M llvm/test/Transforms/LoopVectorize/vector-freeze.ll
M llvm/test/Transforms/LoopVectorize/vscale-cost.ll
Log Message:
-----------
[LV] Allow scalable VFs in `-force-vector-width` (and use in tests) (#204953)
This updates `-force-vector-width=VF` to accept scalable VFs. If a
scalable width is specified it is assumed the target supports scalable
vectors.
So for example, `-force-vector-width="vscale x 4"` works as a shorthand
for `-scalable-vectorization=always -force-target-supports-scalable-vectors=true -force-vector-width=4`.
Commit: e4df7391e49f0d1188d544f22db265ba9c30da3e
https://github.com/llvm/llvm-project/commit/e4df7391e49f0d1188d544f22db265ba9c30da3e
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
M llvm/lib/Target/AMDGPU/R600ISelLowering.h
M llvm/lib/Target/AMDGPU/SIMachineScheduler.h
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
Log Message:
-----------
[AMDGPU] Remove stale declarations. NFC. (#205047)
Remove declarations of functions that are never defined. Also remove
unused field AMDGPUInstructionSelector::TM.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
Commit: 0972d5c5c11a5dfd8c6a60ef018129157522e139
https://github.com/llvm/llvm-project/commit/0972d5c5c11a5dfd8c6a60ef018129157522e139
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/AST/Decl.h
Log Message:
-----------
[clang][NFC] Add LLVM_PREFERRED_TYPE to EvaluatedStmt bitfields (#205026)
Commit: 6be53ab5da701ca6939c818fbe8cdbb633ab2409
https://github.com/llvm/llvm-project/commit/6be53ab5da701ca6939c818fbe8cdbb633ab2409
Author: Nathan Corbyn <n_corbyn at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/pr204118.mir
A llvm/test/CodeGen/AArch64/pr204118.ll
Log Message:
-----------
[AArch64][GISel] Remove hard-coded operand index from FCVT renderers (#204118)
Commit: 6daa02101815f4b2a6851fba8d8bedbfffd1e72c
https://github.com/llvm/llvm-project/commit/6daa02101815f4b2a6851fba8d8bedbfffd1e72c
Author: Luke Hutton <luke.hutton at arm.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
M mlir/test/Dialect/Tosa/verifier.mlir
Log Message:
-----------
[mlir][tosa] Check same input/output types in pooling ops verifier (#203565)
Adds a missing check to make sure the input and output types of pooling
ops have the same element type.
Commit: b0bf2c796915821d8bda7d136fe4eec62603454f
https://github.com/llvm/llvm-project/commit/b0bf2c796915821d8bda7d136fe4eec62603454f
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/docs/ConstantInterpreter.rst
Log Message:
-----------
[clang][bytecode] Update high-level documentation (#202596)
Commit: 3aeb6c1f3322b57fe102b7c87d8fd17f87454195
https://github.com/llvm/llvm-project/commit/3aeb6c1f3322b57fe102b7c87d8fd17f87454195
Author: Dmitriy Smirnov <dmitriy.smirnov at arm.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVCompositeOps.td
M mlir/test/Dialect/SPIRV/IR/composite-ops.mlir
Log Message:
-----------
[mlir][spirv] Re-enable bf16/fp8 for vector composite ops (#204848)
Allow bf16 and fp8 vector element types in VectorExtractDynamic,
VectorInsertDynamic, and VectorShuffle.
Commit: b5dfea08588fc64b0ce5cea685b275ed3de400de
https://github.com/llvm/llvm-project/commit/b5dfea08588fc64b0ce5cea685b275ed3de400de
Author: Deepak Shirke <117824396+deepakshirkem at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
M llvm/lib/Target/ARM/ARMRegisterInfo.td
A llvm/test/CodeGen/ARM/machine-outliner-thunk-tcgpr.mir
Log Message:
-----------
[ARM] Fix Machine Outliner crash when tBLXr uses non-tcGPR register (#200684)
When the Machine Outliner selects MachineOutlinerThunk mode for a
sequence ending in tBLXr/tBLXr_noip, it converts the indirect call to
tTAILJMPr in buildOutlinedFrame. However tTAILJMPr requires its operand
to be in tcGPR (R0-R3, R12), while tBLXr accepts any GPR.
If the register is callee-saved (e.g. r4), the Machine Verifier crashes
with 'Illegal physical register for instruction'.
Fixes #188076
Commit: 0b1fe74f079fd330e4d4d85ce33b7f5702da1be7
https://github.com/llvm/llvm-project/commit/0b1fe74f079fd330e4d4d85ce33b7f5702da1be7
Author: Andrei Golubev <andrey.golubev at intel.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h
M mlir/include/mlir/Dialect/Bufferization/IR/UnstructuredControlFlow.h
M mlir/lib/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.cpp
M mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp
M mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
M mlir/test/Dialect/Arith/one-shot-bufferize-memory-space-invalid.mlir
M mlir/test/Dialect/Bufferization/Transforms/test-one-shot-module-bufferize.mlir
M mlir/test/Dialect/ControlFlow/one-shot-bufferize-invalid.mlir
M mlir/test/Dialect/SCF/one-shot-bufferize-invalid.mlir
M mlir/test/lib/Dialect/Bufferization/TestOneShotModuleBufferize.cpp
M mlir/test/lib/Dialect/Test/TestOpDefs.cpp
M mlir/test/lib/Dialect/Test/TestOps.td
Log Message:
-----------
[mlir][bufferization] Introduce reconcileBufferTypeMismatchFn hook (#202667)
This PR is the first part of the work that aims to allow customizations
in resolving mismatching buffer types.
Add a new bufferization hook that lets downstream bufferization
implementations define how to handle buffer mismatches that appear
during type inference in various upstream scenarios.
The hook is used as a fallback mechanism in several upstream operations.
For example, when bufferizing block signatures (scf.execute_region), and
resolving "branch" conflicts (scf.if, scfl.index_switch, scf.for,
arith.select).
The hook returns a valid buffer type when reconciliation succeeded;
failure indicates reconciliation failure and should be treated as
bufferization failure. The caller of the hook is expected to use the
returned buffer type. By default, a memref with fully-dynamic layout map
is returned (for unranked case, buffers are assumed to match).
---------
Co-authored-by: Dmitrii Makarenko <dmitrii.makarenko at intel.com>
Commit: 75440ed24c4e656cef53f0d2419a885eb7c908f7
https://github.com/llvm/llvm-project/commit/75440ed24c4e656cef53f0d2419a885eb7c908f7
Author: Nashe Mncube <nashe.mncube at arm.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
A llvm/test/tools/llvm-mca/AArch64/Cortex/A55-in-order-bottleneck-analysis.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/A57-direct-branch.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/A57-forwarding.s
A llvm/test/tools/llvm-mca/AArch64/Cortex/A57-shifted-register.s
R llvm/test/tools/llvm-mca/AArch64/Cortex/direct-branch.s
R llvm/test/tools/llvm-mca/AArch64/Cortex/forwarding-A57.s
R llvm/test/tools/llvm-mca/AArch64/Cortex/in-order-bottleneck-analysis.s
R llvm/test/tools/llvm-mca/AArch64/Cortex/shifted-register.s
Log Message:
-----------
[NFC][AArch64][MCA] Rename A55/A57 mca tests (#204551)
Rename several llvm-mca tests for cortex-a55 and cortex-a57 to follow
the same pattern as the other testss
Commit: 9e8615f5268a4aa0298d615e6c79391174dcc8da
https://github.com/llvm/llvm-project/commit/9e8615f5268a4aa0298d615e6c79391174dcc8da
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/ConvertUTF.h
M llvm/lib/Support/ConvertUTFWrapper.cpp
Log Message:
-----------
[NFC][llvm] simplify convertWideToUTF8 overloads (#204552)
Remove the C-String overload of `convertWideToUTF8` and convert the
`ArrayRef` one to use `std::wstring_view` in order to simplify the API.
Commit: 283514b070fd2ae647f56cf046ea74be15a887b1
https://github.com/llvm/llvm-project/commit/283514b070fd2ae647f56cf046ea74be15a887b1
Author: jpwang <jpwang at smail.nju.edu.cn>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/docs/ReleaseNotes.md
R llvm/test/tools/llvm-objcopy/ELF/compress-debug-sections-zstd-err.test
M llvm/test/tools/llvm-objcopy/ELF/compress-sections-within-segment.s
A llvm/test/tools/llvm-objcopy/ELF/compress-sections-zlib-unsupported.test
A llvm/test/tools/llvm-objcopy/ELF/compress-sections-zstd-unsupported.test
R llvm/test/tools/llvm-objcopy/ELF/decompress-debug-sections-unsupported-zlib.test
A llvm/test/tools/llvm-objcopy/ELF/decompress-sections-unsupported-zlib.test
A llvm/test/tools/llvm-objcopy/ELF/decompress-sections-unsupported-zstd.test
M llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
Log Message:
-----------
[llvm-objcopy] Report unsupported formats before compression (#202357)
Fixes #197877.
`llvm-objcopy --compress-sections` now reports unavailable compression
support while parsing the option, matching the behavior of
`--compress-debug-sections`. This avoids reaching compression code with
an unavailable format.
Decompression (either via `--decompress-debug-sections` or
`--compress-sections` with a `none` format) is still checked when the
relevant compressed section is processed, because the required
compression format is determined from the section header rather than
from the command-line option.
The `compress-sections-within-segment` test now requires zlib because
`--compress-sections .text=zlib` is diagnosed during option parsing when
zlib support is unavailable, before the test can reach the intended
"section within a segment" diagnostic.
Commit: 00086d64086043269c3ed1c15dc08f5b6d517292
https://github.com/llvm/llvm-project/commit/00086d64086043269c3ed1c15dc08f5b6d517292
Author: sipher <110331483+sipher-01 at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/test/Sema/LifetimeSafety/dangling-global.cpp
Log Message:
-----------
[LifetimeSafety] Add `LifetimeSafetyDanglingGlobalMoved` to strict diagnostic group (#204891)
Fixes #204213
`-Wlifetime-safety-dangling-global-moved` was defined but not included
in any parent diagnostic group, meaning `-Wlifetime-safety-all` and
`-Wno-lifetime-safety-all` had no effect on it.
`LifetimeSafetyDanglingGlobal` (the non-moved variant) was already
correctly placed under `LifetimeSafetyPermissive`. Following the same
pattern as the other `-moved` sibling warnings
(`DanglingFieldMoved`, `ReturnStackAddrMoved`, `UseAfterScopeMoved`),
this patch adds `LifetimeSafetyDanglingGlobalMoved` to
`LifetimeSafetyStrict`, which is part of the `lifetime-safety-all`
hierarchy.
Assisted-by: Claude (Anthropic) — used for learning and understanding
the codebase, not for generating code directly.
Commit: 192ef559fbfeeba2f9cc43252db3da1303e8f00b
https://github.com/llvm/llvm-project/commit/192ef559fbfeeba2f9cc43252db3da1303e8f00b
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
R llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-salu-float.ll
R llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bitreplicate.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wqm.vote.ll
M llvm/test/CodeGen/AMDGPU/maximumnum.ll
M llvm/test/CodeGen/AMDGPU/minimumnum.ll
M llvm/test/CodeGen/AMDGPU/packed-u64.ll
Log Message:
-----------
AMDGPU/GlobalISel: Use AMDGPURegBankSelect + AMDGPURegBankLegalize by default (#203928)
AMDGPU/GlobalISel: Use AMDGPURegBankSelect + AMDGPURegBankLegalize by default
Change AMDGPU's default -global-isel pipeline to use AMDGPURegBankSelect
and AMDGPURegBankLegalize (previously -global-isel -new-reg-bank-select)
by default instead of RegBankSelect which uses AMDGPURegisterBankInfo.
-global-isel pipeline that used RegBankSelect/AMDGPURegisterBankInfo is
now deprecated, since it could not generate functionally correct code in
some cases involving divergent control flow and phis.
-new-reg-bank-select option does nothing and will be removed in followup
patch.
Delete regbankselect-mui.ll and regbankselect-mui-salu-float.ll, which
existed to compare the -global-isel vs -global-isel -new-reg-bank-select.
Temporarily disable a couple of tests that are missing AMDGPURegBankLegalize
support.
Commit: a2289b7336a299c2a5d6c4fb8b6fc074297acf88
https://github.com/llvm/llvm-project/commit/a2289b7336a299c2a5d6c4fb8b6fc074297acf88
Author: Raphael Isemann <rise at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
R lldb/test/API/macosx/deny-attach/Makefile
R lldb/test/API/macosx/deny-attach/TestDenyAttach.py
R lldb/test/API/macosx/deny-attach/main.c
M lldb/tools/debugserver/source/MacOSX/MachProcess.mm
Log Message:
-----------
Revert "[lldb] Survive ptrace(PT_DENY_ATTACH) when attaching" (#205075)
Reverts llvm/llvm-project#204688
This breaks green dragon where the error message is `error: attach
failed: this is a non-interactive debug session, cannot get permission
to debug processes.`
Commit: 05d84fd3f92355d7f4a0c90ac4fd4229f3e19133
https://github.com/llvm/llvm-project/commit/05d84fd3f92355d7f4a0c90ac4fd4229f3e19133
Author: Diana Picus <Diana-Magda.Picus at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/GlobalISel/dropped_debug_info_assert.ll
Log Message:
-----------
[AMDGPU] Run update script on test. NFC (#204570)
There's some bogus whitespace in the generated CHECKs that changes when
touching the test.
Commit: 2a1f306515b67036a44b16e569a9f26f57520c54
https://github.com/llvm/llvm-project/commit/2a1f306515b67036a44b16e569a9f26f57520c54
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/test/AST/ByteCode/dynamic-cast.cpp
Log Message:
-----------
[clang][bytecode] Add more sanity checks for pointers used in `dynamic_cast` (#205070)
Make sure it's initialized and that it points to a record.
Commit: b95e1e890c025ab4eee3583b7b1e2497991145db
https://github.com/llvm/llvm-project/commit/b95e1e890c025ab4eee3583b7b1e2497991145db
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/Allocator.h
M llvm/unittests/Support/AllocatorTest.cpp
Log Message:
-----------
[Allocator] Keep bump pointer at a minimum alignment (#203718)
Add a `MinAlign` template parameter (default 8, sizeof(size_t) on 64-bit
platforms) so that the common case `Alignment <= MinAlign` can skip
realigning `CurPtr`.
This is achieved by rounding each allocation's size up to MinAlign, so
the bump pointer stays MinAlign-aligned between allocations.
SpecificBumpPtrAllocator::DestroyAll() walks objects at a fixed
sizeof(T) stride and needs tight packing, so it uses MinAlign=1. (alignof(T) would
pack just as tightly and reuse the default instantiation, but T may be
incomplete here, e.g. `SpecificBumpPtrAllocator<MCSectionELF>`.)
Its `Allocate` still skips the realign: the slab is max_align_t-aligned
and every size is a multiple of alignof(T), so the bump pointer stays
alignof(T)-aligned and we can just request alignment 1. Over-aligned
types (alignof(T) > alignof(max_align_t)) keep requesting alignof(T).
Also use `bit_ceil` instead of `NextPowerOf2` in the placement operator
new alignment heuristic. NextPowerOf2 is strictly greater, so an 8-byte
pointer-sized object asked for alignment 16 and missed the fast path;
bit_ceil(8) == 8 keeps it on the fast path.
Aided by Claude Opus 4.8
Commit: c56e892f5c520b4474158837d7968e5c8dc3e4c1
https://github.com/llvm/llvm-project/commit/c56e892f5c520b4474158837d7968e5c8dc3e4c1
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/add.v2i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/add.vni16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/add_shl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/addo.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/addsubu64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/and.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/andn2.i1.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/andn2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-asserts.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ashr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/assert-align.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_load_flat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_load_global.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_load_local.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_load_local_2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_optimizations_mul_one.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_store_local.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-add-sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-and.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-fmin-fmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-or.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-xchg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-xor.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmin.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_minmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_udec_wrap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_uinc_wrap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/bitcast_38_i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/bool-legalization.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/br-constant-invalid-sgpr-copy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/bswap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-atomic-fadd.f32-no-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-atomic-fadd.f32-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-atomic-fadd.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-atomic-fadd.v2f16-no-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-atomic-fadd.v2f16-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-load-byte-short.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-load-store-pointers.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-schedule.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/bug-legalization-artifact-combiner-dead-def.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/bug_shuffle_vector_to_scalar.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/call-outgoing-stack-args.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/clamp-fmed3-const-combine.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/clamp-minmax-const-combine.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-ext-fma.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-ext-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-fma-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-ext-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-ext-neg-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-neg-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-rsq.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-shift-imm-chain.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-shift-of-shifted-logic.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-short-clamp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combiner-crash.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/constant-bus-restriction.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/crash-stack-address-O0.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/dereferenceable-declaration.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-phis-no-lane-mask-merging.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-i1.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-reg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergent-control-flow.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/dropped_debug_info_assert.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/dynamic-alloca-uniform.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement-stack-lower.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i128.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fabs.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fadd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fceil.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fcmp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ffloor.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-atomic-fadd.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-atomic-fadd.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-atomic-fadd.v2f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch-init.gfx.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/floor.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fma.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmad.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmamix-constant-bus-violation.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmax_legacy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmed3-min-max-const-combine.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmed3.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmin_legacy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmul.v2f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fneg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp-atomics-gfx942.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp-int-conversions.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp64-atomics-gfx90a.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fpext.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fpow.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fptrunc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/frem.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshr-new-regbank-select.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fsub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f32-no-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f32-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.v2f16-no-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.v2f16-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-value-addrspaces.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-value.illegal.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/hip.extern.shared.array.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/i1-copy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/icmp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/image-waterfall-loop-O0.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/implicit-kernarg-backend-usage-global-isel.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement-stack-lower.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.large.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-copy-scc-vcc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/intrinsic-trunc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-atomicrmw.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/is-safe-to-sink-bug.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lds-global-value.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lds-misaligned-bug.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lds-relocs.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lds-zero-initializer.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.abs.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ballot.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ballot.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.dispatch.ptr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.fmas.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.scale.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.end.cf.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.end.cf.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.fdot2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.fmul.legacy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.fract.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.frexp.mant.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.if.break.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.if.break.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.atomic.dim.a16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.atomic.dim.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.a16.dim.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.dim.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.o.dim.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.getresinfo.a16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.getresinfo.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.1d.d16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.1d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.2d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.2darraymsaa.a16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.2darraymsaa.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.3d.a16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.3d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.sample.cd.g16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.sample.g16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.store.2d.d16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.store.2d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.implicit.ptr.buffer.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.interp.inreg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.interp.p1.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.kernarg.segment.ptr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.live.mask.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.make.buffer.rsrc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mfma.gfx90a.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mov.dpp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mul24.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.queue.ptr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.cmpswap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.fadd-with-ret.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.fadd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.integer-minmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.swap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.format.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.tfe.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.format.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.cmpswap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.fadd-with-ret.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.fadd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.swap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.load.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.load.format.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.store.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.store.format.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.tbuffer.load.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.tbuffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.tbuffer.store.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.tbuffer.store.i8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.tbuffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.tbuffer.load.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.tbuffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.tbuffer.store.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.tbuffer.store.i8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.tbuffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.rsq.clamp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.setreg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.sleep.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sbfe.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot4.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.set.inactive.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.softwqm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.strictwqm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.cmpswap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.fadd-with-ret.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.fadd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.swap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.format.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.tfe.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.store.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.store.format.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.cmpswap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.fadd-with-ret.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.fadd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.swap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.load.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.load.format.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.store.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.store.format.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.tbuffer.load.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.tbuffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.tbuffer.load.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.tbuffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sudot4.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sudot8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.trig.preop.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ubfe.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot4.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.update.dpp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wmma_32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wmma_64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.workgroup.id.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.workitem.id.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wqm.demote.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wqm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.writelane.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wwm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.atomic.cmpxchg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memcpy.inline.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memcpy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memmove.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memset.inline.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memset.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.powi.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-constant.96.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-constant32bit.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-d16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-divergent.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-local.128.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-local.96.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-unaligned.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-uniform-in-vgpr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-uniform.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-zero-and-sign-extending-divergent.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-zero-and-sign-extending-uniform-in-vgpr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-zero-and-sign-extending-uniform.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/localizer.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lshr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mad.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/madmix-constant-bus-violation.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/memory-legalizer-atomic-fence.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/merge-buffer-stores.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/minmaxabs-i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/minmaxabs.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mmra.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mubuf-global.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul-known-bits.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.v2i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/no-ctlz-from-umul-to-lshr-in-postlegalizer.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/non-entry-alloca.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/or.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/orn2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/readanylane-combines.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbanklegalize-amdgcn.s.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbanklegalize-amdgcn.s.buffer.load.subdword.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.image.load.1d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.image.sample.1d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.raw.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.raw.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.readlane.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.ptr.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-call.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sbfx.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sdivrem.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/select-to-fmin-fmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sext_inreg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shader-epilogs.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shl-ext-reduce.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shufflevector.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/smed3.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/smrd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/smul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-divergent-addr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-local.128.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-local.96.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-uniform-addr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/strict_fma.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/strict_fma.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/strict_fma.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sub.v2i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/subo.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/true16-merge-values-s16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/trunc-brc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/trunc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/uaddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ubfx.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/udivrem.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/umed3.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/unmerge-sgpr-s16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/unsupported-load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/unsupported-ptr-add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/usubsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/v_bfe_i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/vni8-across-blocks.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/widen-i8-i16-scalar-loads.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-f16-f32-matrix-modifiers.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-imm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-iu-modifiers.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-swmmac-index_key.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-f16-f32-matrix-modifiers.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-imm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-iu-modifiers.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-swmmac-index_key.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/xnor.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/xor.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/zextload.ll
M llvm/test/CodeGen/AMDGPU/abi-attribute-hints-undefined-behavior.ll
M llvm/test/CodeGen/AMDGPU/add-max.ll
M llvm/test/CodeGen/AMDGPU/addrspacecast-gas.ll
M llvm/test/CodeGen/AMDGPU/addrspacecast-known-non-null.ll
M llvm/test/CodeGen/AMDGPU/addrspacecast.gfx6.ll
M llvm/test/CodeGen/AMDGPU/allow-check.ll
M llvm/test/CodeGen/AMDGPU/amd.endpgm.ll
M llvm/test/CodeGen/AMDGPU/amdgcn-call-whole-wave.ll
M llvm/test/CodeGen/AMDGPU/amdgcn-cs-chain-intrinsic-dyn-vgpr-w32.ll
M llvm/test/CodeGen/AMDGPU/amdgcn-sin-cos-f16-f32.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-break-large-phis.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-cs-chain-cc.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-cs-chain-preserve-cc.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-reloc-const.ll
M llvm/test/CodeGen/AMDGPU/amdgpu.work-item-intrinsics.deprecated.ll
M llvm/test/CodeGen/AMDGPU/amdpal-callable.ll
M llvm/test/CodeGen/AMDGPU/async-buffer-loads.ll
M llvm/test/CodeGen/AMDGPU/asyncmark-gfx12plus.ll
M llvm/test/CodeGen/AMDGPU/asyncmark-max-pregfx12.ll
M llvm/test/CodeGen/AMDGPU/asyncmark-pregfx12.ll
M llvm/test/CodeGen/AMDGPU/atomicrmw_usub_cond.ll
M llvm/test/CodeGen/AMDGPU/atomicrmw_usub_sat.ll
M llvm/test/CodeGen/AMDGPU/atomics_cond_sub.ll
M llvm/test/CodeGen/AMDGPU/barrier-elimination-gfx12.ll
M llvm/test/CodeGen/AMDGPU/barrier-elimination.ll
M llvm/test/CodeGen/AMDGPU/bfi_int.ll
M llvm/test/CodeGen/AMDGPU/bitop3-shared-operand.ll
M llvm/test/CodeGen/AMDGPU/bitop3.ll
M llvm/test/CodeGen/AMDGPU/bitreverse.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointers-contents-legalization.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointers-memcpy.ll
M llvm/test/CodeGen/AMDGPU/buffer-rsrc-ptr-ops.ll
M llvm/test/CodeGen/AMDGPU/build-vector-packed-partial-undef.ll
M llvm/test/CodeGen/AMDGPU/call-args-inreg.ll
M llvm/test/CodeGen/AMDGPU/call-argument-types.ll
M llvm/test/CodeGen/AMDGPU/call-c-function.ll
M llvm/test/CodeGen/AMDGPU/call-constant.ll
M llvm/test/CodeGen/AMDGPU/call-constexpr.ll
M llvm/test/CodeGen/AMDGPU/call-defs-mode-register.ll
M llvm/test/CodeGen/AMDGPU/call-encoding.ll
M llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
M llvm/test/CodeGen/AMDGPU/call-preserved-registers.ll
M llvm/test/CodeGen/AMDGPU/call-reqd-group-size.ll
M llvm/test/CodeGen/AMDGPU/call-return-types.ll
M llvm/test/CodeGen/AMDGPU/call-skip.ll
M llvm/test/CodeGen/AMDGPU/call-waitcnt.ll
M llvm/test/CodeGen/AMDGPU/callbr-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/cc-inreg-sgpr0-3-mismatch.ll
M llvm/test/CodeGen/AMDGPU/check-subtarget-features.ll
M llvm/test/CodeGen/AMDGPU/cluster-dims.ll
M llvm/test/CodeGen/AMDGPU/codegen-prepare-addrspacecast-non-null.ll
M llvm/test/CodeGen/AMDGPU/commute-compares-scalar-float.ll
M llvm/test/CodeGen/AMDGPU/constrained-shift.ll
M llvm/test/CodeGen/AMDGPU/ctlz.ll
M llvm/test/CodeGen/AMDGPU/ctlz_zero_poison.ll
M llvm/test/CodeGen/AMDGPU/ctpop.ll
M llvm/test/CodeGen/AMDGPU/ctpop16.ll
M llvm/test/CodeGen/AMDGPU/ctpop64.ll
M llvm/test/CodeGen/AMDGPU/cttz.ll
M llvm/test/CodeGen/AMDGPU/cttz_zero_poison.ll
M llvm/test/CodeGen/AMDGPU/cube.ll
M llvm/test/CodeGen/AMDGPU/cvt_flr_i32_f32.ll
M llvm/test/CodeGen/AMDGPU/cvt_rpi_i32_f32.ll
M llvm/test/CodeGen/AMDGPU/div_i128.ll
M llvm/test/CodeGen/AMDGPU/div_v2i128.ll
M llvm/test/CodeGen/AMDGPU/diverge-interp-mov-lower.ll
M llvm/test/CodeGen/AMDGPU/ds-alignment.ll
M llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll
M llvm/test/CodeGen/AMDGPU/fadd.f16.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize.ll
M llvm/test/CodeGen/AMDGPU/fdiv_flags.f32.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-store.ll
M llvm/test/CodeGen/AMDGPU/flat-scratch-svs.ll
M llvm/test/CodeGen/AMDGPU/float-sopc-vopc.ll
M llvm/test/CodeGen/AMDGPU/fma.f16.ll
M llvm/test/CodeGen/AMDGPU/fmaximum.ll
M llvm/test/CodeGen/AMDGPU/fmaximum3.v2f16.ll
M llvm/test/CodeGen/AMDGPU/fmaxnum.ll
M llvm/test/CodeGen/AMDGPU/fmed3-cast-combine.ll
M llvm/test/CodeGen/AMDGPU/fmed3.ll
M llvm/test/CodeGen/AMDGPU/fminimum.ll
M llvm/test/CodeGen/AMDGPU/fminimum3.v2f16.ll
M llvm/test/CodeGen/AMDGPU/fminnum.ll
M llvm/test/CodeGen/AMDGPU/fmul-to-ldexp.ll
M llvm/test/CodeGen/AMDGPU/fneg-combines-gfx1200.ll
M llvm/test/CodeGen/AMDGPU/fneg-fabs-v2f32.ll
M llvm/test/CodeGen/AMDGPU/fold-gep-offset.ll
M llvm/test/CodeGen/AMDGPU/fp-min-max-buffer-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp-min-max-buffer-ptr-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp-min-max-image-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp-min-max-num-flat-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp-min-max-num-global-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp64-min-max-buffer-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp64-min-max-buffer-ptr-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp_to_sint.ll
M llvm/test/CodeGen/AMDGPU/fp_to_uint.ll
M llvm/test/CodeGen/AMDGPU/fpenv.ll
M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
M llvm/test/CodeGen/AMDGPU/fptosi-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptosi-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.f16.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.v2f16.no.fast.math.ll
M llvm/test/CodeGen/AMDGPU/freeze.ll
M llvm/test/CodeGen/AMDGPU/fsqrt.f32.ll
M llvm/test/CodeGen/AMDGPU/fsqrt.f64.ll
M llvm/test/CodeGen/AMDGPU/fsub-as-fneg-src-modifier.ll
M llvm/test/CodeGen/AMDGPU/gfx-call-non-gfx-func.ll
M llvm/test/CodeGen/AMDGPU/gfx11-user-sgpr-init16-bug.ll
M llvm/test/CodeGen/AMDGPU/gfx12_scalar_subword_loads.ll
M llvm/test/CodeGen/AMDGPU/global-address.ll
M llvm/test/CodeGen/AMDGPU/global-load-xcnt.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/gws_agpr.ll
M llvm/test/CodeGen/AMDGPU/indirect-call.ll
M llvm/test/CodeGen/AMDGPU/indirect-reg-read-imm-idx.ll
M llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
M llvm/test/CodeGen/AMDGPU/intrinsic-amdgcn-s-alloc-vgpr.ll
M llvm/test/CodeGen/AMDGPU/invalid-addrspacecast.ll
M llvm/test/CodeGen/AMDGPU/invariant-image-load.ll
M llvm/test/CodeGen/AMDGPU/isel-amdgcn-cs-chain-intrinsic-w32.ll
M llvm/test/CodeGen/AMDGPU/isel-amdgcn-cs-chain-intrinsic-w64.ll
M llvm/test/CodeGen/AMDGPU/isel-amdgpu-cs-chain-intrinsic-dyn-vgpr-w32.ll
M llvm/test/CodeGen/AMDGPU/isel-amdgpu-cs-chain-preserve-cc.ll
M llvm/test/CodeGen/AMDGPU/isel-whole-wave-functions.ll
M llvm/test/CodeGen/AMDGPU/issue92561-restore-undef-scc-verifier-error.ll
M llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll
M llvm/test/CodeGen/AMDGPU/itofp.i128.ll
M llvm/test/CodeGen/AMDGPU/lds-barrier-memoperand.ll
M llvm/test/CodeGen/AMDGPU/lds-global-non-entry-func.ll
M llvm/test/CodeGen/AMDGPU/lds-size.ll
M llvm/test/CodeGen/AMDGPU/literal64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.add.min.max.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.addrspacecast.nonnull.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.store.b128.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ballot.i64.wave32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bitop3.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.load-last-use.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.load.lds.err.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bvh8_intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.class.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.class.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.load.async.to.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.workgroup.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.workgroup.max.flat.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.workgroup.max.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-agent.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-basic.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-singlethread.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-system.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-wavefront.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-workgroup.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubeid.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubema.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubesc.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubetc.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.f16.fp8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.f32.fp8.err.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.e5m3.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.off.f32.i4.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pk.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pk.i16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pk.u16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pknorm.i16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pknorm.u16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pkrtz.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.sat.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scale.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk16.gfx1250.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.pk.gfx1250.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.pk.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.pk16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.sr.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dead.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dot4.f32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.add.gs.reg.rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.append.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.atomic.async.barrier.arrive.b64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.atomic.barrier.arrive.rtn.b64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bpermute.fi.b32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bpermute.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bvh.stack.push.pop.rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bvh.stack.rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.consume.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.barrier-bundle.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.barrier.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.init.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.sema.br.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.sema.p.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.sema.release.all.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.gws.sema.v.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.ordered.add-errors.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.ordered.add.gfx10.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.ordered.add.gfx11.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.ordered.add.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.ordered.swap.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.permute.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.read.tr.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.sub.gs.reg.rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.swizzle.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dual_intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.compr.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp.row.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.exp2.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fcmp.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fcmp.w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f16.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.flat.prefetch.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fma.legacy.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fmad.ftz.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fmad.ftz.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.exp.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.exp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.atomic.ordered.add.b64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.async.to.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.lds.err.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.lds.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.prefetch.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.store.async.from.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.groupstaticsize.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.icmp.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.icmp.w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.iglp.opt.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.atomic.flt.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.atomic.noret.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.dim.gfx90a.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.dim.gfx90a.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.g16.a16.dim.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.noret.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.init.exec.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.init.exec.wave32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.init.whole.wave-w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.init.whole.wave-w64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.interp.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.interp.inreg.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.interp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.is.private.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.is.shared.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.kill.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.lds.direct.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.lds.param.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.async.to.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.monitor.gfx1250.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.to.lds.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.to.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.tr.gfx1250.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.log.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mbcnt.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx90a.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx942.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.i8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.xf32.gfx942.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mov.dpp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mulhi.i24.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mulhi.u24.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.perm.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.perm.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.bcast.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.down.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.idx.gen.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.up.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane.xor.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane16.swap.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane16.var.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane32.swap.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.pops.exiting.wave.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.prng.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ps.live.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ptr.buffer.atomic.fadd_rtn_errors.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.quadmask.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.atomic.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.atomic.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.load.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.atomic.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.atomic.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.load.lds.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.load.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.store.nxv2i32.fail.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.tbuffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.tbuffer.store.d16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.tbuffer.store.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.m0.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.ptr.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readlane.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.add.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.and.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fadd.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fmax.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fmin.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.fsub.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.max.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.min.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.or.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.sub.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umax.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.umin.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.reduce.xor.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.clamp.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.signal.isfirst.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.buffer.prefetch.data.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.get.waveid.in.workgroup.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.getreg.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.memrealtime.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.memtime.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.monitor.sleep.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.nop.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.prefetch.data.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.prefetch.inst.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.sethalt.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.setprio.inc.wg.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.setprio.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.sleep.var.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.ttracedata.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.wait.event.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.wait.gfx12.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.wait.gfx1250.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.waitcnt.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sched.barrier.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sched.group.barrier.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sendmsg.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sendmsg.rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.set.inactive.chain.arg.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sffbh.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.smfmac.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sqrt.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sqrt.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.atomic.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.atomic.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.load.format.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.load.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.atomic.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.load.lds.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.load.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.tbuffer.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.tbuffer.store.d16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.tensor.load.store.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.udot2.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.unreachable.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wave.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wave.shuffle.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.gfx1251.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.imm.gfx1251.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wmma.imod.gfx1251.w32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.workitem.id-unsupported-calling-convention.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wqm.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.writelane.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp.f64.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp10.f64.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp10.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp2.f64.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp2.ll
M llvm/test/CodeGen/AMDGPU/llvm.fptrunc.round.err.ll
M llvm/test/CodeGen/AMDGPU/llvm.fptrunc.round.ll
M llvm/test/CodeGen/AMDGPU/llvm.frexp.ll
M llvm/test/CodeGen/AMDGPU/llvm.is.fpclass.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.is.fpclass.ll
M llvm/test/CodeGen/AMDGPU/llvm.ldexp.ll
M llvm/test/CodeGen/AMDGPU/llvm.log.ll
M llvm/test/CodeGen/AMDGPU/llvm.log10.ll
M llvm/test/CodeGen/AMDGPU/llvm.log2.ll
M llvm/test/CodeGen/AMDGPU/llvm.modf.ll
M llvm/test/CodeGen/AMDGPU/llvm.prefetch.ll
M llvm/test/CodeGen/AMDGPU/llvm.sponentry.ll
M llvm/test/CodeGen/AMDGPU/llvm.sqrt.f16.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-flat.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-global.ll
M llvm/test/CodeGen/AMDGPU/load-atomic-local.ll
M llvm/test/CodeGen/AMDGPU/load-range-metadata-sign-bits.ll
M llvm/test/CodeGen/AMDGPU/load-saddr-offset-imm.ll
M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-nontemporal-metadata.ll
M llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics-hsa.ll
M llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics-opt.ll
M llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics-pal.ll
M llvm/test/CodeGen/AMDGPU/lower-work-group-id-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/lrint.ll
M llvm/test/CodeGen/AMDGPU/lround.ll
M llvm/test/CodeGen/AMDGPU/lshl-add-u64.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-hi.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-lo.ll
M llvm/test/CodeGen/AMDGPU/mad-mix.ll
M llvm/test/CodeGen/AMDGPU/make-buffer-rsrc-lds-fails.ll
M llvm/test/CodeGen/AMDGPU/maximumnum.ll
M llvm/test/CodeGen/AMDGPU/med3-knownbits.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-lds-dma-volatile-and-nontemporal.ll
M llvm/test/CodeGen/AMDGPU/memory-legalizer-non-volatile.ll
M llvm/test/CodeGen/AMDGPU/memset-param-combinations.ll
M llvm/test/CodeGen/AMDGPU/memset-pattern.ll
M llvm/test/CodeGen/AMDGPU/mfma-bf16-vgpr-cd-select.ll
M llvm/test/CodeGen/AMDGPU/mfma-cd-select.ll
M llvm/test/CodeGen/AMDGPU/mfma-no-register-aliasing.ll
M llvm/test/CodeGen/AMDGPU/mfma-vgpr-cd-select-gfx942.ll
M llvm/test/CodeGen/AMDGPU/mfma-vgpr-cd-select.ll
M llvm/test/CodeGen/AMDGPU/minimummaximum.ll
M llvm/test/CodeGen/AMDGPU/minimumnum.ll
M llvm/test/CodeGen/AMDGPU/minmax.ll
M llvm/test/CodeGen/AMDGPU/mixed-vmem-types.ll
M llvm/test/CodeGen/AMDGPU/module-lds-false-sharing.ll
M llvm/test/CodeGen/AMDGPU/nor-divergent-lanemask.ll
M llvm/test/CodeGen/AMDGPU/offset-split-flat.ll
M llvm/test/CodeGen/AMDGPU/offset-split-global.ll
M llvm/test/CodeGen/AMDGPU/overlapping-tuple-copy-implicit-op-failure.ll
M llvm/test/CodeGen/AMDGPU/packed-fneg-fsub-fp16.ll
M llvm/test/CodeGen/AMDGPU/packed-fp32.ll
M llvm/test/CodeGen/AMDGPU/packed-fp64.ll
M llvm/test/CodeGen/AMDGPU/pal-simple-indirect-call.ll
M llvm/test/CodeGen/AMDGPU/permlane16_opsel.ll
M llvm/test/CodeGen/AMDGPU/ps-shader-arg-count.ll
M llvm/test/CodeGen/AMDGPU/pseudo-scalar-transcendental.ll
M llvm/test/CodeGen/AMDGPU/ptr-buffer-alias-scheduling.ll
M llvm/test/CodeGen/AMDGPU/read-register-invalid-register.ll
M llvm/test/CodeGen/AMDGPU/read_register.ll
M llvm/test/CodeGen/AMDGPU/readcyclecounter.ll
M llvm/test/CodeGen/AMDGPU/readsteadycounter.ll
M llvm/test/CodeGen/AMDGPU/remat-fp64-constants.ll
M llvm/test/CodeGen/AMDGPU/ret.ll
M llvm/test/CodeGen/AMDGPU/returnaddress.ll
M llvm/test/CodeGen/AMDGPU/roundeven.ll
M llvm/test/CodeGen/AMDGPU/rsq.f64.ll
M llvm/test/CodeGen/AMDGPU/s-barrier.ll
M llvm/test/CodeGen/AMDGPU/s-wakeup-barrier.ll
M llvm/test/CodeGen/AMDGPU/scalar-float-sop1.ll
M llvm/test/CodeGen/AMDGPU/scalar-float-sop2.ll
M llvm/test/CodeGen/AMDGPU/scale-offset-flat.ll
M llvm/test/CodeGen/AMDGPU/scale-offset-global.ll
M llvm/test/CodeGen/AMDGPU/scale-offset-scratch.ll
M llvm/test/CodeGen/AMDGPU/scale-offset-smem.ll
M llvm/test/CodeGen/AMDGPU/scratch-pointer-sink.ll
M llvm/test/CodeGen/AMDGPU/sgpr-count-graphics.ll
M llvm/test/CodeGen/AMDGPU/shlN_add.ll
M llvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll
M llvm/test/CodeGen/AMDGPU/spill-vgpr-block.ll
M llvm/test/CodeGen/AMDGPU/stackguard.ll
M llvm/test/CodeGen/AMDGPU/stacksave_stackrestore.invalid.ll
M llvm/test/CodeGen/AMDGPU/store-atomic-flat.ll
M llvm/test/CodeGen/AMDGPU/store-atomic-global.ll
M llvm/test/CodeGen/AMDGPU/store-atomic-local.ll
M llvm/test/CodeGen/AMDGPU/strict_fadd.f16.ll
M llvm/test/CodeGen/AMDGPU/strict_fadd.f32.ll
M llvm/test/CodeGen/AMDGPU/strict_fadd.f64.ll
M llvm/test/CodeGen/AMDGPU/strict_fmul.f16.ll
M llvm/test/CodeGen/AMDGPU/strict_fmul.f32.ll
M llvm/test/CodeGen/AMDGPU/strict_fmul.f64.ll
M llvm/test/CodeGen/AMDGPU/strict_fsub.f16.ll
M llvm/test/CodeGen/AMDGPU/strict_fsub.f32.ll
M llvm/test/CodeGen/AMDGPU/strict_fsub.f64.ll
M llvm/test/CodeGen/AMDGPU/strict_ldexp.f16.ll
M llvm/test/CodeGen/AMDGPU/strict_ldexp.f32.ll
M llvm/test/CodeGen/AMDGPU/strict_ldexp.f64.ll
M llvm/test/CodeGen/AMDGPU/swizzle.bit.extract.ll
M llvm/test/CodeGen/AMDGPU/tail-call-amdgpu-gfx.ll
M llvm/test/CodeGen/AMDGPU/target-mem-intrinsic-metadata.ll
M llvm/test/CodeGen/AMDGPU/trap.ll
M llvm/test/CodeGen/AMDGPU/twoaddr-constrain.ll
M llvm/test/CodeGen/AMDGPU/unaligned-buffer.ll
M llvm/test/CodeGen/AMDGPU/unsupported-cs-chain.ll
M llvm/test/CodeGen/AMDGPU/unsupported-image-a16.ll
M llvm/test/CodeGen/AMDGPU/unsupported-image-g16.ll
M llvm/test/CodeGen/AMDGPU/v_pack.ll
M llvm/test/CodeGen/AMDGPU/v_sat_pk_u8_i16.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-add.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-and.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fadd.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fminimum.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fmul.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-mul.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-or.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-smax.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-smin.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-umax.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-umin.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-xor.ll
M llvm/test/CodeGen/AMDGPU/wait-before-stores-with-scope_sys.ll
M llvm/test/CodeGen/AMDGPU/wave_dispatch_regs.ll
M llvm/test/CodeGen/AMDGPU/whole-wave-functions.ll
M llvm/test/CodeGen/AMDGPU/workgroup-id-in-arch-sgprs.ll
M llvm/test/CodeGen/AMDGPU/workitem-intrinsic-opts.ll
M llvm/test/CodeGen/AMDGPU/write-register-invalid-register.ll
M llvm/test/CodeGen/AMDGPU/write_register.ll
Log Message:
-----------
AMDGPU/GlobalISel: Remove -new-reg-bank-select option (#203929)
AMDGPU's -global-isel pipeline that uses AMDGPURegBankSelect and
AMDGPURegBankLegalize, previously -global-isel -new-reg-bank-select,
is now the default -global-isel pipeline.
Remove -new-reg-bank-select option from the compiler.
Remove -new-reg-bank-select from all llvm regression tests.
Edit a couple comments to reference RegBankLegalize instead of
-new-reg-bank-select.
Commit: f3fb6fe3099887ce1538c1dbbe3694f740f9f126
https://github.com/llvm/llvm-project/commit/f3fb6fe3099887ce1538c1dbbe3694f740f9f126
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/AST/ByteCode/Interp.cpp
M clang/test/AST/ByteCode/new-delete.cpp
Log Message:
-----------
[clang][bytecode] Check for block pointers in Free() (#205043)
We need a block pointer here for the following operations, and non-block
pointers aren't valid anyway.
Commit: 4fd464061536f1bb7d12ee9524712d202c2b4488
https://github.com/llvm/llvm-project/commit/4fd464061536f1bb7d12ee9524712d202c2b4488
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
A llvm/test/Analysis/DependenceAnalysis/find-gcd-overflow.ll
Log Message:
-----------
[DA] Add overflow check before calculating absolute value (#201964)
In findGCD, we call APInt::abs, which can overflow when the value is a
signed minimum one. Such overflow can lead miscompilation, so this patch
adds an overflow check for absolute value calculations and bail out
early if it actually overflows.
Fix #201559.
Commit: 8b723503336f094afb92f00cb73378321914f6cf
https://github.com/llvm/llvm-project/commit/8b723503336f094afb92f00cb73378321914f6cf
Author: Donát Nagy <donat.nagy at ericsson.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
Log Message:
-----------
[NFC][analyzer] Eliminate some simple node builders (#204187)
Replace four `NodeBuilder`s with direct use of the `makeNode` method
family. This is part of my commit series that simplifies the engine by
gradually eliminating the class `NodeBuilder`.
Commit: b6a0f6c79fee527a5ef2826e30949cd8f27db889
https://github.com/llvm/llvm-project/commit/b6a0f6c79fee527a5ef2826e30949cd8f27db889
Author: Jiaqi He <heturing at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/test/Sema/LifetimeSafety/lifetimebound-violation.cpp
Log Message:
-----------
[LifetimeSafety] resolved lifetimeBound violation in constructor (#204797)
Fix https://github.com/llvm/llvm-project/issues/203839.
Constructor body does not produce `ReturnEscapeFact`, but a constructor
parameter marked [[clang::lifetimebound]] may still be valid if it
escapes into a field of the constructed object.
Update the `LifetimeBound` logic to accept `FieldEscapeFact` for
constructors, and add a test case for this pattern.
Commit: b3022110d84dabf5ddbbecd7db4e943791d5320c
https://github.com/llvm/llvm-project/commit/b3022110d84dabf5ddbbecd7db4e943791d5320c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
Log Message:
-----------
clang/AMDGPU: Use effective triple instead of raw toolchain triple (#205054)
Start using the effective triple instead of the raw toolchain triple.
For the moment this is NFC, but will change when new uses of the subarch
field are introduced.
Commit: c5f4abf97938cc1d4615baf1f45bef4e38e0dd91
https://github.com/llvm/llvm-project/commit/c5f4abf97938cc1d4615baf1f45bef4e38e0dd91
Author: Sushant Gokhale <sgokhale at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/X86/revec-ordered-reductions.ll
M llvm/test/Transforms/SLPVectorizer/revec.ll
Log Message:
-----------
[SLP][Revec] Fix SLP crash when trying to fold trailing scalars into the reduced value (#203477)
Cost modelling change introduced by commit SHA f15666d is enabling revec
of test shown in the above issue. This is introducing a crash as the
reduced value(a scalar) is being added to a vector tail value.
Patch tries to address this.
Fixes #203195
Commit: f8cb6be61b995fc64d696c42fdb3eb88d2ed3a9e
https://github.com/llvm/llvm-project/commit/f8cb6be61b995fc64d696c42fdb3eb88d2ed3a9e
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/Driver/ToolChains/Clang.cpp
Log Message:
-----------
clang: Use the effective triple string for offload jobs (#205065)
Track the future effective triple for the job, rather than
the toolchain's default triple. In the future this will
change the result when amdgpu starts adjusting the triples
to contain subarches.
Commit: 6019657c6a4528e92887bec4b52222f9c0fc6a8b
https://github.com/llvm/llvm-project/commit/6019657c6a4528e92887bec4b52222f9c0fc6a8b
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M offload/ci/openmp-offload-amdgpu-libc-runtime.py
Log Message:
-----------
Reapply "[AMDGPU] Add compiler-rt checks for the GPU runtime" (#204898)
The original issue should've been solved by
https://github.com/llvm/llvm-project/pull/204694
Reverts llvm/llvm-project#204370
Commit: 4f5c444227c76c41146b7a91c1a1cab460c74112
https://github.com/llvm/llvm-project/commit/4f5c444227c76c41146b7a91c1a1cab460c74112
Author: Lang Hames <lhames at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M orc-rt/include/orc-rt/QueueingRunner.h
M orc-rt/unittests/InProcessControllerAccessTest.cpp
M orc-rt/unittests/QueueingRunnerTest.cpp
M orc-rt/unittests/SessionTest.cpp
Log Message:
-----------
[orc-rt] Default QueueingRunner to a synchronized queue. (#205088)
Adds orc_rt::detail::SynchronizedDeque<T>, a mutex-protected deque whose
pop_front / pop_back return std::optional<T> (std::nullopt indicates the
queue is empty), and makes it QueueingRunner's default WorkQueue type.
Using a synchronized queue type allows QueueingRunner to be used in
multi-threaded contexts.
Updates SessionTest and InProcessControllerAccessTest to use the new
default, and extends QueueingRunnerTest to cover the new contract.
Commit: 8616fad2fa5c772b7ebc254335e7c6be858a5182
https://github.com/llvm/llvm-project/commit/8616fad2fa5c772b7ebc254335e7c6be858a5182
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/source/Target/Memory.cpp
Log Message:
-----------
[lldb] Avoid tautological copying of a newly created object (NFC) (#204998)
Commit: 27af208fe5cbd7d6b9ba24b22d75f1abba42c111
https://github.com/llvm/llvm-project/commit/27af208fe5cbd7d6b9ba24b22d75f1abba42c111
Author: Ivan Kosarev <ivan.kosarev at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp16.s
A llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp16-fake.txt
R llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp16.txt
Log Message:
-----------
[AMDGPU][NFC] Templatise and roundtrip gfx12_asm_vop3_dpp16.s (#203953)
This is effectively the changes between the non-template versions of
gfx11/12_asm_vop3_dpp16.s applied on top of the templatised
gfx11_asm_vop3_dpp16.s.
Commit: a7808183c742b88065e912dd0b98ab446b01b7c0
https://github.com/llvm/llvm-project/commit/a7808183c742b88065e912dd0b98ab446b01b7c0
Author: Ivan Kosarev <ivan.kosarev at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/test/MC/AMDGPU/gfx13_asm_vop3_dpp16.s
Log Message:
-----------
[AMDGPU][NFC] Templatise and roundtrip gfx13_asm_vop3_dpp16.s (#204849)
Again, this is based on the templatised version of
gfx12_asm_vop3_dpp16.s with the GFX13-specific changes re-applied on top
of it.
gfx13_dasm_vop3_dpp16.txt was never upstreamed, so no changes for the
disassembler side.
Commit: 06dcba660904e041cca1d245e674f040bb04f454
https://github.com/llvm/llvm-project/commit/06dcba660904e041cca1d245e674f040bb04f454
Author: Tim <timothy.smith at hpe.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/include/flang/Optimizer/Transforms/Passes.td
M flang/lib/Optimizer/Passes/Pipelines.cpp
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
A flang/test/Transforms/debug-fake-use-multiple-dimensions.fir
A flang/test/Transforms/debug-fake-use-multiple-returns.fir
M flang/test/Transforms/debug-fake-use.fir
Log Message:
-----------
[flang][debug] Add fake use ops for dynamic array dimension variables (#200061)
In cases where the upper or lower bounds of a dynamic array are not
explicitly referenced in code, flang can optimize away the internal
variables that represent these values. This causes missing values to
appear in the debugger when examining the dynamic array's type. Adding
an llvm.fake.use op for each bound preserves it for use by a debugger,
similar to the fix for #185432.
Resolves #119474
Commit: b0c2017bcff5ae07fe44d3271a269e50e1c98cbd
https://github.com/llvm/llvm-project/commit/b0c2017bcff5ae07fe44d3271a269e50e1c98cbd
Author: Adam Siemieniuk <adam.siemieniuk at intel.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M mlir/lib/Dialect/X86/Transforms/VectorContractToAMXDotProduct.cpp
M mlir/test/Dialect/X86/AMX/vector-contract-to-tiled-dp.mlir
Log Message:
-----------
[mlir][x86] Fail on missing read source operation (#205077)
Adds an extra check to AMX lowering to fail gracefully when a source
operation for contraction input data is not found.
Commit: a7e3eda221412f798ae448c293217f49f4a5ebed
https://github.com/llvm/llvm-project/commit/a7e3eda221412f798ae448c293217f49f4a5ebed
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/Allocator.h
M llvm/unittests/Support/AllocatorTest.cpp
Log Message:
-----------
Revert "[Allocator] Keep bump pointer at a minimum alignment" (#205091)
Arithmetic on nullptr is UB and gets flagged by UBSan.
Reverts llvm/llvm-project#203718
Commit: d8657e1bb196d52892365da5cf917f8ed90932f8
https://github.com/llvm/llvm-project/commit/d8657e1bb196d52892365da5cf917f8ed90932f8
Author: Sean Perry <perry at ca.ibm.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/unittests/CMakeLists.txt
Log Message:
-----------
Don't test JIT's on z/OS (#196580)
The JIT's aren't supported on z/OS so no need to run the unit tests on
them.
Commit: 685af3ab083c71c32172fb7116176b55a6c26b25
https://github.com/llvm/llvm-project/commit/685af3ab083c71c32172fb7116176b55a6c26b25
Author: Akshay Kumar Dubey <123586645+akshaydubey05 at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/tool/ClangdMain.cpp
Log Message:
-----------
[clangd] Log environment variables that influence compilation at startup (#204990)
When users face missing system include issues (especially on Windows),
it's difficult to diagnose whether the problem is caused by missing
environment variables like `INCLUDE`, `CPATH`, etc.
This patch logs the values of environment variables that influence how the
compiler finds headers and libraries, at startup alongside the existing
version/PID/argv logs. Only variables that are actually set are printed.
Variables logged:
- MSVC (set by vcvarsall.bat): `INCLUDE`, `LIB`, `LIBPATH`, `CL`, `_CL_`
- GCC/Clang: `CPATH`, `C_INCLUDE_PATH`, `CPLUS_INCLUDE_PATH`,
`OBJC_INCLUDE_PATH`, `LIBRARY_PATH`, `GCC_EXEC_PREFIX`
Fixes https://github.com/clangd/clangd/issues/2657
Commit: 079683b7e1d0cb39cbb2205d38425d56030d31b2
https://github.com/llvm/llvm-project/commit/079683b7e1d0cb39cbb2205d38425d56030d31b2
Author: Reinhard Stahn <rainij36 at proton.me>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
Log Message:
-----------
[mlir][scf] Tighten description of scf.for (#203713)
The previous description was vague in the case that the
one-past-the-last value for the induction variable is not representable
in the used integer type. Current passes implicitly exploit this by
implementing non-equivalent semantics (e.g. terminating vs
non-terminating loops).
We tighten the specification of `scf.for` by first stating the desired
ideal semantics, but deeming overflow undefined behavior. This fixes all
inconsistencies I am aware of.
Documentation only; no behavioral change.
Commit: 8062e6dc822b7832d8d988bd9cc70a04a327848a
https://github.com/llvm/llvm-project/commit/8062e6dc822b7832d8d988bd9cc70a04a327848a
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/lib/Target/AMDGPU/SOPInstructions.td
M llvm/lib/Target/AMDGPU/VOP2Instructions.td
M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll
M llvm/test/CodeGen/AMDGPU/bypass-div.ll
M llvm/test/CodeGen/AMDGPU/carryout-selection.ll
M llvm/test/CodeGen/AMDGPU/llvm.mulo.ll
M llvm/test/CodeGen/AMDGPU/sdiv64.ll
M llvm/test/CodeGen/AMDGPU/srem.ll
M llvm/test/CodeGen/AMDGPU/srem64.ll
M llvm/test/CodeGen/AMDGPU/udiv64.ll
M llvm/test/CodeGen/AMDGPU/urem64.ll
M llvm/test/CodeGen/AMDGPU/wave32.ll
Log Message:
-----------
[AMDGPU] Remove support for ADDC/ADDE/SUBC/SUBE DAG nodes (#205082)
Since #204694 we should be using UADDO/USUBO/UADDO_CARRY/USUBO_CARRY
instead.
Commit: 4661c0248ca5621b05808e25605b7adeb6c078a8
https://github.com/llvm/llvm-project/commit/4661c0248ca5621b05808e25605b7adeb6c078a8
Author: gretay-amd <Greta.Yorsh at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULaneMaskUtils.h
M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/issue92561-restore-undef-scc-verifier-error.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bvh8_intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dual_intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.buffer.atomic.fadd.v2bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.load.format.v3f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd.v2bf16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd_nortn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fadd_rtn.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fmax.f32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.atomic.fmin.f32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.buffer.load.format.v3f16.ll
M llvm/test/CodeGen/AMDGPU/move-to-valu-vimage-vsample.ll
M llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands-non-ptr-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands.ll
M llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands.mir
M llvm/test/CodeGen/AMDGPU/vgpr-descriptor-waterfall-loop-idom-update.ll
M llvm/test/CodeGen/AMDGPU/vgpr-liverange-ir.ll
M llvm/test/CodeGen/AMDGPU/vgpr-liverange.ll
Log Message:
-----------
[AMDGPU] Waterfall loop codegen improvement in SIInstrInfo (#192415)
When generating waterfall loops, use the instructions `v_cmpx_eq_*` and
`s_andn2_wrexec_*` as recommended for recent architectures, instead of
`v_cmp_eq_*` and `s_and saveexec`.
This PR only updates waterfall loop code generation in
`SIInstrInfo.cpp`. Other places that generated waterfall loops can be
handled separately.
- Add new lane mask constant for `s_andn2_wrexec`
- Set `isTerminator` for `v_cmpx_eq_{u32,u64}_e32`
- Fix test `mubuf-legalize-operands.mir` to track liveness needed for
verifying phi nodes
- Update .ll and .mir tests to accept the new instruction sequences
Assisted-by: Claude
Commit: bcae37f4a8e8d163e34080186b789a6cb0ae91d1
https://github.com/llvm/llvm-project/commit/bcae37f4a8e8d163e34080186b789a6cb0ae91d1
Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
A llvm/test/tools/llubi/reset_return_value_slot.ll
M llvm/tools/llubi/lib/Interpreter.cpp
Log Message:
-----------
[llubi] Reset retval when return type is void (#205107)
In `returnFromCallee`, the return value is moved out from
`CurrentFrame->RetVal`. So `visitReturnInst` is always responsible for
setting a valid value.
Closes https://github.com/llvm/llvm-project/issues/204992
Commit: fe5ad843d83aef5846862064551fb8e5fc8e9048
https://github.com/llvm/llvm-project/commit/fe5ad843d83aef5846862064551fb8e5fc8e9048
Author: lijinpei-amd <jinpli at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
A llvm/test/Transforms/Attributor/callbr.ll
Log Message:
-----------
[Attributor] Do not delete side-effect-free terminator (#205052)
Fixes: https://github.com/llvm/llvm-project/issues/192012
Commit: 4e6976b70b52f2f84b2b4f28c7badbfb401d302e
https://github.com/llvm/llvm-project/commit/4e6976b70b52f2f84b2b4f28c7badbfb401d302e
Author: Walter Lee <49250218+googlewalt at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/test/AST/ByteCode/command-line-options.cpp
Log Message:
-----------
Fix test on read-only file systems (#205108)
Fixes 25e4057d49055a645dc6a51ae1f40ac647aaed5b.
Use the -fsyntax-only flag instead of -c. This performs the necessary
parsing and diagnostics verification (the actual intent of this test)
without attempting to emit an object file.
Commit: 6b59e09d1443b5c3905daa457d241487eb9bfc3f
https://github.com/llvm/llvm-project/commit/6b59e09d1443b5c3905daa457d241487eb9bfc3f
Author: Joseph Huber <huberjn at outlook.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/test/Driver/hip-binding.hip
M clang/test/Driver/hip-device-compile.hip
M clang/test/Driver/hip-phases.hip
M clang/test/Driver/hip-toolchain-no-rdc.hip
Log Message:
-----------
[HIP] Fix `--no-offload-new-driver` behavior after #201457 (#205094)
Summary:
https://github.com/llvm/llvm-project/pull/201457 changed the default for
all targets. Even though the old offload driver is getting removed soon
we shouldn't break it for the LLVM23 release. This simply reverts to the
original behavior, the old driver builds its jobs manually so we can
just turn off this one specific case unless the user forced it.
Commit: 5b687a501bd26cc46d6b52582aa926acc0d3564e
https://github.com/llvm/llvm-project/commit/5b687a501bd26cc46d6b52582aa926acc0d3564e
Author: Walter Lee <49250218+googlewalt at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang-tools-extra/clangd/test/did-change-configuration-params.test
Log Message:
-----------
Be more permissive on spaces in command line argument parsing (#205111)
Fixes c888371ff0a3e10f8472676dc992f4347fca58d9.
This change properly accommodates both presence and absence of extra
trailing arguments like -resource-dir.
Commit: c79333e16d4c567c4ebeccb878ac2fc40fed687d
https://github.com/llvm/llvm-project/commit/c79333e16d4c567c4ebeccb878ac2fc40fed687d
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-atomic.cpp
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/check-omp-variant.cpp
Log Message:
-----------
[flang][OpenMP] Centralize pushing/popping directive context (#204924)
Put calls to PushContextAndClauseSets to the Enter function for
OpenMPConstruct and OpenMPDeclarativeConstruct, and popping the context
to the corresponding Leave functions. This moves most of the context
handling to the top-level AST entries. This will allow more centralized
verification of common clause properties in the future.
Commit: 6e4e181c83d076bb8e4c208ae28817f3900b23fa
https://github.com/llvm/llvm-project/commit/6e4e181c83d076bb8e4c208ae28817f3900b23fa
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/cmake/modules/ClangConfig.cmake.in
A cmake/Modules/GetTripleCMakeSystemName.cmake
A cmake/Modules/NormalizeTriple.cmake
M llvm/cmake/modules/LLVMConfig.cmake.in
M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
M llvm/runtimes/CMakeLists.txt
M runtimes/CMakeLists.txt
Log Message:
-----------
runtimes: Pass CMAKE_SYSTEM_NAME based on target triple (#203504)
Compute the cmake system name from the target triple, rather
than passing through the host's. This is primarily to stop
forwarding OSX specific cmake variables.
This fixes build failures when trying to build gpu libc on mac
hosts. Previously it would fail on several issues, starting with
an unused argument -mmacos-version-min error, followed by other
errors caused by passing -isysroot.
Secondarily, restrict the cmake imported targets when cross compiling.
Without this, the amdgpu build prints many cmake warnings about the
target not supporting shared libraries.
Claude did most of the actual work, though it required quite a few
rounds of prodding to get it into the right place. In particular it
took care of handling all of the cmake platform recognized names from
the triple.
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: 1ba7c9677649ed5072205c63532c1c2d5da38e13
https://github.com/llvm/llvm-project/commit/1ba7c9677649ed5072205c63532c1c2d5da38e13
Author: Koakuma <koachan at protonmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
M llvm/lib/Target/Sparc/SparcISelLowering.cpp
M llvm/lib/Target/Sparc/SparcISelLowering.h
M llvm/lib/Target/Sparc/SparcInstr64Bit.td
M llvm/lib/Target/Sparc/SparcInstrInfo.td
M llvm/test/CodeGen/SPARC/bswap.ll
Log Message:
-----------
[SPARC] Use hardware byteswapper when we have V9 (#191720)
On V9 processors we have endianness-adjusted memory operations, that can
be used to implement BSWAPs.
Use those instructions whenever possible to reduce code size.
Commit: e07c1e710ccf0be64140bd5774ba8dccce505bfd
https://github.com/llvm/llvm-project/commit/e07c1e710ccf0be64140bd5774ba8dccce505bfd
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[flang][OpenMP] Move unique clauses to allowedOnceClauses in OMP.td (#204995)
Many unique clauses were listed in "allowedClauses", which turned off
the single-occurrence check in flang. Move these clauses to the right
category to enable this check.
One exception to this is the IF clause: the IF clause is unique for all
non-compound directives, but is repeatable on compound ones with the
restriction that at most one IF clause can apply to any of the
constituents. This restriction is currently not enforced correctly in
flang, and so the IF clause was left unchanged.
Although this change is applied to a file shared between flang and
clang, clang does not use these categories for its checks, and hence is
not affected by this patch.
Commit: 237fbfd7cfbd2a2a4f0b171e493aa85b8506065a
https://github.com/llvm/llvm-project/commit/237fbfd7cfbd2a2a4f0b171e493aa85b8506065a
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/CodeGen/LiveInterval.h
M llvm/lib/CodeGen/LiveInterval.cpp
M llvm/lib/CodeGen/LiveIntervals.cpp
A llvm/test/CodeGen/AMDGPU/sched-handleMoveUp-dead-def-join.mir
Log Message:
-----------
[CodeGen] Join live range segments after dead def move (#204648)
Moving a dead def upward can retag a following live-range segment to the
same value as the previous segment. That leaves adjacent same-value
segments, which live range verification rejects.
Add a shared LiveRange helper for merging adjacent same-value segments.
Use it in the existing value-number merge code and after retagging later
segments for a moved dead def. Add an AMDGPU scheduler regression test.
Commit: 448b725bb78bc288c5f6e3ad27856c92902f6537
https://github.com/llvm/llvm-project/commit/448b725bb78bc288c5f6e3ad27856c92902f6537
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/Basic/OffloadArch.h
M clang/include/clang/Driver/Action.h
M clang/include/clang/Driver/Compilation.h
M clang/include/clang/Driver/Driver.h
M clang/include/clang/Driver/Job.h
M clang/include/clang/Driver/SanitizerArgs.h
M clang/include/clang/Driver/ToolChain.h
M clang/lib/Driver/Action.cpp
M clang/lib/Driver/Compilation.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/SanitizerArgs.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/AIX.cpp
M clang/lib/Driver/ToolChains/AIX.h
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/AMDGPU.h
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.h
M clang/lib/Driver/ToolChains/AVR.cpp
M clang/lib/Driver/ToolChains/AVR.h
M clang/lib/Driver/ToolChains/BareMetal.cpp
M clang/lib/Driver/ToolChains/BareMetal.h
M clang/lib/Driver/ToolChains/CSKYToolChain.cpp
M clang/lib/Driver/ToolChains/CSKYToolChain.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/CrossWindows.cpp
M clang/lib/Driver/ToolChains/CrossWindows.h
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Driver/ToolChains/Cuda.h
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Darwin.h
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/Flang.h
M clang/lib/Driver/ToolChains/FreeBSD.cpp
M clang/lib/Driver/ToolChains/FreeBSD.h
M clang/lib/Driver/ToolChains/Fuchsia.cpp
M clang/lib/Driver/ToolChains/Fuchsia.h
M clang/lib/Driver/ToolChains/Gnu.cpp
M clang/lib/Driver/ToolChains/Gnu.h
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/HIPAMD.h
M clang/lib/Driver/ToolChains/HIPSPV.cpp
M clang/lib/Driver/ToolChains/HIPSPV.h
M clang/lib/Driver/ToolChains/HIPUtility.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
M clang/lib/Driver/ToolChains/HLSL.h
M clang/lib/Driver/ToolChains/Haiku.cpp
M clang/lib/Driver/ToolChains/Haiku.h
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/lib/Driver/ToolChains/Hexagon.h
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Driver/ToolChains/Linux.h
M clang/lib/Driver/ToolChains/MSP430.cpp
M clang/lib/Driver/ToolChains/MSP430.h
M clang/lib/Driver/ToolChains/MSVC.cpp
M clang/lib/Driver/ToolChains/MSVC.h
M clang/lib/Driver/ToolChains/Managarm.cpp
M clang/lib/Driver/ToolChains/Managarm.h
M clang/lib/Driver/ToolChains/MinGW.cpp
M clang/lib/Driver/ToolChains/MinGW.h
M clang/lib/Driver/ToolChains/NetBSD.cpp
M clang/lib/Driver/ToolChains/NetBSD.h
M clang/lib/Driver/ToolChains/OHOS.cpp
M clang/lib/Driver/ToolChains/OHOS.h
M clang/lib/Driver/ToolChains/OpenBSD.cpp
M clang/lib/Driver/ToolChains/OpenBSD.h
M clang/lib/Driver/ToolChains/PS4CPU.cpp
M clang/lib/Driver/ToolChains/PS4CPU.h
M clang/lib/Driver/ToolChains/SPIRVOpenMP.cpp
M clang/lib/Driver/ToolChains/SPIRVOpenMP.h
M clang/lib/Driver/ToolChains/SYCL.cpp
M clang/lib/Driver/ToolChains/SYCL.h
M clang/lib/Driver/ToolChains/Serenity.cpp
M clang/lib/Driver/ToolChains/Serenity.h
M clang/lib/Driver/ToolChains/Solaris.cpp
M clang/lib/Driver/ToolChains/Solaris.h
M clang/lib/Driver/ToolChains/VEToolchain.cpp
M clang/lib/Driver/ToolChains/VEToolchain.h
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/lib/Driver/ToolChains/WebAssembly.h
M clang/lib/Driver/ToolChains/XCore.cpp
M clang/lib/Driver/ToolChains/XCore.h
M clang/lib/Driver/ToolChains/ZOS.cpp
M clang/lib/Driver/ToolChains/ZOS.h
M clang/test/Driver/hip-link-bundle-archive.hip
M clang/test/Driver/hip-phases.hip
M clang/test/Driver/hip-target-id.hip
M clang/test/Driver/hip-toolchain-no-rdc.hip
M clang/unittests/Driver/DXCModeTest.cpp
Log Message:
-----------
clang/Driver: Use struct type for BoundArch instead of StringRef (#204748)
Change BoundArch arguments in the clang driver from StringRef (or
sometimes const char*) to a dedicated struct type that contains both
the architecture string and a parsed OffloadArch enum field. In the
future it may be useful to contain other feature bits here.
Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
Commit: e57068a5bd9fd9be5a265b83552689ff49f8fcb4
https://github.com/llvm/llvm-project/commit/e57068a5bd9fd9be5a265b83552689ff49f8fcb4
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/BundleAttributes.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/IR/BundleAttributes.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/assume.ll
Log Message:
-----------
[InstCombine] Try folding align assumes with unkown offset (#204962)
There are a few folds which don't depend on the offset of the alignment,
but are nevertheless guarded on whether the offset is known. Run these
folds unconditionally instead.
Commit: d9d2f3221b9e499f183acb1d3bece3c1d8f1462a
https://github.com/llvm/llvm-project/commit/d9d2f3221b9e499f183acb1d3bece3c1d8f1462a
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/test/Semantics/OpenMP/clause-validity01.f90
M flang/test/Semantics/OpenMP/single03.f90
M flang/test/Semantics/OpenMP/single04.f90
Log Message:
-----------
[flang][OpenMP] Refactor semantic check of SINGLE construct (#204339)
Extract it into a separate function and simplify the code. Avoid making
the distinction between a clause appearing on the "begin" and the "end"
directives for the purposes of emitting diagnostic messages.
One change in behavior is that using the same list item multiple times
in COPYPRIVATE clause(s) is an error regardless of the placement of the
clauses. Previously in some cases it was treated as a warning.
Part of the motivation is the goal of eliminating explicit definitions
of end-directives for directives that are not delimited, e.g. "end
single", but not "end declare_variant".
Commit: 421ae3759e92132f066c77764d6da31e8a74e47c
https://github.com/llvm/llvm-project/commit/421ae3759e92132f066c77764d6da31e8a74e47c
Author: earnol <earnol at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
A clang-tools-extra/test/clang-tidy/checkers/bugprone/misplaced-widening-cast-bitfield.cpp
Log Message:
-----------
[clang-tidy] Fix bugprone-misplaced-widening-cast false positive on bitfield assignments (#197554)
When CheckImplicitCasts=true, the checker used the declared type of a
bitfield insread of the actual bitfield width to determine if widening
occurs. This caused false positives when assigning to a bitfield whose
declared type is wider than the source, but whose bitfield width
actually matches the source type. This behavior is fixed.
This PR fixes https://github.com/llvm/llvm-project/issues/197261 issue.
Co-authored-by: Vladislav Aranov <vladislav.aranov at ericsson.com>
Commit: 132e019c1f8f485c764b22670b5ea7ff2d8556a8
https://github.com/llvm/llvm-project/commit/132e019c1f8f485c764b22670b5ea7ff2d8556a8
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/test/Driver/openmp-offload-gpu.c
M clang/test/OpenMP/bug60602.cpp
M clang/test/OpenMP/declare_target_local_codegen.cpp
M clang/test/OpenMP/distribute_codegen.cpp
M clang/test/OpenMP/distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_codegen.cpp
M clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/map_struct_ordering.cpp
M clang/test/OpenMP/nvptx_lambda_capturing.cpp
R clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp
M clang/test/OpenMP/reduction_implicit_map.cpp
M clang/test/OpenMP/spirv_target_teams_reduction_addrspace.c
M clang/test/OpenMP/target_codegen_global_capture.cpp
M clang/test/OpenMP/target_default_codegen.cpp
M clang/test/OpenMP/target_defaultmap_codegen_03.cpp
M clang/test/OpenMP/target_dyn_groupprivate_codegen.cpp
M clang/test/OpenMP/target_firstprivate_codegen.cpp
M clang/test/OpenMP/target_has_device_addr_codegen.cpp
M clang/test/OpenMP/target_has_device_addr_codegen_01.cpp
M clang/test/OpenMP/target_is_device_ptr_codegen.cpp
M clang/test/OpenMP/target_map_array_of_structs_with_nested_mapper_codegen.cpp
M clang/test/OpenMP/target_map_array_section_no_length_codegen.cpp
M clang/test/OpenMP/target_map_array_section_of_structs_with_nested_mapper_codegen.cpp
M clang/test/OpenMP/target_map_codegen_03.cpp
M clang/test/OpenMP/target_map_codegen_hold.cpp
M clang/test/OpenMP/target_map_deref_array_codegen.cpp
M clang/test/OpenMP/target_map_member_expr_codegen.cpp
M clang/test/OpenMP/target_offload_mandatory_codegen.cpp
M clang/test/OpenMP/target_ompx_dyn_cgroup_mem_codegen.cpp
M clang/test/OpenMP/target_parallel_codegen.cpp
M clang/test/OpenMP/target_parallel_for_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-2.cpp
M clang/test/OpenMP/target_parallel_generic_loop_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_parallel_if_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_strict_codegen.cpp
M clang/test/OpenMP/target_task_affinity_codegen.cpp
M clang/test/OpenMP/target_teams_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_order_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_if_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_order_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_private_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_teams_map_codegen.cpp
M clang/test/OpenMP/target_teams_num_teams_codegen.cpp
A clang/test/OpenMP/target_teams_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_thread_limit_codegen.cpp
M clang/test/OpenMP/teams_codegen.cpp
M clang/test/OpenMP/teams_distribute_codegen.cpp
M clang/test/OpenMP/teams_distribute_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_copyin_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_num_threads_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_num_threads_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/teams_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_codegen-1.cpp
M clang/test/OpenMP/teams_generic_loop_collapse_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_private_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_reduction_codegen.cpp
M clang/test/OpenMP/teams_private_codegen.cpp
M llvm/include/llvm/Frontend/OpenMP/OMPConstants.h
M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/test/Transforms/OpenMP/add_attributes.ll
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/allocatable_gpu_reduction_teams.mlir
M mlir/test/Target/LLVMIR/omptarget-multi-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-region-device-llvm.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction-array-descriptor.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-reduction.mlir
M mlir/test/Target/LLVMIR/openmp-target-launch-device.mlir
M offload/include/Shared/Environment.h
M offload/plugins-nextgen/common/include/PluginInterface.h
M offload/plugins-nextgen/common/src/PluginInterface.cpp
M openmp/device/include/Interface.h
M openmp/device/src/Reduction.cpp
Log Message:
-----------
Reapply "[OpenMP][offload] Cross-team reductions with variable number of teams" (#204914) (#205071)
Together with the fix for
https://github.com/llvm/llvm-project/pull/195102#issuecomment-4756584289
Commit: b9940aa6cf3c30ae8eb3c2059c0869ed95bb42aa
https://github.com/llvm/llvm-project/commit/b9940aa6cf3c30ae8eb3c2059c0869ed95bb42aa
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/assume-loop-align.ll
M llvm/test/Transforms/InstCombine/assume.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
Log Message:
-----------
[InstCombine] Merge consecutive assumes (#204983)
This should make assumes a bit more efficient, since it removes a few
instructions. This should also help with optimizations that are limited
in how many instructions they step through.
Commit: 1a4e2d2f0a7b60083f19e68abff80dc14702a579
https://github.com/llvm/llvm-project/commit/1a4e2d2f0a7b60083f19e68abff80dc14702a579
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/test/CodeGen/AMDGPU/packed-u64.ll
Log Message:
-----------
AMDGPU/GlobalISel: RegBankLegalize rules for pk_u64 add and sub (#205079)
Commit: 97fe69eaec8920e84308f80ade9e641aa424267b
https://github.com/llvm/llvm-project/commit/97fe69eaec8920e84308f80ade9e641aa424267b
Author: Jay Foad <jay.foad at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AMDGPU/sign_extend.ll
Log Message:
-----------
[AMDGPU] Add a test for sext i1 feeding into icmp (#205121)
This is a precommit of a test case that causes problems for #204238.
Commit: 63862a2d80759a88e0b7408e555bb8f2292c5d40
https://github.com/llvm/llvm-project/commit/63862a2d80759a88e0b7408e555bb8f2292c5d40
Author: Zorojuro <sawantsukumar at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/freebsd/x86_64/entrypoints.txt
Log Message:
-----------
[libc][math] Add missing freebsd entrypoint for cbrtf16 (#205011)
Adds missing freebsd entrypoint in
[5429667](https://github.com/llvm/llvm-project/pull/205011/commits/5429667e053398d39e180f084e0dd5c4c416aa27)
and fixes the wrong entry point for `crbtf1` in
[cdc394f](https://github.com/llvm/llvm-project/pull/205011/commits/cdc394f8ba7dffb9f49563d601def7cf31561d6f),
which was `cbrtf` in `baremetal/riscv`
Commit: a92039c3e44e102f90751c8e8b2ab70a077016b7
https://github.com/llvm/llvm-project/commit/a92039c3e44e102f90751c8e8b2ab70a077016b7
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang-rt/lib/runtime/CMakeLists.txt
M openmp/module/CMakeLists.txt
Log Message:
-----------
[flang-rt][openmp] Add file-level dependencies for builtin mod files (#204260)
CMake currently intentionally ignores intrinsic dependencies. flang-rt
already had a workaround using target-level dependencies, but it does
not know about dependencies between .mod files created within the same
add_library that CMake ignores. As a result, as reported in #203549,
updating a .mod did not trigger rebuilding the .mod files that depend on
it. Specifically, .mod files store the checksum of used .mod files which
need to be updated and therefore require transitive rebuidling.
As mentioned, CMake already adds this file-level dependency itself for
non-intrinsic modules dependencies. In this PR we are injecting the
additional dependencies that CMake does not add via OBJECT_DEPENDS.
Three caveats:
1. Using OBJECT_DEPENDS for dependencies between modules of the same
OBJECT library makes Ninja complain about circular dependencies. To
avoid, split __fortran_builtins.f90 and __cuda_builtins.f90 into their
own OBJECT libraries each.
2. The dependency cannot be on the .mod files. Because of how CMake's
dependency mechanism works, the dependency scanning runs only after
ensuring that the OBJECT_DEPENDS files exist. So if they don't exist
yet, we get a missing dependency error. To avoid, we depend on the .o
file instead.
3. Generator expressions do not work in OBJECT_DEPENDS. That is, we
cannot use `$<TARGET_FILES:flang_rt.mod.fortran.builtins>`, but
fortunately we can use OBJECT_OUTPUTS to make the location predictable.
At some point in the future,
https://gitlab.kitware.com/cmake/cmake/-/issues/26803 should be resolved
and become the minimum required version to build LLVM, in which case
these workarounds can be removed.
Commit: f63cb33699f4ab593328c15ee99650514bc0ab2c
https://github.com/llvm/llvm-project/commit/f63cb33699f4ab593328c15ee99650514bc0ab2c
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M .gitignore
Log Message:
-----------
gitignore: Add emacs lock files (#205055)
Commit: bd89ac741dff1a6edec15821b719a34ab5646f3f
https://github.com/llvm/llvm-project/commit/bd89ac741dff1a6edec15821b719a34ab5646f3f
Author: Charles Zablit <c_zablit at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
Log Message:
-----------
[lldb][Windows] Remember server's primary stop thread on gdb-remote stops (#203525)
The client kept the previously-selected thread across stops, ignoring
the primary tid from the server in `T<sig>thread:<tid>`.
On Windows, lldb-server halts the inferior by injecting a thread called
`DbgUiRemoteBreakin` whose only job is to execute an int 3. After an
interrupt, the process has `N+1` threads and the new one is what caused
the stop. The server reports that thread as primary, but the client
ignored it and stayed on whichever thread was selected before. In
`TestExpressionInSyscall` that thread is main, paused just past
`NtDelayExecution`'s syscall with a garbage value in the RSI register.
Evaluating an expression there crashes the JIT trampoline.
This patch makes `ProcessGDBRemote::RefreshStateAfterStop` record the
primary tid from the most recent T-packet's `thread:<tid>` and select it
after applying per thread stop infos.
Fixes `TestBreakpointSetRestart` and `TestExpressionInSyscall` with
LLDB_USE_LLDB_SERVER=1.
rdar://180307914
Commit: d4ae086789debfaa1065b97dfd2cf78b44544eba
https://github.com/llvm/llvm-project/commit/d4ae086789debfaa1065b97dfd2cf78b44544eba
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
A llvm/test/CodeGen/AMDGPU/fold-imm-pk64.mir
Log Message:
-----------
[AMDGPU] Prevent folding of immediates larger than 64 bit (#204434)
Commit: f4927c95fa74247304af703d4dae4396dcbc5a2f
https://github.com/llvm/llvm-project/commit/f4927c95fa74247304af703d4dae4396dcbc5a2f
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/packed-fp64.ll
M llvm/test/CodeGen/AMDGPU/packed-u64.ll
M llvm/test/CodeGen/AMDGPU/pk-lshl-add-u64.ll
M llvm/test/CodeGen/AMDGPU/shl.v2i64.ll
Log Message:
-----------
[AMDGPU] Make v2x64 BUILD_VECTOR legal on gfx1251 (#204470)
Commit: 08c728e8528c9584bc1fe0f46bbdd657e368be91
https://github.com/llvm/llvm-project/commit/08c728e8528c9584bc1fe0f46bbdd657e368be91
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/cmake/modules/ClangConfig.cmake.in
R cmake/Modules/GetTripleCMakeSystemName.cmake
R cmake/Modules/NormalizeTriple.cmake
M llvm/cmake/modules/LLVMConfig.cmake.in
M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
M llvm/runtimes/CMakeLists.txt
M runtimes/CMakeLists.txt
Log Message:
-----------
Revert "runtimes: Pass CMAKE_SYSTEM_NAME based on target triple" (#205133)
Reverts llvm/llvm-project#203504
Breaks build pending #205130
Commit: 91e344bd26bf18badeaf5bd8e5cf41f1f7e1cca4
https://github.com/llvm/llvm-project/commit/91e344bd26bf18badeaf5bd8e5cf41f1f7e1cca4
Author: youngd007 <davidayoung at meta.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
Log Message:
-----------
[lldb][bazel] Add the Windows process plugin to the bazel build (#203146)
Add a cc_library for the native Windows process plugin
(ProcessWindowsCommon),
gated to @platforms//os:windows, and register it via the dedicated
@LLDB_PROCESS_WINDOWS_PLUGIN@ slot in the generated Plugins.def. This
mirrors the
CMake build, which special-cases ProcessWindowsCommon into that slot so
it is
initialized after all other process plugins but before ProcessGDBRemote.
With the help of claude.
Tested internally at Meta by converting Bazel -> BUCK and confirming
matches working BUCK contents for windows lldb build.
Commit: 6e562169fd026e26124fe4e2e435d3a4c522ffe2
https://github.com/llvm/llvm-project/commit/6e562169fd026e26124fe4e2e435d3a4c522ffe2
Author: Sungbin Jo <goranmoomin at daum.net>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/ObjectYAML/MachOEmitter.cpp
A llvm/test/ObjectYAML/MachO/endianness.yaml
Log Message:
-----------
[yaml2obj][MachO] Fix byte order of the indirect symbol table (#205044)
This is a follow-up of PR #203680 that added the test case
`linkedit-alignment.test`, which currently fails on big-endian buildbots
(see: https://lab.llvm.org/buildbot/#/builders/98/builds/3084 and
https://lab.llvm.org/buildbot/#/builders/114/builds/906).
The failure seems to be on `yaml2obj`, where `writeDynamicSymbolTable`
emits an indirect symbol table in host byte order rather than the
specified object's byte order (i.e. the `IsLittleEndian` field value).
This PR adds the missing swap and a regression test that round-trips all
endian-sensitive fields with both endianness values.
Commit: 1a63fca933a0e8a3cb807d462ef50901a90f83d2
https://github.com/llvm/llvm-project/commit/1a63fca933a0e8a3cb807d462ef50901a90f83d2
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
Log Message:
-----------
[bazel] Disable buildkite for PluginProcessWindowsCommon (#205141)
Commit: 08d766ba6d1ffdeb894c0c935465f7134aef6dfc
https://github.com/llvm/llvm-project/commit/08d766ba6d1ffdeb894c0c935465f7134aef6dfc
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M libcxx/utils/ci/lnt/README.md
M libcxx/utils/ci/lnt/run-benchbot
M libcxx/utils/ci/lnt/run-benchmarks
Log Message:
-----------
[libc++][lnt] Allow retaining build artifacts in run-benchbot (#205146)
Also, as a drive-by, introduce `--results-dir` to specify where to put
the JSON results instead of using `--build-dir` for that.
Assisted by Claude
Commit: a88b88bdd346282a71b2f01b1513936280c20a93
https://github.com/llvm/llvm-project/commit/a88b88bdd346282a71b2f01b1513936280c20a93
Author: Yihan Wang <yronglin777 at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M libcxx/docs/FeatureTestMacroTable.rst
M libcxx/docs/ReleaseNotes/23.rst
M libcxx/docs/Status/Cxx29Papers.csv
M libcxx/include/__utility/constant_wrapper.h
M libcxx/include/utility
M libcxx/include/version
M libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/convert.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/ctad.compile.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/cw.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/cw_fixed.array.ctor.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/cw_fixed.ctor.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/subscript.pass.cpp
A libcxx/test/std/utilities/const.wrap.class/template.verify.cpp
M libcxx/test/std/utilities/const.wrap.class/types.compile.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/unary_ops.pass.cpp
M libcxx/utils/generate_feature_test_macro_components.py
Log Message:
-----------
[libc++] Implement P4206R0 Revert string support in std::constant_wrapper (#203338)
Fixes https://github.com/llvm/llvm-project/issues/203336
---------
Signed-off-by: yronglin <yronglin777 at gmail.com>
Co-authored-by: A. Jiang <de34 at live.cn>
Commit: 20cf19f0c34579273382e20947ea8e6373949796
https://github.com/llvm/llvm-project/commit/20cf19f0c34579273382e20947ea8e6373949796
Author: Xavier Roche <roche at httrack.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M libcxx/include/__math/abs.h
M libcxx/test/std/numerics/c.math/abs.pass.cpp
Log Message:
-----------
[libc++] std::abs support for _BitInt(N) and __int128 (#196532)
`std::abs` does not accept `__int128` or signed `_BitInt(N)`: the call
is ambiguous and fails to compile (#204212).
This adds an explicit `abs(__int128_t)` overload and an
`abs(_BitInt(N))` overload that deduces the width, so every signed
`_BitInt` gets a same-type result. `_BitInt` does not integer-promote,
so without this overload a narrow signed `_BitInt` would be an ambiguous
call against `abs(int/long/long long)` instead of promoting the way
`signed char` and `short` do. Standard narrow types are unchanged: they
still go through `abs(int)`.
Part of the [_BitInt(N) libc++
effort](https://discourse.llvm.org/t/bitint-n-support-in-libc-investigations-possible-improvements-looking-for-guidance/90063).
Fixes #204212
Assisted-by: Claude (Anthropic)
---------
Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
Commit: 86f2e71cb8d165b59ad31a442b2391e23826133e
https://github.com/llvm/llvm-project/commit/86f2e71cb8d165b59ad31a442b2391e23826133e
Author: John Paul Jepko <john.jepko at ericsson.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaChecking.cpp
M clang/test/AST/ByteCode/builtin-functions.cpp
M clang/test/Analysis/bstring.c
M clang/test/Analysis/malloc.c
M clang/test/Analysis/pr22954.c
M clang/test/Sema/builtin-memcpy.c
M clang/test/Sema/builtin-object-size.c
M clang/test/Sema/warn-fortify-source.c
A clang/test/Sema/warn-stringop-overread.c
M compiler-rt/test/asan/TestCases/Windows/issue64990.cpp
Log Message:
-----------
[Clang][Sema] Add -Wstringop-overread warning for source buffer overreads (#183004)
This PR adds a new `-Wstringop-overread` warning that diagnoses calls to
memory functions where the specified size exceeds the size of the source
buffer, increasing parity with GCC's `-Wstringop-overread`.
The warning is emitted when the read size is a compile-time constant
that is greater than the size of the source buffer (when known
statically).
This check applies to the following functions:
- `memcpy`, `memmove`, `mempcpy` (and `__builtin_` / `__builtin___*_chk`
variants)
- `memchr`
- `memcmp`, `bcmp`
Some of the existing code for `-Wfortify-source` was refactored into a
helper class to make its lambdas accessible to other functions.
Fixes #83728
Assisted-by: claude-opus-4.6
---------
Co-authored-by: Erich Keane <ekeane at nvidia.com>
Commit: 1f20833fa42ddec64e170b2738e5cdbc007bb5de
https://github.com/llvm/llvm-project/commit/1f20833fa42ddec64e170b2738e5cdbc007bb5de
Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/InstSimplify/ConstProp/active-lane-mask.ll
Log Message:
-----------
[ValueTracking] Mark frexp, ALM propagates poison (#205139)
Commit: 582a20269e2cc190ce73151f51e99c9e14ffc202
https://github.com/llvm/llvm-project/commit/582a20269e2cc190ce73151f51e99c9e14ffc202
Author: Sam Elliott <aelliott at qti.qualcomm.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/RISCV/CMakeLists.txt
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCV.h
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrPredicates.td
A llvm/lib/Target/RISCV/RISCVQCRelaxMarking.cpp
M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
M llvm/test/CodeGen/RISCV/O3-pipeline.ll
A llvm/test/CodeGen/RISCV/qc-access-marking.ll
Log Message:
-----------
[RISCV] Add a Pass for adding %qc.access specifiers (#201938)
Qualcomm's ABI has Access Relocation Markers, which are used to enable
more linker relaxations. This change implements a pass which will
annotate loads and stores (accesses) which are the single user of a
`qc.e.li`-materialized address with these markers so they can be relaxed
in the linker.
This is a follow-up to #188671.
Commit: 93b1f81e03ef4c717a9d222b46f78c38bcff0a3f
https://github.com/llvm/llvm-project/commit/93b1f81e03ef4c717a9d222b46f78c38bcff0a3f
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M libcxx/include/__random/bernoulli_distribution.h
M libcxx/include/__random/binomial_distribution.h
M libcxx/include/__random/cauchy_distribution.h
M libcxx/include/__random/chi_squared_distribution.h
M libcxx/include/__random/discard_block_engine.h
M libcxx/include/__random/discrete_distribution.h
M libcxx/include/__random/exponential_distribution.h
M libcxx/include/__random/extreme_value_distribution.h
M libcxx/include/__random/fisher_f_distribution.h
M libcxx/include/__random/gamma_distribution.h
M libcxx/include/__random/generate_canonical.h
M libcxx/include/__random/geometric_distribution.h
M libcxx/include/__random/independent_bits_engine.h
M libcxx/include/__random/linear_congruential_engine.h
M libcxx/include/__random/lognormal_distribution.h
M libcxx/include/__random/mersenne_twister_engine.h
M libcxx/include/__random/negative_binomial_distribution.h
M libcxx/include/__random/normal_distribution.h
M libcxx/include/__random/piecewise_constant_distribution.h
M libcxx/include/__random/piecewise_linear_distribution.h
M libcxx/include/__random/poisson_distribution.h
M libcxx/include/__random/random_device.h
M libcxx/include/__random/seed_seq.h
M libcxx/include/__random/shuffle_order_engine.h
M libcxx/include/__random/student_t_distribution.h
M libcxx/include/__random/subtract_with_carry_engine.h
M libcxx/include/__random/uniform_int_distribution.h
M libcxx/include/__random/uniform_real_distribution.h
M libcxx/include/__random/weibull_distribution.h
A libcxx/test/libcxx/numerics/rand/nodiscard.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bernoulli/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.geo/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.negbin/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.cauchy/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.chisq/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.f/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.lognormal/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.normal/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.t/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.exp/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.extreme/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.gamma/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.poisson/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.weibull/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.pconst/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.plinear/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.real/bad_engine.verify.cpp
Log Message:
-----------
[libc++][random] Applied `[[nodiscard]]` to `<random>` (#204970)
Towards: #172124
-
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
- https://wg21.link/rand
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Commit: ef22d07c2c4fc3209cc14de2734fbb336ddf42b4
https://github.com/llvm/llvm-project/commit/ef22d07c2c4fc3209cc14de2734fbb336ddf42b4
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-omp-structure.cpp
Log Message:
-----------
[flang][OpenMP] Use early exit to unindent some code, NFC (#205150)
Commit: 2bb8a56e7dfc6e0a90c0464d9b65640f0252883d
https://github.com/llvm/llvm-project/commit/2bb8a56e7dfc6e0a90c0464d9b65640f0252883d
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M bolt/lib/Core/BinaryEmitter.cpp
M llvm/include/llvm/MC/MCObjectStreamer.h
M llvm/include/llvm/MC/MCStreamer.h
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCELFStreamer.cpp
M llvm/lib/MC/MCObjectStreamer.cpp
M llvm/lib/MC/MCParser/AsmParser.cpp
M llvm/lib/MC/MCParser/MasmParser.cpp
M llvm/lib/MC/MCStreamer.cpp
M llvm/lib/MC/MCWinCOFFStreamer.cpp
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
M llvm/lib/Target/ARM/ARMMCInstLower.cpp
M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
M llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.cpp
M llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
M llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
M llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp
M llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
M llvm/lib/Target/Mips/MipsAsmPrinter.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.cpp
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h
M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
M llvm/lib/Target/X86/X86MCInstLower.cpp
Log Message:
-----------
[MC] emitCodeAlignment: take MCSubtargetInfo by reference. NFC (#205140)
The fragment member cannot be null, and the sibling streamer hooks
(emitInstruction, initSections, emitPrefAlign) already take it by
reference.
Commit: 1d8a54f7cf233be64ffce08a3c5697ea8f1cccb5
https://github.com/llvm/llvm-project/commit/1d8a54f7cf233be64ffce08a3c5697ea8f1cccb5
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/CIR/LoweringHelpers.h
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CIR/Lowering/LoweringHelpers.cpp
M clang/test/CIR/Lowering/const-array-bulk-lowering-fallbacks.cir
M clang/test/CIR/Lowering/const-array-of-pointers.cir
Log Message:
-----------
[CIR] Lower const arrays as a single llvm.mlir.constant (#203590)
When compiling the blender benchmark for SPEC CPU2017, we hit a case
where a very large array (more than 400k elements) is initialized with
constant values. However, because it contains trailing zeros, CIR
generates a constant record initializer (an array of elements, plus a
zero-initialized trailing array). We were lowering this to the LLVM
dialect using a global initializer function with a huge number of calls
to insertelement. The subsequent lowering to LLVM IR constant folded
back to a constant initializer, but it took about 40 minutes to compile.
The recent fix to avoid calling insertelement for the array
initialization didn't fix this case because it handled only arrays, not
records.
This change updates the lowering to the LLVM dialect to lower constant
array attributes to a single llvm.mlir.const value rather than
attempting to build a chain of insertvalue ops whenever possible.
Commit: 8140495ed285468512e8b0c0fc576234750bd15f
https://github.com/llvm/llvm-project/commit/8140495ed285468512e8b0c0fc576234750bd15f
Author: Bidhan <bidhan619 at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/BPF/BPFFrameLowering.cpp
M llvm/lib/Target/BPF/BPFFrameLowering.h
A llvm/test/DebugInfo/BPF/dbg-location-fbreg.ll
Log Message:
-----------
[BPF] override getFrameIndexReference for frame object offsets (#204722)
### Summary
The BPF backend currently does not override `getFrameIndexReference()`.
Since BPF uses a fixed frame pointer (R10), frame object offsets are
already expressed relative to the frame pointer. The generic
`TargetFrameLowering::getFrameIndexReference()` implementation adjusts
offsets using the stack size, which is not appropriate for BPF.
This PR overrides `getFrameIndexReference()` to return the correct frame
object offsets for the BPF frame model, resulting in accurate debug
locations for stack variables. For example, the stack variable `local`
in the reproducer below previously received:
```
DW_AT_location (DW_OP_fbreg +0)
```
and now correctly receives:
```
DW_AT_location (DW_OP_fbreg -32)
```
which matches the actual location of the stack object relative to the
frame pointer.
-----
**Rust code snippet**
```
#[repr(C)]
#[derive(Copy, Clone)]
pub struct S {
pub a: u64,
pub b: u64,
pub c: u64,
}
#[unsafe(no_mangle)]
pub extern "C" fn entry(x: u64) -> u64 {
let mut local = S { a: x, b: x + 1, c: x + 2 };
let ptr_to_b = &mut local.a as *mut u64;
let ptr_to_b = core::hint::black_box(ptr_to_b);
unsafe {
core::ptr::write_volatile(ptr_to_b, x + 42);
}
unsafe { core::ptr::read_volatile(ptr_to_b) }
}
```
**Build commands**
```
> rustc +nightly repro.rs --emit=llvm-ir -g -O --crate-type=lib -o repro.l
> ./build/bin/lc repro.l -march=bpfel -O2 -filetype=obj -o repro.o
> ./build/bin/lvm-dwarfdump --debug-info --debug-loc --debug-loclists repro.o > repro.debug
```
**DW_TAG_variable info for variable "local"**
Before patch:
```
0x00000114: DW_TAG_variable
DW_AT_location (DW_OP_fbreg +0)
DW_AT_name ("local")
DW_AT_alignment (8)
DW_AT_decl_file ("/home/LLVM/llvm-project/repro.rs")
DW_AT_decl_line (11)
DW_AT_type (0x000001b8 "repro::S")
```
After patch:
```
0x00000114: DW_TAG_variable
DW_AT_location (DW_OP_fbreg -32)
DW_AT_name ("local")
DW_AT_alignment (8)
DW_AT_decl_file ("/home/LLVM/llvm-project/repro.rs")
DW_AT_decl_line (11)
DW_AT_type (0x000001bc "repro::S")
```
Commit: 46995fb32b999c6332fbd1bdfb84d79cad47195f
https://github.com/llvm/llvm-project/commit/46995fb32b999c6332fbd1bdfb84d79cad47195f
Author: Akhil Goel <akhil.goel at intel.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M mlir/include/mlir/Conversion/MathToXeVM/MathToXeVM.h
M mlir/include/mlir/Conversion/Passes.td
M mlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h
M mlir/lib/Conversion/MathToXeVM/CMakeLists.txt
M mlir/lib/Conversion/MathToXeVM/MathToXeVM.cpp
A mlir/test/Conversion/MathToXeVM/math-to-ocl.mlir
Log Message:
-----------
[mlir][Math][XeVM] Add Math to OCL conversion patterns (#198370)
This PR adds conversion patterns to convert supported math ops to SPIR-V
OpenCL builtin calls. These lowerings correspond to `OpExtInst` calls
into the OpenCL SPIR-V extended instruction set via mangled
`__spirv_ocl_` entry points for f32/f64 variants.
Commit: 49a0e107e9f0d244d41eb766c67d02900eff8ee3
https://github.com/llvm/llvm-project/commit/49a0e107e9f0d244d41eb766c67d02900eff8ee3
Author: Shilei Tian <i at tianshilei.me>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/IR/CMakeLists.txt
M llvm/lib/IR/Verifier.cpp
A llvm/lib/IR/VerifierAMDGPU.cpp
A llvm/lib/IR/VerifierInternal.h
M llvm/test/Verifier/callbr-intrinsic.ll
M llvm/utils/gn/secondary/llvm/lib/IR/BUILD.gn
Log Message:
-----------
[RFC][NFCI][IR] Extract AMDGPU-specific verification logic into `VerifierAMDGPU.cpp` (#204284)
`Verifier.cpp` is large and already mixes generic IR verification with
target-specific checks. We also have a growing amount of AMDGPU verifier
logic downstream, which would all end up in the same file if we don't
address this, and that is not ideal.
This patch extracts AMDGPU-specific verification logic into a separate
`VerifierAMDGPU.cpp` file, with shared infrastructure
(`VerifierSupport`) moved into `VerifierInternal.h`.
This is purely a code organization change, not a target-dependent IR
verifier. All checks remain compiled and linked into `LLVMCore`
regardless of the target triple. The extracted functions are called
unconditionally at well-defined extension points in `Verifier.cpp`, and
each function internally gates on target-specific conditions (for
example, triple checks or intrinsic IDs) as needed. The file is strictly
limited to AMDGPU-specific IR constructs (amdgcn intrinsics, AMDGPU
module flags, etc.), and does not contain generic IR rules that vary by
target.
This PR deliberately avoided introducing polymorphism, since this is not
a target-dependent verification framework. Instead, this follows a
pattern similar to TargetParser (for example `AMDGPUTargetParser.cpp`):
flat file layout, free functions, no registration, and unconditional
compilation.
Other targets that want similar separation can follow the same pattern.
Open to suggestions on whether there is a better long-term way to
structure this.
Commit: 39f5357397ef97aa2143360f3613decef981d02b
https://github.com/llvm/llvm-project/commit/39f5357397ef97aa2143360f3613decef981d02b
Author: Zhen Wang <zhenw at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/resolve-names.cpp
M flang/test/Lower/CUDA/cuda-gpu-managed.cuf
Log Message:
-----------
[flang][cuda] Apply implicit managed attribute to pointer variables under -gpu=mem:managed (#204634)
When -gpu=mem:managed is active with CUDA Fortran enabled, only
allocatable variables were implicitly given the managed CUDA data
attribute. Pointer variables were left without it, causing their
allocations to use host memory instead of cudaMallocManaged.
This patch extends the implicit managed attribute in
FinishSpecificationPart to also cover pointer symbols. A
LanguageFeature::CUDA guard is added so the attribute is only applied
when CUDA Fortran semantics are active. The implicit pinned attribute
(-gpu=mem:pinned) remains allocatable-only.
Commit: 04baf7ed88bc833a599d20bafb07fbceccade4a7
https://github.com/llvm/llvm-project/commit/04baf7ed88bc833a599d20bafb07fbceccade4a7
Author: Min-Yih Hsu <min.hsu at sifive.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-fixed.ll
M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave.ll
Log Message:
-----------
[SDAG][LegalizeType] Implement result vector widening for VECTOR_DEINTERLEAVE (#203105)
I accidentally found that we haven't implemented result vector widening
for `ISD::VECTOR_DEINTERLEAVE`. This patch implements such type
legalization.
---------
Co-authored-by: Simon Pilgrim <git at redking.me.uk>
Co-authored-by: Craig Topper <craig.topper at sifive.com>
Commit: 738fecbc68e2e3ca04efd26db648eff57f2456ff
https://github.com/llvm/llvm-project/commit/738fecbc68e2e3ca04efd26db648eff57f2456ff
Author: Kunal Pathak <kunalspathak.github at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
A llvm/test/tools/llvm-profgen/aarch64-disassemble-all-features.test
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
Log Message:
-----------
[llvm-profgen] Enable all AArch64 instructions for disassembly (#204619)
llvm-profgen builds its MCSubtargetInfo from
`ObjectFile::getFeatures()`. For AArch64 ELF objects this often produces
an empty feature set, so the disassembler falls back to the baseline
Armv8.0-A ISA and rejects valid feature-gated instructions such as LSE
atomics and RCPC loads.
`llvm-objdump` already handles this by [adding +all for AArch64
disassembly](https://github.com/llvm/llvm-project/blob/1e2d1bbc12f6a5f5931c77d39894ee1b8679f5f8/llvm/tools/llvm-objdump/llvm-objdump.cpp#L2823-L2824)
when neither -mattr nor -mcpu is specified. Match that behavior in
`llvm-profgen` so valid AArch64 instructions are not reported as invalid
and their addresses are preserved in profgen's code and branch maps.
Add a regression test covering an AArch64 binary containing `ldaddal`
and `ldapr` without object-level feature metadata.
---------
Co-authored-by: Kunal Pathak <kupathak at fb.com>
Commit: 56434aaf66507e567317655a05dd7da918f90d81
https://github.com/llvm/llvm-project/commit/56434aaf66507e567317655a05dd7da918f90d81
Author: Scott Linder <scott.linder at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/CMakeLists.txt
Log Message:
-----------
Bump minimum required sphinx Python to 3.8 (#203963)
There seems to be de-facto use of at least 3.6 in docs, namely:
* Use of pathlib (3.4) in various places
* Format f-strings (3.6) and used in clang/docs/ghlinks.py
I don't see a strong reason to maintain the divide in minimum version
between test/docs, especially considering the "FIXME" indicating
the 3.0 lower bound was just a guess to begin with.
Change-Id: I11e00295ae0a13ec0f1c5cefbb2fdd2db272b152
Commit: bf3652b1e7eb0633c13afcc23bbc238f5e7f9ec8
https://github.com/llvm/llvm-project/commit/bf3652b1e7eb0633c13afcc23bbc238f5e7f9ec8
Author: Iñaki Amatria Barral <140811900+inaki-amatria at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
A llvm/test/tools/llvm-cov/show-colors-uninit.test
M llvm/tools/llvm-cov/CodeCoverage.cpp
Log Message:
-----------
[llvm-cov] Init `ViewOpts.Colors` before `error()` (#205001)
The `commandLineParser` lambda calls `error()` at several points before
`ViewOpts.Colors` is set. `error()` uses `ViewOpts.colored_ostream()`
which reads `Colors`, triggering undefined behavior (load of
uninitialized `bool`).
Fix by moving the `Colors` initialization block to just after
`ParseCommandLineOptions`, before any `error()` call in the lambda. This
ensures error messages are always rendered with properly initialized
color settings.
Commit: a60ad3e35514a733f19e6f2ac6bb7fe558c04441
https://github.com/llvm/llvm-project/commit/a60ad3e35514a733f19e6f2ac6bb7fe558c04441
Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[Bazel] Fixes 46995fb (#205155)
This fixes 46995fb32b999c6332fbd1bdfb84d79cad47195f.
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
Commit: 55d7f777d958a64ed5ef31be269c3005ddd6c7a6
https://github.com/llvm/llvm-project/commit/55d7f777d958a64ed5ef31be269c3005ddd6c7a6
Author: Larry Meadows <Lawrence.Meadows at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M compiler-rt/lib/profile/CMakeLists.txt
M compiler-rt/lib/profile/InstrProfilingPlatformROCm.cpp
A compiler-rt/lib/profile/InstrProfilingPlatformROCmHSA.cpp
A compiler-rt/lib/profile/InstrProfilingPlatformROCmHSADefs.h
A compiler-rt/lib/profile/InstrProfilingPlatformROCmInternal.h
A compiler-rt/test/profile/AMDGPU/device-basic.hip
A compiler-rt/test/profile/AMDGPU/device-early-collect.hip
A compiler-rt/test/profile/AMDGPU/device-no-kernel.hip
A compiler-rt/test/profile/AMDGPU/device-symbols.hip
A compiler-rt/test/profile/AMDGPU/lit.local.cfg.py
A compiler-rt/test/profile/GPU/instrprof-hip-basic.hip
A compiler-rt/test/profile/GPU/instrprof-hip-collect-after.hip
A compiler-rt/test/profile/GPU/instrprof-hip-counter-correctness.hip
A compiler-rt/test/profile/GPU/instrprof-hip-coverage.hip
A compiler-rt/test/profile/GPU/instrprof-hip-device-branching.hip
A compiler-rt/test/profile/GPU/instrprof-hip-fork-safety.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multi-gpu.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multi-process-merge.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multiple-kernels.hip
A compiler-rt/test/profile/GPU/instrprof-hip-nondefault-device.hip
A compiler-rt/test/profile/GPU/instrprof-hip-pgo-use.hip
A compiler-rt/test/profile/GPU/lit.local.cfg.py
A compiler-rt/test/profile/instrprof-rocm-bounds-dedup.cpp
A compiler-rt/test/profile/instrprof-rocm-grow-array.cpp
M compiler-rt/test/profile/lit.cfg.py
M utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
Log Message:
-----------
[PGO][HIP] HSA-introspection device profile drain + GPU PGO tests (#203056)
## Summary
Follow-up to #202095 (now landed). #202095's host-shadow device-profile
drain can
only collect device counters for kernels that registered a host-side
shadow via
`__hipRegisterVar`. Device-linked programs (e.g. RCCL), whose
instrumented code
objects are linked directly into the device image with no host shadow,
are never
drained.
This adds a **supplemental, Linux-only HSA-introspection drain** that
runs after
the host-shadow drain: it walks each GPU agent, enumerates only the code
objects
actually resident there, reads each one's `__llvm_profile_sections`
table on the
device, and routes them through the existing `processDeviceOffloadPrf()`
path so
the emitted `.profraw` layout is identical. A content-dedup set keyed on
the
`(data, counters, names)` device-pointer triple ensures a section
already drained
by the host-shadow pass is not drained twice, so the two passes compose
without
double-counting.
It is purely additive — it does not modify #202095's host-shadow drain
or its
launch-tracking. Highlights:
- `compiler-rt/lib/profile/InstrProfilingPlatformROCmHSA.cpp`: HSA
agent/segment/
symbol walk + dedup; record drained bounds after each host-shadow drain;
lazy
HSA init (no library constructor, for fork-safety).
- Because the HSA walk only touches resident code objects, it lets us
avoid the
host-shadow drain's collect-all fallback on Linux. When **no** kernel
launch was
tracked (program never launches, collects before its first launch, or
launches
only via an untracked API), the host-shadow pass is skipped and the HSA
drain
covers it safely — instead of faulting/hanging reading a non-resident
device on
a multi-GPU host. This also closes the silent-data-loss gap for
untracked launch
APIs (`hipExtLaunchKernel`, cooperative/graph launches).
- `clang/lib/Driver/ToolChains/Clang.cpp` / `HIPAMD.cpp`: link the
device profile
runtime on both the new-offload-driver (`LinkerWrapper::ConstructJob`)
and
traditional (`lld`) link paths, guarded by `needsProfileRT` + VFS
existence.
- New GPU/AMDGPU HIP device-PGO lit tests, gated by `hip`/`amdgpu`
features
(auto-detected from the toolchain + a visible GPU) so they report
UNSUPPORTED
rather than fail when no GPU is present. Plus GPU-free host unit tests
for the
device-profile host helpers that run everywhere, including upstream CI.
## Test plan
- 4x gfx90a (`gfx90a:sramecc+:xnack-`), ROCm 7.1.
- GPU device tests run through standard lit:
`llvm-lit -sv <build>/.../compiler-rt/test/profile/Profile-x86_64` over
the
`GPU/` and `AMDGPU/` subdirectories. The profile `lit.cfg.py`
auto-detects a
visible GPU (`amdgpu-arch`) and the HIP runtime (`libamdhip64`) and
exposes the
`hip`/`amdgpu`/`multi-device` features and the `%amdgpu_arch` /
`%hip_lib_path`
substitutions; both are overridable via `--param amdgpu_arch=… /
hip_lib_path=…`.
- **15 device tests passed, 0 failed.** Covers: basic/coverage/pgo-use,
multiple-kernels, device-branching, multi-gpu and non-default-device
drain,
early-collect / no-kernel edges, RDC vs non-RDC
`__llvm_profile_sections`,
dedup (host-shadow drains the used device, HSA finds it and dedups), and
fork-safety (the RCCL parent-no-HIP / kernel-in-forked-child pattern).
- On a host without a GPU + ROCm/HIP (e.g. upstream CI) those device
tests report
UNSUPPORTED instead of failing, and the GPU subdirectories serialize via
a
size-1 `gpu` lit parallelism group when they do run.
- GPU-free host unit tests run anywhere the profile suite runs
(including upstream
CI): `instrprof-rocm-grow-array.cpp` (the dynamic-array helper) and
`instrprof-rocm-bounds-dedup.cpp` (the `(data, counters, names)` dedup
table
that backs the "drain each counter set once" guarantee).
- Build is warning-clean and `clang-format` clean.
---------
Co-authored-by: Cursor <cursoragent at cursor.com>
Commit: 42d6d5b44d6170cceeacd2ae1b83335f72f0fcba
https://github.com/llvm/llvm-project/commit/42d6d5b44d6170cceeacd2ae1b83335f72f0fcba
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
M llvm/test/CodeGen/AMDGPU/elf-notes.ll
M llvm/test/CodeGen/AMDGPU/gfx902-without-xnack.ll
M llvm/test/CodeGen/AMDGPU/hsa-default-device.ll
M llvm/test/CodeGen/AMDGPU/hsa-func.ll
M llvm/test/CodeGen/AMDGPU/hsa-note-no-func.ll
M llvm/test/CodeGen/AMDGPU/hsa.ll
M llvm/test/CodeGen/AMDGPU/target-id-xnack-always-on.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-any.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-not-supported.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-off.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-all-on.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-off-1.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-off-2.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-on-1.ll
M llvm/test/CodeGen/AMDGPU/tid-mul-func-xnack-any-on-2.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-any.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-not-supported.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-off.ll
M llvm/test/CodeGen/AMDGPU/tid-one-func-xnack-on.ll
A llvm/test/MC/AMDGPU/amd-amdgpu-isa-malformed-target-id.s
A llvm/test/MC/AMDGPU/amdgcn-target-directive-triple-env.s
A llvm/test/MC/AMDGPU/amdgcn-target-malformed-target-id.s
M llvm/test/MC/AMDGPU/buffer-op-swz-operand.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-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-hsa.s
M llvm/test/MC/AMDGPU/isa-version-pal.s
M llvm/test/MC/AMDGPU/isa-version-unk.s
M llvm/test/MC/AMDGPU/user-sgpr-count.s
Log Message:
-----------
AMDGPU: Refactor AMDGPUTargetID to not store MCSubtargetInfo (#204315)
Store the triple string and GPUKind instead. The dependence
on checking AMDHSA seems like an anti-feature, but maintain the
behavior of not printing the modifiers for other OSes. Start
parsing the target ID instead of performing a direct string
comparison. Also improve test coverage for the treatment of the
environment component of the triple. The main behavioral change
is this will now produce normalized triples in the output and
diagnostics. Practially, this means all of the places that
currently emit "--" will be expanded into "-unknown-".
Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
Commit: 9b1b03ef26a936efc51b11c1955ff270e80d87e9
https://github.com/llvm/llvm-project/commit/9b1b03ef26a936efc51b11c1955ff270e80d87e9
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/AMDGPU/maximumnum.ll
M llvm/test/Analysis/CostModel/AMDGPU/minimumnum.ll
Log Message:
-----------
[AMDGPU] Update packed FP32 intrinsic cost model (#205145)
Intrinsics will not have packed vector benefit if they don't have
the corresponding packed instructions.
Commit: 81638b092dd0c0a0c299081a6accd2f59e3f6a7c
https://github.com/llvm/llvm-project/commit/81638b092dd0c0a0c299081a6accd2f59e3f6a7c
Author: Changpeng Fang <changpeng.fang at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP1Instructions.td
M llvm/test/MC/AMDGPU/gfx1250_asm_vop1_err.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_from_vop1-fake16.s
M llvm/test/MC/AMDGPU/gfx1250_asm_vop3_from_vop1.s
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3_from_vop1.txt
Log Message:
-----------
[AMDGPU] Add MC omod support for bf16 trans instructions (#205144)
Based on recent gfx1250 sp3 update. Refer to DEGFXSP3-664
Commit: cd89a8675cfef4e1efca258a89fae9ae903e3e3c
https://github.com/llvm/llvm-project/commit/cd89a8675cfef4e1efca258a89fae9ae903e3e3c
Author: Henry Jiang <henry_jiang2 at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
A llvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest-pseudoprobe.ll
A llvm/test/Transforms/SimplifyCFG/hoist-common-skip-pseudoprobe.ll
Log Message:
-----------
[SimplifyCFG] Allow hoisting in the presence of pseudoprobes (#199753)
Fix regressions in the presence of pseudoprobes that prevents
SimplifyCFG from hoisting instructions into the predecessor. Teach
`hoistCommonCodeFromSuccessors` and `foldBranchToCommonDest` to ignore
pseudo probes and drop them when the BB is eliminated.
The minor loss of profile quality for these cases are justified, as not
performing these hoists degrades performance more and blocks downstream
passes like loop-vectorize (can be upto 30% in 526.blender_r and
525.x264_r).
Commit: dc520fcd90527d196a676795d20539440de9442b
https://github.com/llvm/llvm-project/commit/dc520fcd90527d196a676795d20539440de9442b
Author: Ingo Müller <ingomueller at google.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/test/API/functionalities/rerun_and_expr_dylib/TestRerunAndExprDylib.py
Log Message:
-----------
[lldb][tests] Fix FS timing issue in `TestRerunAndExprDylib`. (#205116)
This PR fixes a timing issue that made `TestRerunAndExprDylib` fail with
a small probability. The test rebuilds a library; however, the build and
the re-build may fall into the same timestamp if the underlying
filesystem only has second granularity such that LLDB doesn't reload the
rebuilt library for the second execution.
The fix consists in artifically aging the library file from the first
build, i.e., setting its timestamp 10 seconds into the past. This not
only guarantees that LLDB reloads the file but also also that it is
rebuilt, so the explicit removing is now unnecessary and removed.
This issue exists for at least six months, possible since the tests
exists; I was not able to test older versions. However, we have recently
seen frequent failures, probably due to some change in our underlying
testing infrastructure.
Signed-off-by: Ingo Müller <ingomueller at google.com>
Commit: e6199d8f36263f018b47ba8fd1fd2f77e477b0ac
https://github.com/llvm/llvm-project/commit/e6199d8f36263f018b47ba8fd1fd2f77e477b0ac
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
Log Message:
-----------
AMDGPU: Temporarily restore disassembler's dependency on TargetParser (#205175)
Reverts part of #204315
Commit: c046d4b47cd5c8c75efa8b93d0c1fbfff54c2559
https://github.com/llvm/llvm-project/commit/c046d4b47cd5c8c75efa8b93d0c1fbfff54c2559
Author: Walter Lee <49250218+googlewalt at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
[GitHub] Add googlewalt to Bazel codeowners (#205174)
Commit: 63692a910c10abb0a6ae67f99da7ffc8a1f3f964
https://github.com/llvm/llvm-project/commit/63692a910c10abb0a6ae67f99da7ffc8a1f3f964
Author: newgre <jannewger at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/ProfileData/MemProf.h
M llvm/lib/ProfileData/MemProfReader.cpp
Log Message:
-----------
[ProfileData] Avoid unnecessary copies. (#204875)
Make `Frame` moveable and avoid some unnecessary copies in `RawMemProfReader`. Unnecessary copies fixed in this PR were found by the CSan prototype described in the RFC [1] CopySanitizer (CSan): Detecting unneccessary object copies at runtime.
[1] https://discourse.llvm.org/t/rfc-copysanitizer-csan-detecting-unneccessary-object-copies-at-runtime/91038
Co-authored-by: Jan Newger <jannewger at google.com>
Commit: 223bdef73f761f22353744eeea46663ed0941926
https://github.com/llvm/llvm-project/commit/223bdef73f761f22353744eeea46663ed0941926
Author: Mohammed Ashraf <125150223+Holo-xy at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/Parse/Parser.h
M clang/lib/Parse/ParseCXXInlineMethods.cpp
M clang/lib/Parse/ParseDecl.cpp
Log Message:
-----------
[BoundsSafety] unify ParseLexedAttribute (#186033)
Resolves #93263
Commit: a1cfa786c96fee1ce63d034674d7aeb4cc9cc5d9
https://github.com/llvm/llvm-project/commit/a1cfa786c96fee1ce63d034674d7aeb4cc9cc5d9
Author: Greg Clayton <gclayton at fb.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/include/lldb/Core/Section.h
M lldb/source/Core/Section.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
M lldb/source/Plugins/SymbolVendor/PECOFF/SymbolVendorPECOFF.cpp
M lldb/source/Plugins/SymbolVendor/wasm/SymbolVendorWasm.cpp
A lldb/test/Shell/ObjectFile/ELF/build-id-case-debug-only.yaml
Log Message:
-----------
Fix SectionList::ReplaceSection to not replace incorrect section. (#204677)
We use SectionList::ReplaceSection to check for some sections in the
main object file and in separate debug info files. It was relying on
section IDs being consistent between different individual section lists
in different object files which does not work. I fixed this by not using
a section ID when replacing a section, but using the section shared
pointer so there can be no errors.
Commit: 982646f33d1ac7872832c2f3969dc83a762eab5d
https://github.com/llvm/llvm-project/commit/982646f33d1ac7872832c2f3969dc83a762eab5d
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
A llvm/test/Transforms/LoopStrengthReduce/X86/lcssa-preservation-regression.ll
Log Message:
-----------
[LSR] Preserve LCSSA in SCEVRewriter
This is necessery to fix some regressions when switching to the NewPM
and seems to improve optimization quality in some cases due to LSR
currently not understanding loop nests (usage of getSCEV vs
getSCEVScoped). This patch just enables LCSSA
preservation for SCEVRewriter and updates all the relevant tests. There
are some further fixes that are needed to get this fully working that
will be included in follow up patches. This patch also only changes
behavior in the NewPM path to get that unblocked while more work is done
on ensuring LCSSA preservation/requirements do not regress LSR.
Similar to #185373 (although without follow up fixes and a regression
test).
Regression test added for the specific NewPM case noticed is in
Transforms/LoopStrengthReduce/X86/lcssa-preservation-regression.ll
(does not reproduce without the target triple).
Reviewers: arsenm, Meinersbur, fhahn, nikic, vikramRH
Pull Request: https://github.com/llvm/llvm-project/pull/191665
Commit: 5b0cb22661a9a256fee7af77a79960d435ce8582
https://github.com/llvm/llvm-project/commit/5b0cb22661a9a256fee7af77a79960d435ce8582
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/test/Transforms/LoopStrengthReduce/X86/lcssa-preservation-regression.ll
M llvm/test/Transforms/LoopStrengthReduce/preserve-lcssa.ll
Log Message:
-----------
[LSR] Preserve LCSSA in critical edge splitting
This was another case where LSR failed to preserve LCSSA, which will
trigger an assertion under the NewPM. This is currently only enabled
under the NewPM to avoid pessimizing any optimizations while unblocking
work on the NewPM.
Reviewers: fhahn, vikramRH, nikic, arsenm
Pull Request: https://github.com/llvm/llvm-project/pull/192371
Commit: 871990a01ea72cb2090e73e52b0e66605a770f34
https://github.com/llvm/llvm-project/commit/871990a01ea72cb2090e73e52b0e66605a770f34
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/test/Analysis/LoopAccessAnalysis/retry-runtime-checks-after-dependence-analysis.ll
Log Message:
-----------
[LAA] Collect no-wrap predicates separately in getPtrStride/isNoWrap. (#203787)
Add an overload of getPtrStride and update isNoWrap to collect no-wrap
SCEV predicates in a vector, and have the caller add them to PSE if
needed.
This also requires to explicitly build the wrap predicate via
ScalarEvolution::getWrapPredicate (clearing statically implied flags)
rather than going through PredicatedScalarEvolution::setNoOverflow,
which can now be removed together with the flags map.
This also requires generalizing SCEVUnionPredicate::implies so a wrap
predicate can be recognized as implied by an existing wrap predicate
after applying equal predicates, avoiding redundant predicates when the
collected predicates are committed.
The only functional changes is re-ordering of runtime check groups in a
single test case; no functional IR changes across a large IR corpus (32k
modules)
To be used to avoid adding unnecessary wrap predicates during interleave
group analysis: https://github.com/llvm/llvm-project/pull/200807
PR: https://github.com/llvm/llvm-project/pull/203787
Commit: 3f0ef1efb26206c3f5d5621d86d740c7f466c67b
https://github.com/llvm/llvm-project/commit/3f0ef1efb26206c3f5d5621d86d740c7f466c67b
Author: Thurston Dang <thurston at google.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/assume-loop-align.ll
M llvm/test/Transforms/InstCombine/assume.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
Log Message:
-----------
Revert "[InstCombine] Merge consecutive assumes" (#205177)
Reverts llvm/llvm-project#204983 due to buildbot breakage (see
discussion in
https://github.com/llvm/llvm-project/pull/204983#issuecomment-4771424564)
Commit: fe4ea7b81cad9c76d304370b3b4395df43cba9ec
https://github.com/llvm/llvm-project/commit/fe4ea7b81cad9c76d304370b3b4395df43cba9ec
Author: adams381 <adams at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/test/CIR/CodeGen/no-unique-address.cpp
Log Message:
-----------
[CIR] Compute union base subobject for tail-padding reuse (#201428)
A [[no_unique_address]] field whose type is a union with reusable tail
padding made CIRGen trip the insertPadding "offset >= size" assertion in
CIRGenRecordLayoutBuilder. CIR sized the union member at its full size, so a
following field that the ABI places in the union's tail padding overlapped the
union and insertPadding asserted.
CIR already computed a distinct, smaller base subobject type for structs and
classes whose tail padding can be reused, but not for unions. A union has
reusable tail padding when one of its members is itself a [[no_unique_address]]
field with tail padding, which makes the union's data size smaller than its
size.
computeRecordLayout now builds that base type for unions too, sized from
getDataSize(), and lowerUnion emits the storage type plus trailing padding as
ordinary struct fields so the reusable padding is exposed, mirroring classic
CodeGen. The base-type gate also no longer skips records marked final, which
classic CodeGen never skipped and which otherwise hit the same assertion for a
final union with reusable tail padding.
This unblocks libcxx's std::expected tests, which lean on [[no_unique_address]]
over unions.
Commit: 7ce49b34caa760403784fe2d541bf9feca4743a2
https://github.com/llvm/llvm-project/commit/7ce49b34caa760403784fe2d541bf9feca4743a2
Author: David Zbarsky <dzbarsky at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M utils/bazel/llvm-project-overlay/bolt/BUILD.bazel
Log Message:
-----------
[BOLT][Bazel] Configure Rewrite target backends (#205179)
`RewriteInstance.cpp` only creates target-specific `MCPlusBuilder`
instances when `X86_AVAILABLE` or `AARCH64_AVAILABLE` is defined. The
Bazel `Rewrite` target defines neither macro and hard-codes `TargetX86`,
so `createMCPlusBuilder()` returns null for both target backends defined
by the Bazel overlay. Derive the definitions and dependencies from the
generated `bolt_targets` list, restricted to the `TargetAArch64` and
`TargetX86` rules defined in this BUILD file, and use the same target
dependencies for `llvm-bolt`.
Validation: `buildifier -mode=check -lint=warn
utils/bazel/llvm-project-overlay/bolt/BUILD.bazel`; an equivalent
overlay change built and executed BOLT for Linux x86_64 and Linux
AArch64 in [hermetic-llvm's remote `//prebuilt/llvm:all`
build](https://app.buildbuddy.io/invocation/7943a005-c159-4cb9-af0e-00ffbaa40bb5).
AI tool disclosure: Co-authored with OpenAI Codex.
Commit: faaec33ab9eadf3433ffe720d19028464f2c265d
https://github.com/llvm/llvm-project/commit/faaec33ab9eadf3433ffe720d19028464f2c265d
Author: Harald van Dijk <hdijk at accesssoftek.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/AST/RecursiveASTVisitor.h
A clang/test/AST/pr198903.cpp
A clang/test/Analysis/pr169302.cpp
Log Message:
-----------
[Clang][RAV] Simplify TraverseTemplateArgumentLocsHelper (#199131)
We were checking the result of getTemplateArgsAsWritten() to skip over
implicit instantiations, with an assert to ensure that it has the
desired effect, before checking getTemplateSpecializationKind() ==
TSK_ExplicitSpecialization which would skip over implicit instantiations
anyway. As the included tests show, the invariant that we were relying
on did not hold, but we no longer have any need to rely on that, we can
now just check the result of getTemplateSpecializationKind() directly.
Fixes: #198903
Fixes: #169302
Commit: 162d84f0955b8e10fd6d84ba7443c2eb596582ef
https://github.com/llvm/llvm-project/commit/162d84f0955b8e10fd6d84ba7443c2eb596582ef
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
A llvm/test/Transforms/LoopVectorize/X86/predicated-replicate-feeding-cast.ll
Log Message:
-----------
[VPlan] Handle single-scalar casts in replicateByVF. (#205181)
Fixes a crash after https://github.com/llvm/llvm-project/pull/203057.
Commit: e67b31a00e72ebb1b3a782c6bfcad9b51f173521
https://github.com/llvm/llvm-project/commit/e67b31a00e72ebb1b3a782c6bfcad9b51f173521
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M libunwind/src/UnwindRegistersSave.S
Log Message:
-----------
[libunwind] Fix an uninitialized read of __ra_sign_state (#205152)
The Arm DWARF spec defines UNW_AARCH64_RA_SIGN_STATE as being zeroed
until the first .cfi_negate_ra_state / .cfi_set_ra_state [1]. The GPRs
struct containing __ra_sign_state is memcpy'd directly from the
unw_context_t, which in turn is initialized by __unw_getcontext. Since
it is a pseudo register, there is no corresponding state to restore in
__unw_resume.
https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst#44call-frame-instructions
Commit: 8f249a7bd3bca35a5114aab85b5ce58ba4ca6461
https://github.com/llvm/llvm-project/commit/8f249a7bd3bca35a5114aab85b5ce58ba4ca6461
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/include/lldb/Utility/FileSpec.h
M lldb/source/Core/ModuleList.cpp
M lldb/source/Core/PluginManager.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Target/Platform.cpp
M lldb/source/Utility/FileSpec.cpp
Log Message:
-----------
[lldb][NFC] FileSpec::GetFileNameStrippingExtension should return a StringRef (#205178)
No need to create a ConstString of a filename without its file
extension.
Commit: 60b48545638f63669fde6c832e0689f78310f6ec
https://github.com/llvm/llvm-project/commit/60b48545638f63669fde6c832e0689f78310f6ec
Author: Ziqing Luo <ziqing_luo at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/SSAFAnalysesCommon.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/FindDecl.h
Log Message:
-----------
[SSAF] Let UnsafeBufferUsageExtractor & PointerFlowExtractor ignore templates (#198927)
Templates are ignored for two reasons:
- Template instantiations are still handled. Template facts can be
inferred from their instantiations.
- Templates are inherently difficult to reason about. Their ASTs can
contain dependent expression types (such as ParenListExpr) that
complicate analysis.
Commit: 1f3d8cba700c2340bb223770932ebc054ce0b767
https://github.com/llvm/llvm-project/commit/1f3d8cba700c2340bb223770932ebc054ce0b767
Author: YongKang Zhu <yongzhu at fb.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Utils/CommandLineOpts.h
M bolt/lib/Core/BinaryEmitter.cpp
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Passes/Aligner.cpp
M bolt/lib/Passes/LongJmp.cpp
M bolt/lib/Rewrite/MachORewriteInstance.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/lib/Utils/CommandLineOpts.cpp
Log Message:
-----------
[BOLT] Route alignment options through BinaryContext (NFC) (#204902)
Consolidate all alignment-related `cl::opt` definitions into
`CommandLineOpts.cpp`, expose matching public members on `BinaryContext`,
and populate them from `RewriteInstance::adjustCommandLineOptions` (and
mirrored in `MachORewriteInstance`). Switch all readers in Aligner,
BinaryEmitter, LongJmp, BinaryFunction and the use-old-text logs to
`BC.*` instead of `opts::*`.
Commit: bb8f468d260f3c063b9cf23f387ec4b27bc1b146
https://github.com/llvm/llvm-project/commit/bb8f468d260f3c063b9cf23f387ec4b27bc1b146
Author: David Green <david.green at arm.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-and.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-or.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-xor.mir
Log Message:
-----------
[AArch64][GlobalISel] Update some scalar types to integer in tests. NFC (#205190)
Commit: 33e8502336c76591172fbae37209d31c1e90c7c6
https://github.com/llvm/llvm-project/commit/33e8502336c76591172fbae37209d31c1e90c7c6
Author: Bhavesh M <85327930+beamandala at users.noreply.github.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M mlir/include/mlir/Dialect/EmitC/Transforms/Passes.td
M mlir/include/mlir/Dialect/EmitC/Transforms/Transforms.h
M mlir/lib/Dialect/EmitC/Transforms/WrapFuncInClass.cpp
M mlir/test/Dialect/EmitC/wrap-func-in-class.mlir
Log Message:
-----------
[mlir][EmitC] Make `GlobalOps` `FieldOps` in wrap-emitc-func-in-class pass (#203641)
Update the `WrapFuncInClassPass` pass so that `GlobalOp`s are moved into
the `ClassOp` as `FieldOps`. This respects MLIR's behavior of resolving
references to the closest parent operation that defines a symbol table
which is the `ClassOp` that we are creating in this pass.
Without this change, references to a `GlobalOp` in `GetGlobalOp` are
failing to resolve.
Details:
- Identify `GlobalOp`s
- Create a `FieldOp` within the `ClassOp` for each `GlobalOp`
- Delete the `GlobalOp`s after all functions have been wrapped in a
class. Doing this after every function can cause an error when multiple
functions refer to the same `GlobalOp`(s) which would be deleted after
the first function is wrapped in a class.
Also renamed `fName` parameter in `populateWrapFuncInClass` to
`funcName` to match naming in `WrapFuncInClass`.
Based on PR #153452. Key differences:
- No size is set for the `globalsToMove` `SmallVector` type because I'm
not sure if the number of global variables is consistent across
different models.
- `GlobalOp`s are deleted after all functions have been processed.
- Instead of directly cloning the `GlobalOp`, an equivalent `FieldOp` is
created
- `GetGlobalOp`s are translated to `GetFieldOp`s
Co-authored-by: [Jaddyen](https://github.com/Jaddyen)
Commit: ef752a0780be31ac94be5f459ff60629136f4087
https://github.com/llvm/llvm-project/commit/ef752a0780be31ac94be5f459ff60629136f4087
Author: Daniel Hill <daniel.hill at mongodb.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/test/eh-frame-hdr.test
Log Message:
-----------
[BOLT] Emit .eh_frame_hdr before .eh_frame to prevent table scans from libdw (#201917)
resolves https://github.com/llvm/llvm-project/issues/201701 by moving
the `.eh_frame_hdr` section-header entry before `.eh_frame` before
assigning final section indices.
This lets BOLT binaries work with existing [libdw library logic
expecting the index before the
table](https://github.com/sourceware-org/elfutils/blob/67199e1c974db37f2bd200dcca7d7103f42ed06e/libdw/dwarf_getcfi_elf.c#L301),
preventing linear `.eh_frame` scanning.
Commit: 7781a0c196acda252a1db67936b76e96e9971f4c
https://github.com/llvm/llvm-project/commit/7781a0c196acda252a1db67936b76e96e9971f4c
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/include/flang/Evaluate/tools.h
M flang/lib/Evaluate/tools.cpp
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
Log Message:
-----------
[flang][cuda] Do not emit data transfer for constant read on the rhs (#205185)
Commit: c97eb542a7c3202957da66758568230289b70697
https://github.com/llvm/llvm-project/commit/c97eb542a7c3202957da66758568230289b70697
Author: Eugene Epshteyn <eepshteyn at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/check-call.cpp
M flang/lib/Semantics/check-call.h
M flang/lib/Semantics/expression.cpp
M flang/test/Semantics/call47.f90
Log Message:
-----------
[flang][Semantics] Do not require explicit interface checks for statement functions (#205023)
https://github.com/llvm/llvm-project/pull/198610 caused a regression,
where the
code path for explicit interface checks was also used for the statement
functions arg check. Refactor the code to avoid explicit interface
checks.
Fixes #203500
Assisted-by: AI
Commit: 211ca98dd0a58600461f4d33ca5bf2a626558487
https://github.com/llvm/llvm-project/commit/211ca98dd0a58600461f4d33ca5bf2a626558487
Author: adams381 <adams at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
M clang/test/CIR/CodeGen/nonzeroinit-struct.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member.cpp
M clang/test/CIR/IR/invalid-data-member.cir
Log Message:
-----------
[CIR] DataMemberAttr: replace flat index with GEP-style path (#200854)
`DataMemberAttr` stored a single field index relative to the immediately containing class, which broke when the member is inherited: `int Derived::*p = &Derived::x` with `x` in Base produced a spurious `errorNYI` because Derived's CIR record doesn't directly hold `x`.
The attribute now stores a GEP-style `member_path` — a sequence of CIR field indices stepping from the pointer's class type down to the member, one level per inheritance hop. `lowerDataMemberConstant` walks the path accumulating element offsets to produce the Itanium ABI byte value.
`buildMemberPath` searches the `destClass` record tree for the target field (`findFieldMemberPath`). `CK_BaseToDerivedMemberPointer` and `CK_DerivedToBaseMemberPointer` return `{}` in ConstExprEmitter, delegating to the APValue path which builds the correct path via `buildMemberPath`. Virtual bases are not yet handled.
`CK_ReinterpretMemberPointer` remains `errorNYI` on this branch; a follow-up PR will add that separately.
Commit: 201cf31b84acbc80bf4a6d09197bc7e9df9bb4a5
https://github.com/llvm/llvm-project/commit/201cf31b84acbc80bf4a6d09197bc7e9df9bb4a5
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/include/flang/Optimizer/Analysis/AliasAnalysis.h
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
M flang/test/Analysis/AliasAnalysis/alias-analysis-host-assoc.fir
M flang/test/Analysis/AliasAnalysis/alias-analysis-scoped-origins.fir
Log Message:
-----------
[flang] Reduce FIR AA overhead for functions with one scope. (#204009)
Avoid overheads of collectScopedOrigins and
getDeclarationScope/DominanceInfo
when the values passed to FIR AA belong to a function with a single
dummy scope.
Commit: fa016f67531e2274f7a7e38d11461ef5efcc5827
https://github.com/llvm/llvm-project/commit/fa016f67531e2274f7a7e38d11461ef5efcc5827
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/test/tools/llvm-cas/validation.test
Log Message:
-----------
[llvm-cas] Fix validation test on Ubuntu / uutils v0.2.2, NFC (#205199)
Work around uutils/coreutils#9128 by implementing the 40 byte truncation
in Python. Otherwise, this test fails out of the box on Ubuntu 25.10.
GNU coreutils supports -s=arg, but Mac truncate does not. Resorting to
Python seemed like the cleanest solution. The next best idea was to use
subshells or other techniques to calculate the file size and subtract
40, but that seemed excessive.
Commit: 5ad66bdcaff8bbcce63bb9aef317600ae253cfbf
https://github.com/llvm/llvm-project/commit/5ad66bdcaff8bbcce63bb9aef317600ae253cfbf
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/docs/ProjectGovernance.rst
Log Message:
-----------
[docs] Minor edits to project governace docs (#203149)
s/non-private/public/
Pencil in the 2027 calendar year election dates, so they are posted well
in advance and we have a link anchor we can share.
Commit: cd3bfc1f992612aff5df2c5d6c73d1c08a185880
https://github.com/llvm/llvm-project/commit/cd3bfc1f992612aff5df2c5d6c73d1c08a185880
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
M llvm/test/Transforms/LoopStrengthReduce/X86/lcssa-preservation-regression.ll
Log Message:
-----------
[SCEV] Preserve LCSSA when reusing dominating variable
This seems to just be a missing case in SCEV. This came up when looking
at making LSR preserve LCSSA for the NewPM. Regression test of that
nature has been added.
Reviewers: fhahn, nikic, arsenm
Pull Request: https://github.com/llvm/llvm-project/pull/192831
Commit: 64d386e642e5ee3f31a4d0ef45454bef10b4ea90
https://github.com/llvm/llvm-project/commit/64d386e642e5ee3f31a4d0ef45454bef10b4ea90
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/README.txt
A llvm/docs/CMake.md
R llvm/docs/CMake.rst
A llvm/docs/CodeGenerator.md
R llvm/docs/CodeGenerator.rst
A llvm/docs/CodingStandards.md
R llvm/docs/CodingStandards.rst
A llvm/docs/CommandGuide/index.md
R llvm/docs/CommandGuide/index.rst
A llvm/docs/Contributing.md
R llvm/docs/Contributing.rst
A llvm/docs/DeveloperPolicy.md
R llvm/docs/DeveloperPolicy.rst
A llvm/docs/GettingInvolved.md
R llvm/docs/GettingInvolved.rst
A llvm/docs/GettingStarted.md
R llvm/docs/GettingStarted.rst
A llvm/docs/GettingStartedTutorials.md
R llvm/docs/GettingStartedTutorials.rst
A llvm/docs/GitHub.md
R llvm/docs/GitHub.rst
M llvm/docs/GitRepositoryPolicy.md
M llvm/docs/InstrRefDebugInfo.md
A llvm/docs/Passes.md
R llvm/docs/Passes.rst
A llvm/docs/ProgrammersManual.md
R llvm/docs/ProgrammersManual.rst
A llvm/docs/RFCProcess.md
R llvm/docs/RFCProcess.rst
A llvm/docs/Reference.md
R llvm/docs/Reference.rst
M llvm/docs/RemoveDIsDebugInfo.md
A llvm/docs/SourceLevelDebugging.md
R llvm/docs/SourceLevelDebugging.rst
M llvm/docs/SphinxQuickstartTemplate.md
A llvm/docs/TableGen/index.md
R llvm/docs/TableGen/index.rst
A llvm/docs/TestingGuide.md
R llvm/docs/TestingGuide.rst
A llvm/docs/UserGuides.md
R llvm/docs/UserGuides.rst
A llvm/docs/WritingAnLLVMBackend.md
R llvm/docs/WritingAnLLVMBackend.rst
A llvm/docs/WritingAnLLVMNewPMPass.md
R llvm/docs/WritingAnLLVMNewPMPass.rst
A llvm/docs/WritingAnLLVMPass.md
R llvm/docs/WritingAnLLVMPass.rst
M llvm/docs/conf.py
A llvm/docs/index.md
R llvm/docs/index.rst
M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
M llvm/lib/IR/DebugInfo.cpp
M llvm/tools/reduce-chunk-list/reduce-chunk-list.cpp
M llvm/utils/lit/tests/Inputs/shtest-define/examples/param-subst.txt
Log Message:
-----------
[docs] Rename 22 popular LLVM docs .rst -> .md (#201243)
Tracking issue: #201242
RFC: https://discourse.llvm.org/t/rfc-make-myst-markdown-the-llvm-docs-format-rip-rest/90840
Migration guide: https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
Update filename references, but leave the docs with reST syntax to
ensure rename detection works.
This intentionally breaks the documentation build, but I will immediately follow up by merging the PR that fixes it.
Commit: 3e414a36cd82651e9d904e21ab444d3ca265d254
https://github.com/llvm/llvm-project/commit/3e414a36cd82651e9d904e21ab444d3ca265d254
Author: Reid Kleckner <rkleckner at nvidia.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/docs/CMake.md
M llvm/docs/CodeGenerator.md
M llvm/docs/CodingStandards.md
M llvm/docs/CommandGuide/index.md
M llvm/docs/Contributing.md
M llvm/docs/DeveloperPolicy.md
M llvm/docs/GettingInvolved.md
M llvm/docs/GettingStarted.md
M llvm/docs/GettingStartedTutorials.md
M llvm/docs/GitHub.md
M llvm/docs/Passes.md
M llvm/docs/ProgrammersManual.md
M llvm/docs/RFCProcess.md
M llvm/docs/Reference.md
M llvm/docs/SourceLevelDebugging.md
M llvm/docs/TableGen/index.md
M llvm/docs/TestingGuide.md
M llvm/docs/UserGuides.md
M llvm/docs/WritingAnLLVMBackend.md
M llvm/docs/WritingAnLLVMNewPMPass.md
M llvm/docs/WritingAnLLVMPass.md
M llvm/docs/conf.py
M llvm/docs/index.md
Log Message:
-----------
[docs] Migrate 22 popular LLVM docs to MyST (#201244)
This was done with LLM assistance.
I rebuilt the LLVM docs, opened all 22 docs in a browser and scrolled
through them, and caught and fixed a few errors.
Tracking issue: #201242
Migration guide docs:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines
RFC:
https://discourse.llvm.org/t/rfc-make-myst-markdown-the-llvm-docs-format-rip-rest/90840
Commit: d9a1ed0c32ac6729c45ea6998281a1cd53c44fb6
https://github.com/llvm/llvm-project/commit/d9a1ed0c32ac6729c45ea6998281a1cd53c44fb6
Author: Kevin Sala Penades <salapenades1 at llnl.gov>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M offload/test/CMakeLists.txt
Log Message:
-----------
[offload] Add kernel replay tool to tests' dependencies (#205209)
Commit: 9e80b89e9481a88333c83d1f48a4492cdb8a84aa
https://github.com/llvm/llvm-project/commit/9e80b89e9481a88333c83d1f48a4492cdb8a84aa
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/tools/debugserver/source/RNBRemote.cpp
Log Message:
-----------
[lldb] Use heuristics to extend rather than replace error message (#205196)
When an attach fails, HandlePacket_A tries to explain why. The last two
checks are heuristics that discard any error debugserver already
produced for this specific failure.
The guess can be wrong, for example the PT_DENY_ATTACH test case from
#204688 is incorrectly reported as failing due to it running in a
non-interactive debug session on the bots.
Include debugserver's real error into the heuristic message, instead of
replacing it, so the real reason is never lost.
Commit: e522c116b1e5180ac7a98f992895a296d3b75ef9
https://github.com/llvm/llvm-project/commit/e522c116b1e5180ac7a98f992895a296d3b75ef9
Author: Akshay K <iit.akshay at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
A clang/test/CIR/CodeGen/unary-expr-or-type-trait-32bit.cpp
Log Message:
-----------
[CIR] Use the AST result type for sizeof/alignof constants (#203942)
On targets where `size_t` is narrower than 64 bits (e.g. `i686`), CIR
codegen for `sizeof`/`alignof`/`__builtin_vectorelements` crashes with a
type/value bitwidth mismatch.
The result of these expressions is `size_t`, but the emitted integer
constant was built with a hardcoded 64-bit type. `EvaluateKnownConstInt`
returns an `APSInt` with the width of the AST result type (32 bits on
this target), so it no longer matches the `IntAttr`'s type and trips the
`IntAttr` verifier.
### How to Reproduce
```c++
using size_t = decltype(sizeof(int));
size_t size_of_int() { return sizeof(int); }
clang -cc1 -std=c++20 -triple i686-unknown-linux-gnu -fclangir \
-emit-cir test.cpp -o test.cir
error: type and value bitwidth mismatch: 64 != 32
clang: mlir/include/mlir/IR/StorageUniquerSupport.h:180:
... Assertion `succeeded(ConcreteT::verifyInvariants(...))' failed.
#11 cir::IntAttr::get(mlir::Type, llvm::APInt const&)
#12 ScalarExprEmitter::VisitUnaryExprOrTypeTraitExpr(...)
#13 CIRGenFunction::emitScalarExpr(...)
```
### Fix
Form the IntAttr using the converted AST result type (convertType(e->getType())) instead of a hardcoded 64-bit type, matching classic codegen. The same path covers the fixed-vector __builtin_vectorelements case.
Commit: a7263bea29efd710a1207afe5641fad54692284d
https://github.com/llvm/llvm-project/commit/a7263bea29efd710a1207afe5641fad54692284d
Author: Alex Langford <alangford at apple.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/include/lldb/Breakpoint/Breakpoint.h
M lldb/source/Breakpoint/Breakpoint.cpp
M lldb/source/Commands/CommandObjectBreakpoint.cpp
Log Message:
-----------
[lldb] Remove ConstString from Breakpoint::GetMatchingFileLine (#205210)
Commit: 2d0b2fb0e0d8fa198be51096923675de9a564f83
https://github.com/llvm/llvm-project/commit/2d0b2fb0e0d8fa198be51096923675de9a564f83
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
Log Message:
-----------
Revert "[lldb][Windows] Remember server's primary stop thread on gdb-remote stops" (#205220)
Reverts llvm/llvm-project#203525 because it breaks TestRealDefinition.py
Commit: a6986f0b929d575728d564cd41bb0f9a6b6fdea4
https://github.com/llvm/llvm-project/commit/a6986f0b929d575728d564cd41bb0f9a6b6fdea4
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M flang/lib/Semantics/mod-file.cpp
A flang/test/Semantics/modfile84.f90
Log Message:
-----------
[flang][cuda][openacc] Emit an error when CUDA symbols are imported with CUDA disabled (#205207)
Commit: bc4aadb7bfc2d00487c5965bc4f12a510db181a9
https://github.com/llvm/llvm-project/commit/bc4aadb7bfc2d00487c5965bc4f12a510db181a9
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M lldb/source/Plugins/ScriptInterpreter/Lua/LuaState.cpp
Log Message:
-----------
[lldb] Fix LuaState after #205210 (#205219)
Commit: ff4bc6e5d96f1dabe2f82c289fa97889830fd08e
https://github.com/llvm/llvm-project/commit/ff4bc6e5d96f1dabe2f82c289fa97889830fd08e
Author: superdusty <superdusty at foxmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaExpr.cpp
M clang/test/SemaCXX/ext-int.cpp
Log Message:
-----------
[Clang] Fix crash when comparing fixed point type with BitInt (#199912)
Fixes #196948
Added checks in `handleFixedPointConversion`: reject fixed point/BitInt
comparisons
Now clang properly emits an error instead of crashing.
---------
Co-authored-by: cry <2091136672 at foxmail.com>
Commit: 38df8cbd328efd43326ef18fc26a9a881f76cec1
https://github.com/llvm/llvm-project/commit/38df8cbd328efd43326ef18fc26a9a881f76cec1
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
A lldb/test/API/macosx/deny-attach/Makefile
A lldb/test/API/macosx/deny-attach/TestDenyAttach.py
A lldb/test/API/macosx/deny-attach/main.c
M lldb/tools/debugserver/source/MacOSX/MachProcess.mm
Log Message:
-----------
[lldb] Survive ptrace(PT_DENY_ATTACH) when attaching (#204688) (#205198)
A process can opt out of being debugged with ptrace(PT_DENY_ATTACH). The
XNU kernel enforces this by delivering SIGSEGV to the *attaching*
process while it is still inside the ptrace(PT_ATTACHEXC) syscall. This
means debugserver gets killed before it can inspect the result. LLDB
only sees the dropped connection ("error: attach failed: lost
connection").
The condition can't be detected up front: the target's P_LNOATTACH flag
is not exposed to userspace. To work around this, install a temporary
SIGSEGV handler around the ptrace(PT_ATTACHEXC) call in AttachForDebug
and siglongjmp back out if it fires, turning the fatal signal into an
EPERM that propagates to lldb as a clear message:
```
error: attach failed: cannot attach to process N because it has
disabled debugging via ptrace(PT_DENY_ATTACH)
```
The handler only acts on a SIGSEGV that arrives on the attaching thread
while the guard is armed. Any other SIGSEGV restores the default handler
and re-raises. Genuine, unrelated, crashes still report normally.
rdar://44542907
Assisted-by: Claude
Commit: c7e815b189ea5c0f8261ba13eb677465c992c625
https://github.com/llvm/llvm-project/commit/c7e815b189ea5c0f8261ba13eb677465c992c625
Author: Alexandre Isoard <isoard at amd.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M clang/lib/CodeGen/CGExpr.cpp
A clang/test/CodeGenHLSL/BasicFeatures/OutArgLifetime.hlsl
Log Message:
-----------
[HLSL] Emit lifetime.start before copy-in for inout parameters (#191917)
For inout parameters, Clang was emitting lifetime.start after the
copy-in store that initializes the temporary. Per LLVM's lifetime
semantics, any access to memory outside its lifetime is undefined
behavior, so the copy-in store was technically UB and the value was
undefined after lifetime.start.
Move EmitLifetimeStart into EmitHLSLOutArgLValues so that it is emitted
before EmitInitializationToLValue, putting the copy-in store within the
lifetime of the temporary.
---------
Co-authored-by: Alexandre Isoard <alexandre.isoard at amd.com>
Co-authored-by: Deric C. <cheung.deric at gmail.com>
Commit: 52e00058960e90b1ccadd07b95ca05d13e1f1318
https://github.com/llvm/llvm-project/commit/52e00058960e90b1ccadd07b95ca05d13e1f1318
Author: Wenju He <wenju.he at intel.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/SemaOpenCL.h
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaOpenCL.cpp
A clang/test/SemaOpenCL/read-image-integer-linear-filter.cl
Log Message:
-----------
[OpenCL] Warn if filter_mode is linear in read_image{i|ui} (#204086)
Per OpenCL spec:
The read_image{i|ui} calls support a nearest filter only. The
filter_mode specified in sampler must be set to CLK_FILTER_NEAREST;
otherwise the values returned are undefined.
Warn users when they apply a linear filter accidentally.
Address https://github.com/intel/compute-runtime/issues/379#issuecomment-4592083032
Assisted-by: Claude Sonnet 4.6
Commit: dfe8b229d3ec40e49250cc587009d5752b58b087
https://github.com/llvm/llvm-project/commit/dfe8b229d3ec40e49250cc587009d5752b58b087
Author: yonghong-song <yhs at fb.com>
Date: 2026-06-22 (Mon, 22 Jun 2026)
Changed paths:
M llvm/lib/Target/BPF/BPFSelectionDAGInfo.cpp
Log Message:
-----------
[BPF] Increase BPFMaxStoresPerMemFunc from 128 to 192 (#205222)
With commits [1] and [2], memory operations like memcpy/memmove lower to
a sequence of loads/stores whose width is the minimum of the source and
destination alignment, and the store count is bounded by
BPFMaxStoresPerMemFunc. For 1-byte alignment, the maximum copy length
that can be inlined is therefore 128 bytes.
This may regress cases that previously inlined. Consider a memcpy with
src alignment 8, dst alignment 1 and size 136. After [1]/[2], the store
width is the minimum alignment (1 byte), so the store count is 136,
which exceeds the 128 limit and the copy falls back. Before [1]/[2], the
store count was computed with a fixed 8-byte unit regardless of the
actual alignment (each unit expands to 8 one-byte stores when the
minimum alignment is 1), so the total count was only 17 (136/8 < 128)
and the copy was inlined.
Raise the limit from 128 to 192 to mitigate. Alternatively, users can
increase alignment to avoid the regression.
[1] https://github.com/llvm/llvm-project/pull/201119
[2] https://github.com/llvm/llvm-project/pull/204042
Commit: 899548615f41018113e08260817ddcfc23060937
https://github.com/llvm/llvm-project/commit/899548615f41018113e08260817ddcfc23060937
Author: SiHuaN <liyongtai at iscas.ac.cn>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsRISCV.td
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:
-----------
[RISCV][P-ext] packed exchanged add/sub codegen (#203473)
Wire up the already-defined exchanged add/sub instructions
pas/psa/psas/pssa/paas/pasa with llvm.riscv.* intrinsics and isel
patterns.
Commit: f519bd91d300238660914d9094b5e70090da1d85
https://github.com/llvm/llvm-project/commit/f519bd91d300238660914d9094b5e70090da1d85
Author: lijinpei-amd <jinpli at amd.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/IR/Verifier.cpp
M llvm/test/Verifier/memprof-metadata-bad.ll
Log Message:
-----------
[Verifier] Require !callsite with !memprof metadata (#205053)
Fixes: https://github.com/llvm/llvm-project/issues/181237
Commit: d853c056e5db0f9e1779e351b02c98a141a95c8d
https://github.com/llvm/llvm-project/commit/d853c056e5db0f9e1779e351b02c98a141a95c8d
Author: Jianjian Guan <jacquesguan at me.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinNVPTX.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenValue.h
M clang/lib/CIR/Dialect/IR/CIRMemorySlot.cpp
M clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-nontemporal.cpp
Log Message:
-----------
[CIR] Add support for __builtin_nontemporal_store and __builtin_nontemporal_load (#197872)
Add nontemporal attribute to cir.load and cir.store ops.
Commit: e2765f3e202cd0ed126fb72cd77a1f59ecaf739b
https://github.com/llvm/llvm-project/commit/e2765f3e202cd0ed126fb72cd77a1f59ecaf739b
Author: ZT Qin <xiaoyaoyou95 at hotmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/test/Transforms/Attributor/reduced/openmp_opt_constant_type_crash.ll
M llvm/test/Transforms/OpenMP/single_threaded_execution.ll
Log Message:
-----------
[OpenMPOpt][Attributor] Selectively seed deglobalization AAs (#198710)
This addresses a compile-time issue observed on a large generated C++
translation unit compiled with `-fopenmp`.
The source code is not OpenMP-heavy. It mainly consists of generated
function-registration wrappers, template instantiations, lambdas, and
small helper functions. However, because the TU is compiled with OpenMP
enabled, `OpenMPOptCGSCCPass` runs and drives Attributor on a module
with many functions.
`OpenMPOpt::registerAAsForFunction` currently eagerly creates the
deglobalization AAs for every function in OpenMP device modules:
* `AAHeapToShared`
* `AAHeapToStack`
Most generated wrapper/helper functions in the motivating workload do
not contain `__kmpc_alloc_shared`, removable allocations, or free-like
calls. In those cases, the deglobalization AAs have no useful candidates
but still contribute to Attributor initialization and fixed-point work.
This patch makes the deglobalization AA seeding more selective:
* only create `AAHeapToShared` for functions with non-empty
`__kmpc_alloc_shared` uses;
* only create `AAHeapToStack` for functions containing removable
allocation or free-like call candidates;
* make `AAHeapToShared` use the per-function runtime use vector instead
of scanning all users of the runtime declaration.
I also measured the previously attempted pieces independently. The
compile-time improvement comes from the selective seeding change. The
Attributor use-caching change and the `registerAAsForFunction`
registration cache did not show meaningful benefit on the motivating
workload, so they have been removed from this PR.
On the motivating TU, selective seeding reduced total compile time from
about 3473s to 271s, and `OpenMPOptCGSCCPass` time from about 3232s to
111s.
---------
Co-authored-by: jnudhf <jnudhf at users.noreply.github.com>
Co-authored-by: Shilei Tian <i at tianshilei.me>
Commit: c91c9fced2ff7266e566fad2963ab241bf6360b3
https://github.com/llvm/llvm-project/commit/c91c9fced2ff7266e566fad2963ab241bf6360b3
Author: Fangrui Song <i at maskray.me>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M llvm/include/llvm/Support/Allocator.h
M llvm/unittests/Support/AllocatorTest.cpp
Log Message:
-----------
Reland [Allocator] Keep bump pointer at a minimum alignment (#205240)
Reland #203718 (reverted in #205091) by making computation in integer
domain to avoid UB (nullptr + non-zero offset).
Add a `MinAlign` template parameter (default 8, sizeof(size_t) on 64-bit
platforms) so that the common case `Alignment <= MinAlign` can skip
realigning `CurPtr`.
This is achieved by rounding each allocation's size up to MinAlign, so
the bump pointer stays MinAlign-aligned between allocations.
SpecificBumpPtrAllocator::DestroyAll() walks objects at a fixed
sizeof(T) stride and needs tight packing, so it uses MinAlign=1.
(alignof(T) would
pack just as tightly and reuse the default instantiation, but T may be
incomplete here, e.g. `SpecificBumpPtrAllocator<MCSectionELF>`.)
Its `Allocate` still skips the realign: the slab is max_align_t-aligned
and every size is a multiple of alignof(T), so the bump pointer stays
alignof(T)-aligned and we can just request alignment 1. Over-aligned
types (alignof(T) > alignof(max_align_t)) keep requesting alignof(T).
Also use `bit_ceil` instead of `NextPowerOf2` in the placement operator
new alignment heuristic. NextPowerOf2 is strictly greater, so an 8-byte
pointer-sized object asked for alignment 16 and missed the fast path;
bit_ceil(8) == 8 keeps it on the fast path.
Aided by Claude Opus 4.8
Commit: 2d05118e7c91355de9e53487914f230d506f028a
https://github.com/llvm/llvm-project/commit/2d05118e7c91355de9e53487914f230d506f028a
Author: Joel E. Denny <jdenny.ornl at gmail.com>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M .github/CODEOWNERS
M .github/workflows/new-prs.yml
M .github/workflows/release-binaries.yml
M .github/workflows/spirv-tests.yml
M .github/workflows/subscriber.yml
M .gitignore
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/DIEBuilder.h
M bolt/include/bolt/Core/DebugData.h
M bolt/include/bolt/Rewrite/DWARFRewriter.h
M bolt/include/bolt/Utils/CommandLineOpts.h
M bolt/lib/Core/BinaryEmitter.cpp
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Core/DIEBuilder.cpp
M bolt/lib/Core/DebugData.cpp
M bolt/lib/Passes/Aligner.cpp
M bolt/lib/Passes/LongJmp.cpp
M bolt/lib/Rewrite/BinaryPassManager.cpp
M bolt/lib/Rewrite/DWARFRewriter.cpp
M bolt/lib/Rewrite/MachORewriteInstance.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/lib/Utils/CommandLineOpts.cpp
M bolt/runtime/instr.cpp
M bolt/test/AArch64/instrument-no-fini.s
M bolt/test/X86/dwarf4-cross-cu-backward-different-abbrev.test
A bolt/test/X86/dwarf4-cross-cu-ranges.test
M bolt/test/X86/instrument-no-fini.s
A bolt/test/X86/instrument-static-pie.s
A bolt/test/binary-analysis/AArch64/cfg-warning.s
M bolt/test/eh-frame-hdr.test
M bolt/test/runtime/X86/instrument-wrong-target.s
A bolt/test/runtime/setup-race.cpp
M clang-tools-extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp
M clang-tools-extra/clangd/ClangdLSPServer.cpp
M clang-tools-extra/clangd/CompileCommands.cpp
M clang-tools-extra/clangd/HeaderSourceSwitch.cpp
M clang-tools-extra/clangd/ParsedAST.cpp
M clang-tools-extra/clangd/Protocol.cpp
M clang-tools-extra/clangd/refactor/tweaks/ExtractVariable.cpp
M clang-tools-extra/clangd/test/background-index.test
M clang-tools-extra/clangd/test/did-change-configuration-params.test
M clang-tools-extra/clangd/test/include-cleaner-batch-fix.test
M clang-tools-extra/clangd/test/path-mappings.test
M clang-tools-extra/clangd/tool/ClangdMain.cpp
M clang-tools-extra/clangd/unittests/ReplayPeambleTests.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
A clang-tools-extra/test/clang-tidy/checkers/bugprone/branch-clone-inline-asm.cpp
A clang-tools-extra/test/clang-tidy/checkers/bugprone/misplaced-widening-cast-bitfield.cpp
M clang-tools-extra/test/clang-tidy/checkers/misc/header-include-cycle.cpp
M clang-tools-extra/test/clang-tidy/checkers/portability/restrict-system-includes-transitive.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming-symlink.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/clang-tidy-mac-libcxx.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/remarks.cpp
M clang/CMakeLists.txt
M clang/bindings/xml/comment-xml-schema.rng
M clang/cmake/caches/Fuchsia-stage2.cmake
M clang/docs/ConstantInterpreter.rst
M clang/docs/LanguageExtensions.rst
M clang/docs/LifetimeSafety.rst
M clang/docs/ReleaseNotes.rst
M clang/docs/SanitizerSpecialCaseList.rst
M clang/docs/UsersManual.rst
M clang/docs/analyzer/checkers.rst
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/Expr.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Basic/AArch64CodeGenUtils.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/Builtins.td
A clang/include/clang/Basic/BuiltinsAVR.def
M clang/include/clang/Basic/BuiltinsRISCV.td
M clang/include/clang/Basic/BuiltinsX86.td
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/HLSLIntrinsics.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/LangOptions.h
M clang/include/clang/Basic/LangStandards.def
M clang/include/clang/Basic/OffloadArch.h
M clang/include/clang/Basic/OpenCLOptions.h
M clang/include/clang/Basic/PragmaKinds.h
M clang/include/clang/Basic/TargetBuiltins.h
M clang/include/clang/Basic/arm_neon.td
M clang/include/clang/Basic/riscv_sifive_vector.td
M clang/include/clang/Basic/riscv_vector_common.td
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/LoweringHelpers.h
M clang/include/clang/CIR/MissingFeatures.h
M clang/include/clang/Driver/Action.h
M clang/include/clang/Driver/Compilation.h
M clang/include/clang/Driver/Driver.h
M clang/include/clang/Driver/Job.h
M clang/include/clang/Driver/SanitizerArgs.h
M clang/include/clang/Driver/ToolChain.h
M clang/include/clang/Lex/PreprocessorOptions.h
M clang/include/clang/Options/Options.td
M clang/include/clang/Parse/Parser.h
M clang/include/clang/ScalableStaticAnalysisFramework/BuiltinAnchorSources.def
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/EntityLinker.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummary.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/LUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/TUSummaryEncoding.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Model/PrivateFieldNames.def
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormat.h
M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummary.h
A clang/include/clang/ScalableStaticAnalysisFramework/SourceTransformation/SourceEditEmitter.h
A clang/include/clang/ScalableStaticAnalysisFramework/SourceTransformation/Transformation.h
A clang/include/clang/ScalableStaticAnalysisFramework/SourceTransformation/TransformationRegistry.h
A clang/include/clang/ScalableStaticAnalysisFramework/SourceTransformation/TransformationReportEmitter.h
M clang/include/clang/Sema/Overload.h
M clang/include/clang/Sema/SemaHLSL.h
M clang/include/clang/Sema/SemaOpenCL.h
M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
M clang/include/clang/Support/RISCVVIntrinsicUtils.h
M clang/include/module.modulemap
M clang/lib/APINotes/APINotesYAMLCompiler.cpp
M clang/lib/AST/ASTImporter.cpp
M clang/lib/AST/AttrImpl.cpp
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/lib/AST/ByteCode/EvalEmitter.cpp
M clang/lib/AST/ByteCode/EvaluationResult.cpp
M clang/lib/AST/ByteCode/EvaluationResult.h
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ByteCode/InterpState.h
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/lib/AST/ByteCode/Record.cpp
M clang/lib/AST/ByteCode/State.cpp
M clang/lib/AST/ComputeDependence.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/TextNodeDumper.cpp
M clang/lib/AST/Type.cpp
M clang/lib/AST/TypePrinter.cpp
M clang/lib/Analysis/FlowSensitive/FormulaSerialization.cpp
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/LoanPropagation.cpp
M clang/lib/Analysis/LifetimeSafety/Origins.cpp
M clang/lib/Basic/LangOptions.cpp
M clang/lib/Basic/TargetID.cpp
M clang/lib/Basic/TargetInfo.cpp
M clang/lib/Basic/Targets/AVR.cpp
M clang/lib/Basic/Targets/AVR.h
M clang/lib/Basic/Targets/Hexagon.cpp
M clang/lib/Basic/Targets/OSTargets.h
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinNVPTX.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
M clang/lib/CIR/CodeGen/CIRGenValue.h
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRMemorySlot.cpp
M clang/lib/CIR/Dialect/Transforms/EHABILowering.cpp
M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CIR/Lowering/LoweringHelpers.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprCXX.cpp
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CMakeLists.txt
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
A clang/lib/CodeGen/TargetBuiltins/AVR.cpp
M clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
M clang/lib/CodeGen/TargetBuiltins/SPIR.cpp
M clang/lib/CodeGen/TargetBuiltins/X86.cpp
M clang/lib/CodeGen/Targets/RISCV.cpp
M clang/lib/Driver/Action.cpp
M clang/lib/Driver/CMakeLists.txt
M clang/lib/Driver/Compilation.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/SanitizerArgs.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/AIX.cpp
M clang/lib/Driver/ToolChains/AIX.h
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/AMDGPU.h
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.h
M clang/lib/Driver/ToolChains/AVR.cpp
M clang/lib/Driver/ToolChains/AVR.h
M clang/lib/Driver/ToolChains/BareMetal.cpp
M clang/lib/Driver/ToolChains/BareMetal.h
M clang/lib/Driver/ToolChains/CSKYToolChain.cpp
M clang/lib/Driver/ToolChains/CSKYToolChain.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/CommonArgs.cpp
M clang/lib/Driver/ToolChains/CrossWindows.cpp
M clang/lib/Driver/ToolChains/CrossWindows.h
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/lib/Driver/ToolChains/Cuda.h
M clang/lib/Driver/ToolChains/Darwin.cpp
M clang/lib/Driver/ToolChains/Darwin.h
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/Flang.h
M clang/lib/Driver/ToolChains/FreeBSD.cpp
M clang/lib/Driver/ToolChains/FreeBSD.h
M clang/lib/Driver/ToolChains/Fuchsia.cpp
M clang/lib/Driver/ToolChains/Fuchsia.h
M clang/lib/Driver/ToolChains/Gnu.cpp
M clang/lib/Driver/ToolChains/Gnu.h
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/HIPAMD.h
M clang/lib/Driver/ToolChains/HIPSPV.cpp
M clang/lib/Driver/ToolChains/HIPSPV.h
M clang/lib/Driver/ToolChains/HIPUtility.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
M clang/lib/Driver/ToolChains/HLSL.h
M clang/lib/Driver/ToolChains/Haiku.cpp
M clang/lib/Driver/ToolChains/Haiku.h
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/lib/Driver/ToolChains/Hexagon.h
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Driver/ToolChains/Linux.h
M clang/lib/Driver/ToolChains/MSP430.cpp
M clang/lib/Driver/ToolChains/MSP430.h
M clang/lib/Driver/ToolChains/MSVC.cpp
M clang/lib/Driver/ToolChains/MSVC.h
M clang/lib/Driver/ToolChains/Managarm.cpp
M clang/lib/Driver/ToolChains/Managarm.h
M clang/lib/Driver/ToolChains/MinGW.cpp
M clang/lib/Driver/ToolChains/MinGW.h
M clang/lib/Driver/ToolChains/NetBSD.cpp
M clang/lib/Driver/ToolChains/NetBSD.h
M clang/lib/Driver/ToolChains/OHOS.cpp
M clang/lib/Driver/ToolChains/OHOS.h
M clang/lib/Driver/ToolChains/OpenBSD.cpp
M clang/lib/Driver/ToolChains/OpenBSD.h
M clang/lib/Driver/ToolChains/PS4CPU.cpp
M clang/lib/Driver/ToolChains/PS4CPU.h
M clang/lib/Driver/ToolChains/SPIRVOpenMP.cpp
M clang/lib/Driver/ToolChains/SPIRVOpenMP.h
M clang/lib/Driver/ToolChains/SYCL.cpp
M clang/lib/Driver/ToolChains/SYCL.h
M clang/lib/Driver/ToolChains/Serenity.cpp
M clang/lib/Driver/ToolChains/Serenity.h
M clang/lib/Driver/ToolChains/Solaris.cpp
M clang/lib/Driver/ToolChains/Solaris.h
M clang/lib/Driver/ToolChains/VEToolchain.cpp
M clang/lib/Driver/ToolChains/VEToolchain.h
M clang/lib/Driver/ToolChains/WebAssembly.cpp
M clang/lib/Driver/ToolChains/WebAssembly.h
M clang/lib/Driver/ToolChains/XCore.cpp
M clang/lib/Driver/ToolChains/XCore.h
M clang/lib/Driver/ToolChains/ZOS.cpp
M clang/lib/Driver/ToolChains/ZOS.h
M clang/lib/Format/CMakeLists.txt
M clang/lib/Format/DefinitionBlockSeparator.cpp
M clang/lib/Format/Format.cpp
M clang/lib/Format/FormatTokenLexer.cpp
M clang/lib/Format/FormatTokenLexer.h
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/UnwrappedLineFormatter.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Format/UnwrappedLineParser.h
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Frontend/DependencyFile.cpp
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/lib/FrontendTool/CMakeLists.txt
M clang/lib/Headers/amdgpuintrin.h
M clang/lib/Headers/avx512vlvnniintrin.h
M clang/lib/Headers/avx512vnniintrin.h
M clang/lib/Headers/avxvnniintrin.h
M clang/lib/Headers/nvptxintrin.h
M clang/lib/Headers/riscv_packed_simd.h
M clang/lib/Headers/spirvintrin.h
M clang/lib/Lex/PPMacroExpansion.cpp
M clang/lib/Parse/ParseCXXInlineMethods.cpp
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Parse/ParsePragma.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/CMakeLists.txt
M clang/lib/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/SSAFAnalysesCommon.cpp
M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
M clang/lib/ScalableStaticAnalysisFramework/CMakeLists.txt
M clang/lib/ScalableStaticAnalysisFramework/Core/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/Artifact.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.h
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/LUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummary.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/TUSummaryEncoding.cpp
M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/WPASuite.cpp
M clang/lib/ScalableStaticAnalysisFramework/Frontend/CMakeLists.txt
M clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
A clang/lib/ScalableStaticAnalysisFramework/SourceTransformation/CMakeLists.txt
A clang/lib/ScalableStaticAnalysisFramework/SourceTransformation/TransformationRegistry.cpp
M clang/lib/ScalableStaticAnalysisFramework/Tool/CMakeLists.txt
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaLifetimeSafety.h
M clang/lib/Sema/SemaOpenCL.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/Yaml.h
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/Support/RISCVVIntrinsicUtils.cpp
A clang/test/APINotes/Inputs/Headers/WhereParametersMapElement.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersMethodWhereSequence.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersMissingName.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersParser.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersScalar.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersUnknownWhereKey.apinotes
A clang/test/APINotes/Inputs/Headers/WhereParametersWhereSequence.apinotes
A clang/test/APINotes/Inputs/WhereParametersConvertDiag/APINotes.apinotes
A clang/test/APINotes/Inputs/WhereParametersConvertDiag/WhereParametersConvertDiag.h
M clang/test/APINotes/module-cache.m
A clang/test/APINotes/where-parameters-convert-diags.cpp
A clang/test/APINotes/where-parameters-yaml.test
M clang/test/AST/ByteCode/builtin-functions.cpp
A clang/test/AST/ByteCode/command-line-options.cpp
M clang/test/AST/ByteCode/complex.cpp
M clang/test/AST/ByteCode/cxx11.cpp
M clang/test/AST/ByteCode/cxx20.cpp
M clang/test/AST/ByteCode/cxx23.cpp
M clang/test/AST/ByteCode/dynamic-cast.cpp
M clang/test/AST/ByteCode/invalid.cpp
M clang/test/AST/ByteCode/literals.cpp
M clang/test/AST/ByteCode/new-delete.cpp
A clang/test/AST/ast-dump-riscv-rvv-fixed-length-mask-types.c
A clang/test/AST/pr198903.cpp
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-edges.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-id.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-empty.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-no-key.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-odd-count.json
M clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json
A clang/test/Analysis/Scalable/PointerFlow/multi-dim-pointer-flow-constraint.test
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-bad-epls.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-bad-id.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-empty.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-no-key.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-odd-count.json
M clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/all.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/both.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/pairs.json
M clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/tags.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/missing-type.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-lu-empty.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-tu-empty.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-wpa-empty.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/unknown-type.json
A clang/test/Analysis/Scalable/ssaf-format/Artifact/round-trip.test
A clang/test/Analysis/Scalable/ssaf-format/Artifact/top-level.test
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
M clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/mismatched-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-lu-namespace.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json
A clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-linkage.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-extra-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-missing-id.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-not-array.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/mismatched-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-data.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-id-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-kind.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-linkage-table.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-name.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-tu-namespace.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-type.json
A clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/not-normalized-target-triple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-element-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-pairs-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-first-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-pairs-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-second-field.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/read-entity-summary-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty-data-entry.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-link-unit.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-external.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-internal.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-multiple.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-none.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-two-summary-types.json
M clang/test/Analysis/Scalable/ssaf-format/TUSummary/top-level.test
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/duplicate-analysis-name.json
A clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/mismatched-type.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/missing-results.json
A clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/missing-type.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-bad-count.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-bad-pair-counts.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-entry-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-missing-entity-id.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-analysis-name-not-string.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-deserializer-error.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-missing-analysis-name.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-missing-result-field.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-no-format-info.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/result-entry-result-not-object.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/results-not-array.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-all-results.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-empty.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-multiple-results.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tags-result-bad-element.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tags-result-missing-tags.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tagspairs-result-bad-field-type.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/tagspairs-result-missing-field.json
M clang/test/Analysis/Scalable/ssaf-format/WPASuite/without-plugin.test
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
M clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
M clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
M clang/test/Analysis/analyzer-enabled-checkers.c
M clang/test/Analysis/bstring.c
M clang/test/Analysis/bstring.cpp
M clang/test/Analysis/bstring_UninitRead.c
M clang/test/Analysis/cstring-uninitread-notes.c
M clang/test/Analysis/infeasible-crash.c
A clang/test/Analysis/malloc-sizeof-fp.cpp
M clang/test/Analysis/malloc.c
A clang/test/Analysis/pr169302.cpp
M clang/test/Analysis/pr22954.c
M clang/test/Analysis/std-c-library-functions-arg-enabled-checkers.c
M clang/test/Analysis/wstring.c
A clang/test/CIR/CodeGen/agg-atomic-cast.cpp
M clang/test/CIR/CodeGen/no-unique-address.cpp
M clang/test/CIR/CodeGen/nonzeroinit-struct.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member.cpp
A clang/test/CIR/CodeGen/unary-expr-or-type-trait-32bit.cpp
A clang/test/CIR/CodeGenBuiltins/builtin-nontemporal.cpp
M clang/test/CIR/IR/invalid-data-member.cir
M clang/test/CIR/Lowering/const-array-bulk-lowering-fallbacks.cir
M clang/test/CIR/Lowering/const-array-of-pointers.cir
M clang/test/CMakeLists.txt
M clang/test/CXX/module/cpp.pre/module_decl.cpp
M clang/test/ClangScanDeps/build-session-validation-relocated-modules.c
M clang/test/ClangScanDeps/header-search-pruning.cpp
M clang/test/ClangScanDeps/modules-context-hash.c
M clang/test/ClangScanDeps/modules-relocated-mm-macro.c
M clang/test/CodeGen/AArch64/bf16-getset-intrinsics.c
M clang/test/CodeGen/AArch64/bf16-lane-intrinsics.c
M clang/test/CodeGen/AArch64/bf16-ldst-intrinsics.c
M clang/test/CodeGen/AArch64/bf16-reinterpret-intrinsics.c
M clang/test/CodeGen/AArch64/neon-intrinsics.c
M clang/test/CodeGen/AArch64/neon-luti.c
M clang/test/CodeGen/AArch64/neon-misc-constrained.c
M clang/test/CodeGen/AArch64/neon-misc.c
M clang/test/CodeGen/AArch64/neon/add.c
M clang/test/CodeGen/AArch64/neon/intrinsics.c
M clang/test/CodeGen/AArch64/neon/subtraction.c
A clang/test/CodeGen/AArch64/neon/widen.c
A clang/test/CodeGen/PowerPC/pragma-comment-copyright-modules.cpp
A clang/test/CodeGen/PowerPC/pragma-comment.c
M clang/test/CodeGen/RISCV/riscv-vector-callingconv-llvm-ir.c
M clang/test/CodeGen/RISCV/riscv-vector-callingconv-llvm-ir.cpp
M clang/test/CodeGen/RISCV/rvp-intrinsics.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/non-overloaded/sf_mm_e4m3_e4m3.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/non-overloaded/sf_mm_e4m3_e5m2.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/non-overloaded/sf_mm_e5m2_e4m3.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/non-overloaded/sf_mm_e5m2_e5m2.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_e4m3_e4m3.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_e4m3_e5m2.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_e5m2_e4m3.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_e5m2_e5m2.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_f_f.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_s_s.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_s_u.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_u_s.c
M clang/test/CodeGen/RISCV/rvv-intrinsics-sifive/non-policy/overloaded/sf_mm_u_u.c
A clang/test/CodeGen/WebAssembly/wasm-swiftasynccall.c
M clang/test/CodeGen/X86/avx512vlvnni-builtins.c
M clang/test/CodeGen/X86/avx512vnni-builtins.c
M clang/test/CodeGen/X86/avxvnni-builtins.c
M clang/test/CodeGen/X86/bmi2-builtins.c
M clang/test/CodeGen/arm-bf16-reinterpret-intrinsics.c
M clang/test/CodeGen/arm_neon_intrinsics.c
M clang/test/CodeGen/avr/avr-builtins.c
M clang/test/CodeGen/builtins-elementwise-math.c
M clang/test/CodeGen/lto-newpm-pipeline.c
M clang/test/CodeGen/ubsan-aggregate-null-align-bounds.c
A clang/test/CodeGenCXX/cxx20-nttp-object-layout.cpp
A clang/test/CodeGenCXX/noreturn-init-stmt.cpp
A clang/test/CodeGenHLSL/BasicFeatures/OutArgLifetime.hlsl
A clang/test/CodeGenHLSL/builtins/QuadReadAcrossDiagonal.hlsl
M clang/test/CodeGenHLSL/builtins/ddx-coarse-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/ddx-coarse.hlsl
M clang/test/CodeGenHLSL/builtins/ddx-fine-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/ddx-fine.hlsl
M clang/test/CodeGenHLSL/builtins/ddx.hlsl
M clang/test/CodeGenHLSL/builtins/ddy-coarse-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/ddy-coarse.hlsl
M clang/test/CodeGenHLSL/builtins/ddy-fine-builtin.hlsl
M clang/test/CodeGenHLSL/builtins/ddy-fine.hlsl
M clang/test/CodeGenHLSL/builtins/ddy.hlsl
M clang/test/CodeGenHLSL/matrix-layout-attr-overrides-default.hlsl
A clang/test/CodeGenHLSL/preserve-interface-dce.hlsl
A clang/test/CodeGenHLSL/preserve-interface.hlsl
A clang/test/CodeGenHLSL/resources/ConstantBufferT.hlsl
M clang/test/CodeGenHLSL/resources/cbuffer_struct_passing.hlsl
A clang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_12-5-generic.bc
A clang/test/Driver/aarch64-hip12.c
M clang/test/Driver/aarch64-mcpu.c
A clang/test/Driver/cl-deterministic.c
M clang/test/Driver/clang-offload-bundler-multi-compress.c
M clang/test/Driver/dxc_debug.hlsl
A clang/test/Driver/dxc_fspv_preserve_interface.hlsl
M clang/test/Driver/femit-dwarf-unwind.c
M clang/test/Driver/femit-dwarf-unwind.s
M clang/test/Driver/hip-binding.hip
M clang/test/Driver/hip-device-compile.hip
M clang/test/Driver/hip-link-bundle-archive.hip
M clang/test/Driver/hip-phases.hip
M clang/test/Driver/hip-runtime-libs-linux.hip
M clang/test/Driver/hip-sanitize-options.hip
M clang/test/Driver/hip-target-id.hip
M clang/test/Driver/hip-toolchain-no-rdc.hip
M clang/test/Driver/hip-toolchain-rdc-static-lib.hip
M clang/test/Driver/hip-toolchain-rdc.hip
M clang/test/Driver/hip-version.hip
M clang/test/Driver/invalid-target-id.cl
M clang/test/Driver/lto.c
M clang/test/Driver/objc-constant-literals.m
M clang/test/Driver/opencl.cl
M clang/test/Driver/openmp-offload-gpu.c
A clang/test/Driver/print-enabled-extensions/aarch64-hip12.c
M clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c
M clang/test/Driver/rocm-detect-lib-llvm.hip
M clang/test/Driver/rocm-detect.hip
M clang/test/Driver/spirv-amd-toolchain.c
M clang/test/Driver/unknown-std.cl
A clang/test/Driver/zos-err-options.c
A clang/test/Index/Inputs/CommentXML/invalid-concept-01.xml
A clang/test/Index/Inputs/CommentXML/valid-concept-01.xml
A clang/test/Index/Inputs/CommentXML/valid-concept-02.xml
M clang/test/Index/comment-xml-schema.c
M clang/test/InstallAPI/binary-attributes.test
M clang/test/InstallAPI/diagnostics-zippered.test
M clang/test/InstallAPI/directory-scanning-dylib.test
M clang/test/InstallAPI/directory-scanning-frameworks.test
M clang/test/InstallAPI/directory-scanning-subdirectories.test
M clang/test/InstallAPI/exclusive-passes-zippered.test
M clang/test/InstallAPI/extra-exclude-headers.test
M clang/test/InstallAPI/forwarded-search-paths.test
M clang/test/InstallAPI/umbrella-headers-unix.test
M clang/test/InstallAPI/umbrella-headers.test
M clang/test/Misc/target-invalid-cpu-note/aarch64.c
M clang/test/Modules/add-remove-private.m
A clang/test/Modules/asm-stmt-odr.cppm
M clang/test/Modules/build-session-validation-relocated-modules.c
M clang/test/Modules/dependent-module-different-location.m
M clang/test/Modules/implicit-invalidate-common.c
M clang/test/Modules/include-relative.c
M clang/test/Modules/relative-import-path.c
A clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-hip-no-rdc-amdgcnspirv.c
M clang/test/OpenMP/bug60602.cpp
M clang/test/OpenMP/declare_target_local_codegen.cpp
M clang/test/OpenMP/distribute_codegen.cpp
M clang/test/OpenMP/distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_num_threads_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/distribute_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_codegen.cpp
M clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/distribute_simd_private_codegen.cpp
M clang/test/OpenMP/distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/map_struct_ordering.cpp
M clang/test/OpenMP/nvptx_lambda_capturing.cpp
R clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp
M clang/test/OpenMP/reduction_implicit_map.cpp
M clang/test/OpenMP/spirv_target_teams_reduction_addrspace.c
M clang/test/OpenMP/target_codegen_global_capture.cpp
M clang/test/OpenMP/target_default_codegen.cpp
M clang/test/OpenMP/target_defaultmap_codegen_03.cpp
M clang/test/OpenMP/target_dyn_groupprivate_codegen.cpp
M clang/test/OpenMP/target_firstprivate_codegen.cpp
M clang/test/OpenMP/target_has_device_addr_codegen.cpp
M clang/test/OpenMP/target_has_device_addr_codegen_01.cpp
M clang/test/OpenMP/target_is_device_ptr_codegen.cpp
M clang/test/OpenMP/target_map_array_of_structs_with_nested_mapper_codegen.cpp
M clang/test/OpenMP/target_map_array_section_no_length_codegen.cpp
M clang/test/OpenMP/target_map_array_section_of_structs_with_nested_mapper_codegen.cpp
M clang/test/OpenMP/target_map_codegen_03.cpp
M clang/test/OpenMP/target_map_codegen_hold.cpp
M clang/test/OpenMP/target_map_deref_array_codegen.cpp
M clang/test/OpenMP/target_map_member_expr_codegen.cpp
M clang/test/OpenMP/target_offload_mandatory_codegen.cpp
M clang/test/OpenMP/target_ompx_dyn_cgroup_mem_codegen.cpp
M clang/test/OpenMP/target_parallel_codegen.cpp
M clang/test/OpenMP/target_parallel_for_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-2.cpp
M clang/test/OpenMP/target_parallel_generic_loop_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_parallel_if_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_codegen.cpp
M clang/test/OpenMP/target_parallel_num_threads_strict_codegen.cpp
M clang/test/OpenMP/target_task_affinity_codegen.cpp
M clang/test/OpenMP/target_teams_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_order_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_private_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen-1.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_collapse_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_if_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_order_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_private_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_uses_allocators_codegen.cpp
M clang/test/OpenMP/target_teams_map_codegen.cpp
M clang/test/OpenMP/target_teams_num_teams_codegen.cpp
A clang/test/OpenMP/target_teams_reduction_codegen.cpp
M clang/test/OpenMP/target_teams_thread_limit_codegen.cpp
M clang/test/OpenMP/teams_codegen.cpp
M clang/test/OpenMP/teams_distribute_codegen.cpp
M clang/test/OpenMP/teams_distribute_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_copyin_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_if_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_num_threads_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_proc_bind_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_if_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_num_threads_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_proc_bind_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_parallel_for_simd_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_reduction_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_collapse_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_dist_schedule_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_lastprivate_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_private_codegen.cpp
M clang/test/OpenMP/teams_distribute_simd_reduction_codegen.cpp
M clang/test/OpenMP/teams_firstprivate_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_codegen-1.cpp
M clang/test/OpenMP/teams_generic_loop_collapse_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_private_codegen.cpp
M clang/test/OpenMP/teams_generic_loop_reduction_codegen.cpp
M clang/test/OpenMP/teams_private_codegen.cpp
A clang/test/Preprocessor/avr-builtins.c
M clang/test/Preprocessor/hexagon-predefines.c
A clang/test/Preprocessor/init-datetime-macros-nowarns.c
A clang/test/Preprocessor/init-datetime-macros-warns.c
A clang/test/Preprocessor/init-datetime-macros.c
A clang/test/Preprocessor/pragma-comment.c
M clang/test/Preprocessor/predefined-macros.c
M clang/test/Sema/LifetimeSafety/annotation-suggestions-fixits.cpp
M clang/test/Sema/LifetimeSafety/dangling-field.cpp
M clang/test/Sema/LifetimeSafety/dangling-global.cpp
M clang/test/Sema/LifetimeSafety/lifetimebound-violation.cpp
M clang/test/Sema/LifetimeSafety/misplaced-lifetimebound-intra-tu.cpp
A clang/test/Sema/LifetimeSafety/safety-c.c
M clang/test/Sema/LifetimeSafety/safety.cpp
M clang/test/Sema/aarch64-neon-immediate-ranges/luti.c
M clang/test/Sema/aarch64-neon-target.c
M clang/test/Sema/aarch64-neon-without-target-feature.cpp
M clang/test/Sema/arm-neon-target.c
A clang/test/Sema/attr-lifetime-capture-by.c
A clang/test/Sema/attr-lifetimebound.c
M clang/test/Sema/builtin-memcpy.c
M clang/test/Sema/builtin-object-size.c
M clang/test/Sema/builtins-elementwise-math.c
M clang/test/Sema/enable_if.c
M clang/test/Sema/sifive-xsfmm.c
M clang/test/Sema/warn-fortify-source.c
A clang/test/Sema/warn-stringop-overread.c
A clang/test/Sema/wasm-swiftasynccall.c
A clang/test/SemaCUDA/pr200545.cu
M clang/test/SemaCXX/constant-expression-p2280r4.cpp
M clang/test/SemaCXX/enable_if.cpp
M clang/test/SemaCXX/ext-int.cpp
A clang/test/SemaHLSL/BuiltIns/QuadReadAcrossDiagonal-errors.hlsl
A clang/test/SemaOpenCL/read-image-integer-linear-filter.cl
M clang/test/SemaTemplate/instantiate-member-template.cpp
M clang/test/Tooling/clang-check-mac-libcxx-abspath.cpp
M clang/test/Tooling/clang-check-mac-libcxx-fixed-compilation-db.cpp
M clang/test/Tooling/clang-check-mac-libcxx-relpath.cpp
M clang/test/lit.cfg.py
M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
M clang/tools/clang-ssaf-analyzer/CMakeLists.txt
M clang/tools/clang-ssaf-format/CMakeLists.txt
M clang/tools/clang-ssaf-format/SSAFFormat.cpp
M clang/tools/clang-ssaf-linker/CMakeLists.txt
M clang/tools/clang-ssaf-linker/SSAFLinker.cpp
M clang/tools/driver/cc1as_main.cpp
M clang/unittests/AST/ASTImporterTest.cpp
M clang/unittests/Analysis/LifetimeSafetyTest.cpp
M clang/unittests/Basic/DiagnosticTest.cpp
M clang/unittests/Driver/DXCModeTest.cpp
M clang/unittests/Format/DefinitionBlockSeparatorTest.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/CMakeLists.txt
M clang/unittests/ScalableStaticAnalysisFramework/EntityLinkerTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/FindDecl.h
M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.h
M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/LUSummaryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/TUSummaryTest.cpp
A clang/unittests/ScalableStaticAnalysisFramework/SourceTransformation/EmitterTest.cpp
A clang/unittests/ScalableStaticAnalysisFramework/SourceTransformation/RegistryTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/SummaryData/SummaryDataTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp
M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
M clang/utils/TableGen/ClangAttrEmitter.cpp
M clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp
M compiler-rt/cmake/builtin-config-ix.cmake
M compiler-rt/lib/builtins/cpu_model/riscv/hwprobe.inc
M compiler-rt/lib/profile/CMakeLists.txt
M compiler-rt/lib/profile/InstrProfilingPlatformROCm.cpp
A compiler-rt/lib/profile/InstrProfilingPlatformROCmHSA.cpp
A compiler-rt/lib/profile/InstrProfilingPlatformROCmHSADefs.h
A compiler-rt/lib/profile/InstrProfilingPlatformROCmInternal.h
M compiler-rt/lib/scudo/standalone/combined.h
M compiler-rt/lib/scudo/standalone/fuzz/CMakeLists.txt
R compiler-rt/lib/scudo/standalone/fuzz/get_error_info_fuzzer.cpp
M compiler-rt/lib/scudo/standalone/include/scudo/interface.h
M compiler-rt/lib/scudo/standalone/secondary.h
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
M compiler-rt/lib/scudo/standalone/wrappers_c.cpp
M compiler-rt/lib/tsan/rtl/tsan_platform.h
M compiler-rt/lib/xray/xray_hexagon.cpp
M compiler-rt/lib/xray/xray_trampoline_hexagon.S
M compiler-rt/test/asan/TestCases/Windows/issue64990.cpp
M compiler-rt/test/builtins/Unit/lit.cfg.py
M compiler-rt/test/fuzzer/fork.test
M compiler-rt/test/fuzzer/fork_corpus_groups.test
A compiler-rt/test/profile/AMDGPU/device-basic.hip
A compiler-rt/test/profile/AMDGPU/device-early-collect.hip
A compiler-rt/test/profile/AMDGPU/device-no-kernel.hip
A compiler-rt/test/profile/AMDGPU/device-symbols.hip
A compiler-rt/test/profile/AMDGPU/lit.local.cfg.py
A compiler-rt/test/profile/GPU/instrprof-hip-basic.hip
A compiler-rt/test/profile/GPU/instrprof-hip-collect-after.hip
A compiler-rt/test/profile/GPU/instrprof-hip-counter-correctness.hip
A compiler-rt/test/profile/GPU/instrprof-hip-coverage.hip
A compiler-rt/test/profile/GPU/instrprof-hip-device-branching.hip
A compiler-rt/test/profile/GPU/instrprof-hip-fork-safety.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multi-gpu.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multi-process-merge.hip
A compiler-rt/test/profile/GPU/instrprof-hip-multiple-kernels.hip
A compiler-rt/test/profile/GPU/instrprof-hip-nondefault-device.hip
A compiler-rt/test/profile/GPU/instrprof-hip-pgo-use.hip
A compiler-rt/test/profile/GPU/lit.local.cfg.py
A compiler-rt/test/profile/instrprof-rocm-bounds-dedup.cpp
A compiler-rt/test/profile/instrprof-rocm-grow-array.cpp
M compiler-rt/test/profile/lit.cfg.py
M cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py
M cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
M cross-project-tests/debuginfo-tests/dexter/dex/dextIR/StepIR.py
M cross-project-tests/debuginfo-tests/dexter/dex/dextIR/ValueIR.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectMatch.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/Metrics.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
M cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
M cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
M cross-project-tests/debuginfo-tests/dexter/dex/test_script/Script.py
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/debug_aggregates.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_finish.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_step_out.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_aggregates.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_list_aggregates.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/labels/Inputs/header.h
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/labels/invalid_label.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/labels/offset.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/labels/simple_labels.cpp
A cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/labels/source_root_dir.cpp
M cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/lit.local.cfg
M cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/invalid-script-nodes.test
M cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/valid-parse.test
M cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
M flang-rt/lib/runtime/CMakeLists.txt
M flang/docs/Extensions.md
A flang/docs/MeetingNotes/2026/2026-06-17.md
M flang/docs/OpenACC-extensions.md
M flang/include/flang/Evaluate/tools.h
M flang/include/flang/Frontend/CodeGenOptions.def
M flang/include/flang/Lower/CustomIntrinsicCall.h
M flang/include/flang/Lower/OpenACC.h
M flang/include/flang/Lower/OpenMP.h
M flang/include/flang/Optimizer/Analysis/AliasAnalysis.h
M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
M flang/include/flang/Optimizer/Builder/MIFCommon.h
M flang/include/flang/Optimizer/Dialect/FIROps.td
M flang/include/flang/Optimizer/Transforms/Passes.td
M flang/include/flang/Semantics/symbol.h
M flang/include/flang/Support/Fortran-features.h
M flang/lib/Evaluate/tools.cpp
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Frontend/FrontendActions.cpp
M flang/lib/Lower/Bridge.cpp
M flang/lib/Lower/ConvertCall.cpp
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Lower/CustomIntrinsicCall.cpp
M flang/lib/Lower/MultiImageFortran.cpp
M flang/lib/Lower/OpenACC.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/Support/ReductionProcessor.cpp
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
M flang/lib/Optimizer/Builder/CMakeLists.txt
M flang/lib/Optimizer/Builder/CUDAIntrinsicCall.cpp
M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
M flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
M flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp
M flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt
M flang/lib/Optimizer/Passes/Pipelines.cpp
M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFDeviceFuncTransform.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFOpConversion.cpp
M flang/lib/Optimizer/Transforms/MIFOpConversion.cpp
M flang/lib/Optimizer/Transforms/MemoryUtils.cpp
M flang/lib/Semantics/check-call.cpp
M flang/lib/Semantics/check-call.h
M flang/lib/Semantics/check-do-forall.cpp
M flang/lib/Semantics/check-do-forall.h
M flang/lib/Semantics/check-omp-atomic.cpp
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/check-omp-variant.cpp
M flang/lib/Semantics/expression.cpp
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/lib/Semantics/resolve-names.cpp
M flang/lib/Semantics/symbol.cpp
M flang/lib/Support/Fortran-features.cpp
M flang/test/Analysis/AliasAnalysis/alias-analysis-host-assoc.fir
M flang/test/Analysis/AliasAnalysis/alias-analysis-scoped-origins.fir
A flang/test/Driver/fakeflang.F
M flang/test/Driver/large-data-threshold.f90
M flang/test/Driver/offload-device.f90
M flang/test/Driver/omp-driver-offload.f90
A flang/test/Driver/split-lto-unit.f90
M flang/test/Driver/supported-suffices/f03-suffix.f03
M flang/test/Driver/supported-suffices/f08-suffix.f08
M flang/test/Driver/version-loops.f90
M flang/test/Fir/CUDA/cuda-device-func-transform.mlir
M flang/test/Fir/CUDA/cuda-global-addr.mlir
A flang/test/Fir/memory-allocation-opt-do-concurrent.fir
A flang/test/Integration/split-lto-unit-2.f90
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
M flang/test/Lower/CUDA/cuda-gpu-managed.cuf
M flang/test/Lower/MIF/coarray_allocation3.f90
M flang/test/Lower/MIF/coarray_allocation4.f90
M flang/test/Lower/MIF/coarray_allocation5.f90
M flang/test/Lower/OpenACC/Todo/acc-unstructured-combined-construct.f90
M flang/test/Lower/OpenACC/Todo/acc-unstructured-loop-construct.f90
M flang/test/Lower/OpenACC/Todo/do-loops-to-acc-loops-todo.f90
A flang/test/Lower/OpenACC/acc-routine-bind-clone-signature.f90
A flang/test/Lower/OpenACC/acc-routine-bind-devtype-undeclared.f90
A flang/test/Lower/OpenACC/acc-routine-bind-gate-skip.f90
A flang/test/Lower/OpenACC/acc-routine-bind-string-undeclared.f90
A flang/test/Lower/OpenACC/acc-routine-bind-undeclared.f90
A flang/test/Lower/OpenACC/do-concurrent-collapse.f90
R flang/test/Lower/OpenMP/Todo/groupprivate.f90
M flang/test/Lower/OpenMP/Todo/multiple-types-declare_reduction.f90
M flang/test/Lower/OpenMP/declare-reduction-character-allocatable.f90
M flang/test/Lower/OpenMP/declare-reduction-finalizer.f90
M flang/test/Lower/OpenMP/declare-reduction-initializer-component.f90
M flang/test/Lower/OpenMP/declare-reduction-initializer-defined-assign.f90
M flang/test/Lower/OpenMP/declare-reduction-initializer-rhs-call.f90
M flang/test/Lower/OpenMP/declare-reduction-no-initializer-intrinsic.f90
M flang/test/Lower/OpenMP/declare-reduction-no-initializer-target-derived.f90
A flang/test/Lower/OpenMP/declare-reduction-same-name-different-scope.f90
M flang/test/Lower/OpenMP/declare-reduction-target-intrinsic.f90
A flang/test/Lower/OpenMP/groupprivate-modfile.f90
A flang/test/Lower/OpenMP/groupprivate.f90
M flang/test/Lower/OpenMP/omp-declare-reduction-combsub.f90
M flang/test/Lower/OpenMP/omp-declare-reduction-derivedtype.f90
M flang/test/Lower/OpenMP/omp-declare-reduction-initsub.f90
M flang/test/Lower/OpenMP/omp-declare-reduction.f90
A flang/test/Semantics/OpenACC/acc-collapse-do-concurrent.f90
M flang/test/Semantics/OpenMP/clause-validity01.f90
M flang/test/Semantics/OpenMP/declarative-directive01.f90
M flang/test/Semantics/OpenMP/requires01.f90
M flang/test/Semantics/OpenMP/requires03.f90
M flang/test/Semantics/OpenMP/requires04.f90
M flang/test/Semantics/OpenMP/requires05.f90
M flang/test/Semantics/OpenMP/requires06.f90
M flang/test/Semantics/OpenMP/requires07.f90
M flang/test/Semantics/OpenMP/requires08.f90
M flang/test/Semantics/OpenMP/requires10.f90
M flang/test/Semantics/OpenMP/single03.f90
M flang/test/Semantics/OpenMP/single04.f90
M flang/test/Semantics/call47.f90
A flang/test/Semantics/io-implied-do01.f90
A flang/test/Semantics/modfile84.f90
A flang/test/Semantics/resolve130.f90
A flang/test/Semantics/resolve131.f90
A flang/test/Transforms/debug-fake-use-multiple-dimensions.fir
A flang/test/Transforms/debug-fake-use-multiple-returns.fir
M flang/test/Transforms/debug-fake-use.fir
A flang/test/Transforms/external-name-interop-acc-routine-bind.fir
M flang/tools/CMakeLists.txt
A flang/tools/fakeflang/CMakeLists.txt
A flang/tools/fakeflang/ensure_flang_exists.cmake
A flang/tools/fakeflang/fakeflang.cpp
M flang/tools/flang-driver/CMakeLists.txt
M libc/benchmarks/CMakeLists.txt
A libc/benchmarks/LibcRsqrtf16GoogleBenchmarkMain.cpp
M libc/config/baremetal/riscv/entrypoints.txt
M libc/config/freebsd/x86_64/entrypoints.txt
M libc/hdr/CMakeLists.txt
A libc/hdr/sys_resource_macros.h
M libc/hdr/types/CMakeLists.txt
A libc/hdr/types/struct_winsize.h
M libc/include/CMakeLists.txt
M libc/include/llvm-libc-macros/linux/sys-ioctl-macros.h
M libc/include/llvm-libc-macros/linux/sys-resource-macros.h
M libc/include/llvm-libc-macros/linux/unistd-macros.h
M libc/include/llvm-libc-types/CMakeLists.txt
A libc/include/llvm-libc-types/struct_winsize.h
M libc/include/sys/ioctl.yaml
M libc/include/unistd.yaml
M libc/lib/CMakeLists.txt
M libc/src/__support/FPUtil/double_double.h
M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
A libc/src/__support/OSUtil/linux/syscall_wrappers/getcwd.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/prlimit.h
A libc/src/__support/OSUtil/linux/syscall_wrappers/sysinfo.h
M libc/src/__support/math/CMakeLists.txt
M libc/src/__support/math/cbrtf16.h
M libc/src/__support/math/hypot.h
M libc/src/__support/math/rsqrtf16.h
M libc/src/math/docs/add_math_function.md
M libc/src/string/memory_utils/arm/inline_memset.h
M libc/src/sys/resource/linux/CMakeLists.txt
M libc/src/sys/resource/linux/getrlimit.cpp
M libc/src/sys/resource/linux/setrlimit.cpp
M libc/src/unistd/linux/CMakeLists.txt
M libc/src/unistd/linux/ftruncate.cpp
M libc/src/unistd/linux/getcwd.cpp
M libc/src/unistd/linux/getentropy.cpp
M libc/src/unistd/linux/link.cpp
M libc/src/unistd/linux/sysconf.cpp
M libc/test/src/sys/ioctl/linux/CMakeLists.txt
M libc/test/src/sys/ioctl/linux/ioctl_test.cpp
M libc/test/src/unistd/sysconf_test.cpp
M libcxx/docs/ABIGuarantees.rst
M libcxx/docs/FeatureTestMacroTable.rst
A libcxx/docs/PostMeetingProcedure.rst
M libcxx/docs/ReleaseNotes/23.rst
A libcxx/docs/Status/Cxx26.rst
A libcxx/docs/Status/Cxx26Issues.csv
A libcxx/docs/Status/Cxx26Papers.csv
A libcxx/docs/Status/Cxx29.rst
A libcxx/docs/Status/Cxx29Issues.csv
A libcxx/docs/Status/Cxx29Papers.csv
R libcxx/docs/Status/Cxx2c.rst
R libcxx/docs/Status/Cxx2cIssues.csv
R libcxx/docs/Status/Cxx2cPapers.csv
M libcxx/docs/index.rst
M libcxx/include/__configuration/abi.h
M libcxx/include/__cstddef/byte.h
M libcxx/include/__math/abs.h
M libcxx/include/__numeric/accumulate.h
M libcxx/include/__numeric/gcd_lcm.h
M libcxx/include/__numeric/inner_product.h
M libcxx/include/__numeric/pstl.h
M libcxx/include/__numeric/reduce.h
M libcxx/include/__numeric/transform_reduce.h
M libcxx/include/__random/bernoulli_distribution.h
M libcxx/include/__random/binomial_distribution.h
M libcxx/include/__random/cauchy_distribution.h
M libcxx/include/__random/chi_squared_distribution.h
M libcxx/include/__random/discard_block_engine.h
M libcxx/include/__random/discrete_distribution.h
M libcxx/include/__random/exponential_distribution.h
M libcxx/include/__random/extreme_value_distribution.h
M libcxx/include/__random/fisher_f_distribution.h
M libcxx/include/__random/gamma_distribution.h
M libcxx/include/__random/generate_canonical.h
M libcxx/include/__random/geometric_distribution.h
M libcxx/include/__random/independent_bits_engine.h
M libcxx/include/__random/linear_congruential_engine.h
M libcxx/include/__random/lognormal_distribution.h
M libcxx/include/__random/mersenne_twister_engine.h
M libcxx/include/__random/negative_binomial_distribution.h
M libcxx/include/__random/normal_distribution.h
M libcxx/include/__random/piecewise_constant_distribution.h
M libcxx/include/__random/piecewise_linear_distribution.h
M libcxx/include/__random/poisson_distribution.h
M libcxx/include/__random/random_device.h
M libcxx/include/__random/seed_seq.h
M libcxx/include/__random/shuffle_order_engine.h
M libcxx/include/__random/student_t_distribution.h
M libcxx/include/__random/subtract_with_carry_engine.h
M libcxx/include/__random/uniform_int_distribution.h
M libcxx/include/__random/uniform_real_distribution.h
M libcxx/include/__random/weibull_distribution.h
M libcxx/include/__utility/constant_wrapper.h
M libcxx/include/deque
M libcxx/include/map
M libcxx/include/optional
M libcxx/include/string
M libcxx/include/string.h
M libcxx/include/utility
M libcxx/include/version
M libcxx/modules/std/utility.inc
M libcxx/src/atomic.cpp
M libcxx/test/configs/ibm-libc++-shared.cfg.in
M libcxx/test/libcxx/concepts/concepts.arithmetic/__libcpp_signed_integer.compile.pass.cpp
M libcxx/test/libcxx/concepts/concepts.arithmetic/__libcpp_unsigned_integer.compile.pass.cpp
A libcxx/test/libcxx/containers/sequences/deque/lower_deque_block_size.default.compile.pass.cpp
A libcxx/test/libcxx/containers/sequences/deque/lower_deque_block_size.lower.compile.pass.cpp
M libcxx/test/libcxx/containers/sequences/deque/spare_block_handling.pass.cpp
M libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
M libcxx/test/libcxx/language.support/nodiscard.verify.cpp
R libcxx/test/libcxx/numerics/nodiscard.verify.cpp
A libcxx/test/libcxx/numerics/numeric.ops/nodiscard.verify.cpp
A libcxx/test/libcxx/numerics/rand/nodiscard.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bernoulli/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.geo/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.negbin/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.cauchy/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.chisq/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.f/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.lognormal/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.normal/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.norm/rand.dist.norm.t/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.exp/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.extreme/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.gamma/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.poisson/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.weibull/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.pconst/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.plinear/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/bad_engine.verify.cpp
M libcxx/test/libcxx/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.real/bad_engine.verify.cpp
M libcxx/test/libcxx/utilities/bit/nodiscard.verify.cpp
M libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each.associative.pass.cpp
M libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/ranges.for_each.associative.pass.cpp
M libcxx/test/std/containers/associative/map/map.cons/move_alloc.pass.cpp
M libcxx/test/std/containers/associative/map/map.cons/move_assign.pass.cpp
M libcxx/test/std/containers/associative/map/map.modifiers/merge.pass.cpp
M libcxx/test/std/containers/associative/map/map.ops/contains.pass.cpp
M libcxx/test/std/containers/associative/map/map.ops/contains_transparent.pass.cpp
M libcxx/test/std/containers/associative/multimap/empty.pass.cpp
M libcxx/test/std/containers/associative/multimap/get_allocator.pass.cpp
M libcxx/test/std/containers/associative/multimap/incomplete_type.pass.cpp
M libcxx/test/std/containers/associative/multimap/iterator.pass.cpp
M libcxx/test/std/containers/associative/multimap/max_size.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/assign_initializer_list.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/compare.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/compare_alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/copy.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/copy_alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/copy_assign.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/deduct.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/deduct_const.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/default.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/default_noexcept.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/from_range.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/initializer_list.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/initializer_list_compare.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/initializer_list_compare_alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/iter_iter.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/iter_iter_comp.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/iter_iter_comp_alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/move.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/move_alloc.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/move_assign.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.erasure/erase_if.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/clear.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/emplace.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/emplace_hint.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/erase_iter.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/erase_iter_iter.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/erase_key.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/extract_iterator.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/extract_key.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_allocator_requirements.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_cv.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_initializer_list.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_iter_cv.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_iter_iter.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_iter_rv.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_node_type.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_node_type_hint.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_range.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_rv.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.modifiers/merge.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.nonmember/compare.three_way.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.nonmember/op_compare.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.observers/key_comp.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.observers/value_comp.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/count.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/count0.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/count_transparent.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/equal_range.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/equal_range0.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/equal_range_transparent.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/find.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/find0.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/lower_bound.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/lower_bound0.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/upper_bound.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.ops/upper_bound0.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.special/member_swap.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.special/non_member_swap.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.special/swap_noexcept.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.value_compare/invoke.pass.cpp
M libcxx/test/std/containers/associative/multimap/multimap.value_compare/types.pass.cpp
M libcxx/test/std/containers/associative/multimap/size.pass.cpp
M libcxx/test/std/containers/associative/multimap/types.pass.cpp
M libcxx/test/std/containers/container.node/node_handle.pass.cpp
M libcxx/test/std/containers/views/mdspan/extents/bitint.pass.cpp
M libcxx/test/std/containers/views/mdspan/layout_left/index_operator.pass.cpp
M libcxx/test/std/containers/views/mdspan/layout_right/index_operator.pass.cpp
M libcxx/test/std/containers/views/mdspan/layout_stride/index_operator.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array.pass.cpp
M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete.pass.cpp
M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp
M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp
M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp
M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
A libcxx/test/std/language.support/support.types/byte.compile.pass.cpp
R libcxx/test/std/language.support/support.types/byte.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/and.assign.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/and.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/enum_direct_init.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/lshift.assign.compile.fail.cpp
M libcxx/test/std/language.support/support.types/byteops/lshift.assign.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/lshift.compile.fail.cpp
M libcxx/test/std/language.support/support.types/byteops/lshift.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/not.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/or.assign.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/or.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/rshift.assign.compile.fail.cpp
M libcxx/test/std/language.support/support.types/byteops/rshift.assign.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/rshift.compile.fail.cpp
M libcxx/test/std/language.support/support.types/byteops/rshift.pass.cpp
R libcxx/test/std/language.support/support.types/byteops/to_integer.compile.fail.cpp
M libcxx/test/std/language.support/support.types/byteops/to_integer.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/xor.assign.pass.cpp
M libcxx/test/std/language.support/support.types/byteops/xor.pass.cpp
M libcxx/test/std/numerics/bit/bit.pow.two/bit_ceil.pass.cpp
M libcxx/test/std/numerics/bit/bit.pow.two/bit_floor.pass.cpp
M libcxx/test/std/numerics/bit/bit.pow.two/bit_width.pass.cpp
M libcxx/test/std/numerics/bit/bit.pow.two/has_single_bit.pass.cpp
M libcxx/test/std/numerics/bit/bitops.count/countl_one.pass.cpp
M libcxx/test/std/numerics/bit/bitops.count/countl_zero.pass.cpp
M libcxx/test/std/numerics/bit/bitops.count/countr_one.pass.cpp
M libcxx/test/std/numerics/bit/bitops.count/countr_zero.pass.cpp
M libcxx/test/std/numerics/bit/bitops.count/popcount.pass.cpp
M libcxx/test/std/numerics/bit/bitops.rot/rotl.pass.cpp
M libcxx/test/std/numerics/bit/bitops.rot/rotr.pass.cpp
M libcxx/test/std/numerics/bit/byteswap.pass.cpp
M libcxx/test/std/numerics/bit/byteswap.verify.cpp
M libcxx/test/std/numerics/c.math/abs.pass.cpp
M libcxx/test/std/numerics/numeric.ops/numeric.ops.sat/saturating.bitint.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/convert.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/ctad.compile.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/cw.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/cw_fixed.array.ctor.pass.cpp
R libcxx/test/std/utilities/const.wrap.class/cw_fixed.ctor.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/subscript.pass.cpp
A libcxx/test/std/utilities/const.wrap.class/template.verify.cpp
M libcxx/test/std/utilities/const.wrap.class/types.compile.pass.cpp
M libcxx/test/std/utilities/const.wrap.class/unary_ops.pass.cpp
R libcxx/test/std/utilities/format/format.arguments/format.arg.store/make_format_args.bitint.verify.cpp
M libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp
M libcxx/test/std/utilities/utility/utility.intcmp/intcmp.bitint.pass.cpp
M libcxx/test/support/test_macros.h
M libcxx/utils/ci/lnt/README.md
M libcxx/utils/ci/lnt/run-benchbot
M libcxx/utils/ci/lnt/run-benchmarks
M libcxx/utils/conformance
M libcxx/utils/gdb/libcxx/printers.py
M libcxx/utils/generate_feature_test_macro_components.py
M libcxx/utils/libcxx/test/features/libcxx_macros.py
M libunwind/src/UnwindRegistersSave.S
M lld/ELF/Arch/AArch64.cpp
M lld/ELF/Arch/LoongArch.cpp
M lld/ELF/ScriptParser.cpp
M lld/ELF/Writer.cpp
M lld/MachO/ICF.cpp
M lld/MachO/InputFiles.cpp
M lld/docs/ReleaseNotes.rst
M lld/test/COFF/time-trace.s
M lld/test/ELF/aarch64-tls-le.s
M lld/test/ELF/aarch64-tlsld-ldst.s
M lld/test/ELF/keep-data-section-prefix.s
M lld/test/ELF/linkerscript/data-segment-relro.test
A lld/test/ELF/linkerscript/overlay-symbols.test
A lld/test/ELF/loongarch-pcadd-hi20.s
M lld/test/ELF/lto/thinlto-time-trace.ll
M lld/test/ELF/relro-non-contiguous-script-data.s
M lld/test/ELF/relro-non-contiguous.s
M lld/test/ELF/time-trace.s
A lld/test/MachO/icf-ignore-literal-ptr-labels.s
A lld/test/MachO/icf-safe-data-addrsig.s
A lld/test/MachO/ignore-literal-cstring-labels.s
M lld/test/MachO/map-file.s
M lld/test/MachO/read-workers-order-obj.s
M lld/test/MachO/read-workers-order.s
M lld/test/MachO/thinlto-time-trace.ll
M lld/test/MachO/time-trace.s
M lld/test/wasm/reloc-relative.s
M lld/wasm/InputChunks.cpp
M lld/wasm/InputFiles.cpp
M lldb/bindings/interface/SBTargetDocstrings.i
M lldb/bindings/python/CMakeLists.txt
M lldb/cmake/modules/AddLLDB.cmake
M lldb/cmake/modules/LLDBConfig.cmake
M lldb/docs/resources/lldbgdbremote.md
M lldb/examples/darwin/heap_find/heap.py
A lldb/examples/python/delayed_enable.py
M lldb/include/lldb/API/SBTarget.h
M lldb/include/lldb/Breakpoint/Breakpoint.h
M lldb/include/lldb/Core/Section.h
M lldb/include/lldb/Host/Editline.h
M lldb/include/lldb/Host/ProcessLaunchInfo.h
M lldb/include/lldb/Target/Language.h
M lldb/include/lldb/Utility/FileSpec.h
M lldb/include/lldb/Utility/ProcessInfo.h
M lldb/packages/Python/lldbsuite/test/builders/builder.py
M lldb/packages/Python/lldbsuite/test/configuration.py
M lldb/packages/Python/lldbsuite/test/dotest.py
M lldb/packages/Python/lldbsuite/test/dotest_args.py
M lldb/packages/Python/lldbsuite/test/lldbpexpect.py
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
A lldb/packages/Python/lldbsuite/test/make/WASI.rules
M lldb/source/API/SBFrame.cpp
M lldb/source/API/SBTarget.cpp
M lldb/source/Breakpoint/Breakpoint.cpp
M lldb/source/Commands/CommandCompletions.cpp
M lldb/source/Commands/CommandObjectBreakpoint.cpp
M lldb/source/Commands/CommandObjectPlatform.cpp
M lldb/source/Core/ModuleList.cpp
M lldb/source/Core/PluginManager.cpp
M lldb/source/Core/Section.cpp
M lldb/source/Expression/IRExecutionUnit.cpp
M lldb/source/Host/common/Editline.cpp
M lldb/source/Host/macosx/objcxx/Host.mm
M lldb/source/Host/windows/PseudoConsole.cpp
M lldb/source/Host/windows/PythonRuntimeLoaderWindows.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
M lldb/source/Plugins/ExpressionParser/Clang/InjectPointerSigningFixups.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
M lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp
M lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.cpp
M lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/ScriptInterpreter/Lua/CMakeLists.txt
M lldb/source/Plugins/ScriptInterpreter/Lua/LuaState.cpp
M lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
M lldb/source/Plugins/SymbolVendor/PECOFF/SymbolVendorPECOFF.cpp
M lldb/source/Plugins/SymbolVendor/wasm/SymbolVendorWasm.cpp
M lldb/source/Symbol/Function.cpp
M lldb/source/Target/Language.cpp
M lldb/source/Target/Memory.cpp
M lldb/source/Target/Platform.cpp
M lldb/source/Target/Target.cpp
M lldb/source/Utility/FileSpec.cpp
M lldb/source/Utility/ProcessInfo.cpp
M lldb/test/API/CMakeLists.txt
M lldb/test/API/api/listeners/main.c
M lldb/test/API/commands/expression/anonymous-struct/TestCallUserAnonTypedef.py
M lldb/test/API/commands/expression/dollar-in-variable/TestDollarInVariable.py
M lldb/test/API/commands/expression/ir-interpreter/main.c
A lldb/test/API/commands/expression/ptrauth-weak-symbols/Makefile
A lldb/test/API/commands/expression/ptrauth-weak-symbols/TestPtrauthWeakSymbols.py
A lldb/test/API/commands/expression/ptrauth-weak-symbols/dylib.c
A lldb/test/API/commands/expression/ptrauth-weak-symbols/dylib.h
A lldb/test/API/commands/expression/ptrauth-weak-symbols/main.c
A lldb/test/API/commands/expression/ptrauth-weak-symbols/module.modulemap
M lldb/test/API/commands/expression/radar_9673664/main.c
M lldb/test/API/commands/expression/top-level/dummy.cpp
M lldb/test/API/commands/expression/weak_symbols/main.c
M lldb/test/API/commands/frame/diagnose/inheritance/main.cpp
M lldb/test/API/commands/platform/process/list/TestProcessList.py
M lldb/test/API/commands/process/attach/TestProcessAttach.py
M lldb/test/API/commands/register/register_command/TestRegisters.py
M lldb/test/API/commands/target/create-deps/TestTargetCreateDeps.py
M lldb/test/API/functionalities/always-run-threads/TestAlwaysRunThreadNames.py
M lldb/test/API/functionalities/asan/main.c
M lldb/test/API/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
M lldb/test/API/functionalities/deleted-executable/TestDeletedExecutable.py
M lldb/test/API/functionalities/exec/TestExec.py
M lldb/test/API/functionalities/fork/resumes-child/TestForkResumesChild.py
M lldb/test/API/functionalities/gdb_remote_client/TestPlatformKill.py
M lldb/test/API/functionalities/inferior-changed/TestInferiorChanged.py
M lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashing.py
M lldb/test/API/functionalities/inferior-crashing/TestInferiorCrashingStep.py
M lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
M lldb/test/API/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferiorStep.py
M lldb/test/API/functionalities/longjmp/TestLongjmp.py
M lldb/test/API/functionalities/memory-region/main.cpp
M lldb/test/API/functionalities/object-file/bin/hello.c
M lldb/test/API/functionalities/object-file/bin/hello.cpp
M lldb/test/API/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py
M lldb/test/API/functionalities/plugins/python_os_plugin/main.c
M lldb/test/API/functionalities/process_group/TestChangeProcessGroup.py
M lldb/test/API/functionalities/process_save_core_minidump/main.cpp
M lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py
M lldb/test/API/functionalities/rerun_and_expr_dylib/TestRerunAndExprDylib.py
M lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
M lldb/test/API/functionalities/step-vrs-interrupt/main.cpp
M lldb/test/API/functionalities/tail_call_frames/cross_dso/TestCrossDSOTailCalls.py
M lldb/test/API/functionalities/thread/create_after_attach/main.cpp
M lldb/test/API/functionalities/tsan/thread_leak/main.c
M lldb/test/API/lang/c/anonymous/TestAnonymous.py
M lldb/test/API/lang/c/blocks/TestBlocks.py
M lldb/test/API/lang/c/calling-conventions/TestCCallingConventions.py
M lldb/test/API/lang/c/conflicting-symbol/TestConflictingSymbol.py
M lldb/test/API/lang/c/const_variables/TestConstVariables.py
M lldb/test/API/lang/c/const_variables/main.c
M lldb/test/API/lang/c/enum_types/TestEnumTypes.py
M lldb/test/API/lang/c/fpeval/TestFPEval.py
M lldb/test/API/lang/c/function_types/TestFunctionTypes.py
A lldb/test/API/lang/c/libc_calls/Makefile
A lldb/test/API/lang/c/libc_calls/TestLibcCalls.py
A lldb/test/API/lang/c/libc_calls/main.c
M lldb/test/API/lang/c/modules/TestCModules.py
M lldb/test/API/lang/c/register_variables/test.c
M lldb/test/API/lang/c/sizeof/TestCSizeof.py
M lldb/test/API/lang/c/struct_types/TestStructTypes.py
M lldb/test/API/lang/cpp/abi_tag_structors/TestAbiTagStructors.py
M lldb/test/API/lang/cpp/const_static_integral_member/TestConstStaticIntegralMember.py
M lldb/test/API/lang/cpp/decl-from-submodule/TestDeclFromSubmodule.py
M lldb/test/API/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
M lldb/test/API/lang/cpp/extern_c/main.cpp
M lldb/test/API/lang/cpp/floating-types-specialization/TestCppFloatingTypesSpecialization.py
M lldb/test/API/lang/cpp/llvm-style/TestLLVMStyle.py
M lldb/test/API/lang/cpp/namespace/TestNamespace.py
M lldb/test/API/lang/cpp/namespace/TestNamespaceLookup.py
M lldb/test/API/lang/cpp/namespace_conflicts/TestNamespaceConflicts.py
M lldb/test/API/lang/cpp/operators/TestCppOperators.py
M lldb/test/API/lang/cpp/printf/TestPrintf.py
M lldb/test/API/lang/cpp/static_members/TestCPPStaticMembers.py
M lldb/test/API/lang/cpp/symbols/TestSymbols.py
M lldb/test/API/lang/cpp/template-diagnostic-hint/TestTemplateDiagnosticHint.py
M lldb/test/API/lang/cpp/template-function/TestTemplateFunctions.py
M lldb/test/API/lang/cpp/this/TestCPPThis.py
M lldb/test/API/lang/cpp/unique-types/main.cpp
M lldb/test/API/lang/cpp/unique-types4/TestUniqueTypes4.py
M lldb/test/API/lang/objc/bitfield_ivars/TestBitfieldIvars.py
M lldb/test/API/lang/objc/hidden-ivars/TestHiddenIvars.py
M lldb/test/API/lang/objcxx/conflicting-names-class-update-utility-expr/TestObjCConflictingNamesForClassUpdateExpr.py
M lldb/test/API/lit.cfg.py
M lldb/test/API/lit.site.cfg.py.in
A lldb/test/API/macosx/deny-attach/Makefile
A lldb/test/API/macosx/deny-attach/TestDenyAttach.py
A lldb/test/API/macosx/deny-attach/main.c
M lldb/test/API/macosx/profile_vrs_detach/main.c
M lldb/test/API/macosx/riscv32-corefile/TestRV32MachOCorefile.py
M lldb/test/API/python_api/breakpoint/main.c
M lldb/test/API/python_api/hello_world/TestHelloWorld.py
A lldb/test/API/python_api/persistent_decls/Makefile
A lldb/test/API/python_api/persistent_decls/TestPersistentDecls.py
A lldb/test/API/python_api/persistent_decls/main.c
M lldb/test/API/python_api/process/address-masks/main.c
M lldb/test/API/python_api/sbvalue_const_addrof/main.cpp
M lldb/test/API/python_api/sbvalue_unsigned_enum_bitfield_value/main.cpp
M lldb/test/API/python_api/target/main.c
M lldb/test/API/python_api/unified_section_list/main.cpp
M lldb/test/API/python_api/unnamed_symbol_lookup/TestUnnamedSymbolLookup.py
M lldb/test/API/sanity/TestModuleCacheSanity.py
M lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py
M lldb/test/API/tools/lldb-dap/cancel/main.c
M lldb/test/API/tools/lldb-dap/eventStatistic/main.cpp
M lldb/test/API/tools/lldb-dap/exception/cpp/TestDAP_exception_cpp.py
M lldb/test/API/tools/lldb-dap/launch/TestDAP_launch_extra_launch_commands.py
M lldb/test/API/tools/lldb-dap/launch/main.c
M lldb/test/API/tools/lldb-dap/locations/main.cpp
M lldb/test/API/tools/lldb-dap/module/TestDAP_module.py
M lldb/test/API/tools/lldb-dap/restart/main.c
M lldb/test/API/tools/lldb-dap/send-event/main.c
M lldb/test/API/tools/lldb-dap/stackTrace/subtleFrames/main.cpp
M lldb/test/API/tools/lldb-dap/startDebugging/main.c
M lldb/test/API/tools/lldb-dap/terminated-event/main.cpp
M lldb/test/API/tools/lldb-dap/unknown/main.c
M lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
M lldb/test/API/tools/lldb-server/main.cpp
M lldb/test/CMakeLists.txt
A lldb/test/Shell/Expr/wasm-no-objc-codegen.test
A lldb/test/Shell/ObjectFile/ELF/build-id-case-debug-only.yaml
M lldb/test/Shell/ObjectFile/wasm/basic.yaml
M lldb/test/Shell/ObjectFile/wasm/embedded-debug-sections.yaml
M lldb/test/Shell/ObjectFile/wasm/stripped-debug-sections.yaml
M lldb/test/Shell/ObjectFile/wasm/unified-debug-sections.yaml
M lldb/test/Shell/Settings/TestModuleCacheSanity.test
A lldb/test/Shell/SymbolFile/DWARF/x86/prologue-entry-not-covered.s
M lldb/tools/debugserver/source/MacOSX/MachProcess.mm
M lldb/tools/debugserver/source/RNBRemote.cpp
M lldb/tools/lldb-dap/DAP.cpp
M lldb/tools/lldb-dap/DAPSessionManager.cpp
M lldb/tools/lldb-dap/EventHelper.cpp
M lldb/tools/lldb-dap/extension/package.json
M lldb/unittests/CMakeLists.txt
M lldb/unittests/Editline/EditlineTest.cpp
M lldb/unittests/Host/HostTest.cpp
A lldb/unittests/ObjectContainer/CMakeLists.txt
A lldb/unittests/ObjectContainer/ObjectContainerUniversalMachOTest.cpp
M lldb/unittests/Protocol/CMakeLists.txt
A lldb/unittests/Protocol/MCPErrorTest.cpp
A lldb/unittests/Protocol/MCPPluginTest.cpp
A lldb/unittests/Protocol/MCPServerInfoTest.cpp
A lldb/unittests/Protocol/MCPTransportTest.cpp
M lldb/unittests/Protocol/ProtocolMCPServerTest.cpp
M lldb/unittests/Protocol/ProtocolMCPTest.cpp
M lldb/unittests/TestingSupport/Host/JSONTransportTestUtilities.h
M lldb/unittests/Utility/ProcessInfoTest.cpp
M llvm/CMakeLists.txt
M llvm/README.txt
M llvm/cmake/modules/HandleLLVMOptions.cmake
M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
M llvm/docs/AMDGPUAsyncOperations.rst
M llvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst
M llvm/docs/AMDGPUExecutionSynchronization.rst
A llvm/docs/CMake.md
R llvm/docs/CMake.rst
A llvm/docs/CodeGenerator.md
R llvm/docs/CodeGenerator.rst
A llvm/docs/CodingStandards.md
R llvm/docs/CodingStandards.rst
A llvm/docs/CommandGuide/index.md
R llvm/docs/CommandGuide/index.rst
A llvm/docs/Contributing.md
R llvm/docs/Contributing.rst
A llvm/docs/DeveloperPolicy.md
R llvm/docs/DeveloperPolicy.rst
A llvm/docs/GettingInvolved.md
R llvm/docs/GettingInvolved.rst
A llvm/docs/GettingStarted.md
R llvm/docs/GettingStarted.rst
A llvm/docs/GettingStartedTutorials.md
R llvm/docs/GettingStartedTutorials.rst
A llvm/docs/GitHub.md
R llvm/docs/GitHub.rst
M llvm/docs/GitRepositoryPolicy.md
M llvm/docs/InstrRefDebugInfo.md
M llvm/docs/LangRef.rst
M llvm/docs/PDB/index.rst
A llvm/docs/Passes.md
R llvm/docs/Passes.rst
A llvm/docs/ProgrammersManual.md
R llvm/docs/ProgrammersManual.rst
M llvm/docs/ProjectGovernance.rst
A llvm/docs/RFCProcess.md
R llvm/docs/RFCProcess.rst
A llvm/docs/Reference.md
R llvm/docs/Reference.rst
M llvm/docs/ReleaseNotes.md
M llvm/docs/RemoveDIsDebugInfo.md
M llvm/docs/Security.rst
A llvm/docs/SourceLevelDebugging.md
R llvm/docs/SourceLevelDebugging.rst
M llvm/docs/SphinxQuickstartTemplate.md
A llvm/docs/TableGen/index.md
R llvm/docs/TableGen/index.rst
A llvm/docs/TestingGuide.md
R llvm/docs/TestingGuide.rst
A llvm/docs/UserGuides.md
R llvm/docs/UserGuides.rst
A llvm/docs/WritingAnLLVMBackend.md
R llvm/docs/WritingAnLLVMBackend.rst
A llvm/docs/WritingAnLLVMNewPMPass.md
R llvm/docs/WritingAnLLVMNewPMPass.rst
A llvm/docs/WritingAnLLVMPass.md
R llvm/docs/WritingAnLLVMPass.rst
M llvm/docs/conf.py
A llvm/docs/index.md
R llvm/docs/index.rst
M llvm/examples/OrcV2Examples/CMakeLists.txt
A llvm/examples/OrcV2Examples/LLJITWithSymbolAliases/CMakeLists.txt
A llvm/examples/OrcV2Examples/LLJITWithSymbolAliases/LLJITWithSymbolAliases.cpp
M llvm/include/llvm/ADT/APFloat.h
M llvm/include/llvm/ADT/GenericUniformityImpl.h
M llvm/include/llvm/ADT/GenericUniformityInfo.h
M llvm/include/llvm/ADT/SCCIterator.h
M llvm/include/llvm/Analysis/AssumeBundleQueries.h
M llvm/include/llvm/Analysis/AssumptionCache.h
M llvm/include/llvm/Analysis/ConstantFolding.h
M llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
M llvm/include/llvm/Analysis/InstSimplifyFolder.h
M llvm/include/llvm/Analysis/InstructionSimplify.h
M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
M llvm/include/llvm/Analysis/LoopCacheAnalysis.h
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Analysis/TargetFolder.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/BinaryFormat/DXContainer.h
M llvm/include/llvm/BinaryFormat/WasmRelocs.def
M llvm/include/llvm/Bitcode/BitcodeReader.h
M llvm/include/llvm/CAS/ActionCache.h
M llvm/include/llvm/CAS/MappedFileRegionArena.h
M llvm/include/llvm/CAS/OnDiskDataAllocator.h
M llvm/include/llvm/CAS/OnDiskGraphDB.h
M llvm/include/llvm/CAS/OnDiskKeyValueDB.h
M llvm/include/llvm/CAS/OnDiskTrieRawHashMap.h
M llvm/include/llvm/CAS/UnifiedOnDiskCache.h
M llvm/include/llvm/CGData/OutlinedHashTree.h
M llvm/include/llvm/CGData/StableFunctionMap.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
M llvm/include/llvm/CodeGen/GlobalISel/LegacyLegalizerInfo.h
M llvm/include/llvm/CodeGen/ISDOpcodes.h
M llvm/include/llvm/CodeGen/LiveInterval.h
M llvm/include/llvm/CodeGen/MIR2Vec.h
M llvm/include/llvm/CodeGen/MachineRegionInfo.h
M llvm/include/llvm/CodeGen/RDFGraph.h
M llvm/include/llvm/CodeGen/RDFLiveness.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/DebugInfo/DWARF/LowLevel/DWARFDataExtractorSimple.h
M llvm/include/llvm/DebugInfo/LogicalView/Readers/LVDWARFReader.h
M llvm/include/llvm/DebugInfo/PDB/PDBExtras.h
M llvm/include/llvm/ExecutionEngine/Orc/ELFNixPlatform.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
M llvm/include/llvm/Frontend/OpenMP/OMPConstants.h
M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/BundleAttributes.h
M llvm/include/llvm/IR/ConstantFolder.h
M llvm/include/llvm/IR/IRBuilder.h
M llvm/include/llvm/IR/IRBuilderFolder.h
M llvm/include/llvm/IR/IntrinsicInst.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsRISCV.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/include/llvm/IR/IntrinsicsX86.td
M llvm/include/llvm/IR/LLVMContext.h
M llvm/include/llvm/IR/ModuleSummaryIndex.h
M llvm/include/llvm/IR/NoFolder.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/MC/MCAsmInfo.h
M llvm/include/llvm/MC/MCDXContainerWriter.h
M llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h
M llvm/include/llvm/MC/MCExpr.h
M llvm/include/llvm/MC/MCObjectStreamer.h
M llvm/include/llvm/MC/MCPseudoProbe.h
M llvm/include/llvm/MC/MCStreamer.h
M llvm/include/llvm/MC/MCTargetOptions.h
M llvm/include/llvm/ObjectYAML/DWARFYAML.h
M llvm/include/llvm/Option/ArgList.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Passes/MachinePassRegistry.def
M llvm/include/llvm/ProfileData/MemProf.h
M llvm/include/llvm/ProfileData/SampleProf.h
M llvm/include/llvm/ProfileData/SampleProfReader.h
M llvm/include/llvm/ProfileData/SampleProfWriter.h
M llvm/include/llvm/SandboxIR/Argument.h
M llvm/include/llvm/SandboxIR/BasicBlock.h
M llvm/include/llvm/SandboxIR/Function.h
M llvm/include/llvm/SandboxIR/Instruction.h
M llvm/include/llvm/SandboxIR/Pass.h
M llvm/include/llvm/SandboxIR/Region.h
M llvm/include/llvm/SandboxIR/Tracker.h
M llvm/include/llvm/SandboxIR/Use.h
M llvm/include/llvm/Support/Allocator.h
M llvm/include/llvm/Support/CHERICapabilityFormat.h
M llvm/include/llvm/Support/CommandLine.h
M llvm/include/llvm/Support/Compiler.h
M llvm/include/llvm/Support/ConvertUTF.h
M llvm/include/llvm/Support/DataExtractor.h
M llvm/include/llvm/Support/ELFAttrParserCompact.h
M llvm/include/llvm/Support/GlobPattern.h
M llvm/include/llvm/Support/KnownBits.h
M llvm/include/llvm/Support/LSP/Logging.h
M llvm/include/llvm/Support/LSP/Protocol.h
M llvm/include/llvm/Support/LSP/Transport.h
M llvm/include/llvm/Support/TargetOpcodes.def
M llvm/include/llvm/Support/TimeProfiler.h
M llvm/include/llvm/Support/VirtualOutputConfig.h
M llvm/include/llvm/Target/CGPassBuilderOption.h
M llvm/include/llvm/Target/GenericOpcodes.td
M llvm/include/llvm/Target/GlobalISel/Combine.td
M llvm/include/llvm/Target/TargetSelectionDAG.td
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.def
M llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
M llvm/include/llvm/Transforms/Coroutines/CoroInstr.h
M llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h
M llvm/include/llvm/Transforms/IPO/GlobalDCE.h
M llvm/include/llvm/Transforms/IPO/InstrumentorRuntimeHelper.h
M llvm/include/llvm/Transforms/IPO/SampleContextTracker.h
M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
M llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h
M llvm/include/llvm/Transforms/Instrumentation/MemProfUse.h
M llvm/include/llvm/Transforms/Utils/DebugSSAUpdater.h
M llvm/include/llvm/Transforms/Utils/Local.h
A llvm/include/llvm/Transforms/Utils/LowerCommentStringPass.h
M llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.h
M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h
M llvm/include/llvm/XRay/InstrumentationMap.h
M llvm/lib/Analysis/AssumeBundleQueries.cpp
M llvm/lib/Analysis/AssumptionCache.cpp
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/CtxProfAnalysis.cpp
M llvm/lib/Analysis/Delinearization.cpp
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/Loads.cpp
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/LoopCacheAnalysis.cpp
M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/BinaryFormat/Magic.cpp
M llvm/lib/BinaryFormat/Wasm.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/CAS/OnDiskGraphDB.cpp
M llvm/lib/CAS/OnDiskKeyValueDB.cpp
M llvm/lib/CGData/OutlinedHashTree.cpp
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/lib/CodeGen/BranchFolding.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/GlobalISel/Utils.cpp
M llvm/lib/CodeGen/GlobalMerge.cpp
M llvm/lib/CodeGen/InlineAsmPrepare.cpp
M llvm/lib/CodeGen/LiveInterval.cpp
M llvm/lib/CodeGen/LiveIntervals.cpp
M llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
M llvm/lib/CodeGen/MachineCopyPropagation.cpp
M llvm/lib/CodeGen/MachineRegionInfo.cpp
M llvm/lib/CodeGen/MachineSink.cpp
M llvm/lib/CodeGen/MachineVerifier.cpp
M llvm/lib/CodeGen/MacroFusion.cpp
M llvm/lib/CodeGen/RDFGraph.cpp
M llvm/lib/CodeGen/RDFLiveness.cpp
M llvm/lib/CodeGen/RegisterCoalescer.cpp
M llvm/lib/CodeGen/RenameIndependentSubregs.cpp
M llvm/lib/CodeGen/SafeStack.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/ShrinkWrap.cpp
M llvm/lib/CodeGen/StackColoring.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.h
M llvm/lib/DWP/DWP.cpp
M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
M llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp
M llvm/lib/ExecutionEngine/JITLink/COFF_x86_64.cpp
M llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/BundleAttributes.cpp
M llvm/lib/IR/CMakeLists.txt
M llvm/lib/IR/DebugInfo.cpp
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/Intrinsics.cpp
M llvm/lib/IR/LLVMContext.cpp
M llvm/lib/IR/Operator.cpp
M llvm/lib/IR/PrintPasses.cpp
M llvm/lib/IR/Value.cpp
M llvm/lib/IR/Verifier.cpp
A llvm/lib/IR/VerifierAMDGPU.cpp
A llvm/lib/IR/VerifierInternal.h
M llvm/lib/MC/MCAsmInfo.cpp
M llvm/lib/MC/MCAsmInfoXCOFF.cpp
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCDXContainerWriter.cpp
M llvm/lib/MC/MCDwarf.cpp
M llvm/lib/MC/MCELFStreamer.cpp
M llvm/lib/MC/MCExpr.cpp
M llvm/lib/MC/MCObjectFileInfo.cpp
M llvm/lib/MC/MCObjectStreamer.cpp
M llvm/lib/MC/MCParser/AsmParser.cpp
M llvm/lib/MC/MCParser/MasmParser.cpp
M llvm/lib/MC/MCStreamer.cpp
M llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
M llvm/lib/MC/MCWin64EH.cpp
M llvm/lib/MC/MCWinCOFFStreamer.cpp
M llvm/lib/MC/WasmObjectWriter.cpp
M llvm/lib/ObjCopy/COFF/COFFObjcopy.cpp
M llvm/lib/ObjCopy/DXContainer/DXContainerObjcopy.cpp
M llvm/lib/ObjCopy/ELF/ELFObject.cpp
M llvm/lib/ObjCopy/MachO/MachOLayoutBuilder.cpp
M llvm/lib/ObjCopy/MachO/MachOLayoutBuilder.h
M llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp
M llvm/lib/ObjCopy/MachO/MachOWriter.cpp
M llvm/lib/Object/DXContainer.cpp
M llvm/lib/Object/RelocationResolver.cpp
M llvm/lib/Object/WasmObjectFile.cpp
M llvm/lib/ObjectYAML/MachOEmitter.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/Passes/StandardInstrumentations.cpp
M llvm/lib/ProfileData/MemProfReader.cpp
M llvm/lib/ProfileData/SampleProf.cpp
M llvm/lib/ProfileData/SampleProfReader.cpp
M llvm/lib/Remarks/RemarkStreamer.cpp
M llvm/lib/Support/APFloat.cpp
M llvm/lib/Support/CHERICapabilityFormat.cpp
M llvm/lib/Support/CommandLine.cpp
M llvm/lib/Support/ConvertUTFWrapper.cpp
M llvm/lib/Support/KnownBits.cpp
M llvm/lib/Support/Parallel.cpp
M llvm/lib/Support/SpecialCaseList.cpp
M llvm/lib/Support/TimeProfiler.cpp
M llvm/lib/Support/WithColor.cpp
M llvm/lib/TableGen/TGParser.cpp
M llvm/lib/Target/AArch64/AArch64.h
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64Combine.td
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AArch64PassRegistry.def
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
M llvm/lib/Target/AArch64/AArch64StackTagging.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
M llvm/lib/Target/AArch64/CMakeLists.txt
M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
M llvm/lib/Target/AArch64/GISel/AArch64GlobalISelUtils.cpp
M llvm/lib/Target/AArch64/GISel/AArch64GlobalISelUtils.h
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64O0PreLegalizerCombiner.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
M llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp
A llvm/lib/Target/AArch64/SVEShuffleOpts.cpp
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAsanInstrumentation.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
M llvm/lib/Target/AMDGPU/AMDGPUBarrierLatency.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
A llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
A llvm/lib/Target/AMDGPU/AMDGPUHWEvents.def
A llvm/lib/Target/AMDGPU/AMDGPUHWEvents.h
M llvm/lib/Target/AMDGPU/AMDGPUHazardLatency.cpp
M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUImageIntrinsicOptimizer.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInsertDelayAlu.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
M llvm/lib/Target/AMDGPU/AMDGPULaneMaskUtils.h
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/lib/Target/AMDGPU/AMDGPURewriteUndefForPHI.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSetWavePriority.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp
M llvm/lib/Target/AMDGPU/AMDGPUWaitSGPRHazards.cpp
M llvm/lib/Target/AMDGPU/AMDGPUWaitcntUtils.cpp
M llvm/lib/Target/AMDGPU/AMDGPUWaitcntUtils.h
M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
M llvm/lib/Target/AMDGPU/CMakeLists.txt
M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
M llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h
M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
M llvm/lib/Target/AMDGPU/GCNVOPDUtils.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.cpp
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.h
M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/lib/Target/AMDGPU/R600ISelLowering.h
M llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
M llvm/lib/Target/AMDGPU/SIDefines.h
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/SIInstrInfo.h
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
M llvm/lib/Target/AMDGPU/SIMachineScheduler.h
M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
M llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
M llvm/lib/Target/AMDGPU/SOPInstructions.td
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/Target/AMDGPU/VOP1Instructions.td
M llvm/lib/Target/AMDGPU/VOP2Instructions.td
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
M llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMMCInstLower.cpp
M llvm/lib/Target/ARM/ARMRegisterInfo.td
M llvm/lib/Target/ARM/ARMTargetMachine.cpp
M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
M llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
M llvm/lib/Target/BPF/BPFAsmPrinter.cpp
M llvm/lib/Target/BPF/BPFFrameLowering.cpp
M llvm/lib/Target/BPF/BPFFrameLowering.h
M llvm/lib/Target/BPF/BPFISelLowering.h
M llvm/lib/Target/BPF/BPFSelectionDAGInfo.cpp
M llvm/lib/Target/BPF/BTFDebug.h
M llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.cpp
M llvm/lib/Target/DirectX/CMakeLists.txt
M llvm/lib/Target/DirectX/DXContainerGlobals.cpp
A llvm/lib/Target/DirectX/DXContainerPDB.cpp
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
M llvm/lib/Target/DirectX/DXILOpLowering.cpp
A llvm/lib/Target/DirectX/DXILRemoveUnusedResources.cpp
A llvm/lib/Target/DirectX/DXILRemoveUnusedResources.h
M llvm/lib/Target/DirectX/DXILResourceAccess.cpp
M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
M llvm/lib/Target/DirectX/DirectX.h
M llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
M llvm/lib/Target/DirectX/DirectXPassRegistry.def
M llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
M llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
M llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
M llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
M llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
M llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
M llvm/lib/Target/M68k/M68kInstrAtomics.td
M llvm/lib/Target/M68k/M68kInstrData.td
M llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
M llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
M llvm/lib/Target/Mips/MipsAsmPrinter.cpp
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/Mips/MipsInstrInfo.td
M llvm/lib/Target/Mips/MipsMSAInstrInfo.td
M llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp
M llvm/lib/Target/Mips/MipsRegisterInfo.td
M llvm/lib/Target/Mips/MipsSEISelLowering.cpp
M llvm/lib/Target/Mips/MipsSEISelLowering.h
M llvm/lib/Target/Mips/MipsScheduleGeneric.td
M llvm/lib/Target/Mips/MipsScheduleI6400.td
M llvm/lib/Target/Mips/MipsScheduleP5600.td
M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.h
M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
M llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.cpp
M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
M llvm/lib/Target/RISCV/CMakeLists.txt
M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCV.h
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoC.td
M llvm/lib/Target/RISCV/RISCVInstrInfoF.td
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXCV.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXwch.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZc.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZclsd.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZicbo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZvdot4a8i.td
M llvm/lib/Target/RISCV/RISCVInstrPredicates.td
M llvm/lib/Target/RISCV/RISCVInterleavedAccess.cpp
A llvm/lib/Target/RISCV/RISCVQCRelaxMarking.cpp
M llvm/lib/Target/RISCV/RISCVRegisterInfo.td
M llvm/lib/Target/RISCV/RISCVSubtarget.h
M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
M llvm/lib/Target/SPIRV/Analysis/SPIRVConvergenceRegionAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.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/SPIRVLegalizePointerCast.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVMergeRegionExitTargets.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
M llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.h
M llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
M llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
M llvm/lib/Target/Sparc/SparcISelLowering.cpp
M llvm/lib/Target/Sparc/SparcISelLowering.h
M llvm/lib/Target/Sparc/SparcInstr64Bit.td
M llvm/lib/Target/Sparc/SparcInstrInfo.td
M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h
M llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
M llvm/lib/Target/SystemZ/SystemZTDC.cpp
M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
M llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp
M llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
M llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
M llvm/lib/Target/X86/X86CompressEVEX.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp
M llvm/lib/Target/X86/X86InstrAVX512.td
M llvm/lib/Target/X86/X86InstrFragments.td
M llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
M llvm/lib/Target/X86/X86InstrMisc.td
M llvm/lib/Target/X86/X86IntrinsicsInfo.h
M llvm/lib/Target/X86/X86LowerAMXType.cpp
M llvm/lib/Target/X86/X86MCInstLower.cpp
M llvm/lib/Target/X86/X86WinEHUnwindV3.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaInstPrinter.cpp
M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp
M llvm/lib/TargetParser/AMDGPUTargetParser.cpp
M llvm/lib/TargetParser/Host.cpp
M llvm/lib/Transforms/Coroutines/CoroCleanup.cpp
M llvm/lib/Transforms/Coroutines/Coroutines.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
M llvm/lib/Transforms/IPO/FatLTOCleanup.cpp
M llvm/lib/Transforms/IPO/FunctionImport.cpp
M llvm/lib/Transforms/IPO/FunctionSpecialization.cpp
M llvm/lib/Transforms/IPO/GlobalDCE.cpp
M llvm/lib/Transforms/IPO/HotColdSplitting.cpp
M llvm/lib/Transforms/IPO/IPO.cpp
M llvm/lib/Transforms/IPO/Instrumentor.cpp
M llvm/lib/Transforms/IPO/InstrumentorConfigFile.cpp
M llvm/lib/Transforms/IPO/InstrumentorUtils.cpp
M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/lib/Transforms/IPO/SampleProfile.cpp
M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
M llvm/lib/Transforms/IPO/SampleProfileProbe.cpp
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
M llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
M llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
M llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
M llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
M llvm/lib/Transforms/Scalar/DropUnnecessaryAssumes.cpp
M llvm/lib/Transforms/Scalar/GVN.cpp
M llvm/lib/Transforms/Scalar/JumpThreading.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/lib/Transforms/Scalar/Reassociate.cpp
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
M llvm/lib/Transforms/Utils/CMakeLists.txt
A llvm/lib/Transforms/Utils/LowerCommentStringPass.cpp
M llvm/lib/Transforms/Utils/SCCPSolver.cpp
M llvm/lib/Transforms/Utils/SampleProfileInference.cpp
M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp
M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Scheduler.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
M llvm/lib/Transforms/Vectorize/VPlanUtils.h
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/runtimes/CMakeLists.txt
M llvm/test/Analysis/BasicAA/phi-aa.ll
M llvm/test/Analysis/BasicAA/phi-and-select.ll
M llvm/test/Analysis/BasicAA/recphi.ll
A llvm/test/Analysis/CostModel/AArch64/clmul-fixed.ll
A llvm/test/Analysis/CostModel/AArch64/clmul-scalable.ll
M llvm/test/Analysis/CostModel/AArch64/clmul.ll
M llvm/test/Analysis/CostModel/AMDGPU/div.ll
M llvm/test/Analysis/CostModel/AMDGPU/extractelement.ll
M llvm/test/Analysis/CostModel/AMDGPU/insertelement.ll
M llvm/test/Analysis/CostModel/AMDGPU/maximumnum.ll
M llvm/test/Analysis/CostModel/AMDGPU/minimumnum.ll
M llvm/test/Analysis/CostModel/AMDGPU/rem.ll
M llvm/test/Analysis/CostModel/X86/clmul.ll
A llvm/test/Analysis/CtxProfAnalysis/flatten-prethinlink-requires-guid-metadata.ll
A llvm/test/Analysis/Delinearization/inconsistent-types.ll
A llvm/test/Analysis/DependenceAnalysis/find-gcd-overflow.ll
M llvm/test/Analysis/LoopAccessAnalysis/retry-runtime-checks-after-dependence-analysis.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/LoopnestFixedSize.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/compute-cost-m32.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/compute-cost.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/loads-store.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/matmul.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/matvecmul.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/multi-store.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/single-store.ll
M llvm/test/Analysis/LoopCacheAnalysis/PowerPC/stencil.ll
M llvm/test/Analysis/LoopCacheAnalysis/compute-cost.ll
M llvm/test/Analysis/LoopCacheAnalysis/interchange-cost-beneficial.ll
M llvm/test/Analysis/LoopCacheAnalysis/interchange-refcost-overflow.ll
A llvm/test/Analysis/LoopCacheAnalysis/partially-perfect-nest.ll
M llvm/test/Analysis/MemorySSA/ptr-const-mem.ll
A llvm/test/Analysis/ModuleSummaryAnalysis/implicit-ref-edges.ll
M llvm/test/Analysis/ValueTracking/assume.ll
A llvm/test/Analysis/ValueTracking/knownbits-pdep.ll
A llvm/test/Analysis/ValueTracking/knownbits-pext.ll
A llvm/test/Assembler/autoupgrade-lifetime-intrinsics-invalid-decl.ll
A llvm/test/Bitcode/Inputs/invalid-summary-version.bc
A llvm/test/Bitcode/invalid-summary-version.test
M llvm/test/Bitcode/operand-bundles-bc-analyzer.ll
M llvm/test/CodeGen/AArch64/GlobalISel/combine-binop-neg.mir
A llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.ll
A llvm/test/CodeGen/AArch64/GlobalISel/combine-or-and-xor.mir
A llvm/test/CodeGen/AArch64/GlobalISel/inline-memset-forced.mir
A llvm/test/CodeGen/AArch64/GlobalISel/inline-small-memset.mir
A llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-memset-inline.ll
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-and.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-or.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalize-xor.mir
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
A llvm/test/CodeGen/AArch64/GlobalISel/pr204118.mir
M llvm/test/CodeGen/AArch64/GlobalISel/regbank-insert-vector-elt.mir
M llvm/test/CodeGen/AArch64/GlobalISel/select-insert-vector-elt.mir
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
M llvm/test/CodeGen/AArch64/aarch64-reassociate-accumulators-sve.ll
M llvm/test/CodeGen/AArch64/aarch64-sve-asm.ll
M llvm/test/CodeGen/AArch64/arm64-vcvt_f32_su32.ll
M llvm/test/CodeGen/AArch64/clmul-fixed.ll
M llvm/test/CodeGen/AArch64/clmul-scalable.ll
M llvm/test/CodeGen/AArch64/clmul.ll
M llvm/test/CodeGen/AArch64/cpus.ll
A llvm/test/CodeGen/AArch64/extend-bool-vector-load.ll
M llvm/test/CodeGen/AArch64/fmaximumnum-fminimumnum-select.ll
M llvm/test/CodeGen/AArch64/implicitly-set-zero-high-64-bits.ll
M llvm/test/CodeGen/AArch64/lower-range-metadata-func-call.ll
A llvm/test/CodeGen/AArch64/misched-fusion-no-raw-dependency.mir
A llvm/test/CodeGen/AArch64/pdep.ll
A llvm/test/CodeGen/AArch64/pext.ll
A llvm/test/CodeGen/AArch64/pr204118.ll
M llvm/test/CodeGen/AArch64/print-pipeline-passes.ll
M llvm/test/CodeGen/AArch64/sve-aba.ll
M llvm/test/CodeGen/AArch64/sve-calling-convention-mixed.ll
M llvm/test/CodeGen/AArch64/sve-cntp-combine-i32.ll
M llvm/test/CodeGen/AArch64/sve-cntp-combine-i64.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-imm.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-logical-imm.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-reinterpret.ll
M llvm/test/CodeGen/AArch64/sve-intrinsics-unpred-form.ll
M llvm/test/CodeGen/AArch64/sve-load-compare-store.ll
M llvm/test/CodeGen/AArch64/sve-lsrchain.ll
M llvm/test/CodeGen/AArch64/sve-masked-gather-64b-scaled.ll
M llvm/test/CodeGen/AArch64/sve-masked-gather-64b-unscaled.ll
M llvm/test/CodeGen/AArch64/sve-masked-gather-legalize.ll
M llvm/test/CodeGen/AArch64/sve-masked-gather.ll
M llvm/test/CodeGen/AArch64/sve-masked-scatter-64b-scaled.ll
M llvm/test/CodeGen/AArch64/sve-masked-scatter-64b-unscaled.ll
M llvm/test/CodeGen/AArch64/sve-masked-scatter.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-brk.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmpeq.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmpge.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmpgt.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmphi.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmphs.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmple.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmplo.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmpls.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmplt.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-cmpne.ll
M llvm/test/CodeGen/AArch64/sve-ptest-removal-match.ll
M llvm/test/CodeGen/AArch64/sve-punpklo-combine.ll
M llvm/test/CodeGen/AArch64/sve-saba.ll
A llvm/test/CodeGen/AArch64/sve-tbl-folding-new-pm.ll
A llvm/test/CodeGen/AArch64/sve-tbl-folding-opts.ll
M llvm/test/CodeGen/AArch64/sve-unary-movprfx.ll
M llvm/test/CodeGen/AArch64/sve-uunpklo-load-uzp1-store-combine.ll
M llvm/test/CodeGen/AArch64/sve-vselect-fold.ll
M llvm/test/CodeGen/AArch64/sve2-int-mul.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-int-arith-imm.ll
M llvm/test/CodeGen/AArch64/sve2-rsra.ll
M llvm/test/CodeGen/AArch64/sve2-sli-sri.ll
M llvm/test/CodeGen/AArch64/sve2-sra.ll
M llvm/test/CodeGen/AArch64/sve2-unary-movprfx.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfadd.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmax.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmaxnm.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmin.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfminnm.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul.ll
M llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfsub.ll
M llvm/test/CodeGen/AArch64/vldn_shuffle.ll
A llvm/test/CodeGen/AArch64/windows-elf-frame-record-pairing.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-abs-neg.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-counts-not.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-ext.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-fcvt-bfcvt.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-fcvtlt-fcvtx.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-fcvtzsu.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-flogb.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-frint-frecpx-fsqrt.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-rev.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-urecpe-ursqrte-sqabs-sqneg.ll
M llvm/test/CodeGen/AArch64/zeroing-forms-uscvtf.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/add.v2i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/add.vni16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/add_shl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/addo.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/addsubu64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/and.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/andn2.i1.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/andn2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-asserts.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ashr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/assert-align.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_load_flat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_load_global.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_load_local.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_load_local_2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_optimizations_mul_one.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomic_store_local.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-add-sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-and.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-fmin-fmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-or.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-xchg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw-xor.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_fmin.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_minmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_udec_wrap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/atomicrmw_uinc_wrap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/bitcast_38_i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/bool-legalization.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/br-constant-invalid-sgpr-copy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/bswap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-atomic-fadd.f32-no-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-atomic-fadd.f32-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-atomic-fadd.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-atomic-fadd.v2f16-no-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-atomic-fadd.v2f16-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-load-byte-short.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-load-store-pointers.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-schedule.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/bug-legalization-artifact-combiner-dead-def.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/bug_shuffle_vector_to_scalar.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/call-outgoing-stack-args.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/clamp-fmed3-const-combine.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/clamp-minmax-const-combine.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-ext-fma.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-ext-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-fma-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-ext-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-ext-neg-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-neg-mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-rsq.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-shift-imm-chain.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-shift-of-shifted-logic.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-short-clamp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/combiner-crash.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/constant-bus-restriction.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/crash-stack-address-O0.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/dereferenceable-declaration.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-phis-no-lane-mask-merging.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-i1.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-reg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/divergent-control-flow.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/dropped_debug_info_assert.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/dynamic-alloca-uniform.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement-stack-lower.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i128.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.i8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fabs.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fadd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fceil.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fcmp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ffloor.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-atomic-fadd.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-atomic-fadd.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-atomic-fadd.v2f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch-init.gfx.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/floor.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fma.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmad.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmamix-constant-bus-violation.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmax_legacy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmed3-min-max-const-combine.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmed3.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmin3-fmax3-combine.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmin_legacy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fmul.v2f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fneg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp-atomics-gfx942.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp-int-conversions.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fp64-atomics-gfx90a.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fpext.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fpow.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fptrunc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/frem.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshr-new-regbank-select.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/fsub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f32-no-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f32-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.v2f16-no-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.v2f16-rtn.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-value-addrspaces.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/global-value.illegal.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/hip.extern.shared.array.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/i1-copy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/icmp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/image-waterfall-loop-O0.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/implicit-kernarg-backend-usage-global-isel.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement-stack-lower.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.large.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-concat-vectors.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-copy-scc-vcc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-mad_64_32.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-merge-values.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-mul.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/intrinsic-trunc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-atomicrmw.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/is-safe-to-sink-bug.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lds-global-value.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lds-misaligned-bug.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lds-relocs.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lds-zero-initializer.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-memsetinline.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.abs.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ballot.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ballot.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.dispatch.ptr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.fmas.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.div.scale.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.end.cf.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.end.cf.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.fdot2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.fmul.legacy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.fract.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.frexp.mant.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.if.break.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.if.break.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.atomic.dim.a16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.atomic.dim.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.a16.dim.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.dim.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.o.dim.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.getresinfo.a16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.getresinfo.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.1d.d16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.1d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.2d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.2darraymsaa.a16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.2darraymsaa.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.3d.a16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.3d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.sample.cd.g16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.sample.g16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.store.2d.d16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.store.2d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.implicit.ptr.buffer.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.interp.inreg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.interp.p1.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.kernarg.segment.ptr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.live.mask.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.make.buffer.rsrc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mfma.gfx90a.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mov.dpp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.mul24.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.queue.ptr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.cmpswap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.fadd-with-ret.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.fadd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.integer-minmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.atomic.swap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.format.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.tfe.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.format.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.cmpswap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.fadd-with-ret.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.fadd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.atomic.swap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.load.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.load.format.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.store.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.store.format.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.tbuffer.load.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.tbuffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.tbuffer.store.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.tbuffer.store.i8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.tbuffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.tbuffer.load.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.tbuffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.tbuffer.store.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.tbuffer.store.i8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.tbuffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.rsq.clamp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.setreg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.sleep.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sbfe.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot4.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sdot8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.set.inactive.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.softwqm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.strictwqm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.cmpswap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.fadd-with-ret.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.fadd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.atomic.swap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.format.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.tfe.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.store.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.store.format.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.cmpswap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.fadd-with-ret.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.fadd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.atomic.swap.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.load.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.load.format.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.store.format.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.store.format.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.tbuffer.load.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.tbuffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.tbuffer.load.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.tbuffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sudot4.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sudot8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.trig.preop.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ubfe.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot4.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.udot8.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.update.dpp.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wmma_32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wmma_64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.workgroup.id.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.workitem.id.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wqm.demote.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wqm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.writelane.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.wwm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.atomic.cmpxchg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memcpy.inline.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memcpy.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memmove.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memset.inline.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.memset.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.powi.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-constant.96.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-constant32bit.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-d16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-divergent.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-local.128.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-local.96.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-unaligned.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-uniform-in-vgpr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-uniform.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-zero-and-sign-extending-divergent.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-zero-and-sign-extending-uniform-in-vgpr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/load-zero-and-sign-extending-uniform.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/localizer.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/lshr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mad.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/madmix-constant-bus-violation.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/memory-legalizer-atomic-fence.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/merge-buffer-stores.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/minmaxabs-i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/minmaxabs.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mmra.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mubuf-global.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul-known-bits.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.v2i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/no-ctlz-from-umul-to-lshr-in-postlegalizer.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/non-entry-alloca.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/or.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/orn2.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/readanylane-combines.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbanklegalize-amdgcn.s.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbanklegalize-amdgcn.s.buffer.load.subdword.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.image.load.1d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.image.sample.1d.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.raw.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.raw.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.readlane.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.struct.ptr.buffer.store.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-call.ll
R llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui-salu-float.ll
R llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mui.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sbfx.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sdivrem.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/select-to-fmin-fmax.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sext_inreg.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shader-epilogs.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shl-ext-reduce.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shl.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/shufflevector.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/smed3.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/smrd.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/smul.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-divergent-addr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-local.128.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-local.96.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/store-uniform-addr.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/strict_fma.f16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/strict_fma.f32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/strict_fma.f64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/sub.v2i16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/subo.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/true16-merge-values-s16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/trunc-brc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/trunc.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/uaddsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/ubfx.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/udivrem.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/umed3.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/unmerge-sgpr-s16.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/unsupported-load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/unsupported-ptr-add.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/usubsat.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/v_bfe_i32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/vni8-across-blocks.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/widen-i8-i16-scalar-loads.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-f16-f32-matrix-modifiers.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-imm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-iu-modifiers.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32-swmmac-index_key.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w32.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-f16-f32-matrix-modifiers.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-imm.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-iu-modifiers.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64-swmmac-index_key.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/wmma-gfx12-w64.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/xnor.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/xor.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/zextload.ll
M llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
M llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll
M llvm/test/CodeGen/AMDGPU/abi-attribute-hints-undefined-behavior.ll
M llvm/test/CodeGen/AMDGPU/add-max.ll
M llvm/test/CodeGen/AMDGPU/addrspacecast-gas.ll
M llvm/test/CodeGen/AMDGPU/addrspacecast-known-non-null.ll
M llvm/test/CodeGen/AMDGPU/addrspacecast.gfx6.ll
M llvm/test/CodeGen/AMDGPU/addsub64_carry.ll
M llvm/test/CodeGen/AMDGPU/agpr-register-count.ll
M llvm/test/CodeGen/AMDGPU/alloca.ll
M llvm/test/CodeGen/AMDGPU/allow-check.ll
M llvm/test/CodeGen/AMDGPU/amd.endpgm.ll
M llvm/test/CodeGen/AMDGPU/amdgcn-call-whole-wave.ll
M llvm/test/CodeGen/AMDGPU/amdgcn-cs-chain-intrinsic-dyn-vgpr-w32.ll
M llvm/test/CodeGen/AMDGPU/amdgcn-sin-cos-f16-f32.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-break-large-phis.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-idiv.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-cs-chain-cc.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-cs-chain-preserve-cc.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-inline.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-reloc-const.ll
M llvm/test/CodeGen/AMDGPU/amdgpu.private-memory.ll
M llvm/test/CodeGen/AMDGPU/amdgpu.work-item-intrinsics.deprecated.ll
M llvm/test/CodeGen/AMDGPU/amdpal-callable.ll
M llvm/test/CodeGen/AMDGPU/async-buffer-loads.ll
M llvm/test/CodeGen/AMDGPU/asyncmark-gfx12plus.ll
M llvm/test/CodeGen/AMDGPU/asyncmark-max-pregfx12.ll
M llvm/test/CodeGen/AMDGPU/asyncmark-pregfx12.ll
M llvm/test/CodeGen/AMDGPU/atomicrmw_usub_cond.ll
M llvm/test/CodeGen/AMDGPU/atomicrmw_usub_sat.ll
M llvm/test/CodeGen/AMDGPU/atomics-system-scope.ll
M llvm/test/CodeGen/AMDGPU/atomics_cond_sub.ll
M llvm/test/CodeGen/AMDGPU/barrier-elimination-gfx12.ll
M llvm/test/CodeGen/AMDGPU/barrier-elimination.ll
M llvm/test/CodeGen/AMDGPU/bfi_int.ll
M llvm/test/CodeGen/AMDGPU/bitop3-shared-operand.ll
M llvm/test/CodeGen/AMDGPU/bitop3.ll
M llvm/test/CodeGen/AMDGPU/bitreverse.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointers-contents-legalization.ll
M llvm/test/CodeGen/AMDGPU/buffer-fat-pointers-memcpy.ll
M llvm/test/CodeGen/AMDGPU/buffer-rsrc-ptr-ops.ll
M llvm/test/CodeGen/AMDGPU/buffer-store-dwordx4-vpk-mul-war-hazard-gfx942.mir
M llvm/test/CodeGen/AMDGPU/build-vector-packed-partial-undef.ll
M llvm/test/CodeGen/AMDGPU/bypass-div.ll
M llvm/test/CodeGen/AMDGPU/call-args-inreg.ll
M llvm/test/CodeGen/AMDGPU/call-argument-types.ll
M llvm/test/CodeGen/AMDGPU/call-c-function.ll
M llvm/test/CodeGen/AMDGPU/call-constant.ll
M llvm/test/CodeGen/AMDGPU/call-constexpr.ll
M llvm/test/CodeGen/AMDGPU/call-defs-mode-register.ll
M llvm/test/CodeGen/AMDGPU/call-encoding.ll
M llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll
M llvm/test/CodeGen/AMDGPU/call-preserved-registers.ll
M llvm/test/CodeGen/AMDGPU/call-reqd-group-size.ll
M llvm/test/CodeGen/AMDGPU/call-return-types.ll
M llvm/test/CodeGen/AMDGPU/call-skip.ll
M llvm/test/CodeGen/AMDGPU/call-waitcnt.ll
M llvm/test/CodeGen/AMDGPU/callbr-intrinsics.ll
M llvm/test/CodeGen/AMDGPU/carryout-selection.ll
M llvm/test/CodeGen/AMDGPU/cc-inreg-sgpr0-3-mismatch.ll
M llvm/test/CodeGen/AMDGPU/check-subtarget-features.ll
M llvm/test/CodeGen/AMDGPU/clmul.ll
M llvm/test/CodeGen/AMDGPU/cluster-dims.ll
M llvm/test/CodeGen/AMDGPU/codegen-prepare-addrspacecast-non-null.ll
M llvm/test/CodeGen/AMDGPU/coexec-rewrite-mfma.ll
A llvm/test/CodeGen/AMDGPU/coexec-sched-flavor-classification.mir
M llvm/test/CodeGen/AMDGPU/commute-compares-scalar-float.ll
M llvm/test/CodeGen/AMDGPU/constrained-shift.ll
M llvm/test/CodeGen/AMDGPU/ctlz.ll
M llvm/test/CodeGen/AMDGPU/ctlz_zero_poison.ll
M llvm/test/CodeGen/AMDGPU/ctpop.ll
M llvm/test/CodeGen/AMDGPU/ctpop16.ll
M llvm/test/CodeGen/AMDGPU/ctpop64.ll
M llvm/test/CodeGen/AMDGPU/cttz.ll
M llvm/test/CodeGen/AMDGPU/cttz_zero_poison.ll
M llvm/test/CodeGen/AMDGPU/cube.ll
M llvm/test/CodeGen/AMDGPU/cvt_flr_i32_f32.ll
M llvm/test/CodeGen/AMDGPU/cvt_rpi_i32_f32.ll
M llvm/test/CodeGen/AMDGPU/dag-divergence.ll
M llvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll
M llvm/test/CodeGen/AMDGPU/div_i128.ll
M llvm/test/CodeGen/AMDGPU/div_v2i128.ll
M llvm/test/CodeGen/AMDGPU/diverge-interp-mov-lower.ll
M llvm/test/CodeGen/AMDGPU/divrem24-assume.ll
M llvm/test/CodeGen/AMDGPU/ds-alignment.ll
M llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll
M llvm/test/CodeGen/AMDGPU/elf-notes.ll
M llvm/test/CodeGen/AMDGPU/fadd.f16.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize.ll
M llvm/test/CodeGen/AMDGPU/fcopysign.bf16.ll
M llvm/test/CodeGen/AMDGPU/fcopysign.f16.ll
M llvm/test/CodeGen/AMDGPU/fdiv_flags.f32.ll
A llvm/test/CodeGen/AMDGPU/fence-barrier-latency.ll
M llvm/test/CodeGen/AMDGPU/fence-barrier.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmax.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fmin.ll
M llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fsub.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/flat-saddr-store.ll
M llvm/test/CodeGen/AMDGPU/flat-scratch-svs.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64_noprivate.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64_system.ll
M llvm/test/CodeGen/AMDGPU/flat_atomics_i64_system_noprivate.ll
M llvm/test/CodeGen/AMDGPU/float-sopc-vopc.ll
A llvm/test/CodeGen/AMDGPU/float-to-arbitrary-fp.ll
M llvm/test/CodeGen/AMDGPU/fma.f16.ll
M llvm/test/CodeGen/AMDGPU/fmaximum.ll
M llvm/test/CodeGen/AMDGPU/fmaximum3.v2f16.ll
M llvm/test/CodeGen/AMDGPU/fmaxnum.ll
M llvm/test/CodeGen/AMDGPU/fmed3-cast-combine.ll
M llvm/test/CodeGen/AMDGPU/fmed3.ll
M llvm/test/CodeGen/AMDGPU/fminimum.ll
M llvm/test/CodeGen/AMDGPU/fminimum3.v2f16.ll
M llvm/test/CodeGen/AMDGPU/fminnum.ll
M llvm/test/CodeGen/AMDGPU/fmul-to-ldexp.ll
M llvm/test/CodeGen/AMDGPU/fneg-combines-gfx1200.ll
M llvm/test/CodeGen/AMDGPU/fneg-fabs-v2f32.ll
M llvm/test/CodeGen/AMDGPU/fold-gep-offset.ll
A llvm/test/CodeGen/AMDGPU/fold-imm-pk64.mir
M llvm/test/CodeGen/AMDGPU/fp-min-max-buffer-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp-min-max-buffer-ptr-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp-min-max-image-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp-min-max-num-flat-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp-min-max-num-global-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp64-min-max-buffer-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp64-min-max-buffer-ptr-atomics.ll
M llvm/test/CodeGen/AMDGPU/fp_to_sint.ll
M llvm/test/CodeGen/AMDGPU/fp_to_uint.ll
M llvm/test/CodeGen/AMDGPU/fpenv.ll
M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
M llvm/test/CodeGen/AMDGPU/fptosi-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptosi-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/fptoui-sat-vector.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.f16.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.v2f16.no.fast.math.ll
M llvm/test/CodeGen/AMDGPU/freeze.ll
M llvm/test/CodeGen/AMDGPU/fsqrt.f32.ll
M llvm/test/CodeGen/AMDGPU/fsqrt.f64.ll
M llvm/test/CodeGen/AMDGPU/fsub-as-fneg-src-modifier.ll
M llvm/test/CodeGen/AMDGPU/gfx-call-non-gfx-func.ll
M llvm/test/CodeGen/AMDGPU/gfx11-user-sgpr-init16-bug.ll
R llvm/test/CodeGen/AMDGPU/gfx12-5-generic-no-xnack.ll
M llvm/test/CodeGen/AMDGPU/gfx12_scalar_subword_loads.ll
M llvm/test/CodeGen/AMDGPU/gfx902-without-xnack.ll
M llvm/test/CodeGen/AMDGPU/global-address.ll
M llvm/test/CodeGen/AMDGPU/global-load-xcnt.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-load.ll
M llvm/test/CodeGen/AMDGPU/global_atomics_i64_system.ll
M llvm/test/CodeGen/AMDGPU/gws_agpr.ll
M llvm/test/CodeGen/AMDGPU/hsa-default-device.ll
M llvm/test/CodeGen/AMDGPU/hsa-func.ll
M llvm/test/CodeGen/AMDGPU/hsa-note-no-func.ll
M llvm/test/CodeGen/AMDGPU/hsa.ll
A llvm/test/CodeGen/AMDGPU/i128-add-carry-chain.ll
M llvm/test/CodeGen/AMDGPU/indirect-call.ll
M llvm/test/CodeGen/AMDGPU/indirect-reg-read-imm-idx.ll
M llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
M llvm/test/CodeGen/AMDGPU/intrinsic-amdgcn-s-alloc-vgpr.ll
M llvm/test/CodeGen/AMDGPU/invalid-addrspacecast.ll
M llvm/test/CodeGen/AMDGPU/invariant-image-load.ll
M llvm/test/CodeGen/AMDGPU/isel-amdgcn-cs-chain-intrinsic-w32.ll
M llvm/test/CodeGen/AMDGPU/isel-amdgcn-cs-chain-intrinsic-w64.ll
M llvm/test/CodeGen/AMDGPU/isel-amdgpu-cs-chain-intrinsic-dyn-vgpr-w32.ll
M llvm/test/CodeGen/AMDGPU/isel-amdgpu-cs-chain-preserve-cc.ll
M llvm/test/CodeGen/AMDGPU/isel-whole-wave-functions.ll
M llvm/test/CodeGen/AMDGPU/issue92561-restore-undef-scc-verifier-error.ll
M llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll
M llvm/test/CodeGen/AMDGPU/itofp.i128.ll
M llvm/test/CodeGen/AMDGPU/lds-barrier-memoperand.ll
M llvm/test/CodeGen/AMDGPU/lds-global-non-entry-func.ll
M llvm/test/CodeGen/AMDGPU/lds-size.ll
M llvm/test/CodeGen/AMDGPU/literal64.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.add.min.max.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.addrspacecast.nonnull.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.store.b128.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ballot.i64.wave32.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bitop3.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bitreplicate.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.load-last-use.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.load.lds.err.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bvh8_intersect_ray.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.class.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.class.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.load.async.to.lds.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.load.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.workgroup.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.workgroup.max.flat.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cluster.workgroup.max.id.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-agent.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-basic.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-singlethread.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-system.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-wavefront.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cooperative.atomic-workgroup.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubeid.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubema.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubesc.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubetc.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.f16.fp8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.f32.fp8.err.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.e5m3.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.off.f32.i4.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pk.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pk.i16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pk.u16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pknorm.i16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pknorm.u16.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pkrtz.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.sat.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scale.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.gfx950.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk16.gfx1250.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk8.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.sr.ll
R orc-rt/lib/executor/TaskDispatcher.cpp
Log Message:
-----------
Merge branch 'main' into filecheck-test-braced-search-ranges
Compare: https://github.com/llvm/llvm-project/compare/d6aac3c7d52b...2d05118e7c91
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