x11/xconfig: Update to 3.7
Fixes offline NVIDIA driver installs from the XDrivers repo and
detects XLibre correctly when xconfig runs from rc.d at boot, so the
xlibre-nvidia-driver package is chosen instead of nvidia-driver.
Fix offline NVIDIA install and X server detection at boot
pkg add has no -r option, so installing from the XDrivers repo always
failed. Use pkg install -r XDrivers instead.
When started from rc.d, PATH lacks /usr/local, so Xorg was not found,
the X server was reported as unknown and the Xorg nvidia-driver was
installed instead of xlibre-nvidia-driver. Set a full PATH, and fall
back to checking the installed server package.
Ship NVIDIA EGL dependencies in the XDrivers repo
The 580 and newer NVIDIA drivers need egl-wayland2, which was missing
from the offline XDrivers repo, so offline installs failed and fell
back to the network. Match egl-wayland (which also catches
egl-wayland2) when building the repo, and drop egl-wayland from the
driver package list since it is now installed only with NVIDIA drivers.
[mlir][IntRange] Avoid division by zero for empty divisor ranges in divs (#234159)
inferSub can produce an empty range (smin > smax) when both nsw and nuw
saturate, e.g. for `arith.subi 0, 1 overflow<nsw, nuw>`, whose result is
poison. inferDivSRange only checked rhsMax.isNegative() to rule out a
zero divisor, so it then evaluated sdiv with rhsMin == 0 and asserted in
APInt::udiv. Treat an empty divisor range as unknown and return the max
range instead.
Fixes #231845
[clang][TableGen] Use PrintError so that errors are counted (#232299)
These backends reported errors by calling SrcMgr.PrintMessage directly,
which does not increment ErrorsPrinted, so clang-tblgen would print an
error but still exit with status 0 and write its output file.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
NAS-144925 / 28.0.0-BETA.1 / Reduce systemd and middleware work when mounting many datasets (#20021)
On every ZFS mount the `zfs.dataset.mounted` hook asked TrueSearch for
its indexed directories, which checks whether SMB and WebShare are
running. `get_service_state()` asked systemd with `LoadUnit`, and when a
service isn't running its unit usually isn't loaded, so systemd loaded
the unit and its dependencies only to free them again. Each free makes
systemd recompute the cgroup masks over all of `system.slice`, which
holds one mount unit per dataset. A pool import mounts every dataset in
a burst, so each mount costs more than the last, systemd stays busy long
after the import, and service starts queue behind it.
- `get_service_state()` and `get_unit_active_state()` now use `GetUnit`,
which doesn't load anything. A unit that isn't loaded isn't running, so
it's reported as inactive, which is what `LoadUnit` returned for it.
- The TrueSearch hook collects the mounted paths and checks them once, 1
second after the last mount. It also checks the search settings before
the service state, so systemd isn't asked anything when search is off,
which is the default. When a mount does need a TrueSearch reload, it
[25 lines not shown]
[offload][L0][NFC] Rename L0ContextTy to L0DriverTy (#236105)
The L0 plugin currently has two similarly named classes that serve
completely different purposes:
- `L0ContextTy`, which is misleadingly named as it holds per-driver
state,
- `LevelZeroPluginContextTy` which implements `PluginContextTy` and
actually owns an L0 context and related per-context state.
Rename `L0ContextTy` to `L0DriverTy`, and the containing source files to
L0Driver.h and L0Driver.cpp. Rename members and accessors accordingly
(e.g. `getL0Driver()`, `DriverList`).
Assisted-by: Claude Opus 5.5
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[LV] Support interleaving in order to reduce stalls (#197959)
On an in-order CPU the CPU will stall after a load if the value is used
immediately. Interleaving such that the combined reciprocal throughput
of all of the load instructions is equal to the load latency means we
will avoid this stall.
[mlir][scf] fix canonicalization of unsigned scf.for/scf.parallel loops (#235272)
- `constantTripCount` didn't check the signedness of `diff` before
checking whether it is negative, so it returned the trip count as 0 for
unsigned loops with "non-constant bound" - problem A according to the
issue
- update `constantTripCount` call to use `getUnsignedCmp` to check for
signedness and only merge loops with the same signedness in
`ParallelOpSingleOrZeroIterationDimsFolder` - problem B* according to
the issue
fixes #233223
claude helped me with the tests
[mlir][tensor] Fold extract after insert with dynamic indices (#235765)
Fold a `tensor.extract` from a `tensor.insert` at the same dynamic
indices to the inserted scalar:
```python
%t1 = tensor.insert %value into %tensor[%i] : tensor<8xf32>
%result = tensor.extract %t1[%i] : tensor<8xf32>
// %result can be replaced with %value.
```
The existing `foldExtractAfterInsert` helper checks matching indices,
but `ExtractOp::fold` returns early while collecting constant indices
when an index is dynamic. Call the helper before that check, leaving its
matching conditions unchanged. This eliminates redundant tensor
construction and extraction without adding a pass or dialect dependency.
Tests cover dynamic and mixed indices, dynamic shapes, nonmatching
indices, shared tensor uses, and repeated insertion.
[2 lines not shown]
[offload][omp] Remove data_fence interfaces (#226445)
Libomptarget uses now liboffload operations which are guaranteed to be in-order so there's no need for the data fences anymore.
Assisted by Claude.
[KnownBits] Use flipSignBit in smin and abds (NFC) (#235772)
Implement smin via umin with flipped sign bits, mirroring the smax
implementation. Previously this used its own implementation that did
both the sign flip and the One<->Zero flip at the same time. I don't
think we need to micro-optimize this.
Implement abds via abdu with flipped sign bits. Previously this did a
mix of flipping bits and copying the abdu implementation. Proof that we
can just delegate to abdu after flipping sign bits:
https://alive2.llvm.org/ce/z/WxJqYw
LLM assisted.
[ARM] Don't select hard-float fastcc for soft-float subtargets (#228394)
Since #221434, ARMBaseTargetMachine::createMachineFunctionInfo reports
"calling convention is hard-float, but floating-point registers are
unavailable" when useSoftFloat() is set and a function (or a call it
makes) has an effective calling convention of ARM_AAPCS_VFP.
getEffectiveCallingConv() still maps fastcc and cxx_fast_tlscc to
ARM_AAPCS_VFP whenever the subtarget has FP registers, without checking
useSoftFloat(). A +soft-float subtarget that still has FP registers,
such as Rust's armv7-unknown-linux-gnueabi target, therefore hits the
error as soon as GlobalOpt turns an internal function into fastcc (i.e.
at -O1 and above). The diagnostic is a false positive here: with
soft-float, FP arguments are softened to integers and passed in core
registers anyway.
Only pick ARM_AAPCS_VFP for fastcc/cxx_fast_tlscc when soft-float is not
in use. For soft-float targets without NEON, such as Rust's
armv7-unknown-linux-gnueabi, the generated code doesn't change; the only
[4 lines not shown]
[lldb-dap] Send a failed launch or attach response right away (#235861)
The DelayedResponseRequestHandler delays the launch or attach response
and sends it on 'configurationDone',
On a failed lauch or attach it still sends the InitializedEvent causing
the client to send a 'configurationDone' request.
Do not send the InitializedEvent when there is a lauch or attach request
fails. This will force the test/client to fail early because there is
not reason to configure as we have an invalid target.
Update the tests that relied on this pattern.
[Clang][OpenMP 6.0] Support positional arguments in `adjust_args` clause (#225081)
Extends the `adjust_args` to accept positional arguments as specified in
OpenMP 6.0 spec, in addition to the existing named-parameter form.This
PR adds parsing, Sema, AST, and serialization support for it.
[mlir][ArmSME][NFC] Include generated interface declarations outside of namespaces (#236106)
`ArmSMETileOpInterface` now specifies its `cppNamespace` in ODS, so the
generated `ArmSMEOpInterfaces.h.inc` declares it in the right namespace
by itself. This allows including the generated header at global scope
instead of from within namespace `mlir::arm_sme`.