LLVM/project 00315e9 — llvm/lib/Target/LoongArch LoongArchISelLowering.cpp

[LoongArch][NFC] Move XOR combine into performXORCombine

Extract the inline ISD::XOR handling in PerformDAGCombine into a
dedicated performXORCombine helper, matching how the other opcodes
(AND, OR, SETCC, ...) are structured. No functional change.

Also fix a clang-format issue in emitPseudoVMSKCOND.

Assisted-By: LLM
DeltaFile
+35-33llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+35-331 files

LLVM/project 76162fb — llvm/lib/CodeGen/AsmPrinter DwarfDebug.h DwarfDebug.cpp, llvm/lib/Target/NVPTX NVPTXDwarfDebug.cpp

Revert "[DwarfDebug] Add applyDwarfVersion() so the targets like NVPTX can recompute the version-derived state" (#242150)

Reverts llvm/llvm-project#234510 as this PR introduce build breakage on
pre/post submit builders.
DeltaFile
+0-87llvm/test/DebugInfo/dwarf-version-defaults.ll
+18-30llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+0-27llvm/test/DebugInfo/NVPTX/no-dwarf-version-flag.ll
+0-5llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
+1-1llvm/lib/Target/NVPTX/NVPTXDwarfDebug.cpp
+19-1505 files

DragonFlyBSD/src c114f23 — sys/vfs/nullfs null_vfsops.c

kernel - Work around forced umount race in nullfs

* Partial work-around for a umount race against a
  call to statfs() through a null mount.  Check
  that mp->mnt_data is not NULL.
DeltaFile
+3-0sys/vfs/nullfs/null_vfsops.c
+3-01 files

LLVM/project f7f2ed9 — llvm/lib/CodeGen/AsmPrinter DwarfDebug.h DwarfDebug.cpp, llvm/lib/Target/NVPTX NVPTXDwarfDebug.cpp

Revert "[DwarfDebug] Add applyDwarfVersion() so the targets like NVPTX can re…"

This reverts commit 7daaee963b2f5cabbc3beea88039cca412ed727f.
DeltaFile
+0-87llvm/test/DebugInfo/dwarf-version-defaults.ll
+18-30llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+0-27llvm/test/DebugInfo/NVPTX/no-dwarf-version-flag.ll
+0-5llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
+1-1llvm/lib/Target/NVPTX/NVPTXDwarfDebug.cpp
+19-1505 files

LLVM/project aa071b7 — llvm/include/llvm/IR GlobalValue.h, llvm/lib/IR Globals.cpp

[llvm][GlobalOpt] Preserve COMDATs for Dead GVs
DeltaFile
+52-0llvm/test/Transforms/GlobalOpt/deadfunction-comdat.ll
+26-2llvm/lib/Transforms/IPO/GlobalOpt.cpp
+24-0llvm/test/Transforms/GlobalOpt/comdat-available-externally.ll
+22-0llvm/test/Transforms/GlobalOpt/deadglobal-comdat.ll
+8-0llvm/include/llvm/IR/GlobalValue.h
+6-0llvm/lib/IR/Globals.cpp
+138-26 files

FreeBSD/ports da30022 — misc/py-litellm Makefile distinfo

misc/py-litellm: Update to 1.109.1

Changelog: https://github.com/BerriAI/litellm/releases/tag/v1.109.1

Reported by:    portscout
DeltaFile
+3-3misc/py-litellm/distinfo
+2-2misc/py-litellm/Makefile
+5-52 files

LLVM/project b2b433b — llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AMDGPU dagcombine-fma-crash.ll fadd-fma-fmul-cse.ll

[DAGCombiner] Rebuild FMA chain instead of mutating it in place (#241188)

visitFADDForFMACombine folds
  fadd (fma A, B, (fmul C, D)), E --> fma A, B, (fma C, D, E)
by replacing the inner fmul in place with ReplaceAllUsesOfValueWith.

If fma A, B, (fma C, D, E) already exists, e.g. when another expression
adds the same terms in a different order, CSE merges the updated chain
into it and the outer fadd becomes
  fadd (fma A, B, (fma C, D, E)), E
The combine returns this outer fadd, retaining the extra addition of E.
If an identical fadd already exists, the outer fadd is CSE'd away while
being visited.

Rebuild the chain with getNode instead, and drop the DELETED_NODE check
in visitFADD.
DeltaFile
+113-0llvm/test/CodeGen/AMDGPU/fadd-fma-fmul-cse.ll
+9-11llvm/test/CodeGen/AMDGPU/dagcombine-fma-crash.ll
+10-7llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+132-183 files

LLVM/project d017222 — llvm/lib/Transforms/Scalar InferAddressSpaces.cpp, llvm/test/Transforms/InferAddressSpaces/AMDGPU infer-addrspacecast.ll

[InferAddressSpaces] Infer constant addrspacecast operands

A cast back from the flat address space folds into a constant
expression when its operand is constant. Only AddrSpaceCastInst and
memory operands were visited, so such a cast used as a call argument
or a stored value kept its round trip through the flat address
space.

Visit constant expression operands of a specific address space.

Change-Id: Iab1aaaf809a41f48886d0412cdb96d756e5e86c5
Co-Authored-By: Claude Fable 5.2 <noreply at anthropic.com>
DeltaFile
+30-0llvm/test/Transforms/InferAddressSpaces/AMDGPU/infer-addrspacecast.ll
+7-0llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
+37-02 files

DragonFlyBSD/src ff91397 — sys/vfs/nullfs null_vfsops.c

kernel - Work around forced umount race in nullfs

* Partial work-around for a umount race against a
  call to statfs() through a null mount.  Check
  that mp->mnt_data is not NULL.
DeltaFile
+3-0sys/vfs/nullfs/null_vfsops.c
+3-01 files

FreeBSD/src 9329960 — tests/sys/kern ssl_sendfile.c

tests/sys/kern/ssl_sendfile: double timeouts for :grow and :truncate

The :grow and :truncate testcases fail semi-regularly in CI with
timeouts. Double the timeout to reduce false positives with the tests.

PR:             300699
MFC after:      1 week
Reviewed by:    siva
Differential Revision:  https://reviews.freebsd.org/D61444
DeltaFile
+21-2tests/sys/kern/ssl_sendfile.c
+21-21 files

FreeBSD/src 87e27bc — sys/dev/asmc asmc.c

asmc: include sys/kernel.h

This is needed for the `MODULE*` macros.

This include was accidentally removed in the linked commit.

MFC after:      1 week
Reported by:    Ian Freislich <ianfreislich at gmail.com>
Fixes:  c714cde179a4 ("asmc: split the sysctl layer into asmcsysctl.c")
DeltaFile
+1-0sys/dev/asmc/asmc.c
+1-01 files

LLVM/project 3680307 — llvm/test/CodeGen/AMDGPU sdwa-peephole-instr.mir clamp-omod-special-case.mir, llvm/test/Transforms/SLPVectorizer/X86 or-like-select-chain.ll

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+578-43llvm/tools/llvm-strings/llvm-strings.cpp
+130-286llvm/test/CodeGen/AMDGPU/fold-imm-f16-f32.mir
+109-295llvm/test/CodeGen/AMDGPU/shrink-vop3-carry-out.mir
+116-287llvm/test/CodeGen/AMDGPU/clamp-omod-special-case.mir
+124-268llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr.mir
+322-0llvm/test/Transforms/SLPVectorizer/X86/or-like-select-chain.ll
+1,379-1,179215 files not shown
+5,636-5,172221 files

LLVM/project 75ba539 — llvm/test/CodeGen/AMDGPU sdwa-peephole-instr.mir clamp-omod-special-case.mir, llvm/test/Transforms/SLPVectorizer/X86 or-like-select-chain.ll

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+578-43llvm/tools/llvm-strings/llvm-strings.cpp
+130-286llvm/test/CodeGen/AMDGPU/fold-imm-f16-f32.mir
+109-295llvm/test/CodeGen/AMDGPU/shrink-vop3-carry-out.mir
+116-287llvm/test/CodeGen/AMDGPU/clamp-omod-special-case.mir
+124-268llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr.mir
+322-0llvm/test/Transforms/SLPVectorizer/X86/or-like-select-chain.ll
+1,379-1,179215 files not shown
+5,636-5,172221 files

LLVM/project 07d14e1 — llvm/test/Transforms/LowerTypeTests export-single.ll export-icall.ll

[NFC][LowerTypeTests] Write export summaries to %t.out (#242134)

#221090 switched these tests from split-file to writing the summary to
%t. Incremental builds that ran the old tests still have %t as a
directory and fail with "Is a directory". Use %t.out so the tests work
in such builds, including incremental bisects across #221090.

Assisted-by: Gemini
DeltaFile
+6-6llvm/test/Transforms/LowerTypeTests/export-inline.ll
+4-4llvm/test/Transforms/LowerTypeTests/export-bytearray.ll
+4-4llvm/test/Transforms/LowerTypeTests/export-allones.ll
+2-2llvm/test/Transforms/LowerTypeTests/export-single.ll
+2-2llvm/test/Transforms/LowerTypeTests/export-icall.ll
+2-2llvm/test/Transforms/LowerTypeTests/export-dead.ll
+20-202 files not shown
+22-228 files

FreeBSD/src ea8db65 — . UPDATING, sys/dev/iavf if_iavf_iflib.c

iflib: Use a single tx dma map

The need for a separate map for TSO and non-TSO seems to have arisen from
a misunderstanding about the DMA requirements for Intel drivers like
ice/ixl/iavf. Specifically, this Intel hardware has a quirk where no
more than N (=8) segs can be DMA'ed per packet on the wire. This limit
was enforced using a DMA map with a low segment limit for non-TSO and a
driver specific check for TSO. This led to a *lot* of complexity in
iflib (~80 extra lines of code that this change removes) when the
limit can simply be enforced via the existing EFBIG mechanisms.

This change adds a new flag, IFLIB_SPARSE_TX, that drivers for hardware
with this quirk must set.  When set, it causes non-TSO sends that
exceed isc_tx_nsegment to be treated as if bus_dmamap_load_mbuf_sg()
had returned EFBIG.

Due to the API/KABI change, I've bumped the FreeBSD version as well.

Note kgalazka suggested the flag, rather than a more awkward

    [12 lines not shown]
DeltaFile
+36-123sys/net/iflib.c
+9-0UPDATING
+4-1sys/net/iflib.h
+2-2sys/dev/ice/if_ice_iflib.c
+2-1sys/dev/ixl/if_ixl.c
+2-1sys/dev/iavf/if_iavf_iflib.c
+55-1281 files not shown
+56-1297 files

LLVM/project efd0f4f — clang/lib/CodeGen CGClass.cpp, clang/test/CodeGenCXX cfi-ignorelist.cpp cfi-vcall-type-checked-load.cpp

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+62-68clang/test/CodeGenCXX/cfi-vcall-type-checked-load.cpp
+24-14clang/lib/CodeGen/CGClass.cpp
+2-2clang/test/CodeGenCXX/cfi-ignorelist.cpp
+0-3compiler-rt/test/cfi/same-layout-delete.cpp
+88-874 files

LLVM/project d0abc72 — llvm/test/CodeGen/AMDGPU sdwa-peephole-instr.mir clamp-omod-special-case.mir, llvm/test/Transforms/SLPVectorizer/X86 or-like-select-chain.ll

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+578-43llvm/tools/llvm-strings/llvm-strings.cpp
+130-286llvm/test/CodeGen/AMDGPU/fold-imm-f16-f32.mir
+109-295llvm/test/CodeGen/AMDGPU/shrink-vop3-carry-out.mir
+116-287llvm/test/CodeGen/AMDGPU/clamp-omod-special-case.mir
+124-268llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr.mir
+322-0llvm/test/Transforms/SLPVectorizer/X86/or-like-select-chain.ll
+1,379-1,179219 files not shown
+5,723-5,260225 files

LLVM/project 8d193a0 — llvm/lib/Target/LoongArch LoongArchLSXInstrInfo.td LoongArchLASXInstrInfo.td, llvm/test/CodeGen/LoongArch/lasx bitsel.ll

[LoongArch] Select [X]VBITSELI_B for byte splat bitsel on wider element types

The VBITSELI_B/XVBITSELI_B patterns only matched v16i8/v32i8. When the
bitwise select idiom `(a & imm) | (~a & b)` appears on v8i16/v4i32/v2i64
(or the LASX equivalents) with a byte splat constant, e.g. from portable
SIMD implementations of the bitseli intrinsics, we emitted:

```
  vrepli.b  $vr2, 127
  vbitsel.v $vr0, $vr1, $vr2, $vr0
```

Use vsplat_i8_uimm8, as VANDI_B/VORI_B/etc. already do, so that we now
emit:

```
  vbitseli.b $vr0, $vr1, 127
```

Assisted-By: LLM
DeltaFile
+3-6llvm/test/CodeGen/LoongArch/lsx/bitsel.ll
+3-6llvm/test/CodeGen/LoongArch/lasx/bitsel.ll
+4-0llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+4-0llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
+14-124 files

LLVM/project 085994a — llvm/test/CodeGen/LoongArch/lasx bitsel.ll, llvm/test/CodeGen/LoongArch/lsx bitsel.ll

[LoongArch][NFC] Add tests for vector bitwise selection with byte splat immediates

Add tests for bitwise selection on non-i8 element vectors where the
select-constant is a byte splat, which could be selected to
VBITSELI_B/XVBITSELI_B.

Assisted-By: LLM
DeltaFile
+56-0llvm/test/CodeGen/LoongArch/lsx/bitsel.ll
+56-0llvm/test/CodeGen/LoongArch/lasx/bitsel.ll
+112-02 files

LLVM/project 0ac42f6 — llvm/include/llvm/IR GlobalValue.h, llvm/lib/IR Globals.cpp

[llvm][GlobalOpt] Preserve COMDATs for Dead GVs
DeltaFile
+52-0llvm/test/Transforms/GlobalOpt/deadfunction-comdat.ll
+38-2llvm/lib/Transforms/IPO/GlobalOpt.cpp
+36-0llvm/test/Transforms/GlobalOpt/comdat-available-externally.ll
+22-0llvm/test/Transforms/GlobalOpt/deadglobal-comdat.ll
+8-0llvm/include/llvm/IR/GlobalValue.h
+6-0llvm/lib/IR/Globals.cpp
+162-26 files

LLVM/project edb2e69 — compiler-rt/lib/asan asan_fake_stack.h asan_fake_stack.cpp, compiler-rt/test/asan/TestCases/Linux fake_stack_gc_all_classes.cpp

[asan] Scan fake stack allocation flags eight at a time (#242047)

After every noreturn call (throw, longjmp, ...) the next fake frame
allocation runs FakeStack::GC, which looks at the allocation flag of
every frame of every size class, one byte at a time: about 33,000 flags
for the default fake stack size. Usually few frames have their flag set,
so nearly all of that work is reading zeros.

Skip eight clear flags per load. LeakSanitizer's ForEachFakeFrame had a
copy of the loop; both now share ForEachAllocatedFrame. What is
collected and what is scanned for leaks does not change.

This helps programs that throw or longjmp often. libpng leaves every bad
input by longjmp: on x86_64 Linux, replaying a fuzzing corpus through
its read target takes 0.57 of the instructions and about 0.8 of the CPU
time. A plain longjmp or throw loop takes 0.3 to 0.9 of the time,
depending on the size of the frames, the depth and how long it has run.
The instruction count of 18 other workloads stays within 0.05%.


    [7 lines not shown]
DeltaFile
+91-0compiler-rt/test/asan/TestCases/Linux/fake_stack_gc_all_classes.cpp
+33-28compiler-rt/lib/asan/asan_fake_stack.cpp
+2-0compiler-rt/lib/asan/asan_fake_stack.h
+126-283 files

LLVM/project 139459a — llvm/unittests/ADT StringRefTest.cpp

[Support] Test StringRef::rfind(StringRef) across 16-byte chunk boundaries

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9ZnWSo9wtkhiXsH6ZKN
DeltaFile
+26-0llvm/unittests/ADT/StringRefTest.cpp
+26-01 files

LLVM/project 63a446f — llvm/lib/Support StringRef.cpp

[Support] Vectorize the byte scan in StringRef::rfind(StringRef)

StringRef::rfind(StringRef) forwards to std::string_view::rfind. libstdc++
compares the whole needle with memcmp at every position; libc++ scans
backwards for the needle's last character one byte at a time. Neither is
vectorized, and there is no portable memrchr to call instead.

Scan backwards for the needle's first character 16 bytes at a time, with a
branch-free OR of compares per chunk that clang and GCC turn into one vector
compare and mask test, and compare the rest of the needle only where the
character occurs.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_01TvfuMmXF8ywTFaZFX8JuGM
DeltaFile
+36-1llvm/lib/Support/StringRef.cpp
+36-11 files

LLVM/project 33e0413 — llvm/docs/CommandGuide llvm-strings.md, llvm/test/tools/llvm-strings length.test locale.test

Reapply "[llvm-strings] Add --encoding={s,S,utf8} option (#221794)" (#241881)

This reverts commit 3a99f8bbe76805586c0247eba38b907bb8400dcb and fixes
the macOS iconv detection that prompted the original removal.
DeltaFile
+578-43llvm/tools/llvm-strings/llvm-strings.cpp
+97-0llvm/test/tools/llvm-strings/encoding.test
+37-29llvm/utils/UnicodeData/UnicodeCharSetsGenerator.cpp
+37-0llvm/test/tools/llvm-strings/locale.test
+17-4llvm/docs/CommandGuide/llvm-strings.md
+20-1llvm/test/tools/llvm-strings/length.test
+786-776 files not shown
+844-8512 files

NetBSD/pkgsrc-wip d566062 — yoshimi MESSAGE distinfo

yoshimi: Add yoshimi-2.3.6.5

Yoshimi is a fully polyphonic, multi-timbral, multi-channel software
synthesiser.
DeltaFile
+1,320-0yoshimi/PLIST
+38-0yoshimi/Makefile
+16-0yoshimi/options.mk
+9-0yoshimi/COMMIT_MSG
+5-0yoshimi/MESSAGE
+5-0yoshimi/distinfo
+1,393-02 files not shown
+1,396-08 files

LLVM/project 3c0a5b4 — clang/lib/CodeGen CGClass.cpp, clang/test/CodeGenCXX cfi-vtable-check.cpp

[Clang][CFI] Don't let -fdevirtualize-speculatively force llvm.type.checked.load (#241643)

9e7ce77573b2 (#159685) made `-fdevirtualize-speculatively` override both
conditions for emitting `llvm.type.checked.load`:
`-fwhole-program-vtables`
and hidden LTO visibility of the class. The override never helped
speculative devirtualization, because that pass only runs without LTO,
and CFI requires LTO.

With LTO and trapping `cfi-vcall`, the override adds a local CFI check
to
classes with public LTO visibility. That check only knows the vtables in
the current LTO unit, so it traps on valid objects created elsewhere,
such as `std::exception` subclasses from the shared C++ runtime or
classes from other DSOs. With `-fsanitize-cfi-cross-dso`, these calls
also skip `__cfi_slowpath`.

Remove the override.


    [3 lines not shown]
DeltaFile
+6-6clang/test/CodeGenCXX/cfi-vtable-check.cpp
+2-3clang/lib/CodeGen/CGClass.cpp
+0-3compiler-rt/test/cfi/devirtualize-speculatively.cpp
+8-123 files

FreeBSD/ports a95e6c7 — devel/py-ty Makefile Makefile.crates

devel/py-ty: Update to 0.0.102

Changelog: https://github.com/astral-sh/ty/blob/0.0.102/CHANGELOG.md

Reported by:    portscout
DeltaFile
+57-59devel/py-ty/distinfo
+27-28devel/py-ty/Makefile.crates
+1-1devel/py-ty/Makefile
+85-883 files

FreeBSD/src 4edbd4e — usr.sbin/bsnmpd/modules/snmp_hostres hostres_snmp.h hostres_device_tbl.c

snmp_hostres(3): strengthen work on the devd(8) socket

Use the SOCK_SEQPACKET version of the socket.  This guarantees that
messages read won't be glued together.  Use sufficient buffer size to
read any message.

Close socket on any kind of error or a short read.

This also fixes a bug when a SOCK_STREAM socket containing exactly
multiple of 512 bytes would block the daemon in read(2) until some
other devd(8) event.  Thank to David for catching and analyzing it.

Reported by:            David Pfitzner <dpfitzner at netflix.com>

Reviewed by:            imp
Differential Revision:  https://reviews.freebsd.org/D61146
DeltaFile
+28-44usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c
+0-3usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h
+28-472 files

FreeBSD/src b1a7434 — include unistd.h, lib/libc/gen sysconf.c sysconf.3

devd: expose maximum record size via sysconf(3)

Use UMA allocation size that holds the buffer.  The buffer is actually
slightly smaller.  Document the latter so that clients don't need to use
+1 if they later want to NUL-terminate a message.

Reviewed by:            mjg, imp
Differential Revision:  https://reviews.freebsd.org/D61346
DeltaFile
+54-6sbin/devd/devd.8
+5-10sbin/devd/tests/client_test.c
+9-1lib/libc/gen/sysconf.3
+9-0sys/kern/kern_devctl.c
+7-0lib/libc/gen/sysconf.c
+4-0include/unistd.h
+88-176 files

FreeBSD/src 343afa2 — include unistd.h

unistd.h: sort sysconf(3) arguments

No functional change.  Keeping it sorted reduces chance of a collision.

Reviewed by:            kfv, imp
Differential Revision:  https://reviews.freebsd.org/D61345
DeltaFile
+19-9include/unistd.h
+19-91 files