LLVM/project c4d820cllvm/include/llvm/ADT DenseMap.h, llvm/lib/IR Value.cpp

[DenseMap] Replace tombstone deletion with TAOCP 6.4 Algorithm R (#199615)

DenseMap uses quadratic probing with lazy deletion: an erased entry
becomes a tombstone, a third bucket state alongside empty and live that
every find/insert must inspect.

Switch to linear probing with backward-shift deletion (Knuth TAOCP 6.4
Algorithm R), similar to the SmallPtrSet change #197637. This removes
the tombstone state entirely.

In exchange, erase now relocates the following live entries to close the
hole, so it invalidates iterators and references other than the erased
one. For callers that cache pointers into the bucket array,
erase(Key, OnMoved) and erase(iterator, OnMoved) fire a callback once
per
shifted bucket, so fix-ups cost O(cluster) rather than O(NumEntries).
ValueHandleBase::RemoveFromUseList uses this to refresh each moved
handle's PrevPtr.


    [13 lines not shown]
DeltaFile
+91-119llvm/include/llvm/ADT/DenseMap.h
+4-1llvm/lib/IR/Value.cpp
+1-2llvm/unittests/ADT/BitVectorTest.cpp
+96-1223 files

LLVM/project 67ac1b0llvm/lib/Target/RISCV RISCVInstrInfoP.td RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV rvp-simd-64.ll

[RISCV][P-ext] Support v4i16/v8i8 build_vector on RV32. (#199883)
DeltaFile
+175-263llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+13-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+1-1llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+189-2643 files

LLVM/project c34220allvm/lib/Target/RISCV RISCVInstrInfoP.td

[RISCV] Use append TableGen feature in RISCVInstrInfoP.td. NFC (#200110)

I may go back and adjust some formatting in a follow up. I wanted to
keep the diff here focused on the Predicates changes.
DeltaFile
+90-107llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+90-1071 files

LLVM/project 8fea280llvm/lib/Object DXContainer.cpp, llvm/unittests/Object DXContainerTest.cpp

[DirectX] Check DXContainer's header magic during parsing (#198586)

Check that header magic is 'DXBC' during parsing to avoid random data
being treated like a correct header.
DeltaFile
+9-0llvm/unittests/Object/DXContainerTest.cpp
+5-1llvm/lib/Object/DXContainer.cpp
+14-12 files

LLVM/project 90aece0llvm/lib/Target/AMDGPU SIPeepholeSDWA.cpp, llvm/test/CodeGen/AMDGPU sdwa-peephole-instr.mir ashr.v2i16.ll

[AMDGPU] Do not combine V_ASHRREV_I16* to make sdwa (#198491)

Do not combine V_ASHRREV_I16* instructions to form sdwa instructions.
These instructions zero-fill the high 16-bits.

---------

Signed-off-by: John Lu <John.Lu at amd.com>
DeltaFile
+44-40llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
+44-40llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
+23-0llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr.mir
+11-8llvm/test/CodeGen/AMDGPU/ashr.v2i16.ll
+8-10llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
+130-985 files

LLVM/project ba7d42bllvm/lib/Target/PowerPC PPCISelLowering.cpp PPCInstrVSX.td, llvm/test/CodeGen/PowerPC repeated-fp-divisors.ll recipest.ll

[PowerPC] Optimize vec_splats of small FP values on Power8/9 (#199538)

Recognize small constant FP splats representable as integers and lower
them to vspltisw + xvcvsxwdp/xvcvsxwsp on Power8/9, avoiding constant
pool loads.
DeltaFile
+45-0llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+14-16llvm/test/CodeGen/PowerPC/repeated-fp-divisors.ll
+12-18llvm/test/CodeGen/PowerPC/recipest.ll
+22-0llvm/test/CodeGen/PowerPC/vec-splats-opt.ll
+4-6llvm/test/CodeGen/PowerPC/fma-combine.ll
+10-0llvm/lib/Target/PowerPC/PPCInstrVSX.td
+107-402 files not shown
+112-438 files

LLVM/project 7948d33llvm/utils/lit/lit Test.py

[lit] Refactor super() calls in ResultCode (#199891)

This PR simplifies the `super()` call in `ResultCode.__new__`
by migrating from the Python 2 style explicit arguments to the
standard Python 3 zero-argument syntax.

This PR is part of the "GSoC 2026: Improving lit" project.

Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
DeltaFile
+1-1llvm/utils/lit/lit/Test.py
+1-11 files

LLVM/project 96b6bb7llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AMDGPU freeze-other-uses-issue-198094.ll

[DAGCombiner] Loop unfreeze step in visitFREEZE freezeOtherUses (#200120)

The first ReplaceAllUsesOfValueWith in visitFREEZE's freezeOtherUses
block can leave users of N behind: when the inner RAUW cascade
encounters a freeze user whose hash collides post-mutation, the
recursive merge prepends new freeze users to N's use-list that the outer
iterator deliberately skips (PR3018 invariant). Those leftover users
then collide with the self-cycle the next RAUW step creates, firing
"Node is not in map!" in RemoveNodeFromCSEMaps.

Wrap the unfreeze in a convergence loop so all such prepended users are
drained before the second RAUW. Each iteration strictly shrinks N's
use-set, bounded by the depth of the freeze chain.

Fixes #198094
DeltaFile
+37-0llvm/test/CodeGen/AMDGPU/freeze-other-uses-issue-198094.ll
+4-2llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+41-22 files

LLVM/project 3beee85flang/lib/Semantics resolve-names.cpp mod-file.cpp, flang/test/Semantics/OpenMP declare-reduction-public-regression.f90 declare-reduction-modfile-private.f90

[flang][OpenMP] Fix declare reduction accessibility in module scope (#197078)

Fix four interacting issues with OpenMP declare reduction accessibility
when reductions are declared in Fortran modules:

1. Accessibility propagation (resolve-names.cpp): Reduction symbols like
`op.+` had no linkage to the corresponding `operator(+)` accessibility.
`ApplyDefaultAccess()` now reverse-maps mangled names to their Fortran
   identifiers and inherits operator/procedure accessibility.

2. USE-associated duplicate detection (resolve-names.cpp):
`FindSymbol()`
searched parent scopes and found USE-associated symbols, causing false
   "Duplicate definition" errors. Changed to scope-local `FindInScope()`
   with proper `UseDetails` handling that shadows USE symbols.

3. Module file serialization (mod-file.cpp): `PutUserReduction()` never
emitted accessibility, so PRIVATE was lost on module file round-trips.
Now emits `private::<identifier>` when no GenericDetails symbol already

    [21 lines not shown]
DeltaFile
+66-12flang/lib/Semantics/resolve-names.cpp
+48-0flang/lib/Semantics/mod-file.cpp
+38-0flang/test/Semantics/OpenMP/declare-reduction-public-regression.f90
+38-0flang/test/Semantics/OpenMP/declare-reduction-modfile-private.f90
+36-0flang/test/Semantics/OpenMP/declare-reduction-default-private.f90
+35-0flang/test/Semantics/OpenMP/declare-reduction-accessibility.f90
+261-122 files not shown
+293-138 files

LLVM/project 7ac0a3cllvm/utils/lit/lit ProgressBar.py

[lit] Replace zip(range(len(x)), x) with enumerate(x) in ProgressBar (#199884)

Updated `ProgressBar.py` to replace four instances of
`zip(range(len(x)), x)` with `enumerate(x)`. The former is a legacy
Python 2 pattern, while `enumerate()` is the modern and efficient Python
3 idiom. This is a clean-up refactor that results in no behavioral
changes to the code.

This PR is part of the "GSoC 2026: Improving lit" project.

Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
DeltaFile
+4-4llvm/utils/lit/lit/ProgressBar.py
+4-41 files

LLVM/project 082ac6ellvm/utils/lit/lit ShUtil.py

[lit] Optimize ShLexer string construction (#199641)

`lex_arg_quoted` and `lex_arg_slow` methods in the `lit`'s `ShLexer`
class used `+=` for string concatenation, which was inefficient. This change
replaces that pattern by collecting string fragments in a list and using
`"".join()` at the end.

**Baseline:**
| Stage | Metric (Runtime / Peak RSS) |
| :--- | :--- |
| **CodeGen-X86** | 99.310s / 51872 kB |
| **llvm-transforms** | 51.457s / 66928 kB |

**Changes made here:**
| Stage | Metric (Runtime / Peak RSS) |
| :--- | :--- |
| **CodeGen-X86** | 94.964s / 51868 kB |
| **llvm-transforms** | 50.890s / 66328 kB |


    [2 lines not shown]
DeltaFile
+22-20llvm/utils/lit/lit/ShUtil.py
+22-201 files

LLVM/project 0a0fd08clang/test/Sema/AArch64 arm_sve_streaming_only_sme_AND_sme2p3.c arm_sve_feature_dependent_sve_AND_sve2p3___sme_AND_LP_sve2p3_OR_sme2p3_RP.c

fixup! Run `clang/utils/aarch64_builtins_test_generator.py`
DeltaFile
+118-0clang/test/Sema/AArch64/arm_sve_streaming_only_sme_AND_sme2p3.c
+77-0clang/test/Sema/AArch64/arm_sve_feature_dependent_sve_AND_sve2p3___sme_AND_LP_sve2p3_OR_sme2p3_RP.c
+62-0clang/test/Sema/AArch64/arm_sve_non_streaming_only_sve_AND_sve2p3.c
+56-0clang/test/Sema/AArch64/arm_sme_streaming_only_sme_AND_sme2p3.c
+313-04 files

LLVM/project c5fe7eeclang/include/clang/Basic DiagnosticParseKinds.td

Change ext_c2y_decl_statement from ExtWarn to Extension
DeltaFile
+1-1clang/include/clang/Basic/DiagnosticParseKinds.td
+1-11 files

LLVM/project 9a0fe91llvm/lib/Target/AArch64 AArch64ISelDAGToDAG.cpp

fixup! Don't modify SelectMultiVectorLutiLane
DeltaFile
+38-45llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
+38-451 files

LLVM/project c20c666lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime AppleObjCClassDescriptorV2.cpp AppleObjCClassDescriptorV2.h

[lldb][NFCI] Cleanup AppleObjCClassDescriptorV2::objc_class_t API (#200180)
DeltaFile
+45-43lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
+2-15lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
+47-582 files

LLVM/project b405ce2clang/include/clang/Basic DiagnosticParseKinds.td

fix ci
DeltaFile
+2-2clang/include/clang/Basic/DiagnosticParseKinds.td
+2-21 files

LLVM/project 3e92883clang-tools-extra/clangd XRefs.cpp, clang-tools-extra/clangd/test type-hierarchy-ext.test type-hierarchy.test

[clangd] Remove redundant symbol name from hierarchy item details (#170112)

Closes clangd/clangd#2346.
DeltaFile
+55-61clang-tools-extra/clangd/unittests/CallHierarchyTests.cpp
+2-2clang-tools-extra/clangd/test/type-hierarchy-ext.test
+2-2clang-tools-extra/clangd/test/type-hierarchy.test
+2-1clang-tools-extra/clangd/XRefs.cpp
+61-664 files

LLVM/project eec9319llvm/include/llvm/IR IntrinsicsAArch64.td, llvm/lib/Target/AArch64 SVEInstrFormats.td AArch64ISelDAGToDAG.cpp

fixup! Amend after PR comments
DeltaFile
+11-8llvm/include/llvm/IR/IntrinsicsAArch64.td
+4-4llvm/lib/Target/AArch64/SVEInstrFormats.td
+2-3llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
+1-1llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
+18-164 files

LLVM/project 624586bllvm/lib/Support UnicodeNameToCodepointGenerated.cpp, llvm/test/CodeGen/AMDGPU/NextUseAnalysis spill-vreg-many-lanes.mir acyclic-770bb.mir

Merge branch 'main' into users/kosarev/vcc-tuples
DeltaFile
+275,101-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/spill-vreg-many-lanes.mir
+144,679-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/acyclic-770bb.mir
+57,682-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/double-nested-loops-complex-cfg.mir
+23,873-20,923llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+41,844-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_multiple_spills2.mir
+40,613-0llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_multiple_spills1.mir
+583,792-20,92328,938 files not shown
+3,252,506-1,110,43528,944 files

LLVM/project f24ee22mlir/test/Conversion/MemRefToEmitC memref-to-emitc-alloc.mlir memref-to-emitc-alloc-dealloc.mlir

[mlir][EmitC] Include DeallocOp in AllocOp memref conversion tests (#198275)

This PR helps keep changes introduced in
https://github.com/llvm/llvm-project/pull/194591 visible, by renaming
files in a separate commit.
DeltaFile
+0-72mlir/test/Conversion/MemRefToEmitC/memref-to-emitc-alloc.mlir
+72-0mlir/test/Conversion/MemRefToEmitC/memref-to-emitc-alloc-dealloc.mlir
+72-722 files

LLVM/project 8ab00f2llvm/test/CodeGen/Generic available_externally_alias.ll 2009-03-17-LSR-APInt.ll

[z/OS][tests] XFAIL using aliases on z/OS (#200176)

This PR XFAIL 2 lit test cases as the following errors are expected:

```
FAIL: LLVM :: CodeGen/Generic/available_externally_alias.ll
# | <unknown>:0: error: Only aliases to functions is supported in GOFF.

FAIL: LLVM :: CodeGen/Generic/2009-03-17-LSR-APInt.ll
# | <unknown>:0: error: Weak alias/reference not supported on z/OS
```
DeltaFile
+2-2llvm/test/CodeGen/Generic/available_externally_alias.ll
+2-2llvm/test/CodeGen/Generic/2009-03-17-LSR-APInt.ll
+4-42 files

LLVM/project a16511cclang/lib/Driver Driver.cpp Types.cpp, clang/lib/Driver/ToolChains Clang.cpp

[clang][modules-driver] Precompile std modules independently of -o and final phase (#199289)

With this, Standard library modules are always precompiled as the
primary output of their `-cc1` invocation, instead of being produced as
a byproduct of compiling the Standard library modules to object files.

This also keeps Standard library module precompilation independent of
the final phase specified on the command line, so importing them keep
working under `-fsyntax-only` (and other command-line options that
specify the final phase).

This also makes the Standard library module precompilation independent
of the `-o` flag, so that a command like `clang -std=c++23
-fmodules-driver main.cpp -o main` no longer redirects the Standard
library module outputs to 'main', breaking the compilation.
DeltaFile
+69-1clang/test/Driver/modules-driver-import-std.cpp
+41-13clang/lib/Driver/Driver.cpp
+33-9clang/lib/Driver/Types.cpp
+11-11clang/test/Driver/modules-driver-dep-graph-stdlib-modules.cpp
+15-2clang/lib/Driver/ModulesDriver.cpp
+5-1clang/lib/Driver/ToolChains/Clang.cpp
+174-372 files not shown
+180-378 files

LLVM/project 5536348llvm/utils/lit/lit TestingConfig.py

[lit] Handle config loading safely (#200168)

Currently, the config file is opened outside the `try` block without
explicit encoding and handled with a bare `except`.
We can move to putting a `with open()` context manager inside the `try`
block and catching OSError.

Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
DeltaFile
+3-3llvm/utils/lit/lit/TestingConfig.py
+3-31 files

LLVM/project 3c21a0cllvm/lib/Target/SPIRV SPIRVLegalizerInfo.cpp, llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers i128-icmp.ll

[SPIR-V] Add s128 to allPtrsScalarsAndVectors in legalizer (#199998)

Without this, i128 G_ICMP fails legalization before OpTypeInt emits the
diagnostic

---------

Co-authored-by: Dmitry Sidorov <dsidorov at amd.com>
DeltaFile
+32-0llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/i128-icmp.ll
+5-5llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
+37-52 files

LLVM/project b43dcbellvm/lib/Target/SPIRV SPIRVEmitIntrinsics.cpp SPIRVInstructionSelector.cpp, llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_poison_freeze poison.ll poison-composite.ll

Implement SPV_KHR_poison_freeze extension (#198037)

Specification can be found here:

https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/KHR/SPV_KHR_poison_freeze.asciidoc
DeltaFile
+122-44llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
+103-0llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_poison_freeze/poison.ll
+43-0llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_poison_freeze/poison-composite.ll
+40-0llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_poison_freeze/freeze.ll
+33-4llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+31-0llvm/test/CodeGen/SPIRV/extensions/SPV_KHR_poison_freeze/arithmetic-poison-execmode.ll
+372-4810 files not shown
+447-5416 files

LLVM/project 34e7ecallvm/lib/IR Constants.cpp

[IR] Avoid caching a DenseMap reference across erase in handleOperandChangeImpl. NFC (#200179)

They bind a reference into the map and write through it after erasing
the old entry. This will not hold for backward-shift deletion. Extracted
from #199615
DeltaFile
+12-15llvm/lib/IR/Constants.cpp
+12-151 files

LLVM/project 2766733compiler-rt CMakeLists.txt, compiler-rt/lib/profile CMakeLists.txt InstrProfilingFile.c

[compiler-rt][profile] Add COMPILER_RT_BUILD_PROFILE_ROCM option (#200127)
DeltaFile
+9-1compiler-rt/lib/profile/CMakeLists.txt
+9-0compiler-rt/CMakeLists.txt
+4-0compiler-rt/lib/profile/InstrProfilingFile.c
+22-13 files

LLVM/project 992ee59compiler-rt/cmake/Modules AllSupportedArchDefs.cmake, compiler-rt/lib/asan asan_allocator.h

Add support for Alpha to libsanitizer (#194161)

Add support for [Alpha](https://en.wikipedia.org/wiki/DEC_Alpha) to
libsanitizer.

- [sanitizer] Add SANITIZER_ALPHA platform macro
- [sanitizer] Add Linux/Alpha syscall implementation
- [sanitizer] Skip __old_kernel_stat check on Alpha
- [sanitizer] Use statx for stat syscalls on Linux/Alpha
- [sanitizer] Add GetPcSpBp signal context support for Alpha
- [sanitizer] Add Alpha struct size constants
- [sanitizer] Add Alpha ioctl encoding constants
- [compiler-rt] sanitizer: Alpha struct sigaction has no sa_restorer
- [compiler-rt] sanitizer: Disable interceptor trampoline on Alpha
- [compiler-rt] sanitizer: Add Alpha __sanitizer_dirent layout
- [compiler-rt] sanitizer: Add Alpha ThreadDescriptorSizeFallback()
- [compiler-rt] Enable Alpha Linux target
- [compiler-rt] Use fixed shadow offset 0x10000000000 (1T) for Alpha
- [compiler-rt][ASan] Limit allocator to 512G on Alpha

    [2 lines not shown]
DeltaFile
+146-0compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_alpha.inc
+26-7compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+13-2compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+4-3compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
+6-0compiler-rt/lib/sanitizer_common/sanitizer_platform.h
+5-0compiler-rt/lib/asan/asan_allocator.h
+200-126 files not shown
+214-1712 files

LLVM/project d5edbe4.github/workflows/upload-release-artifact action.yml

workflows/upload-release-artifact: Validate input and remove template expansion (#199972)

https://github.com/llvm/llvm-project/security/code-scanning/1757
https://github.com/llvm/llvm-project/security/code-scanning/1758
https://github.com/llvm/llvm-project/security/code-scanning/1759
https://github.com/llvm/llvm-project/security/code-scanning/1760
https://github.com/llvm/llvm-project/security/code-scanning/1761
DeltaFile
+17-5.github/workflows/upload-release-artifact/action.yml
+17-51 files

LLVM/project 5d29057.github/actions/push-container action.yml

actions/push-container: Remove template expansion (#200062)

https://github.com/llvm/llvm-project/security/code-scanning/1757
DeltaFile
+1-1.github/actions/push-container/action.yml
+1-11 files