[DenseMap] Replace tombstone deletion with TAOCP 6.4 Algorithm R (#199615)
DenseMap uses quadratic probing with lazy deletion: an erased entry
becomes a tombstone, a third bucket state alongside empty and live that
every find/insert must inspect.
Switch to linear probing with backward-shift deletion (Knuth TAOCP 6.4
Algorithm R), similar to the SmallPtrSet change #197637. This removes
the tombstone state entirely.
In exchange, erase now relocates the following live entries to close the
hole, so it invalidates iterators and references other than the erased
one. For callers that cache pointers into the bucket array,
erase(Key, OnMoved) and erase(iterator, OnMoved) fire a callback once
per
shifted bucket, so fix-ups cost O(cluster) rather than O(NumEntries).
ValueHandleBase::RemoveFromUseList uses this to refresh each moved
handle's PrevPtr.
[13 lines not shown]
[RISCV] Use append TableGen feature in RISCVInstrInfoP.td. NFC (#200110)
I may go back and adjust some formatting in a follow up. I wanted to
keep the diff here focused on the Predicates changes.
[DirectX] Check DXContainer's header magic during parsing (#198586)
Check that header magic is 'DXBC' during parsing to avoid random data
being treated like a correct header.
NAS-141187 / 26.0.0-RC.1 / Fix intermittent HA failover stall in "Configuring system dataset" (by bmeagherix) (#19030)
When a node becomes MASTER with the sysdataset previously parked on
boot-pool (after a BACKUP transition), setup_impl takes the "Abandoning
... in favor of <data pool>" branch and enters release_system_dataset(),
which stops and restarts netdata/ truenas_zfstierd/nfs/open-vm-tools
around the umount+remount. The restart of netdata was hanging until the
dbus wait timed out (~95s), blocking vrrp_master.
The unit was actually starting in <1s - middleware just never saw the
JobRemoved signal. Root cause: call_unit_action_and_wait and
_stop_unit_and_wait_for_exit used jeepney's default size-1 filter queue.
jeepney silently drops overflow (asyncio.QueueFull -> pass), and the
receiver task dispatches batched JobRemoved signals without yielding -
so during a failover's signal burst the target signal is lost and the
wait times out.
Pass an unbounded asyncio.Queue() to router.filter() at both call sites.
[5 lines not shown]
[AMDGPU] Do not combine V_ASHRREV_I16* to make sdwa (#198491)
Do not combine V_ASHRREV_I16* instructions to form sdwa instructions.
These instructions zero-fill the high 16-bits.
---------
Signed-off-by: John Lu <John.Lu at amd.com>
[PowerPC] Optimize vec_splats of small FP values on Power8/9 (#199538)
Recognize small constant FP splats representable as integers and lower
them to vspltisw + xvcvsxwdp/xvcvsxwsp on Power8/9, avoiding constant
pool loads.
NAS-141177 / 27.0.0-BETA.1 / Fix `test_snapshot_task_run_disabled_task_raises` API test (#19017)
This test should have been changed to wait for the job return when it
was ported to v27 in #18996.
[lit] Refactor super() calls in ResultCode (#199891)
This PR simplifies the `super()` call in `ResultCode.__new__`
by migrating from the Python 2 style explicit arguments to the
standard Python 3 zero-argument syntax.
This PR is part of the "GSoC 2026: Improving lit" project.
Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
[DAGCombiner] Loop unfreeze step in visitFREEZE freezeOtherUses (#200120)
The first ReplaceAllUsesOfValueWith in visitFREEZE's freezeOtherUses
block can leave users of N behind: when the inner RAUW cascade
encounters a freeze user whose hash collides post-mutation, the
recursive merge prepends new freeze users to N's use-list that the outer
iterator deliberately skips (PR3018 invariant). Those leftover users
then collide with the self-cycle the next RAUW step creates, firing
"Node is not in map!" in RemoveNodeFromCSEMaps.
Wrap the unfreeze in a convergence loop so all such prepended users are
drained before the second RAUW. Each iteration strictly shrinks N's
use-set, bounded by the depth of the freeze chain.
Fixes #198094
[flang][OpenMP] Fix declare reduction accessibility in module scope (#197078)
Fix four interacting issues with OpenMP declare reduction accessibility
when reductions are declared in Fortran modules:
1. Accessibility propagation (resolve-names.cpp): Reduction symbols like
`op.+` had no linkage to the corresponding `operator(+)` accessibility.
`ApplyDefaultAccess()` now reverse-maps mangled names to their Fortran
identifiers and inherits operator/procedure accessibility.
2. USE-associated duplicate detection (resolve-names.cpp):
`FindSymbol()`
searched parent scopes and found USE-associated symbols, causing false
"Duplicate definition" errors. Changed to scope-local `FindInScope()`
with proper `UseDetails` handling that shadows USE symbols.
3. Module file serialization (mod-file.cpp): `PutUserReduction()` never
emitted accessibility, so PRIVATE was lost on module file round-trips.
Now emits `private::<identifier>` when no GenericDetails symbol already
[21 lines not shown]
[lit] Replace zip(range(len(x)), x) with enumerate(x) in ProgressBar (#199884)
Updated `ProgressBar.py` to replace four instances of
`zip(range(len(x)), x)` with `enumerate(x)`. The former is a legacy
Python 2 pattern, while `enumerate()` is the modern and efficient Python
3 idiom. This is a clean-up refactor that results in no behavioral
changes to the code.
This PR is part of the "GSoC 2026: Improving lit" project.
Signed-off-by: Prasoon Kumar <prasoonkumar054 at gmail.com>
Fix intermittent HA failover stall in "Configuring system dataset"
When a node becomes MASTER with the sysdataset previously parked on
boot-pool (after a BACKUP transition), setup_impl takes the
"Abandoning ... in favor of <data pool>" branch and enters
release_system_dataset(), which stops and restarts netdata/
truenas_zfstierd/nfs/open-vm-tools around the umount+remount. The
restart of netdata was hanging until the dbus wait timed out (~95s),
blocking vrrp_master.
The unit was actually starting in <1s - middleware just never saw
the JobRemoved signal. Root cause: call_unit_action_and_wait and
_stop_unit_and_wait_for_exit used jeepney's default size-1 filter
queue. jeepney silently drops overflow (asyncio.QueueFull -> pass),
and the receiver task dispatches batched JobRemoved signals without
yielding - so during a failover's signal burst the target signal is
lost and the wait times out.
Pass an unbounded asyncio.Queue() to router.filter() at both call
[3 lines not shown]
NAS-141187 / 27.0.0-BETA.1 / Fix intermittent HA failover stall in "Configuring system dataset" (#19029)
When a node becomes MASTER with the sysdataset previously parked on
boot-pool (after a BACKUP transition), setup_impl takes the "Abandoning
... in favor of <data pool>" branch and enters release_system_dataset(),
which stops and restarts netdata/ truenas_zfstierd/nfs/open-vm-tools
around the umount+remount. The restart of netdata was hanging until the
dbus wait timed out (~95s), blocking vrrp_master.
The unit was actually starting in <1s - middleware just never saw the
JobRemoved signal. Root cause: call_unit_action_and_wait and
_stop_unit_and_wait_for_exit used jeepney's default size-1 filter queue.
jeepney silently drops overflow (asyncio.QueueFull -> pass), and the
receiver task dispatches batched JobRemoved signals without yielding -
so during a failover's signal burst the target signal is lost and the
wait times out.
Pass an unbounded asyncio.Queue() to router.filter() at both call sites.
virtual_oss(8): Fix buffer overflow in voss_compressor() call
This particular calls swaps the samples and maxchan arguments, which can
cause a buffer overflow in p_ch_chain if maxchan exceeds its bounds
(VMAX_CHAN).
Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM-5.1 from Z.ai
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Reviewed by: emaste
Fix intermittent HA failover stall in "Configuring system dataset"
When a node becomes MASTER with the sysdataset previously parked on
boot-pool (after a BACKUP transition), setup_impl takes the
"Abandoning ... in favor of <data pool>" branch and enters
release_system_dataset(), which stops and restarts netdata/
truenas_zfstierd/nfs/open-vm-tools around the umount+remount. The
restart of netdata was hanging until the dbus wait timed out (~95s),
blocking vrrp_master.
The unit was actually starting in <1s — middleware just never saw
the JobRemoved signal. Root cause: call_unit_action_and_wait and
_stop_unit_and_wait_for_exit used jeepney's default size-1 filter
queue. jeepney silently drops overflow (asyncio.QueueFull → pass),
and the receiver task dispatches batched JobRemoved signals without
yielding — so during a failover's signal burst the target signal is
lost and the wait times out.
Pass an unbounded asyncio.Queue() to router.filter() at both call
sites.
usb: Add missing mtx lock and unlock in pushing dma queue
Accessing usb_xfer_queue requires bus lock, we added this missing lock
in here to prevent racing issue.
Reviewed by: adrian
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57293