[LoongArch] Add arithmetic instruction costs (#231094)
Provide latency and reciprocal-throughput costs for arithmetic, logical,
shift and FP operations on LA32/LA64 and LSX/LASX, measured on 3A6000
(LA664). Unhandled cases fall back to the base implementation.
VE: Use i32 registers for 32-bit loads in the SjLj dispatch block
Fix verifier errors in exception test. The call site index and the
PIC jump table offset were loaded with ldl.zx, which defines an i32
register, into vregs with the i64 register class.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
VE: Default to SjLj exception handling (#231645)
The clang driver selects SjLj exceptions for VE (96d4ccf00c8f), but the
triple defaulted to no exception model. Make SjLj the default for the
triple and MCAsmInfo so llc agrees with the driver.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
AMDGPU: Add vgpr32_lo16/vgpr32_hi16 OutPatFrags (NFC) (#231662)
Add OutPatFrags for extracting a 16-bit half of a value after copying
it to a VGPR_32, and use them for the existing open-coded instances.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[KnownFPClass] Propagate sign information through atan (#229902)
fixes #229529
- Preserve known negative/positive sign information for non-zero inputs.
- Preserve known `-0.0` information.
- Add Attributor tests for negative and positive non-zero inputs.
- Update the expected checks for the improved inference.
[alpha.webkit.UncountedLocalVarsChecker] Only skip the destructor of a null smart pointer temporary bound as const (#231715)
Previously, `TrivialFunctionAnalysis` skipped the destructor check of a
temporary owning smart pointer whenever it was constructed to hold
nullptr. That is correct when the temporary is bound to a const
reference, but a temporary materialized as non-const can be given a new
value before it is destructed, so its destructor may delete the object.
This caused a missing warning for any raw pointer/reference local
variable whose guardian was swapped into the temporary. This only skips
the destructor check when the null temporary is materialized through a
NoOp cast to const.
[AMDGPU][GlobalISel] Reject VGPR-to-SGPR copies from GIIgnoreCopies patterns
GCNPat now matches through COPY. Fail a pattern when constraining the
looked-through register would insert a VGPR or AGPR copy into an SGPR
class, and update the GlobalISel tests for the legal folds that remain.
Co-authored-by: Cursor <cursoragent at cursor.com>
[TableGen] Disable HwMode expansion in CodeGenDAGPatterns for InstrInfoEmitter. (#219054)
InstrInfoEmitter doesn't use the types and patterns so they don't need
to be expanded.
net/libnbd: New port: NBD client library in userspace
libnbd is a userspace client library for the Network Block Device (NBD)
protocol, which provides access to disk-like devices over a network.
It offers a stable C API with synchronous operations for blocking clients
and asynchronous operations for non-blocking, multithreaded clients.
The package includes shared and static libraries and the nbddump tool.
Optional components provide TLS, URI support, nbdcopy, nbdinfo, FUSE
integration, and Python bindings and tools.
WWW: https://gitlab.com/nbdkit/libnbd
Reviewed by: dtxdf, jrm
Approved by: dtxdf, jrm
Tested by: dtxdf
Differential Revision: https://reviews.freebsd.org/D60639
net/libnbd: New port: NBD client library in userspace
libnbd is a userspace client library for the Network Block Device (NBD)
protocol, which provides access to disk-like devices over a network.
It offers a stable C API with synchronous operations for blocking clients
and asynchronous operations for non-blocking, multithreaded clients.
The package includes shared and static libraries and the nbddump tool.
Optional components provide TLS, URI support, nbdcopy, nbdinfo, FUSE
integration, and Python bindings and tools.
WWW: https://gitlab.com/nbdkit/libnbd
Reviewed by: dtxdf, jrm
Approved by: dtxdf, jrm
Tested by: dtxdf
Differential Revision: https://reviews.freebsd.org/D60639
security/tailcat: New port: Like netcat, over Tailscale's data plane, no control plane
Tailcat is a remix of Tailscale open source pieces to act like
netcat, but over Tailscale's data plane, without Tailscale's control
plane. Tailscale's data plane (magicsock, internally) gives you
point-to-point WireGuard-encrypted tunnels between two machines
with DERP as the NAT-hole-punching communication side channel and
the ultimate relay-of-last-resort if NAT traversal fails. Instead
of using the Tailscale control plane, all tailcat connection metadata
is exchanged out of band, however you want.
WWW: https://tailscale.com/tailcat
security/tailcat: New port: Like netcat, over Tailscale's data plane, no control plane
Tailcat is a remix of Tailscale open source pieces to act like
netcat, but over Tailscale's data plane, without Tailscale's control
plane. Tailscale's data plane (magicsock, internally) gives you
point-to-point WireGuard-encrypted tunnels between two machines
with DERP as the NAT-hole-punching communication side channel and
the ultimate relay-of-last-resort if NAT traversal fails. Instead
of using the Tailscale control plane, all tailcat connection metadata
is exchanged out of band, however you want.
WWW: https://tailscale.com/tailcat
[Hexagon] Ignore debug uses in constant extender optimization (#231014)
The Hexagon constant-extender optimization pass currently includes debug
register uses when calculating offset ranges and when collecting uses
whose
offsets need updating.
This allows a DBG_VALUE instruction to change the generated ordinary
Machine
IR.
Use use_nodbg_operands() in both scans so debug-only uses do not affect
constant-extender optimization.
Added a regression test to verify the expected behavior.
Fixes #227926
---------
Co-authored-by: Sudharsan Veeravalli <svs at qti.qualcomm.com>