LLVM/project 3b6cc59 — llvm/test/CodeGen/SystemZ call-ret-v2i64-abi.ll vec-v2i64-novector.ll, llvm/test/Transforms/Attributor nofpclass-fma.ll

rebase

Created using spr 1.3.7
DeltaFile
+521-0llvm/test/CodeGen/SystemZ/vec-v2i64-novector.ll
+0-480polly/docs/HowToManuallyUseTheIndividualPiecesOfPolly.rst
+460-0polly/docs/HowToManuallyUseTheIndividualPiecesOfPolly.md
+450-0llvm/test/CodeGen/SystemZ/call-ret-v2i64-abi.ll
+365-47llvm/test/Transforms/Attributor/nofpclass-fma.ll
+379-0mlir/test/Target/LLVMIR/nvvm/sparse-compress-sp2to4.mlir
+2,175-527200 files not shown
+9,140-1,769206 files

LLVM/project 49387fc — llvm/test/CodeGen/SystemZ call-ret-v2i64-abi.ll vec-v2i64-novector.ll, llvm/test/Transforms/Attributor nofpclass-fma.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+521-0llvm/test/CodeGen/SystemZ/vec-v2i64-novector.ll
+0-480polly/docs/HowToManuallyUseTheIndividualPiecesOfPolly.rst
+460-0polly/docs/HowToManuallyUseTheIndividualPiecesOfPolly.md
+450-0llvm/test/CodeGen/SystemZ/call-ret-v2i64-abi.ll
+365-47llvm/test/Transforms/Attributor/nofpclass-fma.ll
+379-0mlir/test/Target/LLVMIR/nvvm/sparse-compress-sp2to4.mlir
+2,175-527200 files not shown
+9,140-1,769206 files

LLVM/project 0dfdb52 — llvm/test/Transforms/SimplifyCFG preserve-branchweights-switch-create.ll

[SimplifyCFG] Use check-globals=smart for test

Instead of manually writing out check lines for the test. This makes the
test more standard and easier to update.

Reviewers: akuegel, mtrofin

Pull Request: https://github.com/llvm/llvm-project/pull/234826
DeltaFile
+8-4llvm/test/Transforms/SimplifyCFG/preserve-branchweights-switch-create.ll
+8-41 files

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

[bazel][compiler-rt] Introduce source exporting for ASan, UBSan, and LSan (#234492)

This exports the source files, headers, textual sources, and compile
flags for building the AddressSanitizer, UndefinedBehaviorSanitizer, and
LeakSanitizer runtime libraries on demand or via Bazel.

Also exports ignore lists and the basics needed for syms files. The
groups are decomposed in a way that allows us to build equivalent
runtimes to how CMake works. This is the basis that Carbon is building
on to support on-demand sanitizer runtimes.

Assisted-by: Antigravity with Gemini
DeltaFile
+151-0utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
+126-0utils/bazel/llvm-project-overlay/compiler-rt/compiler-rt.bzl
+277-02 files

LLVM/project 533078d — utils/bazel/llvm-project-overlay/libcxx libcxx_library.bzl BUILD.bazel, utils/bazel/llvm-project-overlay/libcxxabi BUILD.bazel

[bazel][libcxx][libcxxabi] Introduce basic sources and copts exporting for libcxx and libcxxabi (#234489)

This exports the source files directly so that they can be used to build
a libcxx runtime library on demand. It also differentiates between
normal sources and textual sources in necessary places.

It also exports `.in` template files along with the source and headers.

And lastly, it exports `copts` to use when building both libcxx and
libcxxabi.

Assisted-by: Antigravity with Gemini
DeltaFile
+139-0utils/bazel/llvm-project-overlay/libcxx/BUILD.bazel
+40-0utils/bazel/llvm-project-overlay/libcxxabi/BUILD.bazel
+37-0utils/bazel/llvm-project-overlay/libcxx/libcxx_library.bzl
+216-03 files

LLVM/project 93286dd — llvm/lib/Target/AArch64 AArch64Combine.td, llvm/test/CodeGen/AArch64 combine-sdiv.ll rem-by-const.ll

[AArch64][GlobalISel] Run shift_immed_chain in the post-legalizer combiner (#234727)

The legalizer can create chains of shifts by constants that the
pre-legalizer combiner never sees. Adding `shift_immed_chain` to the
post-legalizer combiner merges them.

```llvm
define i16 @test(i16 %a) {
  %r = sdiv i16 %a, 7
  ret i16 %r
}
```

Before (7 instructions):
```
sxth w8, w0
mov  w9, #18725
mul  w8, w8, w9
asr  w8, w8, #16

    [18 lines not shown]
DeltaFile
+5-10llvm/test/CodeGen/AArch64/rem-by-const.ll
+3-6llvm/test/CodeGen/AArch64/combine-sdiv.ll
+1-1llvm/lib/Target/AArch64/AArch64Combine.td
+9-173 files

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