LLVM/project a93dc0c — llvm/lib/CodeGen IfConversion.cpp, llvm/lib/Target/SystemZ SystemZ.h SystemZLDCleanup.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+471-416llvm/lib/CodeGen/IfConversion.cpp
+149-123llvm/lib/Target/SystemZ/SystemZElimCompare.cpp
+107-108llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp
+93-72llvm/lib/Target/SystemZ/SystemZShortenInst.cpp
+84-72llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp
+63-12llvm/lib/Target/SystemZ/SystemZ.h
+967-80313 files not shown
+1,116-87319 files

LLVM/project 8abb21a — llvm/lib/CodeGen IfConversion.cpp, llvm/lib/Target/SystemZ SystemZTDC.cpp SystemZ.h

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+471-416llvm/lib/CodeGen/IfConversion.cpp
+107-108llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp
+93-72llvm/lib/Target/SystemZ/SystemZShortenInst.cpp
+84-72llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp
+53-10llvm/lib/Target/SystemZ/SystemZ.h
+35-15llvm/lib/Target/SystemZ/SystemZTDC.cpp
+843-69312 files not shown
+951-74318 files

LLVM/project c50f9d2 — libc/src/string/memory_utils op_x86.h

[libc] Avoid mask round trip through the stack in AVX-512 bcmp (#233423)

`neq<__m512i>` folds the 64-bit `vpcmpneqb` mask into 32 bits by OR-ing
its two halves. InstCombine turns that into two `extractelement`s of
`bitcast <64 x i1> to <2 x i32>`. VectorCombine (`foldExtractExtract`)
then rewrites them as a `<2 x i32>` shuffle + `or`. X86 can only lower
that bitcast by spilling the mask register and reloading it into an xmm
register. The 16-byte reload overlaps the 8-byte store, so it can't be
store-forwarded, and every 64-byte block of the bcmp loop pays a
store-forwarding stall.

```asm
; before (per 64 B block)
vpcmpneqb  %zmm1, %zmm0, %k0
kmovq      %k0, -8(%rsp)
vmovdqa    -8(%rsp), %xmm0      ; store-forwarding stall
vpshufd    $85, %xmm0, %xmm1
vpor       %xmm0, %xmm1, %xmm0
vmovd      %xmm0, %eax

    [23 lines not shown]
DeltaFile
+1-3libc/src/string/memory_utils/op_x86.h
+1-31 files

LLVM/project bd8a5f6 — llvm/test/tools/llvm-mca/X86/SapphireRapids resources-rdseed.s resources-rdrand.s, llvm/test/tools/llvm-mca/X86/SkylakeClient independent-load-stores.s

[llvm-mca][x86] Regenerate misc tests now that llvm-mca correctly indents/aligns column data (#240555)
DeltaFile
+1-1llvm/test/tools/llvm-mca/X86/Znver4/independent-load-stores.s
+1-1llvm/test/tools/llvm-mca/X86/SkylakeServer/independent-load-stores.s
+1-1llvm/test/tools/llvm-mca/X86/SkylakeClient/independent-load-stores.s
+1-1llvm/test/tools/llvm-mca/X86/SapphireRapids/resources-rdseed.s
+1-1llvm/test/tools/llvm-mca/X86/SapphireRapids/resources-rdrand.s
+1-1llvm/test/tools/llvm-mca/X86/SapphireRapids/independent-load-stores.s
+6-67 files not shown
+13-1313 files

OpenZFS/src e871a2b — include/os/linux/kernel/linux simd_aarch64.h

simd_aarch64 (Linux): Unsplit statement expression

The `get_ftr()` macro splits statement expression tokens between a macro
and its callers, which is unhygienic and gets flagged by clang due to
`-Wcompound-token-split-by-macro`. With `--enable-debug` the warning is
an error, which breaks the build.

Move the parentheses around the expression into the macro so it forms a
complete statement expression.

Fixes: cef125313548 ("Add SHA2 SIMD feature tests for Linux")
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Ryan Moeller <rmoeller at FreeBSD.org>
Closes #19650
Closes #19769
DeltaFile
+7-5include/os/linux/kernel/linux/simd_aarch64.h
+7-51 files

LLVM/project a8cb6c4 — llvm/lib/CodeGen/AsmPrinter DIE.cpp DwarfCompileUnit.cpp, llvm/test/DebugInfo/X86 local-type-in-optimized-out-sp.ll local-type-inlined-debug-records-only.ll

[DebugInfo][DwarfDebug] Defer parent attachment of function-local DIEs until endModule() (#230866)

As it was discussed previously in
https://github.com/llvm/llvm-project/pull/142166#issuecomment-2950057682,
when DIEs for function-local types are emitted in DWARF, they should be
placed in their corresponding abstract subprograms, or abstract lexical
blocks inside them (if abstract DIE for subprogram exists).

If a function-local entity DIE is emitted in
`DwarfDebug::endFunctionImpl()`, DwarfDebug may not know yet if an
abstract subprogram should be created for the scope of function-local
entity, thus,
function-local type may be wrongly placed (inside concrete subprogram
DIE instead of abstract SP DIE, see
https://github.com/llvm/llvm-project/issues/29985,
https://github.com/llvm/llvm-project/issues/55680 ).

Initially, to solve that for subprograms that represent fully inlined
functions, LexicalScopes class was modified to build a map of

    [35 lines not shown]
DeltaFile
+228-0llvm/test/DebugInfo/X86/local-type-in-lexical-block-as-template-parameter.ll
+90-34llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
+117-0llvm/test/DebugInfo/X86/local-type-inlined-debug-records-only.ll
+59-0llvm/test/DebugInfo/X86/local-type-in-optimized-out-sp.ll
+53-0llvm/unittests/CodeGen/DIETest.cpp
+37-2llvm/lib/CodeGen/AsmPrinter/DIE.cpp
+584-3612 files not shown
+669-10318 files

LLVM/project 753842e — clang/docs ReleaseNotes.md, clang/lib/CodeGen/Targets RISCV.cpp

[RISCV] Sync the LP64E i128 vararg and stack argument behavior with gcc. (#239884)

i128 arguments to variadic functions are not passed in aligned pairs for
LP64E.
The stack locations for i128 arguments are not 16 byte aligned.

In the backend, rather than checking for RVE directly, use the ABI stack
alignment to clamp the type alignment which is where gcc's behavior
comes from.

Assisted-by: Claude
DeltaFile
+220-33llvm/test/CodeGen/RISCV/calling-conv-lp64e.ll
+233-0llvm/test/CodeGen/RISCV/vararg-lp64e.ll
+105-56clang/test/CodeGen/RISCV/riscv64-vararg.c
+13-13llvm/lib/Target/RISCV/RISCVCallingConv.cpp
+6-5clang/lib/CodeGen/Targets/RISCV.cpp
+2-0clang/docs/ReleaseNotes.md
+579-1071 files not shown
+580-1077 files

OpenZFS/src bc5a662 — module/zfs vdev_raidz_math_scalar.c zio_checksum.c

Fix FreeBSD fallout from simd_aarch64 changes

FreeBSD ARM requires sys/simd.h to be included before sys/vnode.h
because simd.h pulls in definitions of AT_UID and AT_GID from
elf_common.h, which vnode.h has to undef before its own definitions.
This does not work in the reverse order.

When 45e778b6bce7 included sys/simd.h in vdev_raidz_math_impl.h
(included by vdev_raidz_math_scalar.c after sys/vnode.h) and
zio_checksum.c, it broke the ordering.

Restore the required include order to fix FreeBSD ARM builds.

Fixes: 45e778b6bce7
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Ryan Moeller <rmoeller at FreeBSD.org>
Closes #19769
DeltaFile
+1-1module/zfs/zio_checksum.c
+1-0module/zfs/vdev_raidz_math_scalar.c
+2-12 files

LLVM/project ab94662 — clang/test/Driver openmp-system-arch.c nvptx-cuda-system-arch.c

[Clang][Driver] Disable fake arch tool tests on macOS (#240517)

Like sycl-system-arch.cpp in #238500, the other tests that run a fake
GPU arch tool time out with "Child timed out" on macOS CI. macOS scans
every new executable on its first launch, so the scripts these tests
create in %t can wait behind scans of large binaries that other tests
launch for the first time. See #238903.
DeltaFile
+4-0clang/test/Driver/openmp-system-arch.c
+4-0clang/test/Driver/nvptx-cuda-system-arch.c
+4-0clang/test/Driver/amdgpu-openmp-system-arch-fail.c
+4-0clang/test/Driver/amdgpu-hip-system-arch.c
+16-04 files

FreeNAS/freenas 7040cf7 — src/middlewared/middlewared/api/v27_0_0 truesearch.py, src/middlewared/middlewared/api/v28_0_0 truesearch.py

Return the file handle from truesearch.query

- Each entry has `handle`, the ZFS file handle of the file encoded in
  base64, as `open_by_handle_at` takes it. `generation` is removed,
  because the handle holds it.
- `truesearch_client` builds the handle from the inode number and the
  generation that truesearchd returns.
DeltaFile
+4-9src/middlewared/middlewared/api/v28_0_0/truesearch.py
+4-9src/middlewared/middlewared/api/v27_0_0/truesearch.py
+3-7tests/api2/test_truesearch.py
+6-2tests/unit/test_truesearch.py
+3-2src/middlewared/middlewared/plugins/truesearch.py
+20-295 files

FreeBSD/src 72cc9e3 — sys/netpfil/ipfilter/netinet ip_nat.c

ipfilter: Only recalculate the UDP header when we have one

When ipf_nat_out processes NAT_DIVERTOUT (ipnat rdr statements)
it also fixes the checksum in the UDP header. Test for a UDP header
before adjusting its length.

While we are here, the length in the UDP header must be converted
from network byte order to host byte order. Add the missing ntohs().

PR:             296944
MFC after:      3 days
DeltaFile
+6-3sys/netpfil/ipfilter/netinet/ip_nat.c
+6-31 files

LLVM/project 848e36a — clang/include/clang/Basic BuiltinsHexagon.td BuiltinsHexagonDep.td

[Hexagon] NFC: Refactor BuiltinsHexagon.td (#237371)

BuiltinsHexagon.td consists of manually created builtins and a set of
regular builtin definitions created by automation. To simplify
maintenance, separate these into two different files, similar to other
*Dep* files.
DeltaFile
+2,147-0clang/include/clang/Basic/BuiltinsHexagonDep.td
+1-2,137clang/include/clang/Basic/BuiltinsHexagon.td
+2,148-2,1372 files

FreeBSD/ports 5dcb3b7 — chinese Makefile

chinese/Makefile: connect gcin related ports to build.
DeltaFile
+7-0chinese/Makefile
+7-01 files

OpenZFS/src 5e67273 — module/zfs vdev_raidz.c

raidz: fix write ASSERTs for scratch area columns

While a RAID-Z expansion is in RRSS_SCRATCH_VALID, I/O to the start of
the vdev uses the scratch area: vdev_raidz_map_alloc_expanded()
subtracts VDEV_BOOT_SIZE from rc_offset and rc_shadow_offset, which
wraps below zero.  The bounds ASSERTs in vdev_raidz_io_start_write()
compared these offsets directly, so any write to that region panicked
debug builds, for example a resilver after a scratch I/O error paused
the expansion.

Compare the physical offset, including VDEV_LABEL_START_SIZE, instead.

Reviewed-by: Paul Dagnelie <paul.dagnelie at klarasystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Matthew Ahrens <matt at mahrens.org>
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Closes #19590
DeltaFile
+9-4module/zfs/vdev_raidz.c
+9-41 files

LLVM/project 4b8b7db — .ci monolithic-linux.sh, libc/cmake/modules LLVMLibCTestRules.cmake

[ci][libc] Switch premerge libc runtime to full-build mode (#231937)

Enable full-build mode for libc in premerge CI when check-libc is
targeted, skipping death and shared math tests to keep execution fast.

Also add a libc-headers dependency to test rules to prevent parallel
build races against public header generation.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+13-0.ci/monolithic-linux.sh
+3-0libc/cmake/modules/LLVMLibCTestRules.cmake
+16-02 files

OpenZFS/src f7b5d4f — module/zfs vdev_raidz.c

raidz: keep the scratch copy when import recovery fails

When a pool is imported with a raidz expansion stopped in the scratch
phase (RRSS_SCRATCH_VALID), vdev_raidz_reflow_copy_scratch() copies the
scratch area over the start of the vdev.  It ignored errors from both
the scratch read and the write to the real location.  A failed read
left the buffer uninitialized, which was then written over live data,
and the uberblock was moved to RRSS_SCRATCH_INVALID_SYNCED_ON_IMPORT,
discarding the only good copy.  On debug builds the same failure trips
the io_error/ZIO_FLAG_CANFAIL assertion in zio_done() instead, because
the root zios were created without ZIO_FLAG_CANFAIL.

Create the zios with ZIO_FLAG_CANFAIL, as raidz_reflow_scratch_sync()
does, check both zio_wait() calls, and on failure return with the state
still RRSS_SCRATCH_VALID.  I/O to the start of the vdev then keeps
going to the scratch area, and the expansion thread retries the copy
through raidz_reflow_scratch_sync(), which already checks these errors
and pauses until the devices are healthy.


    [5 lines not shown]
DeltaFile
+27-7module/zfs/vdev_raidz.c
+27-71 files

LLVM/project 509df73 — utils/bazel/llvm-project-overlay/llvm BUILD.bazel

[bazel][llvm] Sort SelectionDAGOptionsTableGen dep in BUILD.bazel (#240578)

Commit 6af7d8c1efa6 (#240498) added :SelectionDAGOptionsTableGen to
CodeGen's deps out of alphabetical order, causing the Buildifier CI
check to fail. Move it into sorted order.
DeltaFile
+1-1utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+1-11 files

LLVM/project 3df1e3f — llvm/lib/CodeGen IfConversion.cpp, llvm/lib/Target/SystemZ SystemZTDC.cpp SystemZ.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+471-416llvm/lib/CodeGen/IfConversion.cpp
+107-108llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp
+93-72llvm/lib/Target/SystemZ/SystemZShortenInst.cpp
+84-72llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp
+53-10llvm/lib/Target/SystemZ/SystemZ.h
+35-15llvm/lib/Target/SystemZ/SystemZTDC.cpp
+843-69312 files not shown
+951-74318 files

LLVM/project 8b1f8f1 — llvm/lib/CodeGen IfConversion.cpp, llvm/lib/Target/SystemZ SystemZCopyPhysRegs.cpp SystemZTDC.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+471-416llvm/lib/CodeGen/IfConversion.cpp
+107-108llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp
+84-72llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp
+43-8llvm/lib/Target/SystemZ/SystemZ.h
+35-15llvm/lib/Target/SystemZ/SystemZTDC.cpp
+30-19llvm/lib/Target/SystemZ/SystemZCopyPhysRegs.cpp
+770-63811 files not shown
+842-66317 files

FreeBSD/src 425e4c1 — lib/libcasper/libcasper zygote.c libcasper_service.c

libcasper: Use pdfork() for the zygote

Use pdfork(2) rather than fork(2) to fork the zygote, and close the
descriptor when the main loop terminates.

MFC after:      1 week
Sponsored by:   Klara, Inc.
Sponsored by:   Qualys, Inc.
Reviewed by:    oshogbo
Differential Revision:  https://reviews.freebsd.org/D60176
DeltaFile
+8-4lib/libcasper/libcasper/libcasper_service.c
+3-3lib/libcasper/libcasper/zygote.c
+11-72 files

FreeNAS/freenas b16afdf — src/middlewared/middlewared/api/v28_0_0 truesearch.py, src/middlewared/middlewared/etc_files/truesearchd truesearch.conf.py

Use truesearch_client for the TrueSearch file and sockets

- The plugin writes and reads `truesearch.conf` through
  `truesearch_client.config`. It asks both control sockets and waits
  for a release through `truesearch_client.control`.
  `middlewared/utils/truesearch.py` is removed, and its tests move to
  the client.
- truesearchd and truesearch-indexer answer `status` with `ok` and a
  JSON object. `truesearch.status` reads the object through the client.
  Before, it read lines of `key=value` fields.
- The free space is `null` when the indexer cannot read it.
- The plugin imports `truesearch_client` when it loads. The
  `middlewared` package depends on `truenas-truesearch`, which installs
  it.
- The docstring of `truesearch.query` marks its literals with double
  backticks. Each line of the `TruesearchQueryOptions` docstring ends
  with a period.
- This change needs the TrueSearch change that adds these client modules
  and answers in JSON. Both changes land together.
DeltaFile
+0-344src/middlewared/middlewared/utils/truesearch.py
+0-236tests/unit/test_truesearch_config.py
+107-67tests/unit/test_truesearch.py
+62-56src/middlewared/middlewared/plugins/truesearch.py
+3-2src/middlewared/middlewared/etc_files/truesearchd/truesearch.conf.py
+3-2src/middlewared/middlewared/api/v28_0_0/truesearch.py
+175-7073 files not shown
+180-7109 files

HardenedBSD/ports 5856840 — math/4ti2 Makefile

HBSD: Resolve merge conflict

Signed-off-by:  Shawn Webb <shawn.webb at hardenedbsd.org>
DeltaFile
+0-4math/4ti2/Makefile
+0-41 files

LLVM/project cea26e4 — libc/src/stdfix expk.cpp, libc/test/src/stdfix ExpTest.h

[libc][stdfix] Fix overflow bound for expk (#240301)

In `expk`, the overflow bound `0x1.62e4p3k` uses `floor` instead of
`ceil`, clamping `x = 0x1.62e4p3k` to `ACCUM_MAX`.

Update the overflow bound from `0x1.62e4p3k` to `0x1.62e44p3k`, and fix
comment nits as in `exphk`.
DeltaFile
+12-10libc/src/stdfix/expk.cpp
+14-4libc/test/src/stdfix/ExpTest.h
+26-142 files

LLVM/project 19ebdd0 — llvm/lib/Target/SystemZ SystemZISelLowering.h SystemZISelLowering.cpp, llvm/test/CodeGen/SystemZ atomicrmw-xchg-02.ll

SystemZ: Lower sub-word atomicrmw during type legalization

Produce the ATOMIC_LOADW_* nodes when replacing the illegal i8/i16
results, instead of custom lowering the promoted node later. This
removes the no-op custom type legalization case.

Constants are now any-extended, so one test materializes an immediate
with llill instead of lhi.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+60-54llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+2-2llvm/lib/Target/SystemZ/SystemZISelLowering.h
+1-1llvm/test/CodeGen/SystemZ/atomicrmw-xchg-02.ll
+63-573 files

LLVM/project 76c8d4d — llvm/lib/Target/SystemZ SystemZISelLowering.h SystemZISelLowering.cpp

Pass the opcode into lowerATOMIC_LOAD_OP
DeltaFile
+23-40llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+1-1llvm/lib/Target/SystemZ/SystemZISelLowering.h
+24-412 files

LLVM/project b3b3ed4 — llvm/lib/CodeGen/SelectionDAG LegalizeDAG.cpp, llvm/lib/Target/AArch64 AArch64ISelLowering.cpp

SelectionDAG: Use the memory type for atomic libcall actions (#238480)

The atomic libcall selection is driven by the memory type, not the
legalized value type. Convert targets to use the LibCall action
instead of Expand.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+0-41llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+7-30llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+32-0llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+18-11llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+6-12llvm/lib/Target/Mips/Mips16ISelLowering.cpp
+6-12llvm/lib/Target/ARM/ARMISelLowering.cpp
+69-1067 files not shown
+87-13413 files

OpenBSD/src rvssdRs — sys/arch/hppa/gsc harmony.c

   Correctly return EINVAL for invalid input in harmony_get_port().
VersionDeltaFile
1.43+2-2sys/arch/hppa/gsc/harmony.c
+2-21 files

LLVM/project 704ac64 — llvm/lib/CodeGen/GlobalISel IRTranslator.cpp, llvm/test/CodeGen/AArch64 bitinsert-bitextract-vector.ll

[GlobalISel] Lower vector `bitinsert` and `bitextract`
DeltaFile
+144-65llvm/test/CodeGen/AArch64/bitinsert-bitextract-vector.ll
+13-12llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+157-772 files

LLVM/project 12755e7 — llvm/test/CodeGen/AArch64 sve-bitinsert-bitextract.ll bitinsert-bitextract-vector.ll, llvm/test/CodeGen/AMDGPU bitinsert-bitextract-vector.ll

[SelectionDAG] Lower vector `bitinsert` and `bitextract`
DeltaFile
+928-0llvm/test/CodeGen/AMDGPU/bitinsert-bitextract-vector.ll
+476-0llvm/test/CodeGen/X86/bitinsert-bitextract-vector.ll
+240-0llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitinsert-bitextract.ll
+138-0llvm/test/CodeGen/AArch64/bitinsert-bitextract-vector.ll
+34-0llvm/test/CodeGen/RISCV/rvv/bitinsert-bitextract.ll
+27-0llvm/test/CodeGen/AArch64/sve-bitinsert-bitextract.ll
+1,843-01 files not shown
+1,845-27 files

LLVM/project ae883d6 — llvm/test/tools/llubi bitinsert_bitextract_le.ll bitinsert_bitextract_be.ll, llvm/tools/llubi/lib Interpreter.cpp

[llubi] Add support for vector `bitinsert` and `bitextract`
DeltaFile
+26-22llvm/tools/llubi/lib/Interpreter.cpp
+32-0llvm/test/tools/llubi/bitinsert_bitextract_le.ll
+32-0llvm/test/tools/llubi/bitinsert_bitextract_be.ll
+90-223 files