LLVM/project 951f633 — mlir/cmake/modules CMakeLists.txt

[mlir][cmake] NFC: fix typo (#234862)
DeltaFile
+1-1mlir/cmake/modules/CMakeLists.txt
+1-11 files

LLVM/project bee76f1 — llvm/lib/IR IROptions.td Value.cpp, llvm/test/Analysis/ValueTracking deref-abstract-gc.ll memory-dereferenceable.ll

[IR] Remove -use-dereferenceable-at-point-semantics option (#218428)

This was a temporary migration option, remove it now that the migration
is complete.
DeltaFile
+23-46llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll
+18-28llvm/test/Transforms/MergeICmps/X86/no-gep-other-work.ll
+0-4llvm/lib/IR/IROptions.td
+1-3llvm/lib/IR/Value.cpp
+1-2llvm/test/Transforms/LICM/hoist-alloc.ll
+1-1llvm/test/Analysis/ValueTracking/deref-abstract-gc.ll
+44-8412 files not shown
+44-9618 files

LLVM/project 53f628c — utils/bazel/llvm-project-overlay/compiler-rt BUILD.bazel

[bazel][compiler-rt] Exclude more libc-backed builtins (#234486)

Follows the pattern of #214779 and excludes new builtins added by
#207543 and #209900.

Assisted-by: Antigravity with Gemini
DeltaFile
+24-0utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
+24-01 files

LLVM/project f467c1f — utils/bazel/llvm-project-overlay/libunwind BUILD.bazel libunwind_library.bzl

[bazel][libunwind] Introduce basic source and copts exporting for libunwind (#234485)

This exports the source files and copts directly so that they can be
used to build this runtime library on demand. This is used by Carbon's
toolchain to package and build `libunwind`.

Assisted-by: Antigravity with Gemini
DeltaFile
+24-0utils/bazel/llvm-project-overlay/libunwind/libunwind_library.bzl
+16-0utils/bazel/llvm-project-overlay/libunwind/BUILD.bazel
+40-02 files

LLVM/project bf6ab40 — utils/bazel/llvm-project-overlay/compiler-rt BUILD.bazel

[bazel][compiler-rt] Add `libfuzzer` target to `compiler-rt` (#234482)

This lets Bazel users of LLVM to also use `libfuzzer` directly to build
fuzz tests, including the `main`-function it provides. This is a simple
and uncomplicated approach to leveraging `libfuzzer`, and seems useful
to include. Carbon has been using it for the last several years
successfully.

One tricky part is that we have to carefully manage the compiler flags
when compiling with Clang.

Assisted-by: Antigravity with Gemini
DeltaFile
+20-0utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
+20-01 files

FreeNAS/freenas 887817c — src/middlewared/middlewared/plugins/usage gather.py

Report TrueSearch in usage statistics services

## Problem
TrueSearch has no "Start Automatically" flag and no row in the services table, so it never shows up in the `services` list of the usage statistics and there is no way to tell how many systems use it.

## Solution
Append a `truesearch` entry to `services`, with `enabled` coming from `truesearch.enabled`, the same check middleware uses to decide whether to start the daemon (licensed, and SMB Spotlight or WebShare search have shares to index).
DeltaFile
+3-1src/middlewared/middlewared/plugins/usage/gather.py
+3-11 files

LLVM/project 05c3ff5 — clang/lib/CodeGen/Targets X86.cpp, clang/test/CIR/CodeGen call-conv-lowering-x86_64-x87-union.cpp

[Clang][ABI][X86] Do not emit zeroext/signext for return values (#232729)

This stops emitting the zeroext/signext attributes for return values on
X86, except for `bool` (which stays zeroext, as it requires
zero-extension to 8 bits) and Darwin.

The `getTypeForExtReturn()` in the X86 backend already ignores
zeroext/signext for i8 and i16 types on non-Darwin platforms. For these
cases, this change has no impact on codegen: The intent is merely to
clarify the used psABI. Using zeroext/signext when no actual extension
takes place is highly confusing, esp. when the behavior is different
between return values and arguments.

However, this *does* change behavior for non-i8/i16 types. Specifically,
it changes `_BitInt` types to have unspecified high bits, instead of
performing a partial sign/zero extension to 8, 16 or 32 bits. This makes
`_BitInt` comply with the Linux psABI, the previous behavior was
incorrect. MSVC does not support `_BitInt`, so there is no correct ABI
there.

    [5 lines not shown]
DeltaFile
+49-0llvm/unittests/ABI/X86TargetInfoTest.cpp
+12-12clang/test/CodeGen/attr-sized-by-or-null-for-pointers.c
+12-12clang/test/CodeGen/attr-sized-by-for-pointers.c
+19-5clang/lib/CodeGen/Targets/X86.cpp
+19-4llvm/lib/ABI/Targets/X86.cpp
+8-8clang/test/CIR/CodeGen/call-conv-lowering-x86_64-x87-union.cpp
+119-4122 files not shown
+181-10228 files

LLVM/project 092b873 — llvm/unittests/ADT DenseMapTest.cpp

[DenseMap] Skip TrivialCopyable Test on FreeBSD (#234853)

FreeBSD currently does not provide a trivially copyable std::pair to
avoid an ABI break. Consequently, the isRelocatableBucket check fails,
so we disable this static_assert on FreeBSD.
DeltaFile
+2-0llvm/unittests/ADT/DenseMapTest.cpp
+2-01 files

LLVM/project 85b46e6 — clang/lib/CodeGen/TargetBuiltins RISCV.cpp, clang/test/CodeGen/RISCV rvp-intrinsics.c

[RISCV][P-ext] Add scalar mqwacc/mqrwacc intrinsics (#234560)

Add the scalar "Q-format" Multiply with Widening Accumulate intrinsics:
https://github.com/riscv/riscv-p-spec/blob/master/P-ext-intrinsics.adoc#q-format-multiply-with-widening-accumulate

- `__riscv_mqwacc_i64`
- `__riscv_mqrwacc_i64`
DeltaFile
+34-0clang/test/CodeGen/RISCV/rvp-intrinsics.c
+28-0llvm/test/CodeGen/RISCV/rvp-scalar.ll
+27-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+15-0cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
+8-0llvm/include/llvm/IR/IntrinsicsRISCV.td
+8-0clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
+120-02 files not shown
+128-08 files

LLVM/project 395ba2c — llvm/lib/CodeGen CodeGenPrepare.cpp, llvm/test/Transforms/CodeGenPrepare/X86 optimize-ext-uses-nneg.ll

[CodeGenPrepare] Drop poison-generating flags on extensions in optimizeExtUses (#234134)

`optimizeExtUses` rewrites uses of an extension's source in other blocks
to read `trunc` of the extension, which is only correct where the
extension isn't `poison`. A `zext nneg` can be valid only where it was
originally used, like behind a check that its source isn't negative. If
that check is one of the rewritten uses, it ends up reading `poison`,
and on `x86_64-pc-windows-msvc`, InstSimplify in WinEHPrepare's cleanup
folds it to true and causes a miscompile.

Drop the extension's poison-generating flags once a use has been
rewritten, like #72103 and #90382 did for similar cases in
`CodeGenPrepare`.

Fixes #234098.

(cherry picked from commit 93fccabb4ebc82695475eaaa279ea5fbb2265450)
DeltaFile
+73-0llvm/test/Transforms/CodeGenPrepare/X86/optimize-ext-uses-nneg.ll
+6-0llvm/lib/CodeGen/CodeGenPrepare.cpp
+79-02 files

LLVM/project 5c71313 — llvm/lib/Transforms/Utils LoopUnrollRuntime.cpp, llvm/test/Transforms/LoopUnroll scev-invalidation-lcssa.ll

[LoopUnroll] Invalidate epilogue exit phis with new predecessor. (#234202)

Adding a new incoming value the to LCSSA phi in the exit block requires
invalidating SCEV for the phi.

Add missing forgetLcssaPhiWithNewPredecessor, like ConnectProlog already
does.

Fixes https://github.com/llvm/llvm-project/issues/231756

PR: https://github.com/llvm/llvm-project/pull/234202
(cherry picked from commit 1782f9b2cef910440a06240f3bcc638bef981584)
DeltaFile
+107-0llvm/test/Transforms/LoopUnroll/scev-invalidation-lcssa.ll
+1-0llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
+108-02 files

LLVM/project f8bd952 — llvm/lib/Target/LoongArch LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch/lsx/ir-instruction sitofp.ll

[LoongArch] fix more `sitofp` missing instruction issues (#234143)

Turns out https://github.com/llvm/llvm-project/issues/228894 /
https://github.com/llvm/llvm-project/pull/228896 was not sufficient,
there are still isel issues with this conversion:

- https://godbolt.org/z/arTaEhKsT
- https://godbolt.org/z/nGh63Kvo6

(cherry picked from commit ee216ff7ed6326989dfbd8f206342657aa1fda84)
DeltaFile
+407-118llvm/test/CodeGen/LoongArch/lsx/ir-instruction/sitofp.ll
+4-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+411-1182 files

LLVM/project 1f43a92 — llvm/include/llvm/Support Caching.h, llvm/lib/HTTP StreamedHTTPResponseHandler.cpp

[debuginfod] Abort cached file stream if request fails (#232038)

When an HTTP request fails while it already received some data, the
cached file stream is never committed. Destroying it in that state
raises a fatal error, crashing the program (see #184728).

This PR adds an `abort` method that should be called in this situation
before destroying the stream. For the default implementation, only the
output stream is closed. For the `CacheStream` in `llvm::localCache`,
the temporary file is discarded as well.

The test is based on David's reproducer. Since WinHttp seems to discard
the content-length header, I switched to timing out the response
instead.

Fixes #184728. This is still a bug for the symstore locator in lldb, but
I'll fix that in a followup.

fix: disable test partial-response.test on system-windows
DeltaFile
+41-0llvm/unittests/Support/Caching.cpp
+33-0llvm/test/tools/llvm-debuginfod-find/Inputs/partial_response.py
+20-3llvm/include/llvm/Support/Caching.h
+15-0llvm/test/tools/llvm-debuginfod-find/partial-response.test
+6-0llvm/lib/Support/Caching.cpp
+6-0llvm/lib/HTTP/StreamedHTTPResponseHandler.cpp
+121-32 files not shown
+127-48 files

LLVM/project 2cc5b8c — flang/lib/Semantics check-omp-structure.cpp, flang/test/Semantics/OpenMP declare-simd-empty.f90 declare-simd.f90

[flang][OpenMP] Ignore DECLARE_SIMD and warn about missing implementa… (#232712)

…tion

Currently DECLARE_SIMD emits a "not yet implemented" error in the MLIR
to LLVM IR translation.

DECLARE_SIMD is a hint to the compiler and ignoring it is technically
speaking a conforming implementation (although obviously not desirable).
Do not abort compilation when DECLARE_SIMD is encountered, but emit a
warning that it's currently ignored.

(cherry picked from commit 5ca62fdee645ec253263e41a45fe626c6b66be22)

Fixes: https://github.com/llvm/llvm-project/issues/234108
DeltaFile
+7-0mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+5-1flang/test/Semantics/OpenMP/declare-simd.f90
+5-1flang/test/Semantics/OpenMP/declare-simd-interface-body.f90
+6-0flang/test/Semantics/OpenMP/linear-clause01.f90
+5-0flang/lib/Semantics/check-omp-structure.cpp
+2-1flang/test/Semantics/OpenMP/declare-simd-empty.f90
+30-37 files not shown
+40-313 files

LLVM/project fde947f — llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/AArch64 vector-call-linear-args-no-wide-iv.ll

[VPlan] Split legalizeAndOptimizeIVs in 2 phases. (#217765)

Split the transform into 2 phases:

1. narrow all users of all IVs
2. replace wide IVs if all users are scalar.

Together with removing the old, wide recipes, this allows us to catch
slightly more cases.

PR: https://github.com/llvm/llvm-project/pull/217765

(cherry picked from commit 932f5d22df7775f7cb65befd62053c0e93448959)
(cherry picked from commit a3ac001f673a87a014ecd6bf7ca11cc8b1cb576d)
DeltaFile
+167-0llvm/test/Transforms/LoopVectorize/VPlan/vplan-narrow-iv-users.ll
+66-0llvm/test/Transforms/LoopVectorize/AArch64/vector-call-linear-args-no-wide-iv.ll
+16-11llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+249-113 files

LLVM/project 58ccd3c — lldb/source/Plugins/Process/Linux NativeProcessLinux.cpp, lldb/test/API/tools/lldb-server/inferior-crash TestGdbRemoteSegFault.py

[lldb] Preserve the siginfo when running syscalls in the inferior (#234153)

NativeProcessLinux::Syscall (used to implement the _M and _m packets)
runs a syscall instruction in the current thread. It restores the
registers and memory afterwards, but not the siginfo, which ends up
describing the SIGTRAP from the syscall instead of the signal that the
thread originally stopped with.

lldb allocates memory quite often, even when evaluating expressions
which don't run any code in the inferior (e.g. "expr 1+1"). Afterwards,
"thread siginfo" shows the wrong data. More importantly, the inferior
doesn't get the original siginfo when lldb resumes it with the signal it
stopped with: the kernel sees that the signal does not match the
siginfo, and makes up a new one (with si_code=SI_USER and the pid of
lldb-server). This means that e.g. a SIGSEGV handler does not get the
fault address.

This patch makes Syscall save the siginfo before running the syscall,
and restore it (with PTRACE_SETSIGINFO) afterwards.

Assisted-by: Claude
DeltaFile
+32-0lldb/test/API/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py
+10-0lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+42-02 files

LLVM/project bfa1064 — flang-rt/lib/runtime numeric.cpp, flang-rt/unittests/Runtime Numeric.cpp

[flang] Fix wrong result for exponentiation when denormal is expected (#205262)

Fixes #192639

Root cause:
Negative integer exponents used exponentiation-by-squaring that divides
by successively squared bases; for |base| > 1 intermediates overflow
before the final divide.

Fix
- Constant folding: After the direct path, retry with (1/base)^|n| only
when overflow was flagged, so ordinary negative powers stay accurate and
extreme cases still get subnormals. Handle INT_MIN via the original
exponent on retry (forceMultiply).
- Runtime FPowI: Same idea—invert after base^|n|; retry from 1/base only
when the quotient is exactly zero and base != 0, avoiding unnecessary
reciprocal-first rounding loss.

Scope - What changed

    [7 lines not shown]
DeltaFile
+20-11flang-rt/lib/runtime/numeric.cpp
+24-3flang/lib/Evaluate/int-power.h
+18-0flang/test/Evaluate/folding07.f90
+17-0flang-rt/unittests/Runtime/Numeric.cpp
+79-144 files

LLVM/project 470f33e — lld/MachO ExportTrie.cpp

Improve comments in ExportTrie.cpp

Refactor comments for clarity and optimization explanation.
DeltaFile
+3-2lld/MachO/ExportTrie.cpp
+3-21 files

LLVM/project 603b2ae — lld/MachO ExportTrie.cpp

[lld-macho] Build the export trie by edges, not bytes (NFC)

Emit singleton suffixes directly and scan common prefixes in one pass,
avoiding repeated byte-wise partitioning. Preserve radix traversal,
node allocation order, and terminal encoding.

On a Ryzen 7 7700, a rust-analyzer debug link with 248,607 exports
changes from 2079 to 1948 ms at one thread and 1269 to 1185 ms at
eight threads (median wall times over four interleaved pairs).
DeltaFile
+27-0lld/MachO/ExportTrie.cpp
+27-01 files

LLVM/project 7ef396b — llvm/include/llvm/CodeGen MachineScheduler.h, llvm/lib/CodeGen MachineScheduler.cpp

Address comments

Created using spr 1.3.6-beta.1
DeltaFile
+14-18llvm/lib/CodeGen/MachineScheduler.cpp
+1-13llvm/include/llvm/CodeGen/MachineScheduler.h
+15-312 files

FreeBSD/ports 076f4cb — devel/moon Makefile Makefile.crates, devel/moon/files patch-cargo-crates_extism-convert-1.30.0_src_encoding.rs patch-cargo-crates_extism-convert-1.41.0_src_encoding.rs

devel/moon: update to 2.6.3

Sponsored by:   Netflix
DeltaFile
+203-199devel/moon/distinfo
+100-98devel/moon/Makefile.crates
+0-9devel/moon/files/patch-cargo-crates_extism-convert-1.30.0_src_encoding.rs
+9-0devel/moon/files/patch-cargo-crates_extism-convert-1.41.0_src_encoding.rs
+1-1devel/moon/Makefile
+313-3075 files

LLVM/project 91fb374 — lld/MachO ExportTrie.cpp, lld/test/MachO export-trie-high-bytes.s

Address review: clarify charAt comment, use sed in test

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+12-4lld/test/MachO/export-trie-high-bytes.s
+2-2lld/MachO/ExportTrie.cpp
+14-62 files

FreeBSD/src 4e699cf — libexec/nuageinit nuageinit, libexec/nuageinit/tests nuageinit.sh

nuageinit: apply meta-data if user-data is a script

Tested by:      adam.mizerski at ovhcloud.com
Sponsored by:   OVHcloud
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2446

(cherry picked from commit de0a279c8b6967ffd1cb0c9f76d3cc4658a0f1aa)
DeltaFile
+14-12libexec/nuageinit/nuageinit
+16-3libexec/nuageinit/tests/nuageinit.sh
+30-152 files

FreeBSD/src 6c43154 — libexec/rc/rc.d nuageinit

nuageinit: fix support on OpenStack

Change added in 90a7728cd8905cd26b90d06f7873df8bad43ae9a contained a
lot of bugs:
- If all network interfaces correctly respond to DHCP, then pwait was
waiting forever.
- If there was more than 1 interface, then "cat
/tmp/ephemeraldhcp.*.pid" joined pid numbers into one long string.
- "for iface in $left; do kill -15 $left; done" is not using $iface.

Tested by:      adam.mizerski at ovhcloud.com
Sponsored by:   OVHcloud
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2436

(cherry picked from commit 13d5f20e5b9ecb42ecf7de4e98d5af0bd5d63c82)
DeltaFile
+6-8libexec/rc/rc.d/nuageinit
+6-81 files

OpenBSD/ports FgGki09 — www/py-httpx2 Makefile distinfo, www/py-httpx2/pkg PLIST

   update to py3-httpx2-2.16.0
VersionDeltaFile
1.2+2-2www/py-httpx2/distinfo
1.2+3-0www/py-httpx2/pkg/PLIST
1.2+1-1www/py-httpx2/Makefile
+6-33 files

OpenBSD/ports vF7GNmX — www/py-httpcore2 Makefile distinfo

   update to py3-httpcore2-2.16.0
VersionDeltaFile
1.2+2-2www/py-httpcore2/distinfo
1.2+1-1www/py-httpcore2/Makefile
+3-32 files

LLVM/project 7550009 — libc/src/__support/regex regex_expr_pool.h regex_expr_pool.cpp, libc/test/src/__support/regex expr_test.cpp matcher_test.cpp

[libc][regex] Add Kleene star and canonical AST normalisation (#233980)

Add ExprKind::Star, ExprPool::make_star, and the Kleene star Brzozowski
derivative rule D_c(R*) = D_c(R) . R* to the internal regular expression
engine. To guarantee that derivative state spaces stabilise into a
finite set of canonical AST nodes during Kleene star evaluation, enforce
right-associative canonical form in ExprPool::make_concat and
right-associated, ascending-ExprId, deduplicated canonical form in
ExprPool::make_alt.

Update parse_ere to fold concatenated atoms right-to-left in fixed
64-atom stack chunks so that right-associative concatenation stays O(1)
per step without creating orphaned intermediate prefix nodes. Wire
trailing '*' quantifiers on repeatable atoms and return REG_BADRPT for
unpreceded, post-anchor, or doubled repetition operators.

External compliance suites: Henry Spencer suite passes 71/456 (+19)
boolean/error cases and 29/456 (+13) full-position cases; AT&T testregex
passes 54/395 (+14) ERE boolean/error cases and 54/465 (+14) overall

    [2 lines not shown]
DeltaFile
+115-52libc/src/__support/regex/regex_parser.cpp
+57-8libc/test/src/__support/regex/matcher_test.cpp
+56-4libc/src/__support/regex/regex_expr_pool.cpp
+35-2libc/test/src/__support/regex/expr_test.cpp
+9-16libc/src/__support/regex/regex_expr_pool.h
+22-3libc/test/src/regex/regex_basic_test.cpp
+294-853 files not shown
+318-859 files

LLVM/project 4471fc3 — utils/bazel/llvm-project-overlay/mlir BUILD.bazel

[Bazel] Fixes f4e0f02 (#234852)

This fixes f4e0f0251540a2c90f7112004f7cdb1618ca0226 (#232221).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=f4e0f0251540a2c90f7112004f7cdb1618ca0226

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+1-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+1-01 files

FreeBSD/src 69a263e — sys/compat/linuxkpi/common/include/linux scatterlist.h, sys/compat/linuxkpi/common/src linux_pci.c

LinuxKPI: Add dma_length field to struct scatterlist

On Linux `dma_length` field of `struct scatterlist` is present on the
arches where DMA mapping code is able to coalesce adjacent segments
of physical address space. It contains total length of coalesced
segments while `length` field contains non-coalesced length of each
segment. On other arches `dma_length` is aliased to `length` field with
`sg_dma_len` macro. As FreeBSD does not merge scatterlist segments it
do not have `dma_length` field. It is appered that at least i915kms
driver depends on existence of `dma_length` field.

Add the field and disable it by default. To enable add to Makefile

.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" || \\
    ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "powerpc"
CFLAGS+=        -DCONFIG_NEED_SG_DMA_LENGTH
.endif

Reported by:    Ryan Fahy

    [6 lines not shown]
DeltaFile
+17-9sys/compat/linuxkpi/common/include/linux/scatterlist.h
+1-0sys/compat/linuxkpi/common/src/linux_pci.c
+18-92 files

FreeBSD/src 74ea8dd — sys/compat/linuxkpi/common/src linux_work.c

linuxkpi: Fix cancel_delayed_work_sync() return value

Align behavior between the Linux cancel_delayed_work_sync()
function return value and the LinuxKPI equivalent.

Linux cancel_delayed_work_sync() returns whether delayed
work was pending, even if canceled before executing. This
includes the case where the timer fired and work was queued
but the callback had not yet started.

The LinuxKPI version used the return value from taskqueue_cancel()
as the return value of the public facing API, which inverted the
behavior of two cases, violating the Linux API contract.
Queued work which was removed before running would return false, and
work whose callback was already executing would return true.

Track the taskqueue pending count separately from the
taskqueue_cancel() return value.
Use the pending count for the public return value.

    [13 lines not shown]
DeltaFile
+24-13sys/compat/linuxkpi/common/src/linux_work.c
+24-131 files