[RISCV] Disable shrink wrapping for SiFive CLIC and QCI handlers (#218347)
This commit disables shrink wrapping for SiFive CLIC and QCI handlers.
Closes #218344
Add the S3 bucket alert to the frozen applicability inventory
The alert applicability tests hold every declaration against a frozen
inventory, and S3BucketDatasetMissing was not in it. Regenerated with
ALERT_MATRIX_REGENERATE=1, which adds the class and listed rows for
that one declaration, applying on every population like the other
sharing alerts, and changes nothing else.
State the row defaults once, in the API model
The bucket and access key columns carried defaults that never fired.
Both create paths insert the whole row, the bucket from a dump of its
API entry and the key from an explicit dict, so the value that lands
is always the API model's, and the column's copy was a second place
for the same number to drift from. The columns now carry none.
The service's own config row is left alone. It is inserted empty by
the config service machinery rather than from the API model, and its
columns are filled from the model defaults and the migration's server
defaults instead.
[CodeGenPrepare] Failure to hoist bitcast to legal type causes register splitting (#207568)
FIX #179950
Extracted the core logic from CodeGenPrepare.cpp into a new optimizeBitCast function.
I have also included tests covering both legal and illegal types.
[RuntimeLibcalls] Add stack protector entries for AVR (#220597)
`__stack_chk_fail` used to be part of the default set of runtime libcall
impls. #148789 moved it out of that set and re-added it explicitly to
each target's `SystemRuntimeLibrary`, and #154930 did the same for the
`__stack_chk_guard` global. `AVRSystemLibrary` was not updated by
either, so both `RTLIB::STACKPROTECTOR_CHECK_FAIL` and
`RTLIB::STACK_CHECK_GUARD` are `RTLIB::Unsupported` on AVR.
Lowering a function with `sspreq` therefore fails twice: loading the
canary reports "unable to lower stackguard", and the failure path dies
in `TargetLowering::makeLibCall` with a `reportFatalInternalError`:
```
$ llc -mtriple=avr ssp.ll
error: unable to lower stackguard
LLVM ERROR: unsupported library call operation
```
[4 lines not shown]
NAS-143041 / 27.0.0-BETA.1 / Remove dead `force_remove_ix_volumes` app delete option (#19597)
## Problem
`app.delete` accepts `options.force_remove_ix_volumes`, validates it as
a bool and documents it in the method docstring, but nothing reads it.
It was live when introduced in 0c4381a2b4, where it picked which kwarg
to hand to `zfs.dataset.delete` — `recursively_remove_dependents` when
set, `recursive` otherwise. 9712dc3084 ("remove zfs.dataset.delete
(replace w/ zfs.resource.destroy)") swapped that call for an
unconditional `recursive=True, bypass=True` destroy and dropped the
conditional along with it, leaving the flag accepted but inert. The
capability it selected is gone too: `zfs.resource.destroy_impl` has no
dependents-removal parameter, so there is nothing left to wire it back
up to.
## Solution
Dropped the field from `AppDelete` in both v26_0_0 and v27_0_0 and
removed the docstring paragraph describing it. `remove_ix_volumes` is
unaffected — it is still the live gate on ix-volume deletion.
[4 lines not shown]
[X86] combineConcatVectorOps - add generic shift handling (#221055)
Limit this to cases where the shift value concatenates for free - the shift amount is often cheap, but the shift value isn't.
pw: use _PWDASH pseudo-fd for "-" in pw_checkfd
pw_checkfd() returned the character "-" (45) for the "-" argument,
which was ambiguous with a real file descriptor.
MFC After: 1 week
[AArch64] Support wide interleaved store combine (#217856)
After type legalization wider interleaved store gets spllitted into
legal chunk store, perform a dag combine to turn it into interleaved
store if chunked store is contiguous and result of vector_interleave.
Restore bare hardware entitlements on unlicensed iX appliances
This commit adds changes to write a minimal legacy license record during upgrade on iX appliance hardware that is neither a Mini nor HA-capable and carries no license at all, since those systems otherwise read as wholly unlicensed once the per-feature entitlement gates apply and lose capabilities the chassis was sold with.
The record is stamped with a marker in customer_key so legacy normalization can bind it to the bare TRUENAS_HW set rather than everything a real legacy license implies, and it carries an empty HA serial so the parsed type stays ENTERPRISE_SINGLE and failover.licensed remains false.
[LV] Add getMaxRuntimeElementCount helper (NFC). (#220397)
Add a getMaxRuntimeElementCount to compute ElementCount * max vscale. It computes
the value in uint64_t, to avoid overflow for very large vscale values.
Returns std::nullopt, if there's no max vscale value. Migrate 3 existing
users to use the shared helper.
PR: https://github.com/llvm/llvm-project/pull/220397
[CIR] Use the modern enum case classes
The `I32EnumAttrCase` family carries an `Attr` half, and an `IntegerAttr`
predicate with it, that a CIR enum has no use for now that the enums derive
from `EnumInfo`. Upstream says of those forms that they "are not needed when
using the newer `EnumCase` form".
Rename all 198 of them to `I32EnumCase`, `I32BitEnumCaseNone`,
`I32BitEnumCaseBit` and `BitEnumCaseGroup`. The group class drops its width
prefix because the modern spelling takes the width from its cases.
NFC, mechanical.
Serve a bucket dataset's snapshots as versions
Two bucket fields for the daemon's snapshot layer. snapshot_versions
is a list of patterns over the dataset's snapshot names, star and
question mark the only metacharacters, and every snapshot a pattern
selects serves each object's frozen state as a read-only version,
listed by ListObjectVersions and read by its id. snapshot_versions_max
is how many of the newest selected snapshots one listing consults,
64 by default, and bounds the listing alone.
Validation mirrors the daemon's refusals so a rendered file always
loads. A selection needs versioning ENABLED or SUSPENDED. A pattern
keeps to the ZFS name charset plus the two metacharacters, which
leaves the comma outside it and lets the list render comma separated,
carries no leading or trailing whitespace since the daemon would trim
it into a second spelling, and is listed once. The cap is at least
one. The pair renders only beside a selection, since the daemon reads
an empty selection as the layer off and the cap is inert without one.
Both hold to a restart, which the daemon says when asked.
[6 lines not shown]