nd6: Fix the array size in union nd_opts
ND_OPT_ROUTE_INFO is 24, so an access of that index is technically out
of bounds, though note that the per-option struct has an entry for this
option. Fix the array size to appease -fsanitize=array-bounds.
Reviewed by: pouria, glebius
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D59392
CodeGen: Remove dead LiveVariables plumbing from MachineSink
MachineSink threaded a LiveVariables pointer through to
SplitCriticalEdge so the analysis would be updated. It never used
LiveVariables for any decision, and MachineSinking runs before
LiveVariables pass in every pipeline.
Co-authored-by: Claude (Claude-Opus-4.8)
dtrace/arm64: de-pessimize dtrace_copy
When DTrace catches a data abort exception it resumes execution on the
next instruction. If a probe executes copyinto from unmapped memory,
then dtrace_copy keeps faulting on successive bytes until the loop
counter is exhausted. Detect the situation by witnessing the absence
of zero-extension from an aborted unprivileged load.
Reviewed by: markj
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D59341
Change imsg handling for kroute change and delete imsg messages
Pass the imsg to kr_delete() and kr_change(). For kr_delete() a simple
imsg_get_data call can be used. In kr_change() it is a bit more complex
since the imsg is an array of struct kroute. So take the ibuf, validate
the len and pull the first value in kr_change.
Put the single OSPF route codepath into its own kr_change_one() function
and simplify kr_change_fib() since it now only does RTM_ADD.
kr_change_fib still uses ibuf_data internally since it needs to access the
array of kroutes over and over again.
Reads ok to tb@
NAS-141987 / 26.0.0 / Rework snapshot rollback with batched destroys (by Qubad786) (#19675)
## Problem
Rolling back past a snapshot that has a dependent clone crashed: the "no
safety check" path called a `destroy()` method that does not exist on
the pylibzfs dataset object, and the "newer clone" path skipped the
safety check and let the kernel refuse with a raw EEXIST after some
newer snapshots were already destroyed one at a time. With
`recursive_rollback`, a blocked child was only discovered after the
parent had already been rolled back, and every kernel error was
flattened into `ValidationError(EINVAL)` with a raw strerror.
## Solution
- **Enumerate once, up front, for the whole tree.** Newer snapshots are
collected for every affected dataset before anything is touched. Without
`recursive`, the rollback is refused with every conflicting snapshot
named; with it, holds and clones are checked first and the rollback is
refused before any destroy, naming each blocker. A missing child
snapshot fails the whole tree before the parent moves.
[14 lines not shown]
AMDGPU: Use LiveIntervals in SIOptimizeVGPRLiveRange when available
LiveVariables has been long deprecated. Use LiveIntervals if available.
With the current pass structure, this will use LiveVariables.
Co-authored-by: Claude (Claude-Opus-4.8)
NAS-143526 / 26.0.0 / Mock VM and container queries in bridge validation unit tests (#19677)
## Problem
The two bridge unit tests in `test_interface.py` fail with `KeyError:
'vm.query'`. BRIDGE validation now calls `nic_attach_users()` whenever
`bridge_members` is set, which queries VMs and containers to find NICs
attached directly to a member, but the mock middleware in those tests
only stubs `interface.query`, `datastore.query` and
`network.common.check_failover_disabled`.
## Solution
Stub `vm.query` and `container.query` with empty results in both tests,
so validation reaches the member checks the tests actually assert on.
AMDGPU: Remove deprecated getArchAttr and ArchFeatures TableGen (#222462)
Everything should now use getFeatureBitset*
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
[libFuzzer] Modify stop-file.test to support remote devices (#222012)
Currently this test fails when running on remote devices because the
'rm' command only removes the file from the host, and the second part of
the test expects the file to have been removed. This patch changes the later
run command to point to a non-existent file in order to work around this.
rdar://186683123
[AArch64][NEON] Fold insert(zero, extract(X, 0), 0) -> X when X is known to zero lanes 1-N (#213940)
Add patterns for NEON across-lane reductions whose scalar result
is inserted into lane zero of a zero vector.
This is valid because these instructions place their result in lane zero
and
clear the remaining lanes.
Limit this change to matching input and result vector types. Mixed
vector
sizes and scalar conversions are not part of this PR.
Handle llvm.vector.reduce.add.v2i64 separately because it lowers to
ADDP.
NEON has no equivalent instruction for v2i64 signed or unsigned min/max
reductions, so they cannot use this fold. Double-precision
floating-point
reductions are already handled by pairwise instruction patterns.
[SLP][modularisation][NFC] Move BoUpSLP class declaration to SLPTree.h
Move the BoUpSLP class declaration and its nested types out of
SLPVectorizer.cpp into SLPVectorizer/SLPTree.h. This is a pure relocation:
method definitions stay in SLPVectorizer.cpp, and the prerequisite changes
(de-inlining the cl::opt users; seeding SLPTree.h with ReductionVectorPart
and MinScheduleRegionSize) landed earlier in the stack.
The header is included after DEBUG_TYPE is defined because BoUpSLP inline
methods use LLVM_DEBUG. The DenseMapInfo/GraphTraits specializations remain
in SLPVectorizer.cpp.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
misc/py-litellm: Update to 1.100.1
While here, relax upper version limit of py-openai. Also, switch to
py-importlib-metadata to resolve runtime dependency conflict[1].
PR: 298345 [1]
Reported by: cedric <cedric at precidata.com> [1]