LLVM/project d9a9b3bllvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 atomic-load-store.ll

[X86] Manage atomic store of fp -> int promotion in DAG (#197166)

When lowering `atomic store <1 x T>` vector types with floats (i.e.
during scalarization in the selection DAG), selection can fail since
this pattern is unsupported. To support this, floats can be casted to
an integer type of the same size.

Store-side counterpart to #148895. Stacked on top of #197165; and below
of #197618.
DeltaFile
+130-0llvm/test/CodeGen/X86/atomic-load-store.ll
+4-0llvm/lib/Target/X86/X86ISelLowering.cpp
+134-02 files

LLVM/project e28e7ecllvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/PhaseOrdering/X86 horizontal-reduce-smin.ll horizontal-reduce-smax.ll

Reland [VectorCombine] foldShuffleChainsToReduce - add support for partial vector reductions (#197659)

Reland of #195119, which was reverted in 2b26355 due to:
1. An assertion failure on AArch64 where
`getShuffleCost(SK_ExtractSubvector)` was called without the `SubTp`
parameter.
2. A miscompilation on non-power-of-2 vector sizes where parity-based
shuffle masks cause lane duplication in the reduction tree.

Fixes:
- Pass `ReduceVecTy` as `SubTp` to `getShuffleCost`.
- Restrict partial reductions to power-of-2 vector sizes.

---

Extend foldShuffleChainsToReduce to recognize partial reduction patterns
where
only a subvector of the full vector is being reduced.


    [11 lines not shown]
DeltaFile
+70-0llvm/test/Transforms/VectorCombine/fold-shuffle-chains-to-reduce.ll
+37-6llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+8-32llvm/test/Transforms/PhaseOrdering/X86/horizontal-reduce-smin.ll
+8-32llvm/test/Transforms/PhaseOrdering/X86/horizontal-reduce-smax.ll
+8-32llvm/test/Transforms/PhaseOrdering/X86/horizontal-reduce-umax.ll
+8-32llvm/test/Transforms/PhaseOrdering/X86/horizontal-reduce-umin.ll
+139-1341 files not shown
+164-1347 files

DragonFlyBSD/src da44c6dbin/csh/csh Makefile, contrib/tcsh-6 tc.decls.h tc.alloc.c

csh(1): Fix further warnings and bump WARNS from 1 to 6.

* Remove unneeded malloc_usable_size() prototype (there is one
  in <stdlib.h>).

* ut_host is a member of struct utmpx, too, so expand the #ifdef for
  the prototypes for utmphost() and utmphostsize() accordingly.
DeltaFile
+0-8bin/csh/csh/Makefile
+1-1contrib/tcsh-6/tc.decls.h
+0-1contrib/tcsh-6/tc.alloc.c
+1-103 files

FreeNAS/freenas 60e3487tests/api2/zfs_tier test_smoke.py conftest.py

Fix
DeltaFile
+20-29tests/api2/zfs_tier/test_smoke.py
+21-9tests/api2/zfs_tier/conftest.py
+7-6tests/api2/zfs_tier/test_jobs_extended.py
+48-443 files

LLVM/project 499b2fallvm/lib/Transforms/Vectorize LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize fold-epilogue-tail.ll

[LV] Add -epilogue-tail-folding-policy flag for tail-folded epilogue (#190697)

This is the first patch in a series implementing **tail-folding on the
epilogue loop** — a vectorization style that pairs an unpredicated
vector main loop with a predicated vector epilogue.

It adds a new flag, `-epilogue-tail-folding-policy`, to enable the
style opt-in. Subsequent patches will build out the implementation.

Motivation behind this work:
- The current vectorization styles force either tail-folding on the main
vector loop with no interleaving, or unpredicated main vector loop with
interleaving.
The first style prevents us from getting the benefit of high interleaving
when it’s beneficial/possible, and the second one prevents
tail-folding while it could be beneficial specially for low trip count.

- The proposed hybrid approach of having unpredicated main vector loop
with tail-folded vector epilogue combines the strengths of both styles,

    [7 lines not shown]
DeltaFile
+98-0llvm/test/Transforms/LoopVectorize/fold-epilogue-tail.ll
+70-5llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+168-52 files

DragonFlyBSD/src ade414bbin/csh Makefile

csh(1): Add a newline in Makefile.
DeltaFile
+1-0bin/csh/Makefile
+1-01 files

LLVM/project 3a47318llvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp LegalizeTypes.h, llvm/test/CodeGen/X86 atomic-load-store.ll

[SelectionDAG] Scalarize <1 x T> vector types for atomic store (#197165)

`store atomic <1 x T>` is not valid. This change legalizes
vector types of atomic store via scalarization in SelectionDAG
so that it can, for example, translate from `v1i32` to `i32`.

This is the store-side counterpart to #148894. Stacked on top of
#197372; and below #197166.
DeltaFile
+57-0llvm/test/CodeGen/X86/atomic-load-store.ll
+12-0llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+1-0llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
+70-03 files

LLVM/project c398ae2llvm/lib/CodeGen AtomicExpandPass.cpp, llvm/lib/Target/X86 X86ISelLowering.cpp X86ISelLowering.h

[X86][AtomicExpand] Remove X86's shouldCastAtomicLoadInIR override (added in #148899)

So that atomic floating-point and FP-vector loads are no longer bitcast to an integer
at the IR level by AtomicExpand.
DeltaFile
+32-7llvm/lib/Target/X86/X86ISelLowering.cpp
+14-1llvm/lib/CodeGen/AtomicExpandPass.cpp
+0-2llvm/lib/Target/X86/X86ISelLowering.h
+46-103 files

LLVM/project cbc6a27flang/test/Driver intrinsic-module-path_per_target.f90

[Flang][test] Require x86 target for test (#198643)

#196558 uses x86_64-unknown-linux-gnu in a target and needs
LLVM_TARGETS_TO_BUILD=X86, even though it uses -fsyntax-only to not
generate code.

Reported by
https://github.com/llvm/llvm-project/pull/196558#issuecomment-4487790588
DeltaFile
+1-0flang/test/Driver/intrinsic-module-path_per_target.f90
+1-01 files

LLVM/project 389b818llvm/test/CodeGen/AArch64 fneg.ll fabs.ll

[AArch64] Add bf16 negs and abs tests. NFC (#198647)

Adding them to fabs.ll and fneg.ll helps test both with and without
+fullfp16.
DeltaFile
+189-157llvm/test/CodeGen/AArch64/fneg.ll
+171-142llvm/test/CodeGen/AArch64/fabs.ll
+360-2992 files

LLVM/project d0ae038clang/docs ReleaseNotes.rst, clang/include/clang/Basic DiagnosticSemaKinds.td

[clang][Sema] Diagnose nested local classes defined in a different block scope than their parent (#197863)

Fixes #193472.

[[class.local]/3](https://eel.is/c++draft/class.local#3) says:

> A class nested within a local class is a local class. A member of a
local class `X` shall be declared only in the definition of `X` or, __if
the member is a nested class, in the nearest enclosing block scope of
X__.

In other words:

```cpp
void f() {
  struct X { struct S; };
  struct X::S {}; // okay

  struct X { struct S; };

    [17 lines not shown]
DeltaFile
+138-30clang/test/CXX/class/class.local/p3.cpp
+21-0clang/lib/Sema/SemaDecl.cpp
+3-0clang/docs/ReleaseNotes.rst
+2-0clang/include/clang/Basic/DiagnosticSemaKinds.td
+164-304 files

LLVM/project 4c07402libc/utils/wctype_utils gen.py, libc/utils/wctype_utils/conversion hex_writer.py

[libc][wctype] Add gen script for conversion functions
DeltaFile
+87-8libc/utils/wctype_utils/conversion/hex_writer.py
+11-3libc/utils/wctype_utils/gen.py
+98-112 files

NetBSD/pkgsrc ZZMTJJCdoc TODO

   doc/TODO: + atril-1.28.4, evince-48.2, memcached-1.6.42.
VersionDeltaFile
1.27285+4-1doc/TODO
+4-11 files

LLVM/project ea73ddfllvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlanConstruction.cpp

[VPlan] Add branch-on-cond false original unconditional latch (NFC). (#198539)

For loops where the latch does not exit, addInitialSkeleton adds the
middle block as additional successor, as early canonicalization.

But then we end up with a block without terminator and multiple
successors. Fix this by adding a branch-on-cond false as terminator.
This preserves the original behavior (backegdge always taken) and
resolves the verifier issue.

PR: https://github.com/llvm/llvm-project/pull/198539
DeltaFile
+7-7llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+5-1llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+12-82 files

LLVM/project 04e0c61llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, llvm/unittests/Frontend OpenMPIRBuilderTest.cpp

[OpenMP][OMPIRBuilder] Fix non-determinism in removeUnusedBlocksFromParent

The openmp-cli-fuse02.mlir test fails non-deterministically (~20%) when
unrelated patches add or reorder code, causing the linker to place
objects at different offsets and the heap allocator to return different
addresses at runtime. SmallPtrSet iteration order depends on these
pointer addresses (also randomized across runs by ASLR), so fuseLoops
sometimes leaves dead blocks in the function.

The root cause is erasing blocks from the set while iterating it to
check for external uses—removing one block mid-pass changes the result
for blocks checked later. Both the remove_if form and the earlier
make_early_inc_range version (pre-b6a94b6bfb2c) have this defect.

Fix by collecting all blocks to keep before erasing, so every block is
evaluated against the same snapshot of the set.
DeltaFile
+55-0llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+11-2llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+66-22 files

LLVM/project 3e5388bclang/lib/Lex PPDirectives.cpp, clang/test/CXX/cpp/cpp.replace.general p9.cpp p14.cpp

Revert "Reapply [Clang] Implement P2843R3 - Preprocessing is never undefined …"

This reverts commit 22e8c55ccf808620cce66c9b1fb6f1341d15a3cc.
DeltaFile
+14-36clang/lib/Lex/PPDirectives.cpp
+0-44clang/test/CXX/cpp/cpp.replace.general/p9.cpp
+15-15clang/test/Preprocessor/macro-reserved.c
+14-14clang/test/Preprocessor/macro-reserved-attrs-cxx11.cpp
+14-14clang/test/Preprocessor/macro-reserved.cpp
+0-24clang/test/CXX/cpp/cpp.replace.general/p14.cpp
+57-14723 files not shown
+115-24629 files

LLVM/project 019e986clang/lib/CIR/FrontendAction CIRGenAction.cpp

add note on sharing `linkInModules`
DeltaFile
+2-0clang/lib/CIR/FrontendAction/CIRGenAction.cpp
+2-01 files

LLVM/project 2ac9cd7llvm/include/llvm/SandboxIR Type.h Context.h, llvm/lib/SandboxIR Type.cpp

[SandboxIR][Type] Implement ByteType (#197309)

This is mirroring LLVM IR's ByteType.
DeltaFile
+51-0llvm/unittests/SandboxIR/TypesTest.cpp
+40-0llvm/include/llvm/SandboxIR/Type.h
+31-0llvm/lib/SandboxIR/Type.cpp
+1-0llvm/include/llvm/SandboxIR/Context.h
+123-04 files

LLVM/project f97e1d4libc/src/__support/wctype perfect_hash_map.h upper_to_lower.h, libc/test/src/__support/wctype wctype_perfect_hash_test.cpp

[libc][wctype] Add perfect hash map for conversion functions (#187670)

- Upstream PTRHash and PerfectHashTable
- Add lowber_bound and distance
DeltaFile
+986-0libc/test/src/__support/wctype/wctype_perfect_hash_test.cpp
+872-0libc/src/__support/wctype/perfect_hash_map.h
+561-0libc/src/__support/wctype/upper_to_lower.h
+481-0libc/src/__support/wctype/lower_to_upper.h
+0-400libc/src/__support/wctype/lower_to_upper.inc
+0-390libc/src/__support/wctype/upper_to_lower.inc
+2,900-7904 files not shown
+3,001-79210 files

FreeBSD/ports 9c2467bdatabases/mysql80-client Makefile, databases/mysql80-server Makefile

databases/mysql80-{server|client}: Set Deprecate Date

Deprecate Date and set to expire on 2026-12-31

Sponsored by:   Netzkommune GmbH
DeltaFile
+3-0databases/mysql80-client/Makefile
+3-0databases/mysql80-server/Makefile
+6-02 files

LLVM/project 2eb4f2eclang/include/clang/CodeGen ModuleLinker.h, clang/lib/CIR/FrontendAction CIRGenAction.cpp

share function attribute propagation between OG Codegen and CIR consumers.
DeltaFile
+29-0clang/include/clang/CodeGen/ModuleLinker.h
+1-23clang/lib/CodeGen/CGCall.h
+18-0clang/test/CIR/CodeGen/link-bitcode-file.c
+12-3clang/lib/CIR/FrontendAction/CIRGenAction.cpp
+60-264 files

OpenBSD/src 1nmA8FLsys/dev/ic qwz.c

   Pre-allocate the bus dma maps for the rxbufs to avoid calling
   bus_dmamap_create(9) from interrupt context.

   ok mglocker@
VersionDeltaFile
1.32+8-8sys/dev/ic/qwz.c
+8-81 files

LLVM/project 12abc4dclang/include/clang/CIR/FrontendAction CIRGenAction.h

Rename llvm context for cir consumer
DeltaFile
+1-1clang/include/clang/CIR/FrontendAction/CIRGenAction.h
+1-11 files

FreeBSD/ports 277c8e8devel/tree-sitter distinfo Makefile

devel/tree-sitter: Update to 0.26.9
DeltaFile
+3-3devel/tree-sitter/distinfo
+1-1devel/tree-sitter/Makefile
+4-42 files

LLVM/project 3383f0doffload CMakeLists.txt, offload/liboffload CMakeLists.txt

[Offload] Fix build install directory and remove 'add_llvm_library' (#198622)

Summary:
The problem is that we do not correctly set the build directory output
for offload/. Normally, it's supposed to mirror the install pattern.
This is because we both have variants and so people can use the compiler
from the build directory.

Currently, if you build more than one variant of the offload/ library
they will clobber each-other in `<build>/lib/`, so no cross compiling
allowed. Additionally, these will not be usable in the build directory
because the compiler will think that they are in the triple directory
when they are not.

Relatively simple fix, just copy-paste the pattern every other runtime
uses and then remove the implicit handling we get from
`add_llvm_libraries`. The only this it did for us was automatically map
component names to the libraries, which is easy enough to do.
DeltaFile
+7-32offload/plugins-nextgen/CMakeLists.txt
+4-19offload/libomptarget/CMakeLists.txt
+11-10offload/CMakeLists.txt
+5-10offload/liboffload/CMakeLists.txt
+27-714 files

FreeBSD/ports bb4a299emulators/fuse pkg-plist Makefile

emulators/fuse: update to 1.8.0

Remove GTK2 option (removed upstream) and split out SDL option into
SDL and SDL2 options.
DeltaFile
+8-9emulators/fuse/pkg-plist
+8-6emulators/fuse/Makefile
+3-3emulators/fuse/distinfo
+19-183 files

FreeBSD/ports 1884acfwww/freenginx distinfo Makefile

www/freenginx: Update to 1.30.0

Changes with freenginx 1.30.0                                    14 Apr
2026

    *) 1.30.x stable branch.

Sponsored by:   Netzkommune GmbH
DeltaFile
+3-3www/freenginx/distinfo
+2-2www/freenginx/Makefile
+5-52 files

FreeNAS/freenas 0139743tests/api2/zfs_tier test_jobs_extended.py test_smoke.py

Fix
DeltaFile
+48-28tests/api2/zfs_tier/test_jobs_extended.py
+29-18tests/api2/zfs_tier/test_smoke.py
+24-0tests/api2/zfs_tier/conftest.py
+5-10tests/api2/zfs_tier/test_set_tier_errors.py
+106-564 files

OpenBSD/ports teF3ga3archivers/ruby-rubyzip distinfo Makefile

   simple update 3.1.0 -> 3.3.0
VersionDeltaFile
1.5+2-2archivers/ruby-rubyzip/distinfo
1.6+1-1archivers/ruby-rubyzip/Makefile
+3-32 files

LLVM/project 6de0400llvm/lib/Transforms/Vectorize VPlan.cpp VPlanValue.h

[VPlan] Sink VPRecipeValue dtors. (#198623)

Currently (after https://github.com/llvm/llvm-project/pull/195483) the
VPRecipeValue accesses the defining value and removes it. This can cause
uninitialized memory reads, because the Def pointer held by the
VPMultiDefValue is destroyed before the super class destructor runs.
DeltaFile
+8-1llvm/lib/Transforms/Vectorize/VPlan.cpp
+2-2llvm/lib/Transforms/Vectorize/VPlanValue.h
+10-32 files