[IR] Rename BasicBlock::getFirstNonPHIOrDbg* (NFC) (#232604)
This patch renames the functions in BasicBlock as follows because they
no longer check for debug intrinsics:
- getFirstNonPHIOrDbg -> getFirstNonPHIOrPseudoProbe
- getFirstNonPHIOrDbgOrLifetime -> getFirstNonPHIOrLifetime
- getFirstNonPHIOrDbgOrAlloca -> getFirstNonPHIOrAlloca
This patch also drops the SkipPseudoOp parameter from
getFirstNonPHIOrPseudoProbe and getFirstNonPHIOrLifetime because every
caller uses the default value of true.
Note that all three functions still return iterators with the head bit
unset so that insertions at the returned position are placed after any
DbgRecords attached to that instruction.
Assisted-by: Antigravity
[clang] Replace PointerUnion::dyn_cast with llvm::dyn_cast (NFC) (#232603)
PointerUnion::dyn_cast has been soft-deprecated in favor of
llvm::dyn_cast and llvm::dyn_cast_if_present. This patch replaces the
former with llvm::dyn_cast where the operand is guaranteed to be
nonnull.
Note that Origin::Ptr is always initialized to a nonnull pointer in
OriginManager::createNode and never modified afterward.
Assisted-by: Antigravity
[Hexagon] Optimize vcvt(v0.uh) and vcvt(v0.ub) to hf (#232460)
This patch shortens the sequences for V6_vcvt_hf_uh and V6_vcvt_hf_ub.
V6_vcvt_hf_uh now zero-extends to word, converts each half to sf, and
adds a bias constant to produce hf directly, instead of widening through
a zero vector and packing back down through h. V6_vcvt_hf_ub converts
its unpacked halfwords to hf directly, dropping the same
zero-extend/pack/shuffle round trip, since the unpacked halfwords are
already suitable h input.
Co-authored-by: Sumanth Gundapaneni <sgundapa at quicinc.com>
RuntimeLibcalls: Add the remaining vector libraries
Add definitions for Accelerate, Darwin_libsystem_m, LIBMVEC, MASSV and
SVML, and fill out SLEEFGNUABI, ArmPL and AMDLIBM to match VecFuncs.def.
The struct-returning ArmPL modf and sincos variants need new _STRET
libcalls.
With the new implementations available, type-split vector math calls
can now be expanded, and the vectorizer keeps pow as an intrinsic for
codegen to lower to the library call.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[mlir][NVVM][NFC] Predeclare `ModuleTranslation` to improve build times (#232727)
The NVVMDialect's LLVM IR export is currently layered such that it is
interwoven with the dialect implementation. For many ops, a
`getIntrinsicIDAndArgs` method implements the translation to LLVM IR and
requires the declaration of `mlir::LLVM::ModuleTranslation`. The header
for the latter is a rather heavy header that includes all of OpenMP
Dialect and more.
This PR makes NVVMDialect.h faster to parse by predeclaring
`mlir::LLVM::ModuleTranslation` rather than including its definition. In
a local build tested on a AMD Ryzen Threadripper PRO 5975WX this saved
aorund 2.4s of compile time per-file that includes NVVMDialect.h for a
total of 65.4s of CPU time saved.
I believe that ideally the LLVM IR translation should be moved to and
contained in NVVMToLLVMIRTranslation but is left as a future change
after these "easy" compile time changes have been applied.
net-p2p/go-ethereum: Security update 1.17.7 => 1.17.8
While here, add TESTING_UNSAFE.
Changelog:
* Fix DDoS issues found in the upcoming Glamsterdam fork
* Adaptation of RPC calls to support changes in Glamsterdam
* abigen uses sequential nonces when deploying dependencies of a contract
* Fix an unclean shutdown issue
https://github.com/ethereum/go-ethereum/releases/tag/v1.17.8
PR: 299443
Approved by: Enrique Fynn <me at enriquefynn.com> (maintainer)
Approved by: osa, vvd (Mentors, implicit)
MFH: 2026Q4
(cherry picked from commit 20d553344b4c8ae684452a787a2aa9b304668634)
RuntimeLibcalls: Generate vector library libcall sets
Replace the hand-written VectorLibrary switch with LibcallLibrary
definitions, enabled by the generated setAvailableLibraryLibcalls
function. This only covers the functions that were already handled;
future changes will fill in the cases still missing relative to
TargetLibraryInfo.
Libraries used by a SystemRuntimeLibrary are already enabled by
setTargetRuntimeLibcallSets, so only the remaining libraries can be
enabled by name. In the future I want to retire the
SystemRuntimeLibrary concept and reduce it to a list of libraries.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
net-p2p/go-ethereum: Security update 1.17.7 => 1.17.8
While here, add TESTING_UNSAFE.
Changelog:
* Fix DDoS issues found in the upcoming Glamsterdam fork
* Adaptation of RPC calls to support changes in Glamsterdam
* abigen uses sequential nonces when deploying dependencies of a contract
* Fix an unclean shutdown issue
https://github.com/ethereum/go-ethereum/releases/tag/v1.17.8
PR: 299443
Approved by: Enrique Fynn <me at enriquefynn.com> (maintainer)
Approved by: osa, vvd (Mentors, implicit)
MFH: 2026Q4
[CIR][OpenMP] Add initial support for distribute
This patch adds initial support for the OpenMP 'distribute' directive. Basic
code generation for the standalone and combined cases is introduced. Support
for clauses will be added in the future. The composite 'teams distribute
parallel for' form will be added in a subsequent patch.
Assisted-by: Cursor / Claude Sonnet 5 High
lang/rust: fix runtime on powerpc64le
Backport an LLVM fix for the loop vectorizer emitting invalid IR
for extractvalue of a widened sadd.with.overflow. On powerpc64le this
broke everything using libbz2-rs-sys (py-maturin, proton-pass-cli) with
"Cannot select: i64 = sign_extend v4i32".
[libc++] Provision a suitable CMake for CI builds
The previous commit raised cmake_minimum_required to 3.31. The GitHub
jobs already satisfy it (the Linux image pins 3.31.0, macOS uses brew,
Windows uses the hosted image), but some self-hosted Buildkite agents
ship an older CMake and their images cannot be updated by us.
Teach run-buildbot to check the CMake version up front. When the cmake
on PATH is new enough, this costs a single `cmake --version` and nothing
else changes. Otherwise, download a pinned, SHA-256 verified CMake
3.31.12 release binary into ${XDG_CACHE_HOME:-~/.cache}/libcxx (outside
the build directory that run-buildbot wipes) and, when no binary exists
for the host or it cannot run there, bootstrap it from source with the
host compilers rather than the runtime's CC/CXX. The install is
published with an atomic rename so concurrent builders on one agent
never see a partial cache entry.
An explicit CMAKE override is still honored but now validated; in the
provisioned or overridden cases its directory is prepended to PATH so
[5 lines not shown]
[mlir][x86] Support rank-reducing RHS reads in AMX online packing (#232279)
Allows AMX online packing to handle rank-reducing RHS reads.
For a rank-reducing read, the sizes miss the dropped leading unit dims,
which hit an assertion when creating the subview. The packing loads also
indexed the subview with the read's leading offsets twice.
Assisted-by: Claude
Mk/bsd.gecko.mk, lang/spidermonkey128: use RUST_LIB_BACKTRACE on powerpc64le
rust.mk only exports RUST_BACKTRACE, so RUST_LIB_BACKTRACE=0 from the
environment is enough and the per-port patches can go. spidermonkey128
is hit by the same cargo crash.
Mk/Uses/cargo.mk, lang/rust: keep RUST_BACKTRACE on powerpc64le
Only backtraces captured by libraries hit the libunwind bug, so disable
those with RUST_LIB_BACKTRACE and keep panic backtraces everywhere. The
fix is in releng/14.5, stable/15 and main.
net/389-ds-base: fix build on powerpc64le
cargo crashes on startup with rust 1.99 because of the libunwind bug
in 15.x. The Makefile hardcodes RUST_BACKTRACE=1, so turn off library
backtraces with RUST_LIB_BACKTRACE instead.
games/Doom64EX: switch to Doom64EX-Classic 2.6.14
The original Doom64EX has been unmaintained since 2022 and doesn't build
with CMake 4. Doom64EX-Classic is the GPL continuation of Doom64EX 2.5
by the Doom64EX-Plus author: it uses SDL3 and keeps supporting the IWAD
generated from the N64 ROM. WadGen is now built and installed as
doom64ex-wadgen.
Changelog: https://github.com/atsb/Doom64EX-Classic/releases/tag/2.6
PR: 299390
databases/clickhouse: enable on powerpc64le
The bundled OpenSSL ships POWER8 assembly pre-generated with the
big-endian "linux64v2" perlasm flavour, which gives wrong AES results
on little-endian. Regenerate it with "linux64le" before configuring.
Until rtld annotates the end of the stack on powerpc64, the bundled
libunwind crashes when it collects a backtrace on the main thread.
Drop its fallback to the link register, as the base libunwind does.