[AArch64] Select [SU]ADDLP for a partial reduction into a zero accumulator (#217186)
A partial add reduction into a zero accumulator still materialises the
zero because [SU]ADALP needs something to add to. Select [SU]ADDLP
instead, which is the same pairwise widening add with no accumulator.
```llvm
%wide = zext <16 x i8> %a to <16 x i16>
%r = call <8 x i16> @llvm.vector.partial.reduce.add(<8 x i16> zeroinitializer, <16 x i16> %wide)
```
before:
```
movi v1.2d, #0000000000000000
uadalp v1.8h, v0.16b
mov v0.16b, v1.16b
```
[6 lines not shown]
[CodeGen] Represent ISD::ArgFlagsTy flags as a bitmask (NFC) (#217548)
ArgFlagsTy's individual bitfields cannot express whole-set queries, such
as checking that Pointer is the only flag set. Store them in a mask
similar to FastMathFlags and MachineMemOperand while preserving the
existing APIs.
Assisted-by: codex
[docs] Update docs for CMake `LLVM_LIT_TOOLS_DIR` to Git for Windows (#217003)
The GnuWin32 tools no longer support all the lit test use cases and the
requirements in `GettingStartedVS.md` were changed to Git for Windows in
2021. Update the docs for CMake `LLVM_LIT_TOOLS_DIR` to also use Git for
Windows.
devel/llvm-devel: add missing patch
This fixes a build failure due to __emutls_get_address not being
provided on FreeBSD. The next update will include this change.
Sponsored by: DARPA, AFRL
[RISCV] Support i64 accumulator for Zvdot4a8i partial reductions
In `Zvdot4a8i` extension, `vdot4a*` only produces an i32 result.
This PR extends partial-reduction handling so an i64 accumulator
with i8 inputs (a scale-8 partial reduction) is also lowered using
the dot-product instructions: perform the dot product into a fresh
i32 accumulator (each lane is the sum of four i8 products and cannot
overflow i32), reduce those i32 partial sums down to the accumulator's
element count while still in i32 (a sum of eight i8 products still
cannot overflow i32), and only then extend once to i64 and add to the
accumulator.
- `setPartialReduceMLAAction` marks the i8->i64 (scalable and
fixed-length) partial reductions Custom.
- `lowerPARTIAL_REDUCE_MLA` lowers the i64 case by doing the i32
`vdot4a*`, summing the i32 partial sums down to the accumulator's
element count with extract_subvector + add (still in i32), then
extending once to i64 and adding to the accumulator.
[10 lines not shown]
devel/py-keystone-engine: Update to 9.2.0
* Switch to the PEP517 build framework.
* Drop no longer required workarounds.
* Update WWW to to point to the upstream repository instead of the main
site, which is now used for other purposes.
Changelog:
https://github.com/keystone-engine/keystone/blob/0.9.2/ChangeLog
devel/py-keystone-engine: Drop workarounds
Alert when VMs or containers fail to autostart at boot
## Problem
A VM or container that fails to start during the boot autostart pass is swallowed into a single log line - no alert, no retry, nothing persisted. There is no alert class for VMs or containers anywhere in the tree, so the only signal is `/var/log/middlewared.log`. A user hit this with an autostart VM that failed to come up at boot and stayed down all day simply because nothing told them.
## Solution
- **Two aggregated one-shot alerts**, `VMAutostartFailedAlert` and `ContainerAutostartFailedAlert`, under a new `VIRTUALIZATION` alert category. Both use the `keys=[]` convention already used by the NFS/SMB/GPU aggregate alerts, so ten failed VMs produce one alert naming all ten rather than ten alerts.
- **Cleared at the start of every autostart pass and re-raised at the end** if anything failed, so the alert always describes the pass that just ran: a guest fixed between boots has its alert cleared, a still-broken one gets it re-raised. The clear is unconditional, so removing autostart from a broken guest also clears it.
- **The alert names the guests and points at the log for the why.** Error strings are deliberately kept out of the body - concatenating a few libvirt or validation errors produces something nobody can read. The reason is in the log instead, which is also why the two error logs here now pass `exc_info=True` like every one of their siblings, so the log has the full traceback rather than a bare `str(e)`.
Both HA failover entry points funnel into the same two functions, so they are covered without changes. The pool-unlock and pool-import autostart path swallows failures identically but is left alone for now - it needs per-path keys before it can share these alert classes, since `keys=[]` means a create from one path would wipe the other's alert.