[AMDGPU] Optimize DPP for fmin/fmax functions (#195282)
Summary:
These functions currently don't simplify in the optimistic (no-NaN) case
as their identity is not recognized by the optimizer. This PR simply
adds the -inf,+inf checks so these combine without the intermediate
moves.
Fix dynamic metadirective candidate selection
- Use one scored candidate path for static and dynamic metadirective variants.
- Dynamic user conditions are statically filtered and scored using their
non-user traits, then guarded at runtime with fir.if.
- Keeps construct/device/implementation traits enforced for dynamic
candidates and lets higher-scored static candidates beat lower-scored dynamic
candidates.
- Add regressions for construct mismatch, score ordering, and
implicit-nothing tie-breaking.
[clang-format] Fix nested parsing of AlignAfterOpenBracket (#192283)
When parsing AlignAfterOpenBracket a default backward compatibility
option is always used even if an inherited style option was set. Avoid
using the default setting unless one of the backward compatible enum
type options is found.
Fixes #183845
Fixes #190758
[flang][OpenMP] Support lowering of metadirective (part 2)
Lower non-constant user={condition(expr)} selectors in metadirectives
to a fir.if/else chain.
Only statically applicable when-clauses participate in dynamic
selection. Dynamic conditions are evaluated at runtime in declaration
order, with the best static match, an explicit otherwise/default
clause, or implicit nothing as the final fallback.
This patch is part of the feature work for #188820.
Assisted with copilot and GPT-5.4
[scudo] Add append overloads for integers and bool
This patch adds overloads for append to support directly appending s32,
s64, u32, u64, and bool values without requiring format strings. This
simplifies usage and avoids the overhead of parsing format strings for
simple type appends.
Avoid flushing unrelated NFS exports on snapshot unmount
zfsctl_snapshot_unmount() called exportfs_flush() before every umount
attempt to drop NFS export cache references that pin the snapshot
mountpoint. The flush has global effect on the host's NFS exports and
clients, so paying it on every snapshot unmount (including auto-expire
rounds for snapshots that were never NFS-accessed) impacts unrelated
snapshots and clients.
ZFS cannot invalidate individual export cache entries because the
relevant sunrpc cache APIs are exported GPL-only. Defer the global
flush so it runs only when the umount has actually failed, then retry
once. Snapshots that are not NFS-pinned succeed on the first attempt
and never trigger the flush.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Youzhong Yang <yyang at mathworks.com>
Signed-off-by: Ameer Hamza <ahamza at ixsystems.com>
Closes #18476
Fix rare cksum errors after rebuild
Currently, after rebuild (aka sequential resilver), checksum
errors can be seen sometimes on the spare vdev or draid spare.
On my laptop, it happens from 2 to 4 times of running
redundancy_draid_spare1 test in a loop for 100 times.
It looks like there's a race in vdev_rebuild_thread() when the
rebuild of space map ranges is finished and we re-enable
allocations from the metaslab too soon: a new allocations may
happen from that metaslab before txg with the rebuilt ranges is
sync-ed, causing undesirable interference.
Solution: wait for the txg to be sync-ed before enabling metaslab.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Akash B <akash-b at hpe.com>
Signed-off-by: Andriy Tkachuk <atkachuk at wasabi.com>
Closes #18307
Closes #18319
Closes #18473
[flang][OpenMP] Change NONTEMPORAL clause to contain OmpObjectList
NONTEMPORAL in source code takes a variable list, which is represented
in the AST as OmpObjectList.
clang: Stop using replace_extension when there's no extension
The offload case is building a fresh filepath and there's no file
extension to replace. Just directly append the file extension to avoid
clobbering part of the path name if the triple contains a period.
Avoids confusing test updates in future triple patch.
Fix off-by-one in PREVIOUSLY_REDACTED handler that drops last block
In send_reader_thread(), the PREVIOUSLY_REDACTED handler computed
file_max as MIN(dn->dn_maxblkid, range->end_blkid). dn_maxblkid is
an inclusive maximum block ID while range->end_blkid is exclusive (one
past the last block). The resulting file_max was then used as an
exclusive loop bound, causing the last block of any file (at index
dn_maxblkid) to be silently skipped when a PREVIOUSLY_REDACTED range
covered the end of the file.
The block was never written to the send stream so the receiver kept
zeros there. ZFS reported no error because the stream itself was
valid; the data was simply absent.
Fix: use dn_maxblkid + 1 so file_max is consistently exclusive.
Add a regression test (redacted_max_blkid.ksh) that modifies only the
last block of a file in one clone, creates a redaction bookmark from
it, then sends an unmodified clone incrementally from that bookmark.
[7 lines not shown]
Revert "[Clang] Emit LLVM flatten attribute instead of per-callsite alwaysinline (#188615)" (#195314)
Reverts #188615 due to #195236 — Linux kernel build with LTO hangs.
sysutils/beats*: fix build on armv7
The patch "patch-go-sysinfo" ports a Linux-only go module to FreeBSD.
Due to two oversights, the patch did not build on armv7. Fix the patch,
ensuring that all beats versions build on armv7 FreeBSD. A subtle bug
is addressed, too: the patch would previously convert from microseconds
to nanoseconds for time.Unix() by multiplying with time.Microsecond,
which is not the correct value. Multiply with 1000 instead.
Approved by: portmgr (build fix blanket)
MFH: 2026Q2
(cherry picked from commit 22c1284107218bffffc201881f84cb01ed33b141)
devel/cvs-devel: fix build on armv7
Same issue as was previously fixed in 36fcf661b for devel/blame.
A 64 bit time_t with a 32 bit long confuses the gnulib mktime.c
implementation. Apply the same upstream patch to fix the build.
Obtained from: 36fcf661ba23c96004395f6ee52cf2e6133b31f0
MFH: 2026Q2
Approved by: portmgr (build fix blanket)
(cherry picked from commit 978896a191d705a495efbaf98f3d8e1e47b68ef8)
archivers/archmerge: NEW PORT, replaces archivers/zipmix
Different compression programs result in different
compression ratios and compress different types of files
unequally.
Archmerge will take the best files from each archive and
create a new output file, which is guaranteed to be equal
to, or smaller in size than both of the input files. Archmerge
can also be used to perform boolean operations on archives,
such as merging 2 archives together, or updating a new file.
NOTE: in it's current incarnation. Archmerge only operates on
zip archives. Additional compression algorithms and techniques
will be added soon.
WWW: https://codeberg.org/BSDforge/archmerge
PR: 294920, 293749
devel/cvs-devel: fix build on armv7
Same issue as was previously fixed in 36fcf661b for devel/blame.
A 64 bit time_t with a 32 bit long confuses the gnulib mktime.c
implementation. Apply the same upstream patch to fix the build.
Obtained from: 36fcf661ba23c96004395f6ee52cf2e6133b31f0
MFH: 2026Q2
Approved by: portmgr (build fix blanket)
Linux 7.1: access dentry d_alias directly
The d_u union introduced in 3.18 is now anonymous, so we need to detect
it and decide the right way to name d_alias.
Note that we used to have support for both names to support kernels
before 3.18, so this commit is effectively reverting the commit that
removed that support, efc293e371.
Sponsored-by: TrueNAS
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18471
sysutils/beats*: fix build on armv7
The patch "patch-go-sysinfo" ports a Linux-only go module to FreeBSD.
Due to two oversights, the patch did not build on armv7. Fix the patch,
ensuring that all beats versions build on armv7 FreeBSD. A subtle bug
is addressed, too: the patch would previously convert from microseconds
to nanoseconds for time.Unix() by multiplying with time.Microsecond,
which is not the correct value. Multiply with 1000 instead.
Approved by: portmgr (build fix blanket)
MFH: 2026Q2
[AMDGPU][NFC] Update join/signal ordering in named barrier tests (#195316)
The ISA requires that you join a barrier before signaling it if you're
planning to wait on that barrier. Some IR-level tests have the join and
signal in the wrong order, confusing people.
This PR reorders join and signal.var in order to make correct usage more
obvious going forward.
AI: none