[AArch64] Skip adding BTI before PACI[AB]SPPC in AArch64BranchTargets (#236164)
PACI[AB]SPPC also has an implicit BTI instruction, so should be skipped
in addBTI similar to PACI[AB]SP.
AArch64BranchTargetsImpl is also extended to replace the signing
instruction with PACNBI[AB]SPPC, to prevent a bti instruction moving
to the middle of the prologue.
[clang][OpenMP] Fix crash on `linear(uval)` with a reference parameter (#237754)
Fixes #108166
`linear(uval(x))` crashed when `x` is a reference parameter. For `uval`,
Sema read the initial value from the reference's initializer instead of
the reference, and a parameter has none, so a null `Expr` reached
`DefaultLvalueConversion`. Even with an initializer this was wrong: a
defaulted `int &x = g` made the loop update `g`, and in a `parallel`
region or a lambda it could name an uncaptured variable.
Drop the shortcut in `ActOnOpenMPLinearClause` and
`FinishOpenMPLinearClause`, so a `uval` item is read from and written
back through the reference, like `val`. That is what the spec says for
loop constructs, where `uval` only adds the requirement that the item be
a reference, which is still checked.
AI Assisted!
[UpdateTestChecks] Handle lit's %if in update_cc_test_checks.py (#238255)
Handle run lines containing lit `%if`s by ignoring the condition and
unwrapping, similar to other update scripts.
[AMDGPU] Infer mul24 known bits with unknown operands
Do not stop GlobalISel known-bits analysis when a mul24 operand has no known bits. Truncating to 24 bits and extending to the result width can still establish useful product bounds through the shared helper added by #236738.
Cover both operand orders, ignored high bits, zero and overflow boundaries, and i64 results without limiting known bits to the i32 operand width.
[lldb-dap] Don't collect module statistics for the statistics event (#236413)
Use the stats options to build GetStatistics to avoid computing data
that lldb-dap drops.
[KnownBits] Cover negative multiplication boundaries
Exercise both operand orders and i8, i32, i65 and i128 results. Preserve cases where zero or signed and unsigned wraparound prevent leading-bit inference.
[OpenMP] Build the metadirective AST node for runtime selection. (#236432)
Follow-up to #192455 (Phase 3 of the agreed plan): with
`-fopenmp-metadirective-runtime-selection`, Sema now builds an
`OMPMetaDirective` holding every variant instead of returning the first
one.
**Known limitation**: the node has no associated statement, so
`-Wuninitialized` and `-Wunreachable-code` skip the variant bodies. This
is covered by `metadirective_runtime_flow_warnings.cpp` and will be
fixed in a follow-up.
[KnownBits] Improve multiplication bounds for negative operands
Bound products using operand magnitudes when both operands are negative or one is negative and the other is strictly positive. Retain unsigned overflow checks before inferring leading zeros or ones.
Cover both cases with AArch64 IR tests and update the affected AMDGPU SelectionDAG shift checks.
[Offload][Omp] Split plugin diagnostics into detection & messaging
The plugin interface tracks a allocations and kernels (when TrackAllocationTraces
and TrackNumKernelLaunches are enabled) to emit diagnostic messages.
These messages currently contain OpenMP specific data that needs to be carried
through the Plugin Interface.
This PR splits this support in two pieces: tracking and detection that is
kept inside the plugins, and reporting of the error which is done through
a handler set from libomptarget.
A new diagnostic handler type is added, and the API to associate it to a device
are added to liboffload.
This will allow to handle the OpenMP specific data fromb the libomptarget handler
and remove it from the Plugin Interface (not done in this PR).
[Offload][Omp] Allocate and free device memory through liboffload
Remove access to the PluginContext from libomptarget by providing two helpers
to allocate and free memory.
[Clang][CodeGen] Handle TLS variables for non-zero Global ASes (#238159)
For targets that use a non-default AS for globals we sometimes insert a cast to the default AS in order to compose with AS agnostic languages such as e.g. HIP. This breaks the invariants around TLS access via the `threadlocal.address` intrinsic, which expects its argument to be the global itself, and not an AS-cast. Currently the breakage is almost not observable as GPU targets, which would expose it, do not support TLS, however:
- `hipstdpar` directly triggers it;
- in the future the lack of TLS might be revisited.
Overall, the composition of a non-default Global AS and TLS should work. This PR tries to do that by unwrapping the AS-cast, passing the casted pointer into `CreateThreadLocalAddress` and then casting the result. An alternative solution I looked at, but which would seem to go against the intended use case of the intrinsic / interface, sinks the handling into `CreateThreadLocalAddres`'s implementation.
[CIR] Run SimplifyConstantLoad in the same driver as the other patterns
CIRSimplify ran SimplifyConstantLoad in a second greedy driver because the
pattern cached a DominanceInfo that the ternary and switch rewrites could
leave stale. Keeping the phases apart needed a second op list, pruned of
the loads the first phase erased, and it left simplifications behind: a
load inside a ternary branch only folds in the second phase, after the
ternary pattern has already rejected that branch as non-trivial.
Share one DominanceInfo between the pass and the pattern and keep it
coherent with a listener that drops a region's cached tree when its
blocks change or the region is erased. All patterns then run in one
driver over one worklist, and the driver itself handles erased loads.
Pass time is unchanged on real inputs and on an 8000-block stress
function (13 ms before and after). Computing dominance per match
instead would take 2.5 s there.
Assisted-by: Claude Code (claude-fable-5-1).
[Offload][Omp] Split plugin diagnostics into detection & messaging
The plugin interface tracks a allocations and kernels (when TrackAllocationTraces
and TrackNumKernelLaunches are enabled) to emit diagnostic messages.
These messages currently contain OpenMP specific data that needs to be carried
through the Plugin Interface.
This PR splits this support in two pieces: tracking and detection that is
kept inside the plugins, and reporting of the error which is done through
a handler set from libomptarget.
A new diagnostic handler type is added, and the API to associate it to a device
are added to liboffload.
This will allow to handle the OpenMP specific data fromb the libomptarget handler
and remove it from the Plugin Interface (not done in this PR).
wm/lefthk: update to 0.4.0
What's Changed
chore(release): bump to 0.4.0 by @mautamu in #48
Note: Patches 0.3.3 semver incompatibility with leftwm <=0.5.5.
news/brochure: update to 0.14.0
Keyboard link hints, a redesigned update popup, and safer full-article fetching.
Highlights
Press f to open links and images by keyboard
Press F to copy a link or image
Redesigned update popup with clearer release notes
PDF links no longer show garbage text
In-page links now open the article page
net/xfr: update to 0.14.0
v0.14.0
What's Changed
feat: client port from [client] port or a host:port target by @lance0 in #289
fix: QUIC clients give up on a silent server within seconds by @lance0 in #290
fix: one discover line per server, no wrong link-local zones by @lance0 in #292
fix: PSK mismatch wording, -n durations, zoneless link-local, push retry noise by @lance0 in #293
test: run the 64-stream TCP load test in its own binary by @lance0 in #294
fix: let UDP receivers drain reordered stragglers before finalizing loss by @lance0 in #291
feat: --config, XFR_CONFIG and /etc/xfr/config.toml by @lance0 in #295
fix: review follow-ups for QUIC keep-alive, discover link-locals and -n TCP_INFO by @lance0 in #296
docs: release prep for 0.14.0 by @lance0 in #297
test: avoid occupied ports and bound the legacy UDP fixture by @lance0 in #298
fix: preserve completed results after stdout closes by @lance0 in #299
fix: raise the QUIC idle timeout to 10 s by @lance0 in #300
v0.13.0
[18 lines not shown]
misc/rozi: update to 0.0.41
v0.0.41
Added
Hosts deliberately connected from Remote hosts or the Sessions sidebar reconnect on launch. Their tabs and last-seen sessions appear while SSH connects in the background, without SSH prompts or installation. Disconnecting or forgetting a host removes it from future launches. [remote] reconnect_on_launch controls this and defaults to true. A bare launch with startup = "last" resumes the most recently attached named session across workplaces only when the remote host is eligible and still lists that session. Otherwise Rozi opens the picker without contacting the host. (#299)
Workspace tabs preview their drop position while you drag them, before you release the mouse. (#301)
Changed
Host monitoring continues retrying transient transport failures, but stops retrying after authentication, host-key, missing SSH, or incompatible binary failures that need user action. (#297)
Fixed
Background workspace tabs highlight and pulse for unseen pane errors. Unseen blocked status also appears in the workbar's blocked marker. (#300)
Agent alerts for blocked, finished, and failed events are claimed once across local windows, avoiding duplicate alerts. Do Not Disturb is respected before a monitor claims an alert. (#298)
v0.0.40
Added
[18 lines not shown]