NAS-140416 / 27.0.0-BETA.1 / add truenas.license API (#18559)
## What this branch does
It introduces a new **`truenas.license`** API namespace, backed by a new
license daemon (`truenas_pylicensed`), while keeping backward
compatibility with old-format ("legacy") licenses already installed on
systems in the field.
---
## New license system (primary path)
New licenses are now PEM-wrapped files managed by a background daemon
(`truenas_pylicensed`). The file lives at
`/data/subsystems/truenas_license/license` (previously `/data/license`).
---
[37 lines not shown]
[lldb-server] Implement support for MultiBreakpoint packet
This is fairly straightforward, thanks to the helper functions created
in the previous commit.
https://github.com/llvm/llvm-project/pull/192910
[lldb-server][NFC] Factor out code handling breakpoint packets
This commit extracts the code handling breakpoint packets into a helper
function that can be used by a future implementation of the
MultiBreakpointPacket.
It is meant to be purely NFC.
There are two functions handling breakpoint packets (`handle_Z`
and `handle_z`) with a lot of repeated code. This commit did not attempt
to merge the two, as that would make the diff much larger due to subtle
differences in the error message produced by the two. The only
deduplication done is in the code processing a GDBStoppointType, where a
helper struct (`BreakpointKind`) and function (`std::optional<BreakpointKind> getBreakpointKind(GDBStoppointType stoppoint_type)`) was created.
https://github.com/llvm/llvm-project/pull/192910
[X86][GISel] lower GOT-relative G_GLOBAL_VALUEs (#181983)
During selection if we see a GOT-relative G_GLOBAL_VALUE, don't try to
fold it into an X86AddressMode (like we would with other modes of
accessing globals) because it needs a load from the GOT. Then select mov
for the G_GLOBAL_VALUE to do that load.
[AMDGPU] misched: avoid subregister dependencies (#140255)
There are some VOP3P instructions which operate on packed values
and can be configured (op_sel/op_sel_hi) to only use one of the values.
This patch adapts the scheduling dependencies so that a write to vgpr3,
for example, is not a data dependency for a read from vgpr2_vgpr3 in
case only vgpr2 is actually used.
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
[LangRef] Make volatile loads non-willreturn (#192992)
We currently define that volatile stores are not willreturn (i.e. they
may trap). However, volatile loads are willreturn.
I think that we should align these semantics to say that volatile
operations are always non-willreturn. There's two motivations for this:
* N3128 (part of C23) clarifies the intended meaning of "undefined
behavior" to not allow backwards propagation of UB across certain
observable side-effects, including all volatile operations. This only
made it into the standard as a non-normative note, so complying with
this is not *strictly* necessary for conformance. However, I don't think
there is a strong reason not to follow the recommendation.
* This gives a well-defined (if not very ergonomic) way to interact with
potentially trapping memory.
[mlir][memref][NVGPU] Move NVGPU ops to IndexedAccessOpInterface (#190430)
This removes the need for the memref dialect to know about nvgpu
operations (though we still haven't converted
ExtractAddressComputations to t new interface, so we can't remove the
dependency just yet).
ldmatrix is defined to access a 1-D region of memory in order to enable
folding in arbitrary expand_ and collpapse_shapes, as its underlying
lowering is jut a scalar getStridedElementPtr()
[mlir][IntegerRangeAnalysis] Don't unsoundly update constant lattice (#193546)
Fixes #119045
Integer range analysis tried to be clever and update the constant value
lattice when it inferred something to be a constant. However, this
caused correctness issues, because the integer range analysis can go
from "constant" to "not a constant" once more control edges are
analyzed, but the constant value lattice is used by dead code
elimination to skip branches ... including those that might prove that
the conditional for the branch isn't actually a constant.
Unlike in my ancient attempt at a fix, the solution is just to stop
trying to be clever.
This change required loading the constant propagation analysis in
-arith-unsigned-when-equivalent to keep tests working (which should have
been loaded anyway to make the dead code analysis work correctly).
No AI tools used.
[flang][OpenMP] Remove OmpEndLoopDirective from PFT (#193602)
It's no longer necessary. An end-directive for a loop construct used to
be a separate construct, but now it only exists as a member in
OpenMPLoopConstruct.
[NFC][LLVM] Simplify IIT encoding for scalable vectors (#191737)
Currently, scalable vectors are represented as an `IIT_SCALABLE_VEC`
token in the IIT info table, followed by a IIT encoding for the vector.
This requires remembering the last token seen when decoding the IIT
table and passing that into the recursive call to decode the vector.
Instead, change the representation to use:
```
IIT_V<Size>, IIT_SCALABLE_VEC (optional), Element Type
```
This allows decoding the scalable vector type without having to pass the
last token seen in `DecodeIITType` calls.
[lldb-server] Implement support for MultiBreakpoint packet
This is fairly straightforward, thanks to the helper functions created
in the previous commit.
https://github.com/llvm/llvm-project/pull/192910
[lldb-server][NFC] Factor out code handling breakpoint packets
This commit extracts the code handling breakpoint packets into a helper
function that can be used by a future implementation of the
MultiBreakpointPacket.
It is meant to be purely NFC.
There are two functions handling breakpoint packets (`handle_Z`
and `handle_z`) with a lot of repeated code. This commit did not attempt
to merge the two, as that would make the diff much larger due to subtle
differences in the error message produced by the two. The only
deduplication done is in the code processing a GDBStoppointType, where a
helper struct (`BreakpointKind`) and function (`std::optional<BreakpointKind> getBreakpointKind(GDBStoppointType stoppoint_type)`) was created.
https://github.com/llvm/llvm-project/pull/192910
[NFC][SPIR-V] Add urem, srem, and snegate tests for integer arithmetic (#193170)
Add test coverage for OpUMod, OpSRem, and OpISub (negate) for both
scalar and vector integer arithmetic