[AMDGPU] Carry the log expansion flags through its f32 round trip (#219724)
The f16 log and log10 expansion promotes to f32 and rounds back.
GlobalISel built that G_FPEXT and G_FPTRUNC pair with no flags at all,
where the SelectionDAG FP_EXTEND and FP_ROUND have always carried them,
so hand them the expansion's flags too.
interfaces: exclude VLAN devices from virtual queue #10810
They were handled properly in dhcp6c cases later on, but that
changed when they became visible to through the device hook.
[libc][CPP] Align span copy and conversion with std::span (#220619)
Bring cpp::span copy and converting operations in line with C++20
std::span ([span.overview], [span.cons]):
* Add defaulted copy assignment operator: C++20 std::span declares
constexpr span& operator=(const span&) noexcept = default; Providing an
explicit defaulted copy assignment operator matches std::span and avoids
-Wdeprecated-copy-with-dtor warnings in consuming code when
copy-assigning spans.
* Take const span<U>& in converting constructor and operator=: C++20
[span.cons] specifies converting construction from const span&.
Previously taking span<U>& prevented converting from const spans and
binding to rvalue temporaries (such as s = s.subspan(1)).
* Update span.h and span_test.cpp headers to standard LLVM style.
* Add unit tests for copy assignment, rvalue temporaries, and converting
[2 lines not shown]
[Matrix] Implement matrix support for the `max` and `min` intrinsics (#219537)
Closes #184511 and #184512.
This PR implements the matrix api for `max` and `min` in
`HLSLintrinsics.td`, adds matrix codegen tests, matrix sema tests, and
SPIRV matrix backend tests. DirectX matrix backend tests were not added
because no DirectX backend changes were made.
Assisted-by: Claude Opus 4.8
Remove dead `force_remove_ix_volumes` app delete option
## Problem
`app.delete` accepts `options.force_remove_ix_volumes`, validates it as a bool and documents it in the method docstring, but nothing reads it. It was live when introduced in 0c4381a2b4, where it picked which kwarg to hand to `zfs.dataset.delete` — `recursively_remove_dependents` when set, `recursive` otherwise. 9712dc3084 ("remove zfs.dataset.delete (replace w/ zfs.resource.destroy)") swapped that call for an unconditional `recursive=True, bypass=True` destroy and dropped the conditional along with it, leaving the flag accepted but inert. The capability it selected is gone too: `zfs.resource.destroy_impl` has no dependents-removal parameter, so there is nothing left to wire it back up to.
## Solution
Dropped the field from `AppDelete` in both v26_0_0 and v27_0_0 and removed the docstring paragraph describing it. `remove_ix_volumes` is unaffected — it is still the live gate on ix-volume deletion.
No version adapter is needed or possible here. `AppDelete` only ever appears nested in `AppDeleteArgs`, so the downgrade direction never sees it, and the older version dirs still declare the field, which is what lets the version adapter pop it for clients on v25.10.5 and below. Clients pinned to v26.0.0 that still pass the flag will now get a validation error rather than having it silently ignored, because legacy params are validated against their own version's model before adaptation runs — no `from_previous` can intercept that. 26.0.0 has not been tagged yet and the flag has done nothing since 9712dc3084, so this is worth making explicit instead of continuing to advertise a knob we cannot honour.
[flang][OpenMP] Implement modifier set and modifier group verification
Introduce modifier set and group definitions, and include that information
in clause descriptors.
Extend the verification of syntactic properties to handle sets and groups.
[flang][OpenMP] Replace modifier verification with a generic one
Implement verification of syntactic properties (i.e. required, unique,
exclusive, ultimate) in a generic way, agnostic of the kind of element
to which these properties are applied. The goal here is to reuse it
for verifying clause properties in the future.
Refactor the existing modifier verification code to use it. Modify
the previous implementation (OmpVerifyModifiers) to always succeed
to reduce the amount of necessary changes.
Split CSR profiles by certificate role
This commit adds changes to replace the two HTTPS CSR profiles with four role specific ones covering TLS server and TLS client use, in both RSA and EC. Both old profiles asked for SERVER_AUTH and CLIENT_AUTH together, which Google Trust Services now rejects outright with badCSR. Once you can no longer name both purposes in one request, a single shape stops serving both roles, since a certificate is only usable for the purposes its extended key usage names.
The server profiles now request SERVER_AUTH alone, which is what Google and the Chrome root programme want by 2027 and what relying parties like Apple expect to find on a TLS server certificate, and the client profiles request CLIENT_AUTH so mutual TLS against syslog, LDAP and KMIP has something usable. This also drops the RSA keyAgreement bit the baseline requirements forbid, makes the EKU non critical, and removes the dead lifetime key that certificate.create would have rejected. The catalogue is declared in v26 and v27 both, since v26 is the current version on the stable branch, so backporting means keeping the v26 hunk and omitting the v27 one; to_previous on v26 is what keeps older API clients on the profiles they already know.
[lldb] Improve error message when inline tests fail to launch (#220621)
Currently these tests fail much later with the following error when the
process fails to launch:
```
AssertionError: False is not true : inline test did not hit a single breakpoint
```
[Sparc][clang] implement `va_arg` in the clang frontend (#214981)
Fixes https://github.com/llvm/llvm-project/issues/214977
The LLVM `va_arg` is extremely broken on many targets (e.g.
https://github.com/llvm/llvm-project/issues/141361). Instead the
construct should be lowered in clang, which has more ABI information
available. Sparc64 already does this, this PR does the same for Sparc.
That does mean that each frontend has to replicate this logic,
unfortunate but fine.
The LLVM `va_arg` for sparc unconditionally reads arguments as direct.
That is inconsistent even with clang's own logic for passing arguments,
and diverges from GCC. Using the standard `emitVoidPtrVAArg` helper in
clang makes it much easier to handle this correctly.
For values of size 8 that are passed directly, codegen is a bit
suboptimal at the moment (see
https://github.com/llvm/llvm-project/issues/214594). That seems fine
though, and will probably be fixed soon.
[CIR] Stop marking byval arguments noalias
We were putting llvm.noalias on every byval argument. Classic adds it only
under -fpass-by-value-is-noalias, which defaults off, and that option isn't
plumbed into CIR at all, so the right thing is to not emit it. llvm.noundef
stays, since classic does emit that.
Most of the test churn is collapsing LLVM-CIR / LLVM-OGCG prefix pairs that
existed only to record the divergence.
Assisted-by: Cursor / claude-opus-5
[lldb][NFC] CMake - Organize LLDB header rewriting targets (#213437)
Without an explicit folder 40+ targets end up in the root of the project
navigator in IDEs. Tested with Xcode.
[Flang] Interface vs explicit intrinsics priority (#215355)
Updated `ExpressionAnalyzer::ResolveGeneric` method to prioritize
internal interface definition over explicit intrinsic in symbol resolution.
`symbol34.f90` is also added to verify the changes made to the system.
The changed flang binary passes both check-flang and check-flang unit.
Fixes #212683
devstat: Fix a kernel stack disclosure
The 16-byte "device_name" field was not zero-filled, so could contain
uninitialized stack data. Zero the whole struct, as that's the
prevailing pattern for this kind of conversion code, and it's more
robust in the face of future revisions to struct devstat.
Reviewed by: olce, kib
Reported by: Reo Shiseki
Fixes: a11d132f6c62 ("devstat: Provide 32-bit compatibility")
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D59309
(cherry picked from commit 7cb1a76f88158fb690418336b736e66c238cd4f7)
[SystemZ][z/OS] Add -bcompress=yes when linking to reduce binary size (#220617)
This patch adds -bcompress=yes when linking on z/OS to reduce binary
size.
iflib: Require sustained demand for TX watchdog
The restored watchdog arms when the outstanding descriptor count
grows, but then continues counting based only on the queue remaining
frozen. A single growth sample can therefore leave a quiet, nearly
empty queue armed until the watchdog resets the interface. Lockless
sampling of the queue counters can also manufacture the initial growth
sample.
This matches watchdog reports from I354 queues with 979 or 980 of
1022 usable descriptors still available. Neither queue was under
transmit backpressure when the reset flapped its link.
Keep the watchdog armed only while the outstanding count continues
to grow, the software ring is stalled, or the hardware ring is at
iflib's backpressure threshold. The last condition preserves hang
detection with simple-TX, which bypasses the software ring. A busy hang
still reaches the verdict while a frozen but quiet tail disarms. Retain
the final driver completion peek so a missed completion interrupt
[14 lines not shown]
iflib: Require sustained demand for TX watchdog
The restored watchdog arms when the outstanding descriptor count
grows, but then continues counting based only on the queue remaining
frozen. A single growth sample can therefore leave a quiet, nearly
empty queue armed until the watchdog resets the interface. Lockless
sampling of the queue counters can also manufacture the initial growth
sample.
This matches watchdog reports from I354 queues with 979 or 980 of
1022 usable descriptors still available. Neither queue was under
transmit backpressure when the reset flapped its link.
Keep the watchdog armed only while the outstanding count continues
to grow, the software ring is stalled, or the hardware ring is at
iflib's backpressure threshold. The last condition preserves hang
detection with simple-TX, which bypasses the software ring. A busy hang
still reaches the verdict while a frozen but quiet tail disarms. Retain
the final driver completion peek so a missed completion interrupt
[14 lines not shown]
[mlir][math] Fold exp(a) / exp(b) into exp(a - b) (#220010)
Add ExpQuotientStrengthReduction to the Math algebraic simplification
patterns, rewriting `exp(a) / exp(b)` into `exp(a - b)` (and likewise
for `exp2`). This trades a division and an exponential for a
subtraction, and shows up in online-softmax kernels, where the
running-max correction term is computed as a quotient of two
exponentials.
The rewrite is not value-safe, so it is gated on `arcp` and `reassoc` on
the division: it is the fused form of the two steps LLVM's InstCombine
uses to reach the same result, `Z / exp(Y) --> Z * exp(-Y)` (needs
`arcp`) followed by `exp(X) * exp(Y) --> exp(X + Y)` (needs `reassoc`).
Besides rounding, it also changes the intermediate overflow behaviour:
for a large `a == b` the original expression is `inf / inf`, i.e. NaN,
while the folded one is `exp(0.0)`, i.e. 1.0.
Because a new exponential is created, the pattern additionally requires
that at least one of the two exponentials it feeds on dies with the
[16 lines not shown]
Strengthen metadirective loop tests
Close FileCheck gaps around loop-index declarations.
Add focused OpenMP 6.0 coverage for SIMD induction-variable
privatization, guarded copy-back, and the absence of implicit linear
lowering.
[NFCI] Update the directive pure-emitter to skip the switch if empty (#220255)
Since #212676, there has been a warning thanks to 'pure since' not being
on any of the OpenACC directives. This patch skips the switch and just
does a return if there are no pure directives.
www/freenginx-devel: update njs 1.0.0 -> 1.0.1
Bump PKGREVISION.
Sponsored by: tipi.work
<ChangeLog>
nginx modules:
*) Security: fixed an access control bypass in js_access when an
asynchronous request body continuation threw an exception or
produced an unhandled rejection. Previously, nginx could continue
processing the request as though the js_access check had succeeded.
Thanks to Ta Duc Thien.
*) Security: fixed a worker process crash when reading
Response.statusText after an upstream server returned a status
line with an empty reason phrase.
[46 lines not shown]