LLVM/project ca1dbb8 — lld/wasm Driver.cpp, llvm/lib/ObjCopy/ELF ELFObjcopy.cpp

[lld][llvm-objcopy] Fix iterator invalidation when mutating vectors during iteration (#228183)

In lld/wasm/Driver.cpp (processStubLibraries), addStubSymbolDeps() can
insert new symbols into the symbol table, reallocating the underlying
symbol vector and invalidating range-for iterators over
symtab->symbols(). Iterate by index instead.

In llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp (removeNotes),
Obj.updateSectionData() replaces a section by appending a new section to
the object's sections vector, which can reallocate the vector and
invalidate range-for iterators over Obj.sections(). Collect the matching
SHT_NOTE section pointers before iterating and updating section data.

Motivation: these iterator invalidations cause failures when vector
growth rate is lowered from 2x (which I'm experimenting with).

Note: these fixes were generated by AI, but I (the human ezbr) added the
comments manually and am in the loop.
DeltaFile
+70-0llvm/test/tools/llvm-objcopy/ELF/remove-note.test
+14-7llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
+5-2lld/wasm/Driver.cpp
+89-93 files

LLVM/project 877d123 — clang/lib/Basic/Targets AArch64.cpp, clang/test/Preprocessor init-aarch64.c

[clang] Set _GNU_SOURCE for AArch64 bare-metal targets (#225071)

Set the _GNU_SOURCE macro when compiling for aarch64-none-elf in C++
mode. This enables GNU interfaces globally so libc++ headers can use
libc functions such as `strtof_l`. This also matches ARM.cpp when
compiling for arm-none-eabi, further aligning aarch64 and arm bare-metal
behaviour.
DeltaFile
+11-2clang/lib/Basic/Targets/AArch64.cpp
+3-0clang/test/Preprocessor/init-aarch64.c
+14-22 files

LLVM/project 280834a — llvm/lib/CodeGen MachineScheduler.cpp MacroFusion.cpp, llvm/test/CodeGen/AArch64 misched-cluster-exitsu.mir

 [MISched] Pretty print ExitSU treewide (#231291)
DeltaFile
+42-4llvm/test/CodeGen/AArch64/misched-cluster-exitsu.mir
+8-4llvm/lib/CodeGen/MacroFusion.cpp
+2-2llvm/lib/CodeGen/MachineScheduler.cpp
+52-103 files

LLVM/project 23f1331 — llvm/lib/Transforms/InstCombine InstCombineCasts.cpp, llvm/test/Transforms/InstCombine fpcast.ll

Update for comments
DeltaFile
+2-4llvm/test/Transforms/InstCombine/fpcast.ll
+1-1llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+3-52 files

LLVM/project 05a6200 — llvm/lib/Transforms/InstCombine InstCombineCasts.cpp, llvm/test/Transforms/InstCombine fpcast.ll

[InstCombine] Fold fpto[su]i of llvm.trunc

fptoui and fptosi already round toward zero, so a preceding llvm.trunc
is redundant and the conversion can take the untruncated value. NaN,
infinity, and out of range inputs produce poison in both forms.

```llvm
%t = call float @llvm.trunc.f32(float %x)
%r = fptosi float %t to i32
  -->
%r = fptosi float %x to i32
```

The trunc may have other users; only the conversion operand is replaced.
DeltaFile
+6-10llvm/test/Transforms/InstCombine/fpcast.ll
+5-0llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+11-102 files

LLVM/project 3249823 — llvm/test/Transforms/InstCombine fpcast.ll

Add FMF test
DeltaFile
+22-0llvm/test/Transforms/InstCombine/fpcast.ll
+22-01 files

OPNSense/core 8d271b7 — src/opnsense/mvc/app/library/OPNsense/System/Status IPsecIkev1Status.php

ipsec: add missing email
DeltaFile
+1-1src/opnsense/mvc/app/library/OPNsense/System/Status/IPsecIkev1Status.php
+1-11 files

OPNSense/plugins 43f86c3 — security/strongswan-legacy Makefile, security/strongswan-legacy/src/sbin ping_hosts.sh

security/strongswan-legacy: add ping_hosts.sh from core
DeltaFile
+126-0security/strongswan-legacy/src/sbin/ping_hosts.sh
+1-1security/strongswan-legacy/Makefile
+127-12 files

OPNSense/core c2a902d — src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterBaseController.php, src/opnsense/mvc/app/views/OPNsense/Firewall nat_rule.volt filter_rule.volt

We can remove these frontend validations as we moved them into the controller
DeltaFile
+0-10src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+0-9src/opnsense/mvc/app/views/OPNsense/Firewall/nat_rule.volt
+1-1src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterBaseController.php
+1-203 files

LLVM/project fbb4158 — llvm/test/CodeGen/AMDGPU si-unify-exit-multiple-unreachables.ll infinite-loop.ll

restore opt checks lost in rebase
DeltaFile
+9-6llvm/test/CodeGen/AMDGPU/infinite-loop.ll
+3-2llvm/test/CodeGen/AMDGPU/si-unify-exit-multiple-unreachables.ll
+12-82 files

OPNSense/core d111374 — . plist, src/etc/inc/plugins.inc.d core.inc ipsec.inc

ipsec: move ping_hosts.sh to legacy plugin and harden

The script doesn't need to be in core and does not need to be
run by default.  Tampering with /tmp/tmpHOSTS without legacy
IPsec running would allow creating the file with a non-root
user which the script would pick up and potentially evaluate.

The fix for ping_hosts.sh will be in the matching plugins commit.

Reported by: Adam Korczynski of Ada Logics using Anrophic
DeltaFile
+0-126src/sbin/ping_hosts.sh
+15-4src/etc/inc/plugins.inc.d/ipsec.inc
+0-1src/etc/inc/plugins.inc.d/core.inc
+0-1plist
+15-1324 files

LLVM/project e377790 — 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 (#227271)

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

LLVM/project d553cca — llvm/include/llvm/CodeGen SelectionDAG.h, llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp

[AArch64][SDAG] Generate TBL for shuffles in single block loops. (#227593)

When lowering shuffles we can either generate multiple zip/trn/ins/etc,
or a single tbl with a mask generated from a constant pool. The sequence
of 2 instructions will be quicker and smaller for a one-off instruction,
the tbl will be quicker if the mask load is loop invarinant and can be
loaded once and used many times.

This and several other places are examples of where the lowering should
be dependant on whether the current basic block is inside a relatively
small loop. (Very large loops act like standard straight-line code).

This patch adds a simple heiristic that makes use of the current
BasicBlock being selected, changing the behaviour of shuffle generation
if it is a single self-looping block. This keeps the types of block
where this would apply constrained and ensures it will only trigger for
small loops that can reliably pull the constant pool out of the loop. If
this is acceptable there are a few other optimizations that could reuse
the same pattern.
DeltaFile
+111-110llvm/test/CodeGen/AArch64/tbl-loops.ll
+92-86llvm/test/CodeGen/AArch64/vldn_shuffle.ll
+16-4llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+4-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+2-0llvm/include/llvm/CodeGen/SelectionDAG.h
+225-2005 files

LLVM/project c545141 — libcxx/include/__flat_map flat_multimap.h flat_map.h, libcxx/include/__flat_set flat_set.h flat_multiset.h

[libc++] Don't explicitly rethrow in flat container function try blocks (#230988)

We currently have some relatively complex code in the flat containers'
function catch blocks to work around a GCC warning. Instead, we can let
the rethrow happen implicitly.

As a drive-by this also simplifies the brace positioning.
DeltaFile
+10-14libcxx/include/__flat_map/flat_multimap.h
+10-14libcxx/include/__flat_map/flat_map.h
+10-13libcxx/include/__flat_set/flat_set.h
+10-13libcxx/include/__flat_set/flat_multiset.h
+40-544 files

LLVM/project fb8014b — llvm/lib/Transforms/Vectorize VPlanLowering.cpp, llvm/test/Transforms/LoopVectorize/AArch64 wide-vscale-range-max-runtime-vf.ll widen-call-attrs-masked.ll

[VPlan] Do not clear the NUW flag on the IV increment during lowering (#230550)

Removes the call in addVPLaneMaskPhiAndUpdateExitBranch which
clears the NUW flag if present. If the canonical IV increment
can overflow for any candidate VF, tryToBuildVPlan already
clears the flag earlier when building the plan.
DeltaFile
+12-12llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll
+1-5llvm/lib/Transforms/Vectorize/VPlanLowering.cpp
+3-3llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce.ll
+2-2llvm/test/Transforms/LoopVectorize/AArch64/widen-call-attrs-masked.ll
+2-2llvm/test/Transforms/LoopVectorize/AArch64/sve-vfabi.ll
+1-1llvm/test/Transforms/LoopVectorize/AArch64/wide-vscale-range-max-runtime-vf.ll
+21-2510 files not shown
+31-3516 files

NetBSD/pkgsrc-wip 0971fb1 — trivy Makefile go-modules.mk

trivy: updated to 0.75.0
DeltaFile
+915-1,116trivy/distinfo
+304-371trivy/go-modules.mk
+1-1trivy/Makefile
+1,220-1,4883 files

LLVM/project 72e29ac — libcxx/include __hash_table

[libc++] Merge the various search loops in __hash_table (#230440)

The core part of the search is always the same, so we can save some code
duplication. The hash and chash are passed into the new function to
avoid recalculating it.
DeltaFile
+36-70libcxx/include/__hash_table
+36-701 files

LLVM/project 83c4f1b — llvm/lib/Transforms/Vectorize LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize/AArch64 memory-widening-debug.ll

[LV][NFC] Add early bail-out in setCostBasedWideningDecision (#230414)

While doing recent work to improve the debug output when setting
widening decisions I realised that we were unnecessarily printing out
debug for all members of the interleave group. I thought in general it's
perhaps clearer to bail out early if a particular memory access has
already been decided.
DeltaFile
+5-6llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+2-3llvm/test/Transforms/LoopVectorize/AArch64/memory-widening-debug.ll
+7-92 files

LLVM/project 501a853 — llvm/include/llvm/Analysis TargetTransformInfoImpl.h TargetTransformInfo.h, llvm/lib/Analysis TargetTransformInfo.cpp

[LSR] Prefer equality loop exits for targets

Allow targets to request conversion of relational latch exits to
equality comparisons when SCEV can determine a constant exit value.

Keep correctness independent of poison-derived nowrap flags. Pass
the new comparison through LSR post-increment handling.

Enable it for RISC-V Zibi immediates when the original comparison
does not already lower to a branch against x0.

Assisted-by: TRAE CLI (GPT-5.6-Sol)
DeltaFile
+47-64llvm/test/Transforms/LoopStrengthReduce/RISCV/loop-exit-equality.ll
+72-0llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+25-0llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+7-0llvm/include/llvm/Analysis/TargetTransformInfo.h
+5-0llvm/lib/Analysis/TargetTransformInfo.cpp
+5-0llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
+161-641 files not shown
+163-647 files

LLVM/project 3a75a59 — llvm/test/Transforms/LoopStrengthReduce/RISCV loop-exit-equality.ll

[LSR] Precommit tests for relational loop exits

Add baseline IR and assembly coverage for relational latch exits
with unit and non-unit induction variable strides.

Assisted-by: TRAE CLI (GPT-5.6-Sol)
DeltaFile
+782-0llvm/test/Transforms/LoopStrengthReduce/RISCV/loop-exit-equality.ll
+782-01 files

LLVM/project 50d1a75 — llvm/lib/Target/AMDGPU SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU int_to_fp_narrow_i64.ll

[AMDGPU] Do not widen int to fp sources to i64 (#231324)

There is no instruction that converts from a 64-bit integer, so folding
(sint_to_fp (trunc nsw x)) and (uint_to_fp (trunc nuw x)) to the i64
source replaces a 32-bit conversion with the i64 expansion.
DeltaFile
+178-132llvm/test/CodeGen/AMDGPU/int_to_fp_narrow_i64.ll
+4-0llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+182-1322 files

NetBSD/pkgsrc-wip 267dbd6 — pamtester/patches patch-src_util.c patch-src_parse__opts.c

pamtester: imported to pkgsrc
DeltaFile
+0-28pamtester/patches/patch-src_app.c
+0-18pamtester/patches/patch-src_util.c
+0-18pamtester/patches/patch-src_parse__opts.c
+0-18pamtester/patches/patch-src_pamtester.c
+0-18pamtester/patches/patch-src_expr__parser.c
+0-18pamtester/patches/patch-src_compat.c
+0-1184 files not shown
+0-15810 files

LLVM/project cc4c1f9 — llvm/lib/Transforms/IPO AttributorAttributes.cpp, llvm/test/Transforms/Attributor value-simplify-local-remote.ll pointer-info.ll

[Attributor] Only follow addrspacecasts in AAPointerInfo (#225290)

AAPointerInfo followed every cast of a pointer except ptrtoint
instructions. A ptrtoaddr, a ptrtoint/ptrtoaddr constant expression, or
a bitcast to a byte type thus produced a non-pointer value that was
tracked as a pointer, which asserted in getPointerAddressSpace() once it
reached a PHI.

Only follow addrspacecasts, the only casts that preserve the pointer.

Fixes #221852.

Assisted-by: Claude
DeltaFile
+156-4llvm/test/Transforms/Attributor/pointer-info.ll
+7-12llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+1-2llvm/test/Transforms/Attributor/value-simplify-local-remote.ll
+164-183 files

FreeBSD/ports e340283 — graphics/gifsicle distinfo Makefile

graphics/gifsicle: Update to 1.97

Changelog: https://github.com/kohler/gifsicle/blob/v1.97/NEWS.md

Reported by:    portscout
DeltaFile
+6-4graphics/gifsicle/Makefile
+3-3graphics/gifsicle/distinfo
+9-72 files

LLVM/project 4ccf9e2 — llvm/include/llvm/TableGen Record.h, llvm/lib/TableGen TGParser.h Record.cpp

TableGen: Move value reference locations into Record

RecordVal kept reference locations that only the TableGen language
server uses, but every copy of every field paid for them. Keep them in
the owning Record instead. This shrinks RecordVal from 48 to 32 bytes.

Parsing AMDGPU.td with llvm-tblgen --null-backend, peak memory drops
from 834 MB to 638 MB with 22% fewer page faults.

Add a language server test for references to fields and template
arguments, which were not covered before.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+58-0mlir/test/tblgen-lsp-server/value-references.test
+24-12llvm/include/llvm/TableGen/Record.h
+10-8llvm/lib/TableGen/TGParser.cpp
+3-1llvm/lib/TableGen/Record.cpp
+2-1llvm/lib/TableGen/TGParser.h
+1-1mlir/lib/Tools/tblgen-lsp-server/TableGenServer.cpp
+98-236 files

LLVM/project 90a26c2 — llvm/include/llvm/IR IntrinsicInst.h, llvm/lib/CodeGen/GlobalISel IRTranslator.cpp

[DebugInfo] Remove dead debug intrinsic handling (NFC) (#231379)

This patch removes leftover code for legacy debug intrinsics
(DbgInfoIntrinsic and its subclasses) in two categories:

- Conditional checks, assertions, and switch cases that never trigger
  because debug intrinsics do not appear in these passes.
- Unused member functions on DbgVariableIntrinsic, DbgValueInst, and
  DbgAssignIntrinsic, along with the unimplemented
  Verifier::visitDbgLabelIntrinsic declaration.

Note that this patch leaves the DirectX backend alone for now because
it still converts DbgRecord objects back into debug intrinsics during
DXIL lowering.

Assisted-by: Antigravity
DeltaFile
+0-35llvm/include/llvm/IR/IntrinsicInst.h
+0-32llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+0-27llvm/lib/Transforms/Scalar/ADCE.cpp
+0-15llvm/lib/Target/X86/X86FastISel.cpp
+0-15llvm/lib/IR/IntrinsicInst.cpp
+1-12llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+1-13616 files not shown
+6-20722 files

FreeBSD/ports 23eee32 — print/cups Makefile distinfo

print/cups: Update to 2.4.20

PR:             299342
DeltaFile
+3-3print/cups/distinfo
+1-2print/cups/Makefile
+4-52 files

LLVM/project 12fe8b2 — llvm/lib/Target/AArch64 AArch64FrameLowering.cpp, llvm/test/CodeGen/AArch64 sme2-intrinsics-int-dots.ll sme-vg-to-stack.ll

[AArch64] Reorder callee-saved spills to maximise load/store register groupings (#229349)

Currently, the callee-saved spills reorder to maximize ZPR pairs, but do
not reorder to maximize ZPR quads. Modify the reordering algorithm to
also maximize ZPR quads and pairs.

Note: Quad spills are not enabled yet but will implemented in a
subsequent PR.

The main idea behind the reordering is to align the starting offset of
the ZPR quads when we begin the spill due to the conditions required to
form a ZPR quad store/load. To do this, we calculate the starting offset
and use pairs/single spills to align the offset.
DeltaFile
+352-352llvm/test/CodeGen/AArch64/sme2-intrinsics-ldnt1.ll
+352-352llvm/test/CodeGen/AArch64/sme2-intrinsics-ld1.ll
+245-108llvm/test/CodeGen/AArch64/sve-callee-save-restore-pairs.ll
+87-62llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+52-52llvm/test/CodeGen/AArch64/sme-vg-to-stack.ll
+32-32llvm/test/CodeGen/AArch64/sme2-intrinsics-int-dots.ll
+1,120-9585 files not shown
+1,162-1,00011 files

FreeBSD/ports 26a6f78 — editors/zed Makefile distinfo

editors/zed: Update to 1.23.3

Changelog: https://github.com/zed-industries/zed/releases/tag/v1.23.3

Reported by:    GitHub (watch releases)
DeltaFile
+3-3editors/zed/distinfo
+1-1editors/zed/Makefile
+4-42 files

LLVM/project df42bd6 — llvm/lib/Target/RISCV RISCVRegisterInfo.td, llvm/test/CodeGen/RISCV bitinsert-bitextract-fp.ll bitinsert-bitextract.ll

RISCV: Make GPRAll non-allocatable

GPRAll contains the reserved DUMMY_REG_PAIR_WITH_X0, which cannot be
spilled, so the class should not be allocatable. Nothing creates virtual
registers in it yet, but inline asm constraint lookup returns GPRAll for
cases like {x8} with i32 on riscv64.

This increases spilling in some tests due to RegisterClassInfo defects.
RegisterClassInfo::computePSetLimit subtracts the reserved registers of
the largest allocatable class in the GPR pressure set, which is now
GPRF16 instead of GPRAll. The reserved dummy unit is no longer
subtracted, raising the limit by one.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+5,611-5,555llvm/test/CodeGen/RISCV/clmul.ll
+1,314-1,312llvm/test/CodeGen/RISCV/clmulr.ll
+1,274-1,292llvm/test/CodeGen/RISCV/clmulh.ll
+229-223llvm/test/CodeGen/RISCV/bitinsert-bitextract.ll
+113-110llvm/test/CodeGen/RISCV/bitinsert-bitextract-fp.ll
+3-1llvm/lib/Target/RISCV/RISCVRegisterInfo.td
+8,544-8,4936 files