LLVM/project 88c3707 — llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer Legality.h, llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes LoadStoreVec.h

[SandboxVec][LoadStoreVec] Move legality checks to LegalityAnalysis (NFC) (#234783)

Up until now the LoadStoreVec was using a custom legality checker. This
patch is the first step towards unifying and sharing the legality checks
across the passes.
DeltaFile
+9-13llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
+17-0llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp
+2-1llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
+3-0llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h
+31-144 files

LLVM/project 0faf6df — flang/lib/Optimizer/Transforms LoopInvariantCodeMotion.cpp, flang/test/Transforms licm-loop-like.fir

[flang] Do not hoist loop-like operations in LICM (#236056)

Hoisting a loop out of the loop it is nested in changes how it is
scheduled relative to the iterations of the enclosing loop. For example,
an inner loop of an OpenACC parallel loop that ends up outside of the
parallel loop is no longer executed by every iteration of it, and can
then be mapped to parallel dimensions on its own and compute wrong
results.

Skip operations implementing LoopLikeOpInterface, including when they
are nested in a hoistable operation.
DeltaFile
+55-0flang/test/Transforms/licm-loop-like.fir
+11-0flang/lib/Optimizer/Transforms/LoopInvariantCodeMotion.cpp
+66-02 files

OPNSense/core 69247d0 — src/opnsense/scripts/netflow get_timeseries.py

Reporting: Insight - require positive int values, closes https://github.com/opnsense/core/issues/11100
DeltaFile
+10-3src/opnsense/scripts/netflow/get_timeseries.py
+10-31 files

LLVM/project 01e8dab — offload/test/offloading target-no-loop.c, offload/test/offloading/fortran target-no-loop.f90

Check teams and threads set by clauses in the default run
DeltaFile
+3-0offload/test/offloading/target-no-loop.c
+3-0offload/test/offloading/fortran/target-no-loop.f90
+6-02 files

LLVM/project 64879ab — offload/test/offloading target-no-loop.c, offload/test/offloading/fortran target-no-loop.f90

[offload][OpenMP][NFC] Add a default-grid run to the no-loop tests

Add a run without OMP_NUM_TEAMS and OMP_TEAMS_THREAD_LIMIT to show the
kernels are promoted with the runtime's default grid as well.
DeltaFile
+9-0offload/test/offloading/target-no-loop.c
+9-0offload/test/offloading/fortran/target-no-loop.f90
+18-02 files

LLVM/project 4aa9074 — offload/test/offloading target-no-loop.c, offload/test/offloading/fortran target-no-loop.f90

Extend no-loop test coverage with large tripcount to check correct runtime grid-sizing
DeltaFile
+17-3offload/test/offloading/target-no-loop.c
+18-0offload/test/offloading/fortran/target-no-loop.f90
+35-32 files

FreeBSD/ports 214b87a — japanese/p5-WWW-2ch Makefile

japanese/p5-WWW-2ch: Mark DEPRECATED

PR:             299349
Approved by:    perl (maintainer, timeout 2 weeks)
Approved by:    osa, fluffy (mentors, implicit)
MFH:            2026Q4

(cherry picked from commit 3a9bd36b6bef60757dc8c38d96afa5c7054b8004)
DeltaFile
+4-1japanese/p5-WWW-2ch/Makefile
+4-11 files

LLVM/project 1088dbc — clang/lib/CodeGen CGOpenMPRuntimeGPU.cpp CGStmtOpenMP.cpp, clang/test/OpenMP target_loop_promotion.cpp

[NFC] Change strided loop name

Changes strided loop to be named grid-stride loop instead for less
ambiguity as stride describes the jump distance in general.
DeltaFile
+26-26clang/test/OpenMP/target_loop_promotion.cpp
+8-8offload/test/offloading/target-no-loop.c
+8-8offload/test/offloading/small_trip_count.c
+7-7clang/lib/CodeGen/CGOpenMPRuntimeGPU.h
+6-5clang/lib/CodeGen/CGStmtOpenMP.cpp
+5-5clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+60-598 files not shown
+75-7314 files

FreeBSD/ports 3a9bd36 — japanese/p5-WWW-2ch Makefile

japanese/p5-WWW-2ch: Mark DEPRECATED

PR:             299349
Approved by:    perl (maintainer, timeout 2 weeks)
Approved by:    osa, fluffy (mentors, implicit)
MFH:            2026Q4
DeltaFile
+4-1japanese/p5-WWW-2ch/Makefile
+4-11 files

LLVM/project 0dd4606 — clang/test/OpenMP target_loop_promotion.cpp target_teams_generic_loop_codegen_as_parallel_for.cpp

[clang][OpenMP] Add strided-loop SPMD kernel promotion

A target teams distribute parallel for is only promoted when every
iteration is guaranteed a thread. Without the oversubscription
assumptions, or with a num_teams clause, it is emitted as nested
worksharing loops, while Flang runs the same region as a grid-stride
loop.

Promote these kernels too, so the loop body strides across the grid,
and tag them SPMD_STRIDED_LOOP so the launch can be told apart from
plain SPMD. This allows teams loop and target teams loop to always get
optimized. Since those can carry lastprivate(conditional:), the
promoted path has to track it.
DeltaFile
+3,247-5,702clang/test/OpenMP/nvptx_SPMD_codegen.cpp
+664-1,243clang/test/OpenMP/nvptx_target_teams_generic_loop_codegen.cpp
+595-1,174clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_codegen.cpp
+348-658clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_simd_codegen.cpp
+209-343clang/test/OpenMP/target_teams_generic_loop_codegen_as_parallel_for.cpp
+444-0clang/test/OpenMP/target_loop_promotion.cpp
+5,507-9,12019 files not shown
+5,896-9,96425 files

LLVM/project d6e883a — llvm/test/CodeGen/AMDGPU freeze.ll integer-mad-patterns.ll, llvm/test/CodeGen/AMDGPU/GlobalISel extractelement.ll insertelement.i8.ll

[GlobalISel] Simplify demanded bits through constant shifts (#230636)
DeltaFile
+224-265llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
+164-243llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
+151-230llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
+150-214llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.i8.ll
+161-168llvm/test/CodeGen/AMDGPU/freeze.ll
+0-328llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
+850-1,44871 files not shown
+2,656-3,55177 files

LLVM/project c98b2e5 — llvm/lib/Analysis ScalarEvolution.cpp

[SCEV] Avoid predicate switch (NFC) (#236157)

The logic is basically the same in all four cases, implement it
once using getNonStrictPredicate + getSwappedPredicate.
DeltaFile
+7-33llvm/lib/Analysis/ScalarEvolution.cpp
+7-331 files

LLVM/project 1682f0c — llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AArch64 neon-insert-sve-elt.ll sve-extract-scalar-to-vector.ll

[DAGCombiner] Fold extract + scalar2vec at lane 0 (#233856)

When extracting a scalar at index 0 from a vector and immediately
creating a new fixed-length vector with one lane only, we can just fold
that pattern into an extract_subvector pattern, given that the vector
element types align.

This removes redundant moves for vector reductions when the return is
handled as a one element vector.
These moves are not required when the result is in lane 0 already.

I used codex to generate the test cases.
DeltaFile
+190-0llvm/test/CodeGen/AArch64/sve-extract-scalar-to-vector.ll
+11-2llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+4-2llvm/test/CodeGen/AArch64/neon-insert-sve-elt.ll
+205-43 files

LLVM/project b81b29e — clang/include/clang/AST StmtOpenMP.h, clang/lib/AST StmtOpenMP.cpp

[clang][OpenMP] Extend no-loop promotion to the split teams loop

Widen the no-loop promotion to apply not only to the fused target teams
distribute parallel for but include the same region written as separate
directives, other directives promotable to parallel for, and regions
carrying a schedule clause that asks for a mapping a no-loop kernel
already provides.

Use the SPMD_NO_LOOP kernel tag to carry the promotion decision, based
on whether the kernel can get fully promoted to a no-loop kernel. This
eliminates the previous discrepancy where a clause got the tag but not
the promotion.
DeltaFile
+95-24clang/test/OpenMP/target_no_loop.cpp
+63-13clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+39-28clang/lib/CodeGen/CGStmtOpenMP.cpp
+10-1clang/include/clang/AST/StmtOpenMP.h
+2-1clang/lib/Sema/SemaOpenMP.cpp
+2-1clang/lib/AST/StmtOpenMP.cpp
+211-682 files not shown
+213-688 files

LLVM/project dd8c840 — flang/lib/Optimizer/Transforms LoopInvariantCodeMotion.cpp

Add TODO comment for loop scheduling workaround

Added a TODO comment regarding a workaround in loop scheduling.
DeltaFile
+1-0flang/lib/Optimizer/Transforms/LoopInvariantCodeMotion.cpp
+1-01 files

LLVM/project d29114c — llvm/test/Transforms/IndVarSimplify loop-invariant-predicate-samesign.ll

[IndVarSimplify][NFC] Add tests for loop-invariant samesign compares (#236092)

Add tests for replacing a samesign compare of an IV with a
loop-invariant value by its value on loop entry.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+160-0llvm/test/Transforms/IndVarSimplify/loop-invariant-predicate-samesign.ll
+160-01 files

LLVM/project a34e25b — llvm/lib/Analysis ScalarEvolution.cpp, llvm/test/Transforms/IndVarSimplify loop-invariant-predicate-samesign.ll

[SCEV] Drop samesign in getLoopInvariantPredicate (#236093)

SCEV's `getLoopInvariantPredicate` tries to replace a comparison of an
IV against a loop-invariant value with the comparison value on loop
entry.

For that it tries to prove that the comparison is:
 - (A) monotonic: i.e. if `c_i` is true, then `c_{i+1}` is true,
- (B) guards the backedge: the backedge is taken only if `c_i` is true.

Then each `c_i` may be replaced with `c_0`.

It works for the `icmp` instruction without the `samesign` flag.

With the `samesign` flag, however, the comparison is poison when its
operands have different signs.

To prove the backedge guard (B), we may rely on picking that poison as
true, while proving the monotonicity (A) may need the same poison to be

    [28 lines not shown]
DeltaFile
+8-6llvm/test/Transforms/IndVarSimplify/loop-invariant-predicate-samesign.ll
+4-0llvm/lib/Analysis/ScalarEvolution.cpp
+12-62 files

LLVM/project 2d76a1d — clang/lib/CodeGen CGStmtOpenMP.cpp

Add braces around loop body with nested if
DeltaFile
+3-2clang/lib/CodeGen/CGStmtOpenMP.cpp
+3-21 files

LLVM/project 63f4cc6 — clang/lib/CodeGen CGOpenMPRuntimeGPU.cpp CGStmtOpenMP.cpp, clang/test/OpenMP target_no_loop.cpp

[clang][OpenMP] Emit lastprivate final copies in no-loop kernels

Promotion rejected lastprivate because the no-loop branch leaves the
worksharing path before it privatizes or copies out, so the clause would
have been silently dropped.

Privatize the non-counter variables in the parallel region and copy them
out under the last iteration that applyWorkshareLoop publishes, forcing
the exit barrier the copy reads through. Loop counters stay at the
distribute level and reach EmitOMPSimdFinal.
DeltaFile
+76-20clang/test/OpenMP/target_no_loop.cpp
+52-4clang/lib/CodeGen/CGStmtOpenMP.cpp
+48-0offload/test/offloading/target-no-loop.c
+0-2clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+176-264 files

LLVM/project 1f3315e — llvm/lib/Target/AMDGPU GCNRegPressure.h, llvm/test/CodeGen/AMDGPU sched-max-pressure-different-points.mir llvm.amdgcn.mfma.ll

[AMDGPU] Take the VGPR and AVGPR maximum pressure from one point

max() of two GCNRegPressure values takes the VGPR and AVGPR counts from the operand with the larger sum of both. It does the same for the VGPR and AVGPR tuple weights. The SGPR and AGPR components still take the maximum of each component.

dumpMaxRegPressure() resets the maximum of the tracker before each instruction. It now compares the pressure of single instructions and does not depend on how max() combines two values.

Fix the expectations of the GCNRegPressureTest tests for this case. Add sched-max-pressure-different-points.mir and update the checks of the affected tests. rewrite-vgpr-mfma-to-agpr-spill-multi-store-mir.mir now uses the basic register allocator, as its sibling .ll test does since #226913.
DeltaFile
+384-350llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store-codegen.ll
+80-83llvm/test/CodeGen/AMDGPU/rewrite-mfma-single-exit-copy.ll
+74-74llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.ll
+131-0llvm/test/CodeGen/AMDGPU/sched-max-pressure-different-points.mir
+5-8llvm/unittests/Target/AMDGPU/GCNRegPressureTest.cpp
+13-0llvm/lib/Target/AMDGPU/GCNRegPressure.h
+687-5154 files not shown
+699-52310 files

LLVM/project 75cc76f — llvm/unittests/Target/AMDGPU GCNRegPressureTest.cpp

[AMDGPU][NFC] Add unit tests for the maximum of GCNRegPressure over a block

The tests run GCNDownwardRPTracker and GCNUpwardRPTracker over one block and check the accumulated maximum pressure. In the block, an AV register is live first and a VGPR is live after it, so only one vector register is live at any point. The tests use 32-bit registers, and 64-bit registers for the tuple weights. The expectations show the current results, with a FIXME: the maximum adds the AV peak to the VGPR peak.
DeltaFile
+80-0llvm/unittests/Target/AMDGPU/GCNRegPressureTest.cpp
+80-01 files

LLVM/project b01b1e6 — llvm/include/llvm/BinaryFormat ELF.def, llvm/test/tools/llvm-readobj/ELF file-header-machine-types.test

[spr] initial version

Created using spr 2.0.0-beta.2
DeltaFile
+210-482llvm/test/tools/llvm-readobj/ELF/file-header-machine-types.test
+58-30llvm/include/llvm/BinaryFormat/ELF.def
+268-5122 files

LLVM/project c4c1338 — llvm/lib/IR ConstantFold.cpp

[ConstantFold] Use isImpliedByMatchingCmp() (NFC) (#236149)

Instead of reimplementing it, badly. The non-strict cases had some
incorrect entries (e.g. ule does not imply that ult is true). We got
away with this because those predicates are never returned by
evaluateICmpRelation().
DeltaFile
+5-84llvm/lib/IR/ConstantFold.cpp
+5-841 files

FreeBSD/ports 75c361a — misc/ncnn pkg-plist Makefile

misc/ncnn: fix package

Reported by:    fallout
DeltaFile
+1-1misc/ncnn/pkg-plist
+1-1misc/ncnn/Makefile
+2-22 files

LLVM/project 50934bf — llvm/lib/Transforms/InstCombine InstCombineShifts.cpp

[InstCombine] Remove redundant fold for shift of add of zexts (NFCI) (#236141)

The earlier `(X + Y) / 2 --> (X & Y) iff (X u<= 1) && (Y u<= 1)` fold
subsumes this special case where X/Y are zext of i1.
DeltaFile
+0-12llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
+0-121 files

NetBSD/pkgsrc VNOE9kA — doc CHANGES-2026

   doc: Updated lang/scheme48 to 1.9.3
VersionDeltaFile
1.7383+2-1doc/CHANGES-2026
+2-11 files

NetBSD/pkgsrc 35YYWzU — lang/scheme48 distinfo Makefile

   scheme48: update to 1.9.3

   This release fixes problems with the autoconf script on modern C
   compilers. There are no functional changes
VersionDeltaFile
1.45+18-10lang/scheme48/Makefile
1.17+4-4lang/scheme48/distinfo
+22-142 files

LLVM/project 5967e71 — mlir/test/Conversion/MathToXeVM lit.local.cfg

[MLIR][MathToXeVM][NFC] Remove a dead lit.local.cfg (#232911)

The lit.local.cfg in test/Conversion/MathToXeVM excludes
native-spirv-builtins.mlir when the SPIRV target is not built. #189494
deleted that test, so the file now excludes nothing. Remove it.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+0-7mlir/test/Conversion/MathToXeVM/lit.local.cfg
+0-71 files

LLVM/project 4122ec6 — clang/docs ReleaseNotes.md, clang/lib/Lex PPDirectives.cpp

[clang][Lex] Skip to the end of directive after diagnosing 'defined' in an #embed parameter (#235934)

The `EvaluatedDefined` error path in `LexEmbedParameters` returned
without
discarding the rest of the directive, the only error path in the
function that didn't.
With any token following the parameter's closing paren, e.g.

    #embed <f> limit(defined(x)),

`HandleEmbedDirective` hit its "expected success or to be at the end of
the directive"
assertion (a no-assert build would resume lexing mid-directive).

Discard the remaining tokens like the neighboring error paths do, and
add coverage
for both the `#embed` and `__has_embed` forms.

Fixes #212075
DeltaFile
+13-0clang/test/Preprocessor/embed___has_embed_parsing_errors.c
+6-0clang/test/Preprocessor/embed_parameter_limit.c
+3-0clang/docs/ReleaseNotes.md
+2-0clang/lib/Lex/PPDirectives.cpp
+24-04 files

LLVM/project 5186c65 — clang/docs ReleaseNotes.md, clang/lib/AST ASTStructuralEquivalence.cpp

[clang] Fix acceptance of redefinition of a struct with different bit-field width (#235265)

The bug comes from `IsStructurallyEquivalent(Context,
Field1->getBitWidth(), Field2->getBitWidth())`
returning true when both `Field1->getBitWidth()` and
`Field2->getBitWidth()` are ConstantExpr types. Two bit fields were
treated as structurally equivalent even though their widths are
different.

This PR makes sure that two bit-fields with different bit-field width
are treated as structurally unequivalent under `-std=c23`.

Fixes #232748.
DeltaFile
+15-0clang/test/C/C23/n3037.c
+7-5clang/lib/AST/ASTStructuralEquivalence.cpp
+1-0clang/docs/ReleaseNotes.md
+23-53 files