LLVM/project 8a0b352 — llvm/include/llvm/ExecutionEngine/Orc BindCallControllerHandlerSPS.h Core.h, llvm/lib/ExecutionEngine/Orc MachOPlatform.cpp Core.cpp

[ORC] Replace JIT-dispatch handlers with call-controller handlers (#228628)

This is the executor-to-controller counterpart to Proxy: where Proxy
provides a uniform way to call functions in the executor,
call-controller handlers provide a uniform way for the executor to call
handlers in the controller.

Handlers are now registered as CallControllerHandlerBindings, which
decouples ExecutionSession's handler registration from
SimplePackedSerialization. The new bindCallControllerHandlerSPS utility
makes it easy to introduce a new SPS handler with a one-liner, using
either a lambda:

  ES.registerCallControllerHandlers(
      JD, bindCallControllerHandlerSPS<int32_t(int32_t, int32_t)>(
              SymbolNameSpec::c("add_tag"),
              [](unique_function<void(int32_t)> Return,
                 int32_t X, int32_t Y) {
                Return(X + Y);

    [39 lines not shown]
DeltaFile
+137-7llvm/unittests/ExecutionEngine/Orc/ExecutionSessionWrapperFunctionCallsTest.cpp
+68-61llvm/include/llvm/ExecutionEngine/Orc/Core.h
+44-26llvm/lib/ExecutionEngine/Orc/Core.cpp
+60-0llvm/include/llvm/ExecutionEngine/Orc/BindCallControllerHandlerSPS.h
+10-12llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
+10-9llvm/unittests/ExecutionEngine/Orc/InProcessEPCTest.cpp
+329-1158 files not shown
+366-15214 files

LLVM/project adef76c — compiler-rt/lib/tsan/rtl tsan_rtl_thread.cpp tsan_mman.cpp, compiler-rt/test/tsan signal_abort_on_error.cpp

Convert to cherry-pick

Created using spr 1.3.7
DeltaFile
+33-18compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+0-41compiler-rt/test/tsan/signal_abort_on_error.cpp
+12-7compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+12-6compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+11-6compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
+11-6compiler-rt/lib/tsan/rtl/tsan_mman.cpp
+79-841 files not shown
+90-907 files

LLVM/project 2429718 — compiler-rt/lib/tsan/rtl tsan_rtl_thread.cpp tsan_mman.cpp, compiler-rt/test/tsan signal_abort_on_error.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+33-18compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+0-41compiler-rt/test/tsan/signal_abort_on_error.cpp
+12-7compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+12-6compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+11-6compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cpp
+11-6compiler-rt/lib/tsan/rtl/tsan_mman.cpp
+79-841 files not shown
+90-907 files

LLVM/project e935235 —

[Clang][HIP] Skip internalization for non-LTO device links (#225859)

A non-LTO HIP device link can combine native relocatable objects with
bitcode libraries. This can happen with both RDC and non-RDC
compilation. LLD must resolve undefined symbols in the native objects
with definitions from the bitcode.

The LTO step processing the bitcode cannot see references from native
objects. Internalizing non-kernel functions can therefore hide
definitions that those objects need. Do not enable AMDGPU
internalization for these mixed non-LTO links.

LTO mode does not have this problem. It links the bitcode modules before
internalization, so the references are visible when symbols are
resolved. Keep internalization for LTO links and when compiling non-RDC
main modules.
DeltaFile
+0-00 files

LLVM/project b84da7d — compiler-rt/lib/tsan/go tsan_go.cpp, compiler-rt/lib/tsan/rtl tsan_rtl_report.cpp tsan_rtl.h

Convert to cherry-pick

Created using spr 1.3.7
DeltaFile
+3-3compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+1-2compiler-rt/lib/tsan/go/tsan_go.cpp
+1-1compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+1-1compiler-rt/lib/tsan/rtl/tsan_rtl.h
+6-74 files

LLVM/project 194ce87 — clang/lib/Driver/ToolChains HIPAMD.cpp, clang/test/Driver hip-profile-rocm-runtime.hip

[Clang][HIP] Skip internalization for non-LTO device links (#225859)

A non-LTO HIP device link can combine native relocatable objects with
bitcode libraries. This can happen with both RDC and non-RDC
compilation. LLD must resolve undefined symbols in the native objects
with definitions from the bitcode.

The LTO step processing the bitcode cannot see references from native
objects. Internalizing non-kernel functions can therefore hide
definitions that those objects need. Do not enable AMDGPU
internalization for these mixed non-LTO links.

LTO mode does not have this problem. It links the bitcode modules before
internalization, so the references are visible when symbols are
resolved. Keep internalization for LTO links and when compiling non-RDC
main modules.
DeltaFile
+44-2clang/test/Driver/hip-profile-rocm-runtime.hip
+9-9clang/lib/Driver/ToolChains/HIPAMD.cpp
+53-112 files

LLVM/project 5db3655 — mlir/lib/Dialect/SCF/IR ValueBoundsOpInterfaceImpl.cpp, mlir/test/Dialect/SCF value-bounds-op-interface-impl.mlir

[mlir][scf] Fix scf.for value bounds for empty and unsigned loops (#226761)

Value bounds assumes that an `scf.for` result is `init + ceildiv(ub -
lb, step) * (yield - iter_arg)`. This is only true if the loop runs at
least once. When the loop does not run, `ceildiv(ub - lb, step)` is
negative instead of 0. For unsigned loops, `ub - lb` is computed as if
the bounds were signed, which also gives a wrong trip count. The
induction variable bounds of unsigned loops have the same signed
problem.

Example:
```mlir
%r = scf.for %iv = %c5 to %c2 step %c1 iter_args(%arg = %c7) -> index {
  %n = arith.addi %arg, %c1 : index
  scf.yield %n : index
}
%m = affine.min affine_map<(d0) -> (d0, 5)>(%r)
```
The loop does not run, so `%r` is 7 and `%m` should be 5. Value bounds

    [13 lines not shown]
DeltaFile
+54-0mlir/test/Dialect/SCF/value-bounds-op-interface-impl.mlir
+13-0mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
+67-02 files

LLVM/project 8aec779 — compiler-rt/lib/tsan/rtl tsan_rtl_mutex.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+3-1compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+3-11 files

LLVM/project 30b5164 — llvm/lib/Target/RISCV RISCVRedundantCopyElimination.cpp

[RISCV] Factor out LI/QC_LI matching in RISCVRedundantCopyElimination. NFC (#228610)

Assisted-by: Claude
DeltaFile
+23-26llvm/lib/Target/RISCV/RISCVRedundantCopyElimination.cpp
+23-261 files

LLVM/project c45612d — orc-rt/test/unit/bedrock/sps NativeDylibManagerSPSCITest.cpp

[orc-rt] Use the Error matchers in NativeDylibManagerSPSCITest (#228629)

Use the Error matchers introduced in 4c8a437d0487 to clean up error
checks in NativeDylibManagerSPSCITest.
DeltaFile
+62-24orc-rt/test/unit/bedrock/sps/NativeDylibManagerSPSCITest.cpp
+62-241 files

FreeBSD/ports 2208b88 — misc/zoneinfo Makefile distinfo

misc/zoneinfo: Update to 2026e

Changelog:      https://data.iana.org/time-zones/tzdb/NEWS
DeltaFile
+3-3misc/zoneinfo/distinfo
+1-1misc/zoneinfo/Makefile
+4-42 files

LLVM/project 758aa4a — llvm/lib/CodeGen MachineSink.cpp, llvm/test/CodeGen/X86 postra-machine-sink-eh-pad.mir

[CodeGen] Avoid sinking EH pad blocks (#224812)

EH pad blocks should not be sinkable since the control flow comes from
the unwinder instead of the predecessor.

This exclusion also matches the behavior of other sinkers.

Fixes #224802.
DeltaFile
+40-0llvm/test/CodeGen/X86/postra-machine-sink-eh-pad.mir
+1-1llvm/lib/CodeGen/MachineSink.cpp
+41-12 files

LLVM/project 30183cb — lldb/include/lldb/Target Process.h, lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.h ProcessGDBRemote.cpp

[lldb] Don't run code for CanJIT() while creating the ObjC runtime (#227555)

When libobjc lacks class_getMethodImplementation, the ObjC trampoline
handler calls CanJIT() to decide whether to warn. Without the _M
packet, CanJIT() allocated memory by calling mmap in the inferior.
Setting up that call unwinds the stack, which asks for the ObjC
runtime. The runtime isn't registered yet, so LLDB creates another one
and recurses until the stack overflows.

Ask the process plugin whether it can allocate memory instead of
trying it. ProcessGDBRemote probes the _M packet and otherwise checks
for an mmap symbol, neither of which runs code in the inferior.

rdar://188335027
DeltaFile
+106-0lldb/test/API/functionalities/gdb_remote_client/libobjc.A.dylib.yaml
+99-0lldb/test/API/functionalities/gdb_remote_client/TestObjCRuntimeNoInferiorCall.py
+3-21lldb/source/Target/Process.cpp
+21-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+4-0lldb/include/lldb/Target/Process.h
+2-0lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+235-211 files not shown
+236-217 files

NetBSD/src ZIGDFfU — tests/lib/libc/sys t_sigio.c

   t_sigio: Fix diagnostics in fillpipebuf for non-sockets.

   Can't getsockopt(SO_SNDLOWAT) if it's not a socket.
VersionDeltaFile
1.5+12-6tests/lib/libc/sys/t_sigio.c
+12-61 files

OpenBSD/src S17RePh — usr.bin/ssh servconf.c

   make StreamLocalBindMask properly first-match-wins; spotted
   while fixing bz4013
VersionDeltaFile
1.458+3-2usr.bin/ssh/servconf.c
+3-21 files

OpenBSD/src XU9VL1n — usr.bin/ssh readconf.c

   make StreamLocalBindMask properly respect Host/Match blocks
   and make it first-match-wins as documented. bz4013
VersionDeltaFile
1.418+4-2usr.bin/ssh/readconf.c
+4-21 files

LLVM/project 2590e4e — lldb/source/Plugins/DynamicLoader/FreeBSD-Kernel DynamicLoaderFreeBSDKernel.cpp, lldb/source/Plugins/Process/FreeBSD-Kernel-Core CMakeLists.txt ProcessFreeBSDKernelCore.cpp

[lldb][FreeBSDKernel] Find .debug files using pseudo sysroot (#224845)

Unlike userspace processes, it is common to obtain kernel dump from a
machine (e.g. QEMU) which different from the machine debugging the dump.
In this case users need to run `target symbols add foo.debug` for the
kernel and each kernel object, which becomes quite inconvenient when the
machine had dozens of kernel modules loaded during the dump.

This patch adds functionality to the dynamic loader so that it loads
symbol files automatically when kernel or kenrel modules are loaded. It
assumes a pseudo sysroot. When kernel is located at
`/foo/boot/kernel/kernel`, it will look for
`foo/usr/lib/debug/boot/kernel/kernel.debug` and same for kernel
modules. In this case, the only thing users need to do is copying the
dumped machine's `/usr/lib/debug/boot` relative to `/boot` that is being
debugged.

Assisted-by: GPT
DeltaFile
+65-0lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.cpp
+33-0lldb/source/Plugins/DynamicLoader/FreeBSD-Kernel/DynamicLoaderFreeBSDKernel.cpp
+2-0lldb/source/Plugins/Process/FreeBSD-Kernel-Core/CMakeLists.txt
+100-03 files

LLVM/project 82290a0 — llvm/test/tools/llvm-cas plugin-validation-crash.test plugin-validation.test, llvm/tools/libCASPluginTest libCASPluginTest.exports libCASPluginTest.cpp

[CASPlugin] Move CASPluginTest next to the CAS unit tests (#227546)

Set up the CAS test plugin like CGTestPlugin: move it from
llvm/tools/libCASPluginTest to llvm/unittests/CAS/CASPluginTest and
build it as CASPluginTest${LLVM_PLUGIN_EXT}, without the lib prefix or
a version, so its name is the same on all platforms. The lit tests now
find it via %llvmshlibdir/CASPluginTest%pluginext instead of a
configured LLVM_CAS_PLUGIN_TEST_PATH, and CASTests gets its path from
the build system through the CAS_PLUGIN_PATH definition.
DeltaFile
+0-887llvm/tools/libCASPluginTest/libCASPluginTest.cpp
+887-0llvm/unittests/CAS/CASPluginTest/CASPluginTest.cpp
+22-21llvm/test/tools/llvm-cas/plugin-validation.test
+0-37llvm/tools/libCASPluginTest/libCASPluginTest.exports
+37-0llvm/unittests/CAS/CASPluginTest/CASPluginTest.exports
+13-12llvm/test/tools/llvm-cas/plugin-validation-crash.test
+959-9577 files not shown
+991-1,01913 files

LLVM/project 9d79d55 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 masked-gather-stale-capture.ll

[SLP] Reset BatchAA after vectorizing a tree (#227833)
DeltaFile
+16-7llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+7-9llvm/test/Transforms/SLPVectorizer/X86/masked-gather-stale-capture.ll
+23-162 files

LLVM/project feb8b10 — llvm/lib/ObjCopy/MachO MachOObject.h MachOObjcopy.cpp, llvm/test/tools/llvm-objcopy/MachO indirect-symbol-table-copy.s discard-all-relocations.test

[llvm-objcopy][MachO] Fix use-after-free when stripping (#228607)

We must preserve symbols referenced by the indirect symbol table even
with strip all, and we must preserve symbols referenced by relocations
without strip all.

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

Assisted-by: codex
DeltaFile
+186-0llvm/test/tools/llvm-objcopy/MachO/discard-all-relocations.test
+21-0llvm/test/tools/llvm-objcopy/MachO/indirect-symbol-table-copy.s
+12-3llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp
+1-1llvm/lib/ObjCopy/MachO/MachOObject.h
+220-44 files

LLVM/project 6292b6e — lldb/source/Plugins/Platform/MacOSX PlatformRemoteAppleWatch.cpp PlatformRemoteAppleTV.cpp

[lldb] Search both visionOS and XROS DeviceSupport directories (#228573)

Xcode now downloads visionOS shared cache symbols into
~/Library/Developer/Xcode/visionOS DeviceSupport, but
PlatformRemoteAppleXR only looked in "XROS DeviceSupport". As a result,
LLDB never found the expanded shared cache for visionOS devices and
failed to resolve symbols like `memcpy`, which breaks expression
evaluation and loading images into the inferior.

This makes `GetDeviceSupportDirectoryName` return a list of directory
names (renamed to `GetDeviceSupportDirectoryNames`) and have
`PlatformDarwinDevice` search each of them. visionOS returns both the
current and the legacy name; all other platforms keep their single name
for now.

rdar://189049149

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+16-13lldb/source/Plugins/Platform/MacOSX/PlatformDarwinDevice.cpp
+5-2lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleXR.cpp
+3-2lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp
+3-2lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
+3-2lldb/source/Plugins/Platform/MacOSX/PlatformRemoteAppleBridge.cpp
+3-2lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
+33-2310 files not shown
+49-3516 files

LLVM/project 06fb2cb — clang/lib/CodeGen CGExprScalar.cpp, clang/test/OpenMP nvptx_target_teams_generic_loop_codegen.cpp target_map_section_inbounds.cpp

[OpenMP] Do not GEP 'inbounds' for multi-dimensional OpenMP device maps (#218436)

The C standard treats array subscripts as inbounds of the object, but
OpenMP section maps intentionally index from a host-relative base that
is not the mapped allocation. Drop inbounds on those GEPs so later
passes do not assume the slice lives inside the object.

---------

Co-authored-by: Alexey Bataev <a.bataev at gmx.com>
DeltaFile
+25-25clang/test/OpenMP/target_parallel_generic_loop_codegen-3.cpp
+25-25clang/test/OpenMP/target_parallel_for_debug_codegen.cpp
+25-25clang/test/OpenMP/target_parallel_debug_codegen.cpp
+23-7clang/lib/CodeGen/CGExprScalar.cpp
+22-0clang/test/OpenMP/target_map_section_inbounds.cpp
+6-6clang/test/OpenMP/nvptx_target_teams_generic_loop_codegen.cpp
+126-8810 files not shown
+158-12016 files

NetBSD/src Nzav2ia — sys/kern kern_ntptime.c

   ntp(9): Avoid more left shift of negative UB.

   This logic is, presumably, intended to compute integer arithmetic, so
   just write it as *16 instead of <<4.  If there's an advantage to
   using a machine shift instruction to get the same semantics, the
   compiler can do that for us.

   Also avoid arithmetic overflow.  If set a few lines above,
   time_monitor can lie anywhere in the interval [-MAXPHASE,MAXPHASE] =
   [-500e6,500e6].  Multiplying by sixteen can therefore overflow the
   bounds [-2.2e9,2.2e9] of long on LP32 platforms by a factor of four.
   But mtemp >= 256 here, so even if time_monitor*16 overflows the
   signed 32-bit range, the result (time_monitor*16)/mtemp will not.
   Hence: cast to int64_t for the intermediate computation of
   time_monitor*16.

   This isn't the end of the analysis: time_monitor can also be set in
   hardpps(9) to something else whose bounds aren't as clear to me, but
   that only applies under `options PPS_SYNC' which is usually not set.

    [4 lines not shown]
VersionDeltaFile
1.65+3-3sys/kern/kern_ntptime.c
+3-31 files

LLVM/project 7d5ecf5 — llvm/lib/Transforms/Vectorize VPlan.h

[VPlan] Remove NDEBUG and LLVM_ENABLE_DUMP guards around VPBlockBase::printOperand (#228326)

DominatorTreeBase::print calls the printOperand function of its NodeT
type unconditionally and the VPDominatorTree class is derrived from
DominatorTreeBase<VPBlockBase, false>.

This fixes the link with MSVC and LLVM_BUILD_LLVM_DYLIB_VIS=ON.
DeltaFile
+1-1llvm/lib/Transforms/Vectorize/VPlan.h
+1-11 files

HardenedBSD/src e509472 — contrib/netbsd-tests/lib/libc/gen t_assert.c, lib/libc/stdlib getenv.c

Merge remote-tracking branch 'rad/hardened/current/master' into hardened/current/pledge
DeltaFile
+6-20contrib/netbsd-tests/lib/libc/gen/t_assert.c
+7-0sys/kern/subr_witness.c
+1-1lib/libc/stdlib/getenv.c
+14-213 files

HardenedBSD/src fb3202e — contrib/netbsd-tests/lib/libc/gen t_assert.c, lib/libc/stdlib getenv.c

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+6-20contrib/netbsd-tests/lib/libc/gen/t_assert.c
+7-0sys/kern/subr_witness.c
+1-1lib/libc/stdlib/getenv.c
+14-213 files

HardenedBSD/ports e6aae5f — comms/chu/files patch-chu.c, misc/mcp-inspector distinfo.amd64 distinfo.aarch64

Merge branch 'freebsd/main' into hardenedbsd/main
DeltaFile
+1,320-1,320misc/mcp-inspector/distinfo.amd64
+1,320-1,320misc/mcp-inspector/distinfo.aarch64
+0-114sysutils/jdupes/files/patch-hashdb.c
+0-104comms/chu/files/patch-chu.c
+0-59sysutils/py-appjail-gui/files/appjail_gui.in
+40-18science/rdkit/files/patch-CMakeLists.txt
+2,680-2,935124 files not shown
+3,463-3,344130 files

LLVM/project 75a2bf4 — llvm/include/llvm/CodeGen SDPatternMatch.h, llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp

[SDPatternMatch] Add m_Node and m_SpecificOpc that take Opcode from template argument
DeltaFile
+12-12llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+10-10llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+9-9llvm/lib/Target/X86/X86ISelLowering.cpp
+14-0llvm/include/llvm/CodeGen/SDPatternMatch.h
+3-3llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+6-0llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
+54-346 files

LLVM/project 2d6d050 — libcxx/docs/Helpers ReleaseNotesTemplate.rst, libcxx/docs/ReleaseNotes 24.rst 23.rst

[libc++][docs] Use project-local links in release notes

Replace absolute libc++ homepage links with Sphinx document references in
release notes 20 through 24 and the release-note template.

I would leave these historical documents alone, but I have to fix these,
or the doc build will fail with warnings when I enable the absolute
self-link Sphinx doc build warning.

Validation: docs-libcxx-html, followed by a fresh Sphinx rebuild (-E), on
a merge of the three independent self-link fixes with the checker enabled
and warnings-as-errors disabled. No self-link warnings or new warning
messages compared with the audit baseline.

Part of #214861

Assisted-by: Codex
DeltaFile
+3-3libcxx/docs/ReleaseNotes/24.rst
+3-3libcxx/docs/ReleaseNotes/23.rst
+3-3libcxx/docs/ReleaseNotes/22.rst
+3-3libcxx/docs/ReleaseNotes/21.rst
+3-3libcxx/docs/ReleaseNotes/20.rst
+3-3libcxx/docs/Helpers/ReleaseNotesTemplate.rst
+18-186 files

LLVM/project 6dc0e52 — lldb/source/Host CMakeLists.txt, lldb/source/Host/linux PythonRuntimeLoaderLinux.cpp

[LLDB] Make PythonRuntimeLoader a posix platform library (#228598)

The symbol ForEachPythonRuntimeCandidate is required when python is
enabled on LLDB. However, it is only provided by Linux platform now.
Make such soure code be compiled under all Posix platform other than
Darwin or it causes link error.
DeltaFile
+38-0lldb/source/Host/posix/PythonRuntimeLoaderPosix.cpp
+0-37lldb/source/Host/linux/PythonRuntimeLoaderLinux.cpp
+7-5lldb/source/Host/CMakeLists.txt
+5-1llvm/utils/gn/secondary/lldb/source/Host/BUILD.gn
+50-434 files