[AMDGPU][True16] Use vgpr32_lo16 for fcopysign and sext_inreg results (#233517)
The true16 fcopysign and DivergentSextInreg patterns produce an i16 from
V_BFI_B32_e64 / V_BFE_I32_e64, which define a 32-bit register. Wrap the
result in the vgpr32_lo16 OutPatFrag so the extracted low half is
anchored to a VGPR_32 instead of relying on type inference, and give the
f64 fcopysign source EXTRACT_SUBREG an explicit i32 type.
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
Add the WHOLE_DATASET layout to sharing.s3
Before: sharing.s3.create always created a new dataset. The S3 service
wrote s3data/ and .truenas_s3/ on it. There was no way to serve an
existing dataset over S3. Every share and every writing task on a
bucket's dataset was refused unless it was s3data read-only.
Now:
- SharingS3Entry has `layout`: BUCKET (the default, unchanged) or
WHOLE_DATASET. The field is create-only. The update model excludes
it. The v27_0_0 and v28_0_0 models both carry it, because the
change ships in 27.0 too.
- A new `layout` column stores it. The migration is bbce11d3cbd7
under 27.0, as it ships on 27.0. Master gets a merge migration
(9a4e61c0f2d7) that joins it to the 28.0 chain. Existing rows read
as BUCKET.
- A WHOLE_DATASET create uses the dataset named in `dataset`. Nothing
is created, set or written on that dataset. A failed create does not
[26 lines not shown]
cooledit: update to 5.0.6
Version 5.0.6
* Fixed broken Makefile.
Version 5.0.5
* Fix Linux static build on later distributions.
* Missing rxvt terminal escape sequence.
Version 5.0.4
* Fixed rxvt rendering stutter on slow X connections.
* OS/compiler compatibility fixes.
* Filetool extended attribute support for FreeBSD.
Version 5.0.3
* Update to latest unicode NotoSans fonts (✅)
* rxvt automatically reconnects to remotefs when your link goes down
so you don't have to login again.
* Regular-expression search moved to the Onigmo engine for full
[54 lines not shown]
sys: centralize SV_* flags definitions for several FreeBSD ABIs
The omitted ABI is compat32 on arm64, which lacks SV_ASLR.
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Add devel/ocaml-alcotest version 1.9.1.
Alcotest is an OCaml library for unit tests. Alcotest exposes simple
interface to perform unit tests. It exposes a simple TESTABLE module
type, a check function to assert test predicates and a run function to
perform a list of unit -> unit test callbacks.
[InstCombine] Fix ctlz/cttz xor folding for non-power-of-two widths (#233746)
The ctlz/cttz xor fold for power-of-two inputs relies on
k ^ (BW - 1) == BW - 1 - k, which only holds when BW is a
power of two. Require a power-of-two scalar bit width for
both directions.
Fixes #233232.
Assisted-by: Codex.
ssh: use defaultkey sentinel for ML-DSA-44 default host key
servconf_add_hostkey() compares its file argument to defaultkey by
pointer to skip an unreadable default key; the ML-DSA-44 entry passed
the "[default]" literal, so the skip (and the "No host key files found"
fallback) never applied to it.
MFC after: 1 week
Reviewed by: emaste
Fixes: bb5c77e9d281 ("OpenSSH: Update to 10.4p1")
Differential Revision: https://reviews.freebsd.org/D60922
wip/librewolf: update to librewolf-158.0-1
Upstream changes:
LibreWolf development has moved from codeberg.org to librewolf.dev.
Release notes:
LibreWolf bsys6 Release v158.0-1
* Upstream release, see the Firefox 158.0 Release Notes
Notable Changes:
* Fixed Start menu shortcut creation, which is needed to open new
windows from the taskbar when the app isn't pinned (Windows)
* Removed the JXL UI setting now that JXL is enabled by default
[246 lines not shown]
[SLP] Use costing to decide between Strided Loads and Compressed Loads (#226540)
For small vectors will small strides, the vectorized load can be
represented as either a stride or a masked compress. Rather than
preferentially choose compression, decide based on the relative costs.
[Clang][counted_by] Capture the field l-value instead of re-emitting the load
To share the pointer field's address with the -fsanitize=array-bounds
check, EmitArraySubscriptExpr emitted the field load itself instead of
going through EmitPointerWithAlignment and ScalarExprEmitter. That
duplicated the scalar member-load path by hand, and the copy missed
several things that path does: the 'align_value' assumption (fixed in
the previous commit), the member's debug location, and the
-fdebug-info-for-profiling pseudo variable for the struct base. So
enabling the sanitizer changed debug info and sample-profile
attribution, even for fields where no bounds check was emitted at all.
Instead, emit the base exactly as before, and have
ScalarExprEmitter::EmitLoadOfLValue record the l-value it loads from
when it matches an expression registered in the new
CodeGenFunction::CurLoadedLValueCapture. The bounds check then uses the
recorded field address. Since the base is emitted the same way with and
without the sanitizer, the load keeps everything the scalar path does.
This also covers a cast between the field load and the subscript (e.g.
[7 lines not shown]
[Clang][counted_by] Don't re-evaluate the base of a counted_by pointer access for -fsanitize=array-bounds
When indexing a 'counted_by' pointer field with -fsanitize=array-bounds,
EmitCountedByBoundsChecking was handed an invalid address and re-emitted
the field's l-value to locate the count. That re-evaluated the struct
base, duplicating its side-effects:
struct p { int count; int *buf __counted_by(count); };
struct p *q;
int f(int i) { return q++->buf[i]; } // 'q' incremented twice
int g(int i) { return get()->buf[i]; } // 'get' called twice
i.e. enabling the sanitizer changed the program's behavior.
When the subscript base is exactly the field load, emit the field's
l-value once, load the pointer from it (as the default case of
EmitPointerWithAlignment does, through EmitLoadOfLValue so that a
'__ptrauth'-qualified field is still authenticated), and pass the
field's address to the bounds check. When there's an intervening cast (e.g.
[6 lines not shown]
[Clang][counted_by] Keep the align_value assumption on the bounds-checked load
With -fsanitize=array-bounds, a subscript of a 'counted_by' pointer field
loads the pointer directly from the field's l-value, so that the bounds
check can reuse the field's address instead of re-evaluating the base.
That load bypassed ScalarExprEmitter, which is where the 'align_value'
assumption for a loaded l-value is emitted. Enabling array-bounds
therefore silently dropped the llvm.assume alignment bundle and, with
-fsanitize=alignment, the alignment-assumption check as well.
Move EmitLValueAlignmentAssumption from ScalarExprEmitter into
CodeGenFunction, so that the direct-load path can share it, and call it
on the loaded pointer.
Assisted-by: Claude Opus 5.5
devel/py-qcs-api-client-common: New port: Core QCS client functionality and middleware implementations
PR: 298446
Approved by: Baptiste Daroussin <bapt at FreeBSD.org> (on behalf of portmgr@)