LLVM/project c3ecb29 — llvm/test/CodeGen/AMDGPU combine-carry-into-uadde-usube.ll, llvm/test/CodeGen/AMDGPU/GlobalISel icmp.ll udivrem.ll

[AMDGPU][GlobalISel] Fold conditional increments and decrements into carry ops (#241985)

#### Problem analysis

- discovered by an independent e-graph based folding rule discoverer
- `AMDGPUCodeGenPrepare` and the GlobalISel legalizer expand integer
division and remainder after the IR optimizations. Each
quotient/remainder correction step is a conditional increment or
decrement, `select c, (add x, 1), x`, so InstCombine never canonicalizes
it.
- The post-legalizer combiner folded `add x, (zext c)` into `G_UADDE`
only when `c` was the carry-out of another add/sub, although compare
results also live in `SCC`/`VCC`. The `select` form was not folded at
all.
- This is the GlobalISel counterpart of #241946, which adds the same
folds to SelectionDAG.

#### Fix


    [38 lines not shown]
DeltaFile
+4,227-18llvm/test/CodeGen/AMDGPU/combine-carry-into-uadde-usube.ll
+736-811llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
+1,409-136llvm/test/CodeGen/AMDGPU/GlobalISel/postlegalizer-combiner-carry-into-uadde-usube.mir
+634-682llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i64.ll
+273-480llvm/test/CodeGen/AMDGPU/GlobalISel/udivrem.ll
+230-373llvm/test/CodeGen/AMDGPU/GlobalISel/icmp.ll
+7,509-2,50023 files not shown
+9,605-4,83529 files

FreeBSD/src 1bb8b1d — sys/kern kern_fork.c

hwpmc: switch in process PMCs on a thread's first run

A new thread starts in fork_exit(), not mi_switch(), so its PMCs are
not loaded until its next context switch.  Call the switch-in hook
there.

Reviewed by:    kib, Osvaldo Janeri Filho <ojanerif at amd.com>, mhorne
MFC after:      1 week
Sponsored by:   Advanced Micro Devices, Inc.
Differential Revision:  https://reviews.freebsd.org/D60565
DeltaFile
+10-0sys/kern/kern_fork.c
+10-01 files

LLVM/project be658df — llvm/include/llvm/MC MCStreamer.h, llvm/lib/CodeGen/AsmPrinter AsmPrinterDwarf.cpp

[SystemZ][z/OS] Use Q-con relocations for references to NoLoad sections in GOFF (#231603)

Emit Q-con relocations instead of A-con relocations when referencing
symbols in NoLoad sections such as DWARF debug data. Because NoLoad
sections are not loaded into memory at runtime, absolute address
constants cannot be computed by the z/OS binder. This resolves binder
errors (IEW2353E / error code 250001) when processing debug information.

---------

Co-authored-by: Yusra Syeda <yusra.syeda at ibm.com>
Co-authored-by: Xing Xue <xingxue at outlook.com>
DeltaFile
+7-28llvm/lib/MC/MCDwarf.cpp
+14-8llvm/lib/MC/MCStreamer.cpp
+10-0llvm/lib/MC/MCAsmInfo.cpp
+9-0llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
+6-2llvm/include/llvm/MC/MCStreamer.h
+4-2llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
+50-403 files not shown
+60-449 files

LLVM/project eaabd23 — mlir/test/Transforms canonicalize-deeply-nested.py

[mlir] Remove deeply nested canonicalization stress test (#242233)

It belongs to benchmark suite which MLIR doesnt have.

See the discussion
https://github.com/llvm/llvm-project/pull/231423#issuecomment-6824897787
DeltaFile
+0-28mlir/test/Transforms/canonicalize-deeply-nested.py
+0-281 files

LLVM/project 721686c — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt gettid.h, libc/src/unistd/linux CMakeLists.txt fork.cpp

[libc] Use syscall wrappers for fork
DeltaFile
+41-0libc/src/__support/OSUtil/linux/syscall_wrappers/fork.h
+34-2utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+31-0libc/src/__support/OSUtil/linux/syscall_wrappers/gettid.h
+14-16libc/src/unistd/linux/fork.cpp
+26-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+7-6libc/src/unistd/linux/CMakeLists.txt
+153-246 files

LLVM/project 0ca8798 — libc/src/__support/OSUtil/linux CMakeLists.txt auxv.h, libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt prctl.h

[libc] Use a syscall wrapper for auxv (#242255)

This PR move auxv initialization behind the centralized syscall
wrappers, following libc/docs/dev/syscall_wrapper_refactor.md.
DeltaFile
+35-0libc/src/__support/OSUtil/linux/syscall_wrappers/prctl.h
+16-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+7-8libc/src/__support/OSUtil/linux/auxv.h
+12-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+1-1libc/src/__support/OSUtil/linux/CMakeLists.txt
+71-105 files

LLVM/project fc1abb5 — libc/src/__support/File/linux CMakeLists.txt dir.cpp, libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt getdents64.h

[libc] Use a syscall wrapper for the Linux Dir helpers (#242254)

This PR move the Linux Dir helpers behind the centralized syscall
wrappers, following libc/docs/dev/syscall_wrapper_refactor.md.
DeltaFile
+38-0libc/src/__support/OSUtil/linux/syscall_wrappers/getdents64.h
+16-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+2-11libc/src/__support/File/linux/dir.cpp
+13-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+2-2libc/src/__support/File/linux/CMakeLists.txt
+71-135 files

LLVM/project f27da1d — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt sigaltstack.h, libc/src/signal/linux CMakeLists.txt sigaltstack.cpp

[libc] Use a syscall wrapper for sigaltstack (#242252)

This PR move sigaltstack behind the centralized syscall wrappers,
following libc/docs/dev/syscall_wrapper_refactor.md.
DeltaFile
+51-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+34-0libc/src/__support/OSUtil/linux/syscall_wrappers/sigaltstack.h
+13-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+5-6libc/src/signal/linux/sigaltstack.cpp
+4-2libc/src/signal/linux/CMakeLists.txt
+107-85 files

FreeBSD/src 57e8edd — sys/dev/mii lan867xphy.c

lan867xphy: Add silicon rev D0 configuration

Apply hardware revision D0 configuration from Microchip AN1699
(Revision G).  The LSCTL (0x0012) write is deferred until link state
reporting is implemented.

Sponsored by:   The FreeBSD Foundation
Sponsored by:   Microchip (Hardware)
Differential Revision: https://reviews.freebsd.org/D61269
DeltaFile
+31-1sys/dev/mii/lan867xphy.c
+31-11 files

OpenBSD/ports lWAHhkP — www/librewolf Makefile distinfo, www/librewolf/patches patch-security_nss_lib_nss_nss_h patch-security_manager_ssl_nsNSSCertificateDB_h

   www/librewolf: MFC update to 160.0-1, from yaydn / protonmail
VersionDeltaFile
1.1.2.1+158-0www/librewolf/patches/patch-security_manager_ssl_nsNSSCertificateDB_cpp
1.1.2.1+157-0www/librewolf/patches/patch-security_certverifier_NSSCertDBTrustDomain_cpp
1.1.2.1+14-0www/librewolf/patches/patch-security_manager_ssl_nsNSSCertificateDB_h
1.15.2.4+4-4www/librewolf/distinfo
1.20.2.4+3-3www/librewolf/Makefile
1.1.2.2+2-2www/librewolf/patches/patch-security_nss_lib_nss_nss_h
+338-96 files not shown
+341-1212 files

OpenBSD/ports nhaWdZY — www/librewolf Makefile distinfo, www/librewolf/patches patch-toolkit_components_downloads_DownloadIntegration_sys_mjs patch-third_party_angle_angle_common_gn_moz_build

   www/librewolf: update to 160.0-1, from Leah Rowe (MAINTAINER)

   same diff from yaydn
VersionDeltaFile
1.21+4-4www/librewolf/distinfo
1.27+3-3www/librewolf/Makefile
1.5+1-1www/librewolf/patches/patch-toolkit_components_downloads_DownloadIntegration_sys_mjs
1.3+1-1www/librewolf/patches/patch-third_party_angle_angle_common_gn_moz_build
1.2+1-1www/librewolf/patches/patch-python_mozbuild_mozbuild_rust_commands_py
+10-105 files

LLVM/project fb2dff1 — llvm/lib/Transforms/InstCombine InstCombineCompares.cpp, llvm/test/Transforms/InstCombine load-cmp.ll

[InstCombine] Avoid redundant masking of indices in foldCmpLoadFromIndexedGlobal (#242282)

The two checks when checking whether we can mask are currently out of
sync:

    bool StrideIsValid = Expr.Flags.hasNoUnsignedSignedWrap()
                             ? !Stride.isNegative()
                             : Stride.isPowerOf2();
    ...
    if (!Expr.Flags.isInBounds() && Stride.countr_zero() != 0) { ... }

Update the second check to check nusw instead of inbounds.

Removes redundant masking when a GEP has nusw only (no inbounds).

https://alive2.llvm.org/ce/z/tK2bOZ
DeltaFile
+15-4llvm/test/Transforms/InstCombine/load-cmp.ll
+2-2llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
+17-62 files

LLVM/project 8d96c91 — libc/test/src/math hypotf_hard_to_round.h, llvm/test/CodeGen/AArch64/Atomics aarch64-atomic-load-lse2.ll

Merge branch 'main' into users/mayanez/fix/globalopt-comdat-dead
DeltaFile
+1,216-1,216libc/test/src/math/hypotf_hard_to_round.h
+1,070-0llvm/test/CodeGen/AMDGPU/constant-address-space-32bit-vmem.ll
+744-0llvm/test/CodeGen/AMDGPU/bitinsert-vector.ll
+460-154mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
+549-0llvm/test/CodeGen/X86/bitinsert-vector.ll
+544-0llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-load-lse2.ll
+4,583-1,370574 files not shown
+31,640-8,585580 files

LLVM/project 09b491e — llvm/include/llvm/IR IRBuilder.h, llvm/lib/Transforms/Utils SimplifyIndVar.cpp

[IndVars] Create new invariant compare. (#241964)

Update makeIVComparisonInvariant to create a fresh compare, as suggested
in and to slightly simplify https://github.com/llvm/llvm-project/pull/241408.

PR: https://github.com/llvm/llvm-project/pull/241964
DeltaFile
+6-3llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
+5-2llvm/include/llvm/IR/IRBuilder.h
+1-2llvm/test/Transforms/IndVarSimplify/X86/loop-invariant-conditions.ll
+12-73 files

NetBSD/pkgsrc-wip 27bc575 — mesa Makefile distinfo, mesa/patches patch-src_panfrost_perf_pan__perf.h

mesa: updated to 26.2.7
DeltaFile
+0-18mesa/patches/patch-src_panfrost_perf_pan__perf.h
+3-4mesa/distinfo
+1-1mesa/Makefile
+4-233 files

LLVM/project 3747747 — libc/src/__support/OSUtil/linux CMakeLists.txt auxv.h, libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt prctl.h

[libc] Use a syscall wrapper for auxv
DeltaFile
+35-0libc/src/__support/OSUtil/linux/syscall_wrappers/prctl.h
+16-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+7-8libc/src/__support/OSUtil/linux/auxv.h
+12-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+1-1libc/src/__support/OSUtil/linux/CMakeLists.txt
+71-105 files

LLVM/project cabae14 — libc/src/__support/File/linux CMakeLists.txt dir.cpp, libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt getdents64.h

[libc] Use a syscall wrapper for the Linux Dir helpers
DeltaFile
+38-0libc/src/__support/OSUtil/linux/syscall_wrappers/getdents64.h
+16-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+2-11libc/src/__support/File/linux/dir.cpp
+13-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+2-2libc/src/__support/File/linux/CMakeLists.txt
+71-135 files

LLVM/project 245b556 — llvm/lib/Target/AArch64 AArch64InstrFormats.td, llvm/lib/Target/AArch64/GISel AArch64RegisterBankInfo.cpp AArch64InstructionSelector.cpp

[AArch64][GlobalISel] Remove renderFPImm32SIMDModImmType4 (#241416)

Using the expansion checks in expandVectorMOVImm we can check that any
fp constant is materializable as a vector movi. This allows us to remove
the existing renderFPImm32SIMDModImmType4 that only handles one type of
immediate, relying on the backend selection instead.
DeltaFile
+6-10llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll
+0-14llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+5-7llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll
+5-7llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+4-5llvm/test/CodeGen/AArch64/known-never-nan.ll
+0-3llvm/lib/Target/AArch64/AArch64InstrFormats.td
+20-466 files

Dreckly/dreckly a3b9cd2 — devel/appstream-glib Makefile

appstream-glib: Fix build.
DeltaFile
+0-1devel/appstream-glib/Makefile
+0-11 files

LLVM/project 53cb999 — llvm/tools/llvm-exegesis/lib SnippetGenerator.cpp

[llvm-exegesis] Generate the random seed only once (#241986)

`randomGenerator()` computes `RandomSeed` on every call, but its static
`std::mt19937` only consumes the first seed. Without an explicit seed,
subsequent calls unnecessarily invoke `std::random_device`.

Make `RandomSeed` static so seed generation happens once.

Profiling `check-llvm` on Fedora x86-64 with libstdc++ showed 7.41% of
sampled CPU cycles in `__x86_rdseed_rdrand`, reached through
llvm-exegesis's `randomGenerator()`.

For the 114 llvm-exegesis regression tests with 14 workers, median
elapsed time across three runs decreased from 72.34s to 3.02s (~24x
faster).

Validation: the llvm-exegesis tests and `check-llvm` passed.
DeltaFile
+3-3llvm/tools/llvm-exegesis/lib/SnippetGenerator.cpp
+3-31 files

LLVM/project 18c4721 — clang-tools-extra/clang-tidy .clang-tidy

[clang-tidy][NFC] Disable bugprone-unchecked-optional-access check (#242287)

Since this check only consider local-functions, it fails such code:

bar(optional<int> a) {
  assert(a && "must be initialized");
  std::cout << a.value();
}
```

I think it right now bring too much churn on people writing code in clang-tidy (like https://github.com/llvm/llvm-project/pull/219182) so disable it for now.
DeltaFile
+1-0clang-tools-extra/clang-tidy/.clang-tidy
+1-01 files

FreeBSD/ports aa8a1c6 — mail/rspamd Makefile pkg-plist

mail/rspamd: Update to 4.3.0

Feature release.  Adds SMTPUTF8 address syntax checks
(draft-ietf-mailmaint-smtputf8-syntax), explicit phishing rewrite trust
maps, and new symbols for truncated or unreadable archive, OOXML, SVG
and PDF content.  HTML, CSS and URL parsing follow browsers more
closely, and the release carries many milter, Redis, DNS, SPF, DMARC,
DKIM and ARC fixes, among them a worker abort on an HTTP request with a
header line without a colon.

Incompatible changes: URL mismatches are scored separately from
phishing, SPF records are evaluated in term order, DKIM rejects
duplicated tags, l=0 and RSA keys under 1024 bits, and symbol options
are stored verbatim and percent-encoded only on output.

ChangeLog:      https://github.com/rspamd/rspamd/blob/4.3.0/ChangeLog
DeltaFile
+3-3mail/rspamd/distinfo
+3-0mail/rspamd/pkg-plist
+1-1mail/rspamd/Makefile
+7-43 files

LLVM/project 79bb30d — llvm/lib/Target/LoongArch LoongArchISelLowering.cpp

[LoongArch] Use INSERT_SUBREG for PseudoXVINSGR2VR into an undefined vector. NFC

When inserting an element into the low half of an undefined LASX vector,
the insert is done on the low 128 bits and the result was widened with
SUBREG_TO_REG. That means that the instruction defining the low 128 bits
also defined the upper 128 bits, which is not the case. Insert the result
into the undefined source vector with INSERT_SUBREG instead, which keeps
its upper 128 bits undefined.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+2-1llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+2-11 files

LLVM/project 022a3d8 — llvm/lib/Target/LoongArch LoongArchLASXInstrInfo.td

[LoongArch] Use INSERT_SUBREG of IMPLICIT_DEF to widen LSX vectors to LASX. NFC

Several patterns widen a 128-bit LSX vector to a 256-bit LASX vector
with SUBREG_TO_REG, for instructions that only use the low 128 bits:
vext2xv.*, and xvpermi.d followed by an instruction that only uses the
low half of each 128-bit lane. SUBREG_TO_REG means that the instruction
defining the LSX vector also defined the upper 128 bits, which is not
the case and is not needed. Add an lsx_to_lasx helper that uses
INSERT_SUBREG into an IMPLICIT_DEF instead, as other patterns already do
for this kind of widening.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+34-31llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
+34-311 files

FreeBSD/src e003392 — contrib/blocklist/bin blacklistd.8

blocklist: blacklist: Chase recent upstream changes

MFC after:      3 days
DeltaFile
+19-11contrib/blocklist/bin/blacklistd.8
+19-111 files

LLVM/project 9b11b3f — llvm/lib/Target/LoongArch LoongArchLASXInstrInfo.td, llvm/test/CodeGen/LoongArch/lasx/ir-instruction extractelement.ll

[LoongArch] Use INSERT_SUBREG of IMPLICIT_DEF to put an FP scalar in a LASX vector

The patterns for vector_insert, scalar_to_vector and splat of an FP
scalar into a LASX vector used SUBREG_TO_REG to view the FPR as a vector
register. SUBREG_TO_REG means that the instruction defining the FPR also
defined the rest of the vector register, which is not the case. Only
element 0 is used, and scalar_to_vector leaves the other elements
undefined, which is what INSERT_SUBREG into an IMPLICIT_DEF expresses.

This changes the scheduling and register allocation in one test, but not
the number of instructions.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+15-15llvm/test/CodeGen/LoongArch/lasx/ir-instruction/extractelement.ll
+8-8llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
+23-232 files

LLVM/project 1451774 — llvm/lib/Target/LoongArch LoongArchLSXInstrInfo.td

[LoongArch] Use INSERT_SUBREG of IMPLICIT_DEF for scalar FP rounding via LSX. NFC

fceil, ffloor, ftrunc and froundeven of an FP scalar are selected to a
splat of element 0 of the FPR viewed as an LSX vector, a vector rounding
instruction, and an extract of element 0. Only element 0 is used, so use
INSERT_SUBREG into an IMPLICIT_DEF instead of SUBREG_TO_REG, which means
that the instruction defining the FPR also defined the rest of the
vector register.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+16-8llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+16-81 files

LLVM/project b08e7be — llvm/test/CodeGen/AMDGPU true16-v2s-copy-subreg-phi.ll

[AMDGPU][NFC] Pre-commit test for a deleted conditional f16 load on gfx1250

On gfx1250 (true16), a conditional f16 load whose value reaches a PHI
through a VGPR-to-SGPR copy is deleted: in the new test, the %ld block
ends up with only an implicit-def. Add the test with the current, wrong
output.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+87-0llvm/test/CodeGen/AMDGPU/true16-v2s-copy-subreg-phi.ll
+87-01 files

LLVM/project 7c03eb6 — llvm/lib/Target/LoongArch LoongArchLSXInstrInfo.td, llvm/test/CodeGen/LoongArch/lasx vec-sext-invec-mask.ll

[LoongArch] Use INSERT_SUBREG of IMPLICIT_DEF to put an FP scalar in an LSX vector

The patterns for vector_insert, scalar_to_vector and splat of an FP
scalar into an LSX vector used SUBREG_TO_REG to view the FPR as a vector
register. SUBREG_TO_REG means that the instruction defining the FPR also
defined the rest of the vector register, which is not the case. Only
element 0 is used, and scalar_to_vector leaves the other elements
undefined, which is what INSERT_SUBREG into an IMPLICIT_DEF expresses.

This changes the scheduling and register allocation in some tests, but
not the number of instructions.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+14-14llvm/test/CodeGen/LoongArch/lsx/vec-sext.ll
+8-8llvm/test/CodeGen/LoongArch/lasx/vec-sext-invec-mask.ll
+8-6llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+6-6llvm/test/CodeGen/LoongArch/lsx/vec-trunc.ll
+6-6llvm/test/CodeGen/LoongArch/lsx/vec-reduce-umin.ll
+6-6llvm/test/CodeGen/LoongArch/lsx/vec-reduce-umax.ll
+48-4617 files not shown
+122-12023 files

LLVM/project 2f289d0 — flang/include/flang/Optimizer/Builder Character.h, flang/lib/Optimizer/Builder Character.cpp

[flang] Address review comments on chained concatenation fusion

Let concatenation fusion cross operations that only allocate, like the
hlfir.declare of a character literal operand, so that chains ending with a
literal are fused into one buffer. Only operations that may write or free
memory, or whose effects are unknown, now prevent the fusion.

Remove CharacterExprHelper::createConcatenate, which no longer has users.

Add bufferization tests for concatenations whose operands all have a
compile-time length, and for character kind 4.
DeltaFile
+68-0flang/test/HLFIR/concat-bufferization.fir
+27-0flang/test/HLFIR/character-expression-lifetimes.fir
+0-25flang/lib/Optimizer/Builder/Character.cpp
+4-2flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
+0-4flang/include/flang/Optimizer/Builder/Character.h
+99-315 files