[mlir][vector] Expose vector linearize as transforms (#231412)
Adds vector linearize patterns as a transform op.
The transforms design follows existings tests which are also converted
to use transform schedules instead of dedicated test passes.
Assisted-by: Claude
snd_hda: use the pin ELD to select DisplayPort audio framing
hdaa_audio_setup() reads the converter widget's ELD when choosing
between HDMI and DisplayPort audio infoframes. ELD is stored on the
output pin, so the converter has no ELD and the driver selects HDMI
framing even when the connected display uses DisplayPort.
Read the ELD from the output pin to select the correct audio framing.
The equivalent change was tested on DragonFly BSD with an Intel Kaby
Lake display-audio codec and an LG HDR 4K monitor connected over
DisplayPort. Before the change, converter node 2 had no ELD, while
output pin 5 had an 83-byte ELD identifying DisplayPort. Captured driver
commands programmed HDMI audio infoframe bytes (84 01 0a 70 01 00 00
00). After applying the change and rebooting, the commands used the
existing DisplayPort form (84 1b 44 01 00 00 00), and console tones and
desktop audio were audible.
PR: 299094
[4 lines not shown]
snd_hda: use the pin ELD to select DisplayPort audio framing
hdaa_audio_setup() reads the converter widget's ELD when choosing
between HDMI and DisplayPort audio infoframes. ELD is stored on the
output pin, so the converter has no ELD and the driver selects HDMI
framing even when the connected display uses DisplayPort.
Read the ELD from the output pin to select the correct audio framing.
The equivalent change was tested on DragonFly BSD with an Intel Kaby
Lake display-audio codec and an LG HDR 4K monitor connected over
DisplayPort. Before the change, converter node 2 had no ELD, while
output pin 5 had an 83-byte ELD identifying DisplayPort. Captured driver
commands programmed HDMI audio infoframe bytes (84 01 0a 70 01 00 00
00). After applying the change and rebooting, the commands used the
existing DisplayPort form (84 1b 44 01 00 00 00), and console tones and
desktop audio were audible.
PR: 299094
[4 lines not shown]
[SCEV] Prove monotonic predicates from loop entry in isKnownViaInduction
Prove "IV pred Inv" on every iteration of a loop when Inv is
loop-invariant, the predicate holds on loop entry, and it can only change
from false to true as the loop iterates.
Before, the predicate also had to be proven on the backedge, which
usually fails when the loop exit only bounds the IV from above. E.g.
i >=s 0 for an nsw IV starting at s was not proven even when s >=s 0 was
known on entry. As a result, in a loop guarded by "start <u len",
IndVars could not compute a[i - 32] in i64.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[flang] simplify ieee_logb.f90 (NFC) (#229644)
This patch is to simplify the test to focus on lowering of the ieee_logb
intrinsic so that it can be tested with other targets. The test is also
enabled for the PPC target.
[SCEV][NFC] Factor getMonotonicPredicate out of getLoopInvariantPredicate
The next change needs the same setup as getLoopInvariantPredicate.
Move it into a private helper: put the loop-invariant operand on the
RHS, check that the other side is a recurrence of the loop, and compute
the predicate's monotonicity.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[SCEV][NFC] Use isKnownOnEveryIteration in isKnownViaInduction
isKnownViaInduction and isKnownOnEveryIteration both prove a predicate
on every iteration from loop entry and the backedge, so the next change
can extend one place.
Add a private isKnownOnEveryIteration overload that takes any LHS and
RHS and the loop, and move the entry/backedge check from
isKnownViaInduction into it. The public overload is unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
high availability: deduplicate configd actions for multiple service IDs
Multiple service IDs may use the same configd restart action, as is the
case for Kea. Avoid executing such actions more than once during HA sync.
Standardize zfs.resource.snapshot on the zfs.resource design
## Problem
`zfs.resource.snapshot` only partly followed the design `zfs.resource` settled on. It still exposed `query` instead of `list`, raised on missing paths, emitted no events, took clone properties as an untyped dict passed straight to libzfs (so user properties failed and internal-only properties like `mountpoint` were reachable through clone), had no `force` acknowledgement on rename, keyed most validation errors on the bare method name, and had several wrong descriptions. Separately, the ZFS history hook ran the whole dataset-delete path for every snapshot destroy, sending bogus `pool.dataset.query` REMOVED events and, on HA, syncing encryption keys to the standby once per destroyed snapshot. `pool.snapshot.update` silently did nothing.
## Solution
- **list**: added `zfs.resource.snapshot.list`; `query` stays as a hidden alias for pre-v28 clients and `query_impl` is now `list_impl`. list, query and count skip a named path that does not exist; a path vanishing mid-walk still raises. `holds` is hidden from v28 in favour of `list` with `get_holds`. `pool.dataset.snapshot_count` keeps its existing errors.
- **events**: new `zfs.resource.snapshot.list` collection (SNAPSHOT_READ). ADDED for every snapshot created or renamed through the API, CHANGED with the holds after hold/release, REMOVED for the old name on rename. Destroys are reported from the ZFS history hook, which now handles snapshot names first and returns, so CLI, retention, rollback and recursive destroys are all covered and the dataset-delete path no longer runs for snapshots. `pool.snapshot.query` REMOVED moves to the hook as well and no longer carries `extra.recursive`. Clone sends `zfs.resource.list` ADDED for the new dataset.
- **clone**: properties are typed with the set vocabulary less `volsize`, plus a separate `user_properties` that is passed through to libzfs. The stateless create/set rules apply (type validity, user property names/values, `special_small_blocks` and tiering, recordsize, dedup entitlement, acl defaults). `pool.snapshot.clone` keeps its flat `dataset_properties` shape but now rejects internal-only, unknown and wrongly typed properties.
- **rename**: zr snapshot rename requires `force` like dataset rename; v27 callers are adapted to `force=True` and `pool.snapshot.rename` behaves as before.
- **errors and docs**: validation errors are keyed on the offending field with an explicit errno, `pool.snapshot` re-keys them onto its own attributes, the mutating argument models are named `*ArgsData` as in `zfs.resource`, and the wrong descriptions, docstrings and audit text are fixed.
- **update**: `pool.snapshot.update` raises EOPNOTSUPP instead of returning nothing.
User properties on clone require a truenas_pylibzfs with `clone(user_properties=...)` support.
[flang][acc] Do not hoist loops into gang-redundant code of a parallel region
In a compute region from an acc.parallel construct, code outside of the
loops with gang-level worksharing is executed redundantly by all gangs.
A loop that LICM moved there from inside an scf.parallel could later be
distributed across gangs. When its result is used in the same kernel,
each gang then only computed part of it, giving wrong results.
Attach an OpenACC-aware fir::OperationMoveOpInterface model to
scf.parallel that does not allow moving loops out of it in a compute
region from an acc.parallel construct.
[lldb][NFC] Split up TestMultithreaded.py (#231856)
This splits the big and slow TestMultithreaded test into several smaller
tests. This allows running subtests in parallel.
It also makes it more obvious which of the subtests is flakey as the
test sometimes hangs on the bots without any output.
dashboard: ensure controller updates front-end state in case of a reset
This prevents the edge case of changing user permissions producing either
broken widgets or widgets that are missing.
dashboard: widget lifecycle cleanup
- Remove manual tick calls in onWidgetOptionsChanged case and centralize this to the manager
- When refreshing, cancel any outstanding refresh actions
- Only resolve option metadata once when opening a dialog
- Prevent a double graph data fetch for the HealthGraph during both onMarkupRendered() and the initial tick
- Remove direct tick/update calls from Certificates, DnsmasqLeases, KeaLeases, Gateways and ThermalSensors as the manager now takes care of this.