TableGen: Share the xforms for FP immediate bits (#232492)
AArch64 and AMDGPU defined identical bitcast_fpimm_to_iN xforms, and
Hexagon defined an equivalent ftoi. Define them once in
TargetSelectionDAG.td.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[libc] Add <libintl.h> and textdomain stub (#232351)
POSIX.1-2024 standardises the <libintl.h> message translation
interfaces. Because LLVM-libc currently supports only the "C" locale,
message catalog functions can be satisfied with stateless stubs that do
not access the filesystem.
Added the <libintl.h> header generation specification and the textdomain
entrypoint behind LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS, returning
"messages" when querying or resetting the domain and returning the input
domain name otherwise.
Assisted-by: Automated tooling, human reviewed.
[RISCV][P-ext] Add scalar mulq(r) intrinsics (#232316)
Add the scalar "Q-format" Multiplication intrinsics:
https://github.com/riscv/riscv-p-spec/blob/master/P-ext-intrinsics.adoc#q-format-multiplication
- `__riscv_mulq_i32`
- `__riscv_mulqr_i32`
RV32 selects `mulq`/`mulqr` directly. RV64 has no scalar forms, so the
intrinsics use `pmulq.w`/`pmulqr.w` on the low words, the same way as
the scalar `aadd`/`asub` intrinsics (#230710).
[libc] Use a syscall wrapper for `sched_getscheduler` (#232597)
This PR move `sched_getscheduler` behind the centralized syscall
wrappers, following `libc/docs/dev/syscall_wrapper_refactor.md`.
NAS-144430 / 28.0.0-BETA.1 / Standardize zfs.resource.snapshot on the zfs.resource design (#20017)
## 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
[31 lines not shown]
[clang-repl] Add OffloadType enum and HIP device parser skeleton (#231391)
This PR adds an OffloadType enum (Detect, CUDA, HIP) and
Interpreter::createWithDevice(), so device setup can be chosen in one
place. createWithCUDA() now forwards to it, so CUDA behaviour and
existing callers are unchanged. Detect and the HIP binary generation
return "unsupported" errors for now.
It also adds the IncrementalHIPDeviceParser class. Its constructor
checks that the device target triple is an AMDGPU one.
GenerateOffloadBinary() is a stub that will be implemented later.
Assisted by Claude Sonnet 5.5
Revert "[SLP][NFC]Add extra bitpack tests, NFC" (#232593)
Reverts llvm/llvm-project#232554
Reverting as the patch broke the CI builders across the board. I see the
original owner is not available to address the failure so reverting to
turn ToT green.
Revert rev. 1.134 of uvm_vnode.c because it introduces a reference race
uo_refs is not really serialized by the vmobjlock and at least in
uvm_vnp_sync() it depends on the KERNEL_LOCK for that.
The optimisation done in 1.134 predates the rwlock rework done by dlg@
and is probably no longer important. The vmobjlock is still contended
but the wakeup storm resulting in massive KERNEL_LOCK spin is gone.
Reported by Acts1631
OK kettenis@ deraadt@
ktls: Fix capability checks in ktls_reset_receive_tag()
IFCAP2_RXTLS4 and IFCAP2_RXTLS6 are bit numbers, not masks, so
ktls_reset_receive_tag() tested if_capenable2 against 0 for IPv4 and against the
RXTLS4 bit for IPv6. An IPv4 connection with NIC receive TLS offload thus never
got a new receive tag after its packets moved to another interface, and fell
back to software decryption for good.
c721694 fixed the same checks in ktls_alloc_rcv_tag(); use IFCAP2_BIT() here
as well.
Fixes: fe8c78f ("ktls: Add full support for TLS RX offloading via network interface.")
Approved by: gallatin, kib
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D60757
ktls: Fix capability checks in ktls_reset_receive_tag()
IFCAP2_RXTLS4 and IFCAP2_RXTLS6 are bit numbers, not masks, so
ktls_reset_receive_tag() tested if_capenable2 against 0 for IPv4 and against the
RXTLS4 bit for IPv6. An IPv4 connection with NIC receive TLS offload thus never
got a new receive tag after its packets moved to another interface, and fell
back to software decryption for good.
c721694 fixed the same checks in ktls_alloc_rcv_tag(); use IFCAP2_BIT() here
as well.
Fixes: fe8c78f ("ktls: Add full support for TLS RX offloading via network interface.")
Approved by: gallatin, kib
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D60757
ktls: Take the receiving interface of each packet in sbappend_ktls_rx()
sbappend_ktls_rx() read the receiving interface of each packet header it
demotes from the chain's first mbuf, whose header it had zeroed on the first
pass. A chain of two packets or more thus had no interface, and a change of
input interface went unnoticed: the TLS receive tag stayed on the old interface
until a later append of one packet.
Read it from the packet being demoted, as the decrypted mark is.
Fixes: fe8c78f0d202 ("ktls: Add full support for TLS RX offloading via network interface.")
Approved by: gallatin
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D60758
ktls: Take the receiving interface of each packet in sbappend_ktls_rx()
sbappend_ktls_rx() read the receiving interface of each packet header it
demotes from the chain's first mbuf, whose header it had zeroed on the first
pass. A chain of two packets or more thus had no interface, and a change of
input interface went unnoticed: the TLS receive tag stayed on the old interface
until a later append of one packet.
Read it from the packet being demoted, as the decrypted mark is.
Fixes: fe8c78f0d202 ("ktls: Add full support for TLS RX offloading via network interface.")
Approved by: gallatin
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D60758