LLVM/project efec798llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp

DAG: Preserve poison in some cast folds (#225403)
DeltaFile
+24-14llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+24-141 files

LLVM/project ef9ac4bllvm/lib/IR PassManager.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+2-1llvm/lib/IR/PassManager.cpp
+2-11 files

LLVM/project f83f2fcllvm/lib/CodeGen StackColoring.cpp, llvm/lib/CodeGen/SelectionDAG SelectionDAGISel.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+6-5llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+5-1llvm/lib/Target/WebAssembly/GISel/WebAssemblyPostLegalizerCombiner.cpp
+4-1llvm/lib/Target/WebAssembly/GISel/WebAssemblyPreLegalizerCombiner.cpp
+2-2llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
+3-1llvm/lib/Target/SPIRV/SPIRVPreLegalizerCombiner.cpp
+3-1llvm/lib/CodeGen/StackColoring.cpp
+23-119 files not shown
+39-1815 files

LLVM/project bfd6645llvm/lib/IR PassManager.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+2-1llvm/lib/IR/PassManager.cpp
+2-11 files

LLVM/project 51066c5llvm/include/llvm/CodeGen LiveDebugVariables.h, llvm/lib/CodeGen RegAllocGreedy.cpp LiveDebugVariables.cpp

[LiveDebugVariables] Repair stale SlotIndexes

The analysis keeps its indexes from before the first register allocator
until DBG_VALUEs are emitted, by which point passes in between have
erased some of the instructions they point at. Resolve them at the
start of each allocator run and before emitting.

SlotIndexes can then reclaim the entries of erased instructions without
sparing the ones held here, which would have made generated code depend
on -g. Emitted locations are unchanged, except that intervals resolving
to one position now emit a single DBG_VALUE rather than identical
consecutive ones.
DeltaFile
+135-0llvm/lib/CodeGen/LiveDebugVariables.cpp
+57-0llvm/test/DebugInfo/AMDGPU/live-debug-vars-stale-slot-indexes.ll
+8-4llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg-debugonly.mir
+8-0llvm/include/llvm/CodeGen/LiveDebugVariables.h
+7-0llvm/lib/CodeGen/RegAllocGreedy.cpp
+4-2llvm/test/CodeGen/X86/debug-spilled-snippet.mir
+219-61 files not shown
+223-87 files

LLVM/project 2c242cfllvm/include/llvm/CodeGen SlotIndexes.h, llvm/lib/CodeGen SlotIndexes.cpp

[SlotIndexes] Add queries for stale indexes

An erased instruction leaves its index list entry in place, making the
index indistinguishable from a block boundary entry. Add
isBlockBoundaryIndex() and isStaleIndex() to tell the two apart, and
canonicalizeIndex() to resolve a stale index to the closest preceding
instruction's register slot, or the block start if none survives.

NFC. No caller yet. LiveDebugVariables is next.
DeltaFile
+207-0llvm/unittests/CodeGen/SlotIndexesTest.cpp
+29-0llvm/lib/CodeGen/SlotIndexes.cpp
+14-0llvm/include/llvm/CodeGen/SlotIndexes.h
+1-0llvm/unittests/CodeGen/CMakeLists.txt
+251-04 files

LLVM/project d92d561flang/lib/Optimizer/OpenMP LowerWorkdistribute.cpp, flang/test/Transforms/OpenMP lower-workdistribute-target-map-members.mlir

[flang][OpenMP] Fix dangling map.info members in workdistribute target split
DeltaFile
+49-24flang/lib/Optimizer/OpenMP/LowerWorkdistribute.cpp
+43-0flang/test/Transforms/OpenMP/lower-workdistribute-target-map-members.mlir
+92-242 files

LLVM/project 4790b21llvm/lib/Transforms/Vectorize VPlanHelpers.h VPlanRecipes.cpp

[VPlan] Add more generic VPCostContext::getCostDivisor (NFC). (#225413)

Replace getReplicateRegionCostDivisor with more general getCostDivisor,
which takes a frequency directly.

The frequency lookup is now done at the 3 call sites, which all have the
region at hand.

Will also be used in https://github.com/llvm/llvm-project/pull/196845.

PR: https://github.com/llvm/llvm-project/pull/225413
DeltaFile
+3-7llvm/lib/Transforms/Vectorize/VPlan.cpp
+6-3llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+3-3llvm/lib/Transforms/Vectorize/VPlanHelpers.h
+12-133 files

FreeBSD/src 1adbb3fsys/compat/linuxkpi/common/include/linux compiler.h

LinuxKPI: implement __UNIQUE_ID() macro

Requred by drm-kmod v6.12.103

Obtained from:  OpenBSD

Reviewed by:    bz, emaste
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59733

(cherry picked from commit 8b05d84be9e288d201e8631750ae180b07311ba7)
DeltaFile
+4-0sys/compat/linuxkpi/common/include/linux/compiler.h
+4-01 files

FreeBSD/src fbaa247sys/compat/linuxkpi/common/include/linux string.h

Implement vmemdup_{array}_user

This is what FreeBSD now does for memdup_user and memdup_array_user
(which is wrong for memdup, but correct for vmemdup).

The amdgpu DRM driver started this in Linux ~6.12.86+

Reviewed by:    wulf
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D57444

(cherry picked from commit 302c6d25da6907ec762ff8937fa86d380743b000)
DeltaFile
+26-0sys/compat/linuxkpi/common/include/linux/string.h
+26-01 files

FreeBSD/src 7710a16sys/compat/linuxkpi/common/include/linux file.h cleanup.h

linuxkpi: Define `DEFINE_CLASS()` and `CLASS()`

`DEFINE_CLASS()` is in fact named `LINUXKPI_DEFINE_CLASS()` because it
conflicts with `DEFINE_CLASS()` defined in <sys/kobj.h>.

This macro defines a type and a pair of constructor/destructor
functions.

They are to be used by `CLASS()`: this one declares a variable,
initialise it with the constructor and set the `__cleanup()` attribute
to call the destructor once the variable goes out of scope.

The DRM drivers generic code started to use `CLASS()` in Linux 6.13. It
requires the `fd` class to be defined in <linux/file.h>.

Reviewed by:    bz
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57583

(cherry picked from commit f2a2e02ae54b836d1e23648756a050406f65111e)
DeltaFile
+26-0sys/compat/linuxkpi/common/include/linux/cleanup.h
+2-0sys/compat/linuxkpi/common/include/linux/file.h
+28-02 files

FreeBSD/src 4befe50sys/compat/linuxkpi/common/include/linux file.h

linuxkpi: Add 'fd_empty()`

The DRM drivers generic code started to use it in Linux 6.13.

Reviewed by:    emaste
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57582

(cherry picked from commit 50aa145171bc88edde8cf3b7eb13dbbf88a3f8a7)
DeltaFile
+6-0sys/compat/linuxkpi/common/include/linux/file.h
+6-01 files

FreeBSD/src b85fe12sys/compat/linuxkpi/common/include/linux pci_ids.h pci.h

LinuxKPI: Add PCI_EXP_TYPE_UPSTREAM and PCI_VENDOR_ID_AMD defines

Required by drm-kmod v6.12.105

Reviewed by:    bz, emaste
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59734

(cherry picked from commit 52d1a0c62be1b4bd8e78ee57c86288246d948046)
DeltaFile
+1-0sys/compat/linuxkpi/common/include/linux/pci_ids.h
+1-0sys/compat/linuxkpi/common/include/linux/pci.h
+2-02 files

LLVM/project bc6fd46llvm/test/CodeGen/X86 sse2-intrinsics-x86-upgrade.ll

[X86] sse2-intrinsics-x86-upgrade.ll - cleanup bitrotted check prefixes (#225426)

Removed leftover SKX and AVX2 check prefixes - the update script only
removes unused check lines mentioned in the RUNs
DeltaFile
+0-32llvm/test/CodeGen/X86/sse2-intrinsics-x86-upgrade.ll
+0-321 files

LLVM/project c027243llvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp, llvm/test/CodeGen/SystemZ mixed-ptr-sizes.ll

SelectionDAG: Don't pad the source of ADDRSPACECAST if it's legal. (#225390)

With this use case `%out = addrspacecast <2 x ptr> %in to <2 x ptr
addrspace(1)>` on z/OS, the res type is `v2i32` (illegal) and the source
type is `v2i64` (legal).
Padding the source up to `v4i64` makes it illegal on z/OS and breaks the
type legalization.
DeltaFile
+33-0llvm/test/CodeGen/SystemZ/mixed-ptr-sizes.ll
+5-3llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+38-32 files

LLVM/project 6dcf590.github/workflows bazel-checks.yml

[GitHub] Avoid downloading outputs during Bazel tests when possible (#224725)

PR adds
[`--remote_download_outputs=minimal`](https://bazel.build/reference/command-line-reference#param-remote-download-outputs-1)
to bazel tests in CI. I noticed recently that `Bazel Build/Test` takes
~2m to run even when everything is cached. It looks like it's
downloading ~1GiB of artifacts from the remote cache. For example, in [a
recent
run](https://github.com/llvm/llvm-project/actions/runs/35147456695/job/104967035656):

```
[82,641 / 90,341] 1094 / 7245 tests; Linking external/+_repo_rules+llvm-project/flang/lib/Semantics/libFortranSemantics.a; Downloading external/+_repo_rules+llvm-project/flang/lib/Semantics/libFortranSemantics.a, 260.4 MiB / 288.7 MiB; 1s remote-cache ... (62 actions, 10 running)
[88,426 / 91,191] 1238 / 7245 tests; Linking external/+_repo_rules+llvm-project/mlir/mlir-reduce; Downloading external/+_repo_rules+llvm-project/mlir/mlir-reduce, 337.0 MiB / 344.6 MiB; 13s remote-cache ... (58 actions, 0 running)
[88,870 / 92,185] 1315 / 7245 tests; Linking external/+_repo_rules+llvm-project/mlir/mlir-query; Downloading external/+_repo_rules+llvm-project/mlir/mlir-query, 241.9 MiB / 264.2 MiB; 11s remote-cache ... (55 actions, 0 running)
...
Executed 0 out of 7245 tests: 7245 tests pass.
```

Using this flag saves ~20-30s on my machine. After this PR, the majority

    [3 lines not shown]
DeltaFile
+1-0.github/workflows/bazel-checks.yml
+1-01 files

FreeBSD/src 74d325fsys/amd64/amd64 mp_machdep.c machdep.c, sys/amd64/include md_var.h pcpu.h

amd64: cache MSR_MEMORY_CTL in pcpu

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+11-0sys/amd64/amd64/initcpu.c
+3-4sys/amd64/amd64/machdep.c
+2-1sys/amd64/include/pcpu.h
+2-0sys/amd64/amd64/mp_machdep.c
+1-0sys/amd64/include/md_var.h
+19-55 files

FreeBSD/src 51cea54sys/amd64/amd64 sys_machdep.c, sys/x86/include sysarch.h

amd64: add userspace control for disabling splitlocks

Thread can control it with sysarch(I386_SET_SPLITLOCK). The global
default is set with hw.splitlock_force.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+26-1sys/amd64/amd64/sys_machdep.c
+2-0sys/x86/include/sysarch.h
+28-12 files

FreeBSD/src 20c09e6sys/amd64/amd64 machdep.c

amd64: use WRMSRNS immediate form to update splitlock control, when available

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+34-4sys/amd64/amd64/machdep.c
+34-41 files

FreeBSD/src e318f24sys/amd64/amd64 vm_machdep.c exec_machdep.c, sys/amd64/include proc.h md_var.h

amd64: support for tracking per-thread 'disable splitlocks' state

If hw supports it, on atomic operation that requires exclusive ownership
of more than one cache line, #AC is generated.
The state is maintained as the arch-private TDF_MD_SPLITLOCK_AC flag.

The state is inherited on thread creation from the thread spawning the
new one.  It is cleared on exec.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+36-0sys/amd64/amd64/machdep.c
+14-0sys/amd64/amd64/pmap.c
+10-0sys/amd64/amd64/exec_machdep.c
+5-0sys/amd64/include/md_var.h
+2-0sys/amd64/include/proc.h
+2-0sys/amd64/amd64/vm_machdep.c
+69-03 files not shown
+72-09 files

FreeBSD/src c6d7235sys/amd64/amd64 trap.c

amd64: handle #AC in kernel mode

Recover from it if PCB_ONFAULT handler is provided.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+8-0sys/amd64/amd64/trap.c
+8-01 files

FreeBSD/src 71f08bfsys/x86/include x86_var.h specialreg.h, sys/x86/x86 identcpu.c

x86: add cpu_stdext_feature5

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+10-0sys/x86/x86/identcpu.c
+5-0sys/x86/include/specialreg.h
+1-0sys/x86/include/x86_var.h
+16-03 files

FreeBSD/src d8c1abbsys/amd64/amd64 machdep.c initcpu.c, sys/amd64/include md_var.h

amd64: calculate if hardware supports disabling splitlocks

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+18-0sys/amd64/amd64/initcpu.c
+11-0sys/amd64/amd64/machdep.c
+3-0sys/amd64/include/md_var.h
+32-03 files

FreeBSD/src 9aa031esys/x86/include specialreg.h

x86: add definitions for the CORE_CAP and MEMORY_CTL MSRs

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+8-0sys/x86/include/specialreg.h
+8-01 files

FreeBSD/src dc97561sys/amd64/include proc.h

amd64: add md thread flags word

Use a hole in struct mdthread.

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+1-0sys/amd64/include/proc.h
+1-01 files

FreeBSD/src 4a8acccsys/amd64/include cpufunc.h

amd64 cpufunc.h: add WRMSRNS helpers

Reviewed by:    markj
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59815
DeltaFile
+13-0sys/amd64/include/cpufunc.h
+13-01 files

NetBSD/pkgsrc-wip 99ff3dajcode Makefile cargo-depends.mk, jcode/patches patch-crates_jcode-app-core_src_notifications.rs patch-Cargo.toml

Update devel/jcode to v.0.86
DeltaFile
+126-8jcode/distinfo
+40-1jcode/cargo-depends.mk
+17-5jcode/patches/patch-crates_jcode-setup-hints_src_cli_launch_hints.rs
+16-1jcode/Makefile
+17-0jcode/patches/patch-Cargo.toml
+7-7jcode/patches/patch-crates_jcode-app-core_src_notifications.rs
+223-222 files not shown
+224-248 files

LLVM/project 0a7c62allvm/lib/CAS OnDiskGraphDB.cpp, llvm/lib/DWARFLinker/Parallel SyntheticTypeNameBuilder.h DWARFEmitterImpl.h

[llvm] Remove declarations without definitions (NFC) (#225320)

DataRecordHandle::create and DataRecordHandle::construct in
llvm/lib/CAS/OnDiskGraphDB.cpp: The unused definitions were removed on
November 24, 2025 in commit f21857313dfab543e66ef43b1aed43b685794a7c.

dwarf_linker::parallel::DwarfEmitterImpl::emitStringsImpl in
llvm/lib/DWARFLinker/Parallel/DWARFEmitterImpl.h: Added on May 20, 2023
in commit 5f2a7fa67e9b6081a1a750ecea1216d53287eaa0 without a definition
or any callers (only DWARFLinkerImpl::emitStringsImpl was defined).

dwarf_linker::parallel::SyntheticTypeNameBuilder::addOrderedName
(2-argument overload) in
llvm/lib/DWARFLinker/Parallel/SyntheticTypeNameBuilder.h: Added on
November 23, 2023 in commit b61ac4a88f934ab5c02ee2a4957fb1b9943e7a5d
without a definition or any callers.

pdb::GSIHashStreamBuilder::finalizePublicBuckets and
pdb::GSIHashStreamBuilder::finalizeGlobalBuckets in

    [42 lines not shown]
DeltaFile
+0-10llvm/lib/DWARFLinker/Parallel/DWARFEmitterImpl.h
+0-5llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h
+0-3llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.h
+0-3llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp
+0-3llvm/lib/DWARFLinker/Parallel/SyntheticTypeNameBuilder.h
+0-3llvm/lib/CAS/OnDiskGraphDB.cpp
+0-275 files not shown
+0-3411 files

FreeBSD/src 9522310contrib/atf config.h NEWS, contrib/atf/atf-c++/detail auto_array.hpp auto_array_test.cpp

contrib/atf: upgrade to 0.26

This new version gets contrib/atf in line with the published version of
the package up on [GitHub][github].

Please note that this release is a major update: it contains several
bugfixes and feature enhancements. Most were already present in the
FreeBSD src repo, but there were a large number of changes made in
addition to what was already present.

MFC after:      1 month

Merge commit '9c78088348bcf1059d82a62bb57a0746309d4312'

Conflicts:
        contrib/atf/.cirrus.yml
        contrib/atf/Makefile.am
        contrib/atf/Makefile.in
        contrib/atf/aclocal.m4

    [47 lines not shown]
DeltaFile
+0-336contrib/atf/doc/atf-test-case.4
+328-0contrib/atf/doc/atf-test-case.7
+0-302contrib/atf/atf-c++/detail/auto_array_test.cpp
+147-53contrib/atf/NEWS
+0-175contrib/atf/atf-c++/detail/auto_array.hpp
+115-17contrib/atf/config.h
+590-88370 files not shown
+1,264-1,53476 files

LLVM/project 8306f77mlir/include/mlir/Dialect/Arith/IR ArithOps.td, mlir/lib/Conversion/VectorToLLVM ConvertVectorToLLVM.cpp

[mlir][arith] Add minimumnumf and maximumnumf operations (#221658)

Add `arith.minimumnumf` and `arith.maximumnumf`, following
`minimumNumber` and `maximumNumber` from IEEE 754-2019 and the
`llvm.minimumnum`/`llvm.maximumnum` intrinsics. They differ from the
existing `arith.minnumf`/`arith.maxnumf` only in their treatment of
signaling NaNs: the new ops deterministically return the non-NaN
operand, whereas minnumf/maxnumf may return either NaN or the other
operand.
DeltaFile
+166-0mlir/test/Integration/Dialect/Vector/CPU/reductions-masked-minmaxnum-f32.mlir
+130-0mlir/test/Conversion/VectorToLLVM/vector-reduction-to-llvm.mlir
+82-0mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
+76-0mlir/test/Dialect/XeGPU/xegpu-wg-to-sg.mlir
+52-0mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
+48-0mlir/test/Conversion/VectorToLLVM/vector-to-llvm-interface.mlir
+554-014 files not shown
+741-1020 files