LLVM/project fa10e63 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 runtime-alias-checks.ll

[SLP]Support runtime alias checks versioning for blocks in loops

Allow versioning of blocks inside loops, e.g. fully unrolled inner loop,
whose pointers are advanced by the loop header PHIs. Accept header PHIs
as base objects, use the base values directly in the bounds instead of
recomputing loop-variant bases from their recurrences.

Fixes #49896

Assisted-by: Cursor

Reviewers: RKSimon, bababuck

Pull Request: https://github.com/llvm/llvm-project/pull/226955
DeltaFile
+42-34llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+36-8llvm/test/Transforms/SLPVectorizer/X86/runtime-alias-checks.ll
+78-422 files

LLVM/project 06b277f — clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage UnsafeBufferUsageAnalysis.cpp, clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis UnsafeBufferReachableAnalysisTest.cpp

[SSAF] Close unsafe-buffer reachability over override families

An unsafe pointer reaching one override's parameter is equally unsafe in every
sibling and base override of that method, because the call site picks the
target dynamically. Without closing over the families, reachability depended
on which override the extractor happened to see the flow through, so a fix
suggested for the base could be contradicted by a derived override.

- Mirroring is level-preserving: families relate slot entities, so a reachable
  EPL propagates only to the same pointer level on its family members.
- Mirroring happens inside the pointer-flow search, so flows out of a mirrored
  EPL are followed too.
- Type-constrained slots are never mirrored onto, so C3 still holds.

§4 of rdar://179151603

Assisted-By: claude
DeltaFile
+240-0clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
+55-14clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+295-142 files

LLVM/project afbd1b9 — clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamily.h, clang/lib/ScalableStaticAnalysis/Analyses CMakeLists.txt

[SSAF] Serialize virtual method summaries and families

Per-TU summaries and whole-program results cross process boundaries, and the
JSON layer refuses to write a summary kind it has no format for. Register both
sides so --ssaf-extract-summaries=VirtualMethod becomes usable and the family
result survives a round trip.

Deserialization tolerates a missing override list, since a root virtual method
legitimately has none.

§3 of rdar://179151603
DeltaFile
+379-0clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/VirtualMethodFamilyFormatTest.cpp
+186-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyFormat.cpp
+22-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysis.cpp
+5-0clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
+1-0clang/unittests/ScalableStaticAnalysis/CMakeLists.txt
+1-0clang/lib/ScalableStaticAnalysis/Analyses/CMakeLists.txt
+594-01 files not shown
+595-07 files

LLVM/project 5239371 — clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily VirtualMethodFamily.h, clang/include/clang/ScalableStaticAnalysis/Core/Model EntityId.h

[SSAF] Group virtual method slots into override families (#213317)

A virtual call site can dispatch to any override, so the parameter and
return slots that occupy the same vtable slot across an override chain are
indistinguishable to a caller. Whole-program consumers therefore have to
treat them as one unit or they will reason about a slot that a call never
actually reaches.

Compute those units up front, keyed per slot, so consumers only need a
map lookup rather than their own traversal of the override relation.
Overloads occupy distinct vtable slots and stay in distinct families.

The family representative is the smallest EntityId in the class, which
keeps the result stable across runs.

§2 of rdar://179151603

Assisted-By: claude
DeltaFile
+292-0clang/unittests/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysisTest.cpp
+151-0clang/lib/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamilyAnalysis.cpp
+27-0clang/include/clang/ScalableStaticAnalysis/Analyses/VirtualMethodFamily/VirtualMethodFamily.h
+11-0clang/include/clang/ScalableStaticAnalysis/Core/Model/EntityId.h
+1-0clang/unittests/ScalableStaticAnalysis/CMakeLists.txt
+1-0clang/lib/ScalableStaticAnalysis/Analyses/CMakeLists.txt
+483-01 files not shown
+484-07 files

FreeBSD/src 806adba — lib/libpfctl libpfctl.c, sys/netpfil/pf pf_nl.h

libpfctl: decode PFR_A_AF into a u8

The kernel sends PFR_A_AF as a u32, although it is documented and
parsed as a u8, and libpfctl decoded it with snl_attr_get_uint32()
straight into the u8 pfra_af.  That overwrote pfra_net, pfra_not and
pfra_fback, and left pfra_af zero on big-endian hosts.

Decode it via a temporary, and accept a u8 as well, so that the
kernel can be corrected later without breaking libpfctl.

Reviewed by:            kp
Approved by:            kp (mentor)
Fixes:                  f27e44e2e3b5 ("pf: convert DIOCRGETADDRS to netlink")
Sponsored by:           Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D60110
DeltaFile
+17-1lib/libpfctl/libpfctl.c
+1-1sys/netpfil/pf/pf_nl.h
+18-22 files

LLVM/project 84c14da — clang/test/Sema/LifetimeSafety safety.cpp

[LifetimeSafety] Add negative-test for `lifetime_capture_by_this` on constructors (#227251)
DeltaFile
+22-0clang/test/Sema/LifetimeSafety/safety.cpp
+22-01 files

FreeBSD/doc 18f5ecf — website/content/en/cgi cgi-style-responsive.pl

cgi: write Traditional Chinese as character references

for non-UTF8 html pages
DeltaFile
+2-2website/content/en/cgi/cgi-style-responsive.pl
+2-21 files

LLVM/project 5da1945 — llvm/lib/Target/Mips/AsmParser MipsAsmParser.cpp, llvm/lib/Target/Mips/MCTargetDesc MipsTargetStreamer.h MipsTargetStreamer.cpp

[Mips] Add set directive support for EVA instructions (#225888)

Add assembler directives to enable/disable access to EVA instructions,
such as `cachee/lbe/sbe/tlbinv/etc`, with `.set eva/noeva`.
DeltaFile
+26-0llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
+24-0llvm/test/MC/Mips/eva/set-noeva-directive.s
+12-0llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
+9-0llvm/test/MC/Mips/eva/set-eva-directive.s
+4-0llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.h
+75-05 files

LLVM/project 2d257f7 — llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 sjlj-shadow-stack-dead-eflags.ll

X86: Mark the dead EFLAGS clobbers in the SjLj expansions

The zero materializations and the shadow stack delta shifts emitted by
the setjmp/longjmp custom inserters never have their EFLAGS clobber
read, so set the dead flag where the instructions are built.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+113-0llvm/test/CodeGen/X86/sjlj-shadow-stack-dead-eflags.ll
+10-5llvm/lib/Target/X86/X86ISelLowering.cpp
+123-52 files

FreeBSD/doc c05e9bf — website/content/en/cgi cgi-style-responsive.pl

cgi: write emoji as character references instead Unicode

for non-UTF8 html pages
DeltaFile
+1-1website/content/en/cgi/cgi-style-responsive.pl
+1-11 files

LLVM/project bd9d96c — clang/include/clang/Basic BuiltinsNVPTX.td, clang/lib/CodeGen/TargetBuiltins NVPTX.cpp

[clang][NVPTX] Add support for pzo in f32/f16x2/bf16x2 to FP4 conversions (#225318)

This patch adds support for `pzo` variants and `rz` rounding mode to 
existing `f32/f16x2/bf16x2` to `FP4` (`e2m1x2`) conversion intrinsics.

Also adds `clang builtins` for the new variants.

Tests have been verified through `ptxas-13.4`.

PTX ISA Reference:
https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#data-movement-and-conversion-instructions-cvt

---------

Signed-off-by: DharuniRAcharya <dharunira at nvidia.com>
DeltaFile
+253-0llvm/test/CodeGen/NVPTX/convert-fp4-pzo.ll
+31-22llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
+14-8llvm/include/llvm/IR/IntrinsicsNVVM.td
+15-6clang/test/CodeGen/builtins-nvptx.c
+21-0clang/include/clang/Basic/BuiltinsNVPTX.td
+13-0clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp
+347-363 files not shown
+359-459 files

LLVM/project b7bd84f — llvm/test/Transforms/LoopVectorize iv-select-cmp-non-const-iv-start.ll find-last-iv-sinkable-load.ll, llvm/test/Transforms/LoopVectorize/AArch64 conditional-scalar-assignment.ll

[VPlan] Fix find last reductions not using frozen condition in select (#223962)

A find last reduction is something like:

    (select c[n], x[n], (select c[n-1], x[n-1], (select ...)))

So even if previous iterations had poison for c[x], the top-level select
blocks it.

MaskSelect uses the non-frozen Cond, and that in turn is fed into
VPInstruction::ExtractLastActive, which in turn gets expanded to
vector.reduce.umax, which returns poison if any of the lanes were
poison.

So in the case e.g. c[n] = 1, c[n-1] = poison and VF=2, the scalar loop
returns x[n] whilst vector loop returns poison.

We're also introducing multiple uses of Cond which isn't sound for
undef, so for these reasons we need to use the frozen Cond.
DeltaFile
+54-54llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll
+18-18llvm/test/Transforms/LoopVectorize/select-cmp.ll
+18-18llvm/test/Transforms/LoopVectorize/AArch64/conditional-scalar-assignment.ll
+14-14llvm/test/Transforms/LoopVectorize/X86/conditional-scalar-assignment.ll
+9-9llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll
+9-9llvm/test/Transforms/LoopVectorize/find-last-iv-sinkable-load.ll
+122-12218 files not shown
+174-17524 files

NetBSD/src xv3wLl2 — sys/dev/videomode edid.c vesagtf.c

   Handle sync, interlace in GTF modes, explicity init name in EDID and GTF.

   Avoid stack garbage passed in those uninitialized fields - fixes
   wsdisplay drivers that actually read these fields.
VersionDeltaFile
1.5+12-3sys/dev/videomode/vesagtf.c
1.19+3-2sys/dev/videomode/edid.c
+15-52 files

FreeNAS/freenas cc37c3e — src/middlewared/middlewared/api/v26_0_0 truenas.py, src/middlewared/middlewared/api/v27_0_0 truenas.py

Send license issued_at in TNC heartbeat

This commit adds changes to expose the license's issue date as `issued_at` on `truenas.license.info` and send it to TNC in the heartbeat. v2 licenses pass the minted timestamp through verbatim, legacy licenses report their contract start date, and system-generated records report null.
DeltaFile
+6-0src/middlewared/middlewared/pytest/unit/utils/test_license_legacy_utils.py
+6-0src/middlewared/middlewared/api/v27_0_0/truenas.py
+6-0src/middlewared/middlewared/api/v26_0_0/truenas.py
+4-1src/middlewared/middlewared/plugins/truenas_connect/heartbeat.py
+3-0src/middlewared/middlewared/utils/license/types.py
+3-0src/middlewared/middlewared/pytest/unit/utils/test_license_info_wire.py
+28-14 files not shown
+34-110 files

LLVM/project 80cd610 — llvm/lib/Target/LoongArch LoongArchAsmPrinter.h LoongArchAsmPrinter.cpp, llvm/test/CodeGen/LoongArch module-target-abi.ll

LoongArch: Respect the target-abi module flag in the ELF header (#226498)

The target streamer read the ABI from MCTargetOptions when constructed,
so the e_flags recorded the command line -target-abi and ignored the
module flag.

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+13-0llvm/test/CodeGen/LoongArch/module-target-abi.ll
+10-0llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp
+2-0llvm/lib/Target/LoongArch/LoongArchAsmPrinter.h
+25-03 files

FreeBSD/doc 5b0e505 — website/content/en/cgi cgi-style-responsive.pl

cgi: use charset configuration
DeltaFile
+1-1website/content/en/cgi/cgi-style-responsive.pl
+1-11 files

LLVM/project 82984b5 — llvm/lib/CodeGen CodeGenPrepare.cpp, llvm/test/CodeGen/AArch64 strength-reduce-vector-as-data.ll

Implement support for unrolled vector case
DeltaFile
+25-28llvm/test/CodeGen/AArch64/strength-reduce-vector-as-data.ll
+28-2llvm/lib/CodeGen/CodeGenPrepare.cpp
+53-302 files

LLVM/project 7e909a3 — llvm/test/Transforms/CodeGenPrepare/AArch64 strength-reduce-vector-as-data.ll

update new IR test
DeltaFile
+34-8llvm/test/Transforms/CodeGenPrepare/AArch64/strength-reduce-vector-as-data.ll
+34-81 files

LLVM/project 5aa0482 — llvm/lib/Target/LoongArch/MCTargetDesc LoongArchMCTargetDesc.cpp, llvm/test/CodeGen/LoongArch null-streamer.ll

LoongArch: Register a null target streamer (#226497)

Emitting a TLS variable's debug location calls into the target streamer,
which was only registered for asm and object output. -filetype=null
therefore null dereferenced.

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+20-0llvm/test/CodeGen/LoongArch/null-streamer.ll
+6-0llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.cpp
+26-02 files

LLVM/project 807cb99 — llvm/lib/CodeGen CodeGenPrepare.cpp, llvm/test/CodeGen/AArch64 strength-reduce-vector-as-data.ll

Implement single gep case
DeltaFile
+145-0llvm/lib/CodeGen/CodeGenPrepare.cpp
+7-9llvm/test/CodeGen/AArch64/strength-reduce-vector-as-data.ll
+152-92 files

LLVM/project a0fbe55 — llvm/test/Transforms/CodeGenPrepare/AArch64 strength-reduce-vector-as-data.ll

update new IR test
DeltaFile
+14-3llvm/test/Transforms/CodeGenPrepare/AArch64/strength-reduce-vector-as-data.ll
+14-31 files

LLVM/project b392cf2 — llvm/include/llvm/IR PatternMatch.h

Remove TODO
DeltaFile
+0-1llvm/include/llvm/IR/PatternMatch.h
+0-11 files

NetBSD/pkgsrc QmGk0TE — doc CHANGES-2026

   Updated emulators/libspectrum, emulators/fuse-emulator, emulators/fuse-emulator-utils
VersionDeltaFile
1.6503+4-1doc/CHANGES-2026
+4-11 files

NetBSD/pkgsrc Cn3ffEl — emulators/fuse-emulator-utils PLIST Makefile

   fuse-emulator-utils: updated to 1.5.0

   1.5.0

   * listbasic
     * Support extracting BASIC listings from Microdrive cartridge
       images (Fredrick Meunier).

   * mdrlist
     * New utility to list the contents of an MDR Microdrive cartridge
       image (Fredrick Meunier).

   * fmfconv
     * Refresh flashing cells when the FMF flash phase changes (bug 526)
       (thanks, Alberto Garcia) (Fredrick Meunier).

   * rzxdump
     * Display the contents of compressed input blocks (Fredrick
       Meunier).

    [16 lines not shown]
VersionDeltaFile
1.17+4-4emulators/fuse-emulator-utils/distinfo
1.24+2-3emulators/fuse-emulator-utils/Makefile
1.4+3-1emulators/fuse-emulator-utils/PLIST
+9-83 files

NetBSD/pkgsrc g1CtwtG — emulators/fuse-emulator Makefile distinfo

   fuse-emulator: updated to 1.10.0

   * Emulation core improvements:
     * Expand automatic tape-loader detection and acceleration for
       Microprose, Software Projects, Gremlin 2 and Movieload loaders
       (fixes bugs 396, 429 and 430) (thanks, Philip Kendall)
       (Fredrick Meunier).
     * Improve automatic tape playback for custom loaders, allowing Basil
       the Great Mouse Detective, Viz: The Computer Game, Moonlighter and
       Trzy Wymiary to load without manual tape control (fixes bug 433
       and part of bug 218) (Fredrick Meunier).
     * Preserve the complete tape signal state when switching from ROM
       traps to custom loaders, allowing Bomb Jack and similar loaders to
       continue correctly (fixes bug 333 and part of bug 310)
       (Fredrick Meunier).
     * Avoid accelerating the Technician Ted loader (fixes bug 55)
       (Fredrick Meunier).
     * Do not automatically restart rewound tapes at end of tape, making
       it easier to change sides in multi-side games such as Echelon

    [75 lines not shown]
VersionDeltaFile
1.23+4-4emulators/fuse-emulator/distinfo
1.76+2-3emulators/fuse-emulator/Makefile
+6-72 files

FreeBSD/ports 85ffc8c — net/samba424 Makefile, net/samba424/files patch-source3_lib_system.c

net/samba424: restore missing FreeBSD fdescfs support in lib/system.c

net/samba419, net/samba420, net/samba422 and net/samba423 all carried
a patch (originally 0028-s3-lib-system-add-FreeBSD-proc_fd_pattern.patch
by Timur I. Bakeyev, adapted for Samba 4.20 by Andrea Venturoli) that
teaches sys_have_proc_fds()/sys_proc_fd_path() in source3/lib/system.c
to recognize FreeBSD's fdescfs mount as an equivalent to Linux's
/proc/self/fd. This patch was dropped when net/samba424 was created
and was never carried forward.

Without it, upstream's sys_have_proc_fds() only ever checks
"/proc/self/fd/0", which does not exist on stock FreeBSD, so
fsp->fsp_flags.have_proc_fds is always false. That flag gates the
race-free pathref-fd-to-path resolution branches in
patch-source3_modules_vfs__zfsacl.c and patch-source3_modules_vfs__freebsd.c,
so without it both modules silently fall back to a less secure,
non-race-free path-based lookup instead of the fdescfs-backed path
that samba419's r24fbb5209481 ("Use a simple approach to reconcile
O_PATH and vfs_zfsacl") was built around.

    [24 lines not shown]
DeltaFile
+151-0net/samba424/files/patch-source3_lib_system.c
+1-1net/samba424/Makefile
+152-12 files

NetBSD/pkgsrc iXODyiA — emulators/libspectrum Makefile distinfo

   libspectrum: updated to 1.7.0

   1.7.0

   * Make tape playback own signal polarity and return absolute levels for
     live and cursor playback, with atomic cursor state operations
     (Fredrick Meunier).

   * Add a resolved-file abstraction for accessing compressed and
     uncompressed files (part of bugs 507 and 192) (Fredrick Meunier,
     thanks Gergely Szasz and Bernat).

   * Add RZX playback input cursor and creator metadata APIs (Fredrick
     Meunier).

   * Add structured accessors for microdrive block headers, record
     descriptors, data and checksums (Fredrick Meunier).

   * Require C11 or later (Fredrick Meunier).

    [15 lines not shown]
VersionDeltaFile
1.32+4-4emulators/libspectrum/distinfo
1.68+2-3emulators/libspectrum/Makefile
+6-72 files

LLVM/project 36a70a9 — clang/include/clang/CodeGenUtils ClassUtils.h FunctionUtils.h, clang/lib/CodeGenUtils ClassUtils.cpp FunctionUtils.cpp

[CIR][CodeGen][NFC] Retire the CodeGenUtils.h catch-all header

The preceding patches group shared helpers by the classic CodeGen file, or
file family, they came from. That leaves CodeGenUtils.h holding only the
five helpers PR #221001 started the library with and the target-features
checker from PR #223056, so they move to the same places their neighbours
went and the header goes away. The library keeps its name.

checkTargetFeatures came out of CodeGenFunction.cpp, so it joins
shouldEmitLifetimeMarkers in FunctionUtils.h. TargetUtils.h would fit it by
subject, but the series sorts by origin file, and picking origin keeps the
rule mechanical.

isAAPCS is the one case origin does not settle, since it was duplicated in
CGExpr.cpp and CGRecordLayoutBuilder.cpp rather than living in one file. It
is a plain TargetInfo predicate, so it goes with the other target
predicates.

Doing this now avoids making every helper we share from here on pick

    [5 lines not shown]
DeltaFile
+0-233clang/lib/CodeGenUtils/CodeGenUtils.cpp
+120-0clang/lib/CodeGenUtils/FunctionUtils.cpp
+81-0clang/lib/CodeGenUtils/ClassUtils.cpp
+0-65clang/include/clang/CodeGenUtils/CodeGenUtils.h
+24-2clang/include/clang/CodeGenUtils/FunctionUtils.h
+18-0clang/include/clang/CodeGenUtils/ClassUtils.h
+243-30016 files not shown
+282-31222 files

LLVM/project 75cd333 — clang/include/clang/CodeGenUtils TargetUtils.h, clang/lib/CIR/CodeGen TargetInfo.h TargetInfo.cpp

[CIR][CodeGen][NFC] Share requiresAMDGPUProtectedVisibility

Both CodeGens carry the same attribute check deciding whether an AMDGPU
kernel or device variable with hidden visibility must be promoted to
protected. The shared version takes a bool saying whether the global
currently has hidden visibility. Classic passed an llvm::GlobalValue and
CIR a cir::VisibilityKind, and both only compared it against hidden.

No functional change.
DeltaFile
+3-15clang/lib/CodeGen/Targets/AMDGPU.cpp
+0-14clang/lib/CIR/CodeGen/Targets/AMDGPU.cpp
+14-0clang/lib/CodeGenUtils/TargetUtils.cpp
+6-2clang/lib/CIR/CodeGen/TargetInfo.cpp
+6-0clang/include/clang/CodeGenUtils/TargetUtils.h
+0-4clang/lib/CIR/CodeGen/TargetInfo.h
+29-356 files

LLVM/project 0b708d3 — clang/include/clang/CodeGenUtils TargetUtils.h, clang/lib/CIR/CodeGen CIRGenBuiltinAArch64.cpp

[CIR][CodeGen][NFC] Share hasExtraNeonArgument

Both CodeGens carry the same table-driven check for whether a Neon builtin
takes a trailing type-discriminating argument. CIR's copy was marked
"TODO(cir): Share this with ARM.cpp" and had a dead second switch, which the
shared version drops; classic's if/return pair becomes `return mask != 0`.

No functional change.
DeltaFile
+2-38clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
+3-34clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+25-0clang/lib/CodeGenUtils/TargetUtils.cpp
+6-0clang/include/clang/CodeGenUtils/TargetUtils.h
+36-724 files