LLVM/project d865ff9 — clang/lib/Analysis ThreadSafetyCommon.cpp, clang/lib/Sema SemaTemplateInstantiate.cpp

[clang][Sema][ThreadSafety] Accept a pointee parameter of any redeclaration (#235813)

An attribute on a function pointer may name a parameter of its pointee:

    extern void (*cb)(int, Guarded *g);
    void (*cb)(int, Guarded *g) REQUIRES(g->mu) = nullptr;

Importantly, this also can come up for templates, where the "later"
definition is the same definition, but re-instantiated later (templates
also have other bugs which will be fixed separately). At a call through
'cb', the analysis substituted the call's arguments for the pointee's
parameters, but it accepted only a parameter of the canonical
declaration's prototype. Since the attribute above is on a
redeclaration, it names that redeclaration's 'g', which hit the
llvm_unreachable "ParmVarDecl does not belong to current declaration".

The `getCanonicalParamDecl` previously had two purposes: identifying the
canonical identity of a parameter in the body, and this assert. There
cannot be a body on a function pointer, so we don't need to be able to

    [14 lines not shown]
DeltaFile
+36-0clang/test/SemaCXX/warn-thread-safety-analysis.cpp
+16-18clang/lib/Analysis/ThreadSafetyCommon.cpp
+7-3clang/lib/Sema/SemaTemplateInstantiate.cpp
+59-213 files

LLVM/project baac97e — llvm/lib/Analysis ConstantFolding.cpp, llvm/test/Transforms/InstSimplify bitcast-vector-fold.ll

[ConstantFolding] Fold constant vector `bitcast`s to scalar bytes (#242811)

#188030 added `bitcast` constant folding for byte types.
This PR handles vector to scalar byte `bitcast`s.

Constant fold vector `bitcast`s to scalar bytes.

- A vector of integers or floating-point values folds to a byte constant
with the same bits.
- A vector with a `poison` element isn't folded, as a byte constant
can't represent partial `poison` values.
- A vector of pointers isn't folded, as a byte constant can't represent
pointer provenance.
- A vector of bytes with an element that isn't a plain constant, like a
pointer, isn't folded, as it would drop provenance.

```llvm
%a = bitcast <2 x i32> <i32 1, i32 2> to b64       ; b64 8589934593
%b = bitextract i8, b64 %a, i32 32                 ; i8 2
%c = bitcast <2 x i32> <i32 1, i32 poison> to b64  ; unchanged
```
DeltaFile
+89-0llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll
+19-5llvm/lib/Analysis/ConstantFolding.cpp
+18-0llvm/test/Transforms/InstSimplify/ConstProp/bitinsert-bitextract.ll
+126-53 files

LLVM/project dd3f221 — llvm/lib/Target/AMDGPU SIOptimizeExecMaskingPreRA.cpp, llvm/test/CodeGen/AMDGPU optimize-exec-masking-pre-ra.mir

AMDGPU: Update physreg LiveIntervals accurately in SIOptimizeExecMaskingPreRA

Instead of dropping the exec/vcc/scc register unit ranges after any
change, remove all physreg defs of the instruction. This fixes the
redundant exec copy fold leaving a stale def in the exec range for
COPY $exec, implicit-def $exec, which was hidden by always
recomputing.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+55-0llvm/test/CodeGen/AMDGPU/optimize-exec-masking-pre-ra.mir
+17-13llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp
+72-132 files

NetBSD/pkgsrc-wip 2c60f4b — . Makefile, tabiew DESCR Makefile

tabiew: start on upgrade, doesn't build
DeltaFile
+1,796-0tabiew/distinfo
+599-0tabiew/cargo-depends.mk
+111-0tabiew/TODO
+19-0tabiew/Makefile
+11-0tabiew/DESCR
+3-3Makefile
+2,539-31 files not shown
+2,541-37 files

FreeBSD/src 7518829 — sys/netinet/tcp_stacks bbr.c

tcp bbr: improve persits timeout computation

t_srtt and t_rttvar use different lengths of fractions, therefore use
the appropriate shift value.

Reviewed by:            Peter Lei
MFC after:              3 days
MFC to:                 stable/15
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D61600
DeltaFile
+1-1sys/netinet/tcp_stacks/bbr.c
+1-11 files

NetBSD/pkgsrc DJ3QGg2 — textproc/rumdl Makefile cargo-depends.mk

   rumdl: update to 0.3.4.

   0.3.4

   Breaking Changes

       Rust library API: Removed unused helpers and deprecated compatibility wrappers.
       Use warning_to_code_actions instead of warning_to_code_action. See the
       cleanup commit
       for the complete list of removals.

   Added

       MD013: check and reflow frontmatter values (#998) (c40744c)
       schema: describe rule sections and option types (#997) (da0faf7)

   Fixed

       MD013: measure frontmatter before Markdown exemptions (45841ff)

    [47 lines not shown]
VersionDeltaFile
1.61+13-10textproc/rumdl/distinfo
1.28+3-2textproc/rumdl/cargo-depends.mk
1.63+2-2textproc/rumdl/Makefile
+18-143 files

LLVM/project 183ed3a — llvm/test/Transforms/SLPVectorizer/X86 gather-shuffle-all-candidates.ll

[SLP][NFC]Add an extra test for shuffles costings, NFC

Pull-request: https://github.com/llvm/llvm-project/pull/242859
DeltaFile
+130-0llvm/test/Transforms/SLPVectorizer/X86/gather-shuffle-all-candidates.ll
+130-01 files

NetBSD/pkgsrc W3cPtJ0 — doc pkg-vulnerabilities

   set fix version for libexif for CVE-2026-32775
   Thanks to Sanctus Gray for pointing out the libexif 0.6.26 release notes
VersionDeltaFile
1.814+2-2doc/pkg-vulnerabilities
+2-21 files

FreeBSD/ports eb9f276 — sysutils/coxswain Makefile distinfo

sysutils/coxswain: Update 2.36.0 => 2.37.0

Changelog:
https://github.com/mwo-dk/coxswain/blob/v2.37.0/docs/changelog.md

PR:             300798
Approved by:    osa, vvd (mentors, implicit)
DeltaFile
+3-3sysutils/coxswain/distinfo
+1-1sysutils/coxswain/Makefile
+4-42 files

LLVM/project ef72a0e — llvm/lib/Analysis InstructionSimplify.cpp, llvm/test/Transforms/InstSimplify bitinsert-bitextract.ll

[InstSimplify] Simplify vector `bitinsert` and `bitextract` with out-of-range offsets (#242816)

Simplify vector `bitinsert` and `bitextract` to `poison` when every
element of a constant offset is out of range or `poison`.

#229125 added this fold for scalar and splat offsets. This extends it to
non-splat vector offsets.

```llvm
%a = bitextract <4 x i8>, <4 x b32> %x, <4 x i32> <i32 25, i32 32, i32 poison, i32 -1>  ; poison
%b = bitextract <4 x i8>, <4 x b32> %x, <4 x i32> <i32 0, i32 8, i32 16, i32 25>        ; unchanged, only the last element is out of range
```
DeltaFile
+24-5llvm/lib/Analysis/InstructionSimplify.cpp
+18-0llvm/test/Transforms/InstSimplify/bitinsert-bitextract.ll
+42-52 files

NetBSD/pkgsrc js3oVqd — doc CHANGES-2026

   doc: Updated sysutils/consolekit to 1.2.7
VersionDeltaFile
1.8047+2-1doc/CHANGES-2026
+2-11 files

NetBSD/pkgsrc KCWckw8 — sysutils/consolekit distinfo Makefile

   consolekit: update to 1.2.7.

   New Features:

       Implement sd_session_is_remote() and sd_session_get_display()
       Export Seat's CanGraphical property on the D-Bus

   Bug Fixes:

       Only remove the inhibit lock if the event list is empty

   Misc Changes:

       Don't manage XDG_RUNTIME_DIR on OpenBSD,
       the OS takes care of it.
       Fix documentation and tests
       Remove workaround to sleep before calling zzz
VersionDeltaFile
1.61+4-5sysutils/consolekit/Makefile
1.24+4-4sysutils/consolekit/distinfo
+8-92 files

LLVM/project 286ec7a — llvm/include/llvm/Option LibraryOptions.h, llvm/include/llvm/Support CommandLine.h

[Option] Remove XXXOptions::Global. NFC (#242854)

cl::ParseCommandLineOptions rejects library options (#242692), and the C
API parses them into its own cl::LibraryOptionsContext (#242692), so
nothing sets T::Global and it always equals T::Default. Remove it, along
with cl::LibraryOptions::global() and reset().

`LibraryOptionsContext::get(nullptr)` returns T::Default, and
`cl::ResetAllOptionOccurrences` only resets cl:: option values.

LLM-aided
DeltaFile
+12-32llvm/lib/Support/CommandLine.cpp
+9-29llvm/unittests/Option/LibraryOptionsTest.cpp
+4-10llvm/include/llvm/Support/CommandLine.h
+3-8llvm/include/llvm/Option/LibraryOptions.h
+1-5llvm/unittests/Support/CommandLineTest.cpp
+2-4llvm/utils/TableGen/Basic/OptionParserEmitter.cpp
+31-881 files not shown
+33-907 files

NetBSD/pkgsrc hre6kEG — doc TODO CHANGES-2026

   doc: Updated devel/jjui to 0.10.13
VersionDeltaFile
1.28382+1-2doc/TODO
1.8046+2-1doc/CHANGES-2026
+3-32 files

NetBSD/pkgsrc CzGcVBB — devel/jjui Makefile go-modules.mk

   jjui: update to 0.10.13.

   This release is a batch of bug fixes and little improvements.
VersionDeltaFile
1.26+76-76devel/jjui/distinfo
1.17+24-24devel/jjui/go-modules.mk
1.45+3-4devel/jjui/Makefile
+103-1043 files

HardenedBSD/src dc585ef — lib/libsysdecode sysdecode_mask.3

HBSD: Resolve merge conflict

Signed-off-by:  Shawn Webb <shawn.webb at hardenedbsd.org>
DeltaFile
+1-5lib/libsysdecode/sysdecode_mask.3
+1-51 files

LLVM/project 551bf48 — mlir/lib/Bindings/Python IRAttributes.cpp

[mlir][python] Define __index__ on PyIntegerAttribute (#215555)

In nanobind v2.14.0+, integer casting from Python objects to C++ integer
types was updated to require `__index__` (`PyNumber_Index`) instead of
`__int__`.

https://nanobind.readthedocs.io/en/latest/changelog.html#version-2-14-0-aug-7-2026

Because `PyIntegerAttribute` defined `__int__` but not `__index__`,
passing `IntegerAttr` instances to bindings expecting integer sequences
failed. Specifically, in `mlir/test/python/ir/attributes.py`:

# CHECK: input: [IntegerAttr(4 : i64), IntegerAttr(2 : i64)] (<class
'list'>),
    # CHECK-SAME: result: array<i8: 4, 2>
create_and_print(DenseI8ArrayAttr, [Attribute.parse(f"{x}") for x in [4,
2]])

Failed because `DenseI8ArrayAttr.get([IntegerAttr(4 : i64),

    [12 lines not shown]
DeltaFile
+2-0mlir/lib/Bindings/Python/IRAttributes.cpp
+2-01 files

LLVM/project fd53b62 — clang/include/clang/Options Options.td, clang/test/CodeGen coff-default-timestamp.c

[clang] Fix target-dependent default for -mincremental-linker-compatible (#222099)

Patch #188800 modified the target specific default for this flag which
resulted in non MSVC, non UEFI targets getting this flag set. This
caused issue https://github.com/llvm/llvm-project/issues/219457 which
this patch should fix.

Assisted-by: Gemini
(cherry picked from commit 08d064a71dbdfa1b50f352d34c103ad245070611)
DeltaFile
+71-0clang/unittests/Frontend/CompilerInvocationTest.cpp
+29-0clang/test/CodeGen/coff-default-timestamp.c
+27-0clang/test/Misc/cc1as-coff-timestamp.s
+7-8clang/include/clang/Options/Options.td
+10-0clang/test/Driver/incremental-linker-compatible.c
+4-2clang/tools/driver/cc1as_main.cpp
+148-106 files

LLVM/project 929c079 — libcxx/include/__random mersenne_twister_engine.h, libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers seed_sseq.pass.cpp ctor_sseq.pass.cpp

[libc++] Fix std::mt19937 seeding with std::seed_seq under vectorized ABI (#209860)

This PR fixes a bug in `std::mersenne_twister_engine::seed(_Sseq&)`
where the initialization twist is bypassed when the vectorized engine
optimization (`_LIBCPP_ABI_VECTORIZED_MERSENNE_TWISTER_ENGINE`) is
enabled.

In the vectorized implementation introduced in #206423, the engine state
must be pre-twisted during initialization by calling
`__update_all_states()` at the end of the `seed` functions.

However, in `seed(_Sseq& __q)`, the all-zero state check contains an
early `return;` when a non-zero state is verified. This early return
bypasses the trailing `__update_all_states()` call. Consequently, the
generator is initialized with raw, untwisted seed values (tempered)
rather than the standard twisted values.

This only manifests when compiled with unstable ABI settings
(`_LIBCPP_ABI_VERSION >= 2`) which enables the vectorized

    [10 lines not shown]
DeltaFile
+63-63libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/ctor_sseq.pass.cpp
+23-1libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/seed_sseq.pass.cpp
+5-3libcxx/include/__random/mersenne_twister_engine.h
+91-673 files

LLVM/project 95da439 — llvm/test/CodeGen/AArch64 fptoui-sat-scalar.ll fptosi-sat-scalar.ll

update CHECKs
DeltaFile
+55-49llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll
+27-24llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll
+26-22llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll
+9-7llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll
+117-1024 files

LLVM/project afbc638 — llvm/lib/Target/AArch64/GISel AArch64LegalizerInfo.cpp, llvm/test/CodeGen/AArch64 fptoui-sat-scalar.ll fptosi-sat-scalar.ll

[AArch64] fix invalid GISel lowering of saturating `f16` to integer conversion (#235676)

The saturating version of the code seems to be copied from the
non-saturating version, and has this comment

> The range of a fp16 value fits into an i17, so we can lower the width
to i64.

But that is wrong for the saturating conversions, because positive
infinity is mapped to `i128::MAX`.

There may be a way to recover some of the shorter codegen, but I'm
hoping this change is something we can easily backport.

cc https://github.com/rust-lang/rust/issues/164972

(cherry picked from commit 617b7da9db855f1c74e9425555ce23f98f4dc6f9)
DeltaFile
+458-118llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll
+276-118llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll
+68-8llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll
+34-8llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll
+2-7llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+838-2595 files

LLVM/project 66c2aaa — llvm/lib/Transforms/IPO FunctionAttrs.cpp, llvm/test/Transforms/FunctionAttrs arg_returned.ll nocapture.ll

FunctionAttrs: Check all uses when inferring captures for argument SCCs (#231536)

When merging the capture components of an SCC of arguments, only the
first use of each argument was considered, because of a misplaced break.
If an argument was passed to another argument in the SCC first and to a
capturing argument outside of it later, it was incorrectly inferred to
not be captured.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
(cherry picked from commit 05b3eeffba9f93d14a9f79af253c4769d8c01827)
DeltaFile
+48-0llvm/test/Transforms/FunctionAttrs/nocapture.ll
+2-2llvm/test/Transforms/FunctionAttrs/arg_returned.ll
+0-1llvm/lib/Transforms/IPO/FunctionAttrs.cpp
+50-33 files

HardenedBSD/src 6bd7f1d — crypto/openssh ChangeLog ed25519.c, sys/contrib/openzfs/cmd/zpool zpool_main.c

Merge remote-tracking branch 'rad/hardened/current/master' into hardened/current/pledge

Conflicts:
        lib/libsysdecode/sysdecode_mask.3 (unresolved)
DeltaFile
+4,598-1,983crypto/openssh/ed25519.c
+0-5,021sys/crypto/openssl/aarch64/vpsm4-armv8.S
+0-4,543sys/crypto/openssl/aarch64/vpsm4_ex-armv8.S
+1,973-1,163crypto/openssh/ChangeLog
+1,043-1,051sys/contrib/openzfs/cmd/zpool/zpool_main.c
+1,948-66sys/contrib/openzfs/lib/libnvpair/libnvpair.abi
+9,562-13,8271,738 files not shown
+88,516-46,2371,744 files

LLVM/project 02bb1ee — clang-tools-extra/clangd CodeComplete.cpp, clang-tools-extra/clangd/index SymbolCollector.cpp

[clangd] Index symbols declared inside export declarations (#234755)

SymbolCollector::shouldCollectSymbol only accepts symbols whose semantic
parent is a translation unit, namespace, linkage spec, enum, record or
one of a few ObjC containers. ExportDecl is a DeclContext and is
returned by getDeclContext(), so every entity declared with `export` or
inside an `export { ... }` block was dropped from the index. Members of
exported classes were still indexed, since their parent is the record.

In C++20 modules code this hides most of the exported interface from the
index: Go to Definition on an exported function stops at the declaration
in the module interface instead of reaching the definition in the
implementation unit, and workspace/symbol does not find it. Rename uses
the same check, so it rejects exported symbols as "not eligible for
indexing" (reported in clangd/clangd#2569).

Use getNonTransparentDeclContext() instead, so declarations inside
transparent contexts (export, extern "C", unscoped enums) are judged by
their enclosing context. Do the same in isIndexedForCodeCompletion, so

    [7 lines not shown]
DeltaFile
+73-0clang-tools-extra/clangd/unittests/SymbolCollectorTests.cpp
+40-0clang-tools-extra/clangd/unittests/RenameTests.cpp
+18-0clang/test/Index/USR/export.cpp
+3-4clang-tools-extra/clangd/index/SymbolCollector.cpp
+1-2clang-tools-extra/clangd/CodeComplete.cpp
+1-1clang/lib/UnifiedSymbolResolution/USRGeneration.cpp
+136-76 files

LLVM/project 2e7a095 — clang/docs ReleaseNotes.md, clang/lib/CodeGen MicrosoftCXXABI.cpp

release/23.x: [clang codegen] Fix MS ABI with deleted template constructor (#237634)

Manaul backport of 2abfa104dc091113f844d252b4df2a22e800e4b8. (The code
change is the same, the generated IR for the testcase changed slightly.)
DeltaFile
+7-6clang/lib/CodeGen/MicrosoftCXXABI.cpp
+13-0clang/test/CodeGen/arm64-microsoft-arguments.cpp
+5-0clang/docs/ReleaseNotes.md
+25-63 files

LLVM/project 6a1cd33 — llvm/lib/Target/X86 X86CallingConv.td X86RegisterInfo.cpp, llvm/test/CodeGen/X86/apx intr-egpr-csr-call.ll intr-egpr-csr.ll

[X86][APX] Save R16-R31 in interrupt and no_caller_saved_registers functions (#237109)

x86_intrcc, "no_caller_saved_registers" and anyregcc functions must
preserve every register they modify. With EGPR their save lists
(CSR_64_AllRegs*) did not include R16-R31, so a handler that uses, or
calls something that clobbers, an extended GPR silently corrupts the
interrupted context. For example, a handler reading its interrupt frame
loads it into r16/r17 and returns with iretq without restoring them.

Add CSR_64_APX_AllRegs{,_NoSSE,_AVX,_AVX512}, the AllRegs lists plus
R16-R31, and use them as the save lists when the subtarget has EGPR. The
call-preserved masks are unchanged, so callers keep treating R16-R31 as
clobbered. This stays correct for callees built without EGPR or by other
or older compilers.

Assisted-by: Claude Opus 5.5 <noreply at anthropic.com>
(cherry picked from commit 6a30204d78bd45b56611bbd09cf8c53b78b7435d)
DeltaFile
+227-0llvm/test/CodeGen/X86/apx/intr-egpr-csr.ll
+127-0llvm/test/CodeGen/X86/apx/intr-egpr-csr-call.ll
+14-6llvm/lib/Target/X86/X86RegisterInfo.cpp
+14-0llvm/lib/Target/X86/X86CallingConv.td
+382-64 files

LLVM/project 54dc6b0 — llvm/lib/Transforms/Utils LoopSimplify.cpp, llvm/test/Transforms/LoopSimplify unreachable-loop-pred.ll

[LoopSimplify] Use SmallSetVector for dead predecessor removal (#231155)

In `simplifyOneLoop`, `BadPreds` was previously declared as
`SmallPtrSet<BasicBlock*, 4>`. When a non-header loop block had 5 or
more unreachable out-of-loop predecessors, `SmallPtrSet` overflowed its
inline small array and iterated over `BasicBlock*` pointers in hash
order under ASLR. Because `PHINode::removeIncomingValue` swaps each
removed predecessor slot with the last `PHINode` operand, removing dead
predecessors in pointer-hash order permuted the remaining live incoming
blocks in the `PHINode` and produced non-deterministic IR and ThinLTO
bitcode.

Replace `SmallPtrSet<BasicBlock*, 4>` with `SmallSetVector<BasicBlock *,
4>` to deduplicate and remove dead predecessors in deterministic
`predecessors(BB)` order.

Fixes #231143

(cherry picked from commit 921c2c0b929eb05dd8560c6bead0b1e5345e35ca)
DeltaFile
+57-1llvm/test/Transforms/LoopSimplify/unreachable-loop-pred.ll
+1-1llvm/lib/Transforms/Utils/LoopSimplify.cpp
+58-22 files

LLVM/project 31dea7a — clang-tools-extra/clang-tidy/readability TrailingCommaCheck.cpp, clang-tools-extra/test/clang-tidy/checkers/readability trailing-comma-cxx11.cpp

[clang-tidy] Fix false positive in readability-trailing-comma (#220548)

Use the syntactic form of an empty InitListExpr instead of falling back
to the semantic form.

Fixes #220222

(cherry picked from commit 0abb55638843428fccd7a923e6126fcb74a69a51)
DeltaFile
+10-0clang-tools-extra/test/clang-tidy/checkers/readability/trailing-comma-cxx11.cpp
+4-2clang-tools-extra/clang-tidy/readability/TrailingCommaCheck.cpp
+14-22 files

LLVM/project a46047f — llvm/lib/Target/Mips MipsSEInstrInfo.cpp MipsSEFrameLowering.cpp, llvm/test/CodeGen/Mips/cconv return-struct.ll callee-saved.ll

[Mips] Fix O32 lowering on 64-bit CPUs (#224937)

Use 32-bit GPR lowering for O32 while preserving the selected ISA and
FPR mode. Handle FP64 transfers through the stack when high-half moves
are unavailable.

(cherry picked from commit 52500486a0b723a1d9528e3098901702da837c3d)
DeltaFile
+124-0llvm/test/CodeGen/Mips/cconv/o32-mips64.ll
+63-0llvm/test/CodeGen/Mips/cconv/o32-fp64-gpr-moves.ll
+8-20llvm/lib/Target/Mips/MipsSEFrameLowering.cpp
+8-8llvm/test/CodeGen/Mips/cconv/callee-saved.ll
+6-6llvm/lib/Target/Mips/MipsSEInstrInfo.cpp
+4-4llvm/test/CodeGen/Mips/cconv/return-struct.ll
+213-3813 files not shown
+247-6719 files

NetBSD/pkgsrc yJO5fQP — doc TODO CHANGES-2026

   doc: Updated textproc/utf8-cpp to 5.0.0
VersionDeltaFile
1.28381+1-2doc/TODO
1.8045+2-1doc/CHANGES-2026
+3-32 files