[AMDGPU] Fix s_cselect scc clobber issue (#193498)
The frame index elimination e.g., for S_CSELECT_B32 (which reads SCC)
uses the SCC-preserving S_ADDC_U32+S_BITCMP1_B32+S_BITSET0_B32 sequence
instead of a plain S_ADD_I32, even when the regscavenger reports SCC as
unused due to its backward scan removing the SCC def from the live set.
Root cause: scavengeRegisterBackwards scans backward from MI and calls
LiveRegUnits::stepBackward() on each instruction. stepBackward removes
defs from the live set. When it processes the S_AND_B64 (which defines
SCC) immediately before S_CSELECT_B32, SCC is removed from LiveUnits.
This makes RS->isRegUsed(SCC) return false, so NeedSaveSCC was false
before the fix.
The fix adds MI->readsRegister(SCC) to the NeedSaveSCC condition so the
SCC-preserving ADDC+BITCMP1+BITSET0 sequence is always used when MI
reads SCC, regardless of what the regscavenger reports.
- commit message and the test are generated by claude
[flang] Ignore -fno-realloc-lhs for polymorphic allocatable LHS with warning (#192697)
When -fno-realloc-lhs is specified and the LHS of an assignment is a
polymorphic allocatable (class(*) or class(T)), reallocation semantics
are required by the Fortran 2003 standard for dynamic type tracking and
cannot be safely skipped. Previously, the compiler generated invalid FIR
in such cases (type mismatch between i32 and
!fir.class<!fir.heap<none>>), causing a compilation error.
With this change, when -fno-realloc-lhs is in effect and a polymorphic
allocatable LHS is detected, the compiler emits a warning that the
option is being ignored for that assignment and proceeds with
reallocation semantics.
[lit] Fix `progress-bar.py` flaky test
The `lit` progress-bar test was checking for exact progress-bar text
like `0.. 10.. 20.. 30.. 40..`, but that output is not stable from run
to run.
The progress bar is based on timing estimates, including saved timings
from earlier runs, so small timing differences can change which numbers
get printed.
That made the test flaky: FileCheck could match the wrong Testing: line
and then fail later, even though the actual test failures were correct.
Relax the test to verify ordering instead of exact progress-bar
contents. The updated checks assert that the test header is printed, that
each failing test result is separated by a Testing: progress-bar line,
and that the final failed-tests summary lists all expected tests in order.
This preserves coverage for the simple progress-bar path while removing
[3 lines not shown]
[Lit][NFC] Refactor shell environment functionality and in-process builtins from TestRunner.py into new modules (Reopened) (#177358)
This is a fresh PR for https://github.com/llvm/llvm-project/pull/176761,
reopening after my rebasing error.
Original description:
This is the first in a series of PRs reworking Lit's handling of
in-process builtins to be run as part of command pipelines, and to
enable users to provide new in-process builtins via Lit's configuration.
The full series of patches can be found here:
https://github.com/BStott6/llvm-project/tree/lit-inproc-builtins.
This work is required for the test daemonization project:
https://discourse.llvm.org/t//88612/9
This PR moves the shell environment functionality and existing
in-process builtins from TestRunner.py into new modules. This is
important not just for organizational purposes but also because,
[2 lines not shown]
[SPIR-V] Combine storage class bit with atomic memory semantics (#193696)
Per SPIR-V spec section 3.32 (Memory Semantics), atomic operations must
combine the ordering bits
(Acquire/Release/AcquireRelease/SequentiallyConsistent) with the
relevant storage class bit (UniformMemory, WorkgroupMemory,
CrossWorkgroupMemory, ...)
NAS-140416 / 27.0.0-BETA.1 / add truenas.license API (#18559)
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 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`).
---
Systems with an old-style license at `/data/license` continue to work
without any migration step.
**When the legacy path activates**: `truenas.license.info_private` first
[31 lines not shown]
NAS-140416 / 27.0.0-BETA.1 / add truenas.license API (#18559)
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 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`).
---
Systems with an old-style license at `/data/license` continue to work
without any migration step.
**When the legacy path activates**: `truenas.license.info_private` first
[31 lines not shown]
Services: Kea DHCPv4/v6: Remove depend constraint of ddns_reverse_zone (#10182)
Since ddns_forward_zone already depends on ddns_dns_server, and the config generator bails if either of these are empty we do not need to protect ddns_reverse_zone in any specific way right now.
It's a good idea to keep it this way, only populating a reverse zone is very uncommon, and ISC also tethered it to the forward zone being there.
(cherry picked from commit 4a1d6cf0851940f352f6d414240792c9f66be91a)
net/xfr: update to 0.9.10
v0.9.10
Fixed
TCP teardown no longer hangs under rate-limited paths (#54) — the v0.9.8 SO_LINGER=0 fix didn't take effect when the send loop was parked in stream.write().await under heavy backpressure (tc rate limiting, slow peers, MPTCP subflows filling). send_data and send_data_half now race the pending write() against cancel and deadline in a biased tokio::select!, so either signal breaks the loop and lets SO_LINGER=0 do its job. Confirmed by @matttbe against his MPTCP + tc reproducer.
TUI elapsed time stays live during data gaps (#62) — app.elapsed was only updated when the server's Interval progress message arrived. On lossy paths that starved the control channel, the elapsed counter could freeze for several seconds, creating the impression of a "stall" even though the TUI was still redrawing at 20 Hz. The loop now refreshes elapsed from the wall clock every iteration. Pause handling shifts start_time forward by the paused duration on resume, so the counter excludes paused time. Reported by @brettowe.
Infinite-duration (-t 0) TUI now shows a live elapsed counter — same fix covers this.
Added
Client/server version in the Configuration panel (#62) — the TUI now shows xfr/<client> ↔ <server> so cross-version test pairings are obvious at a glance.
Changed
TUI jitter line shows latest + smoothed together (#48 follow-up) — running display now reads Jitter: 0.02 ms (10s: 0.03 ms) so the instantaneous per-interval value and the 10-second rolling mean are side-by-side. Resolves the confusion where the rolling mean could stay above any single sample's value, making the live display look inconsistent with the final. Completed state still shows just the authoritative final.
Security
[29 lines not shown]