NAS-139599 / 26.0.0-BETA.1 / Auto-trigger migration of incus containers (#18244)
## Context
We already have migration logic in place which migrates incus based
containers to new implementation, however this has to be triggered
explicitly.
Changes have been made so now that this gets triggered automatically
when user upgrades the system. How this is done is that if user had a
virt pool set earlier and migrates, and middleware finds virt pool set -
it will initiate the migration of incus containers to new implementation
and then finally autostart containers which should be autostarted.
NAS-139904 / 26.0.0-BETA.1 / More etc-related code cleanups (#18259)
* Remove support for unused dirfd in write_if_changed().
* Ensure that etc.py usage of write_if_changed is using the `/etc/` as
the path for temporary files to avoid writing accidentally to paths like
`/etc/pam.d` where the application in question may inadvertently read /
use the temporary file.
* Remove f-strings from logger messages.
* Make the renderers dict immutable through a mapping proxy
[flang][OpenMP] Initial support for DEPTH clause (#182288)
The semantic checks do not check any conditions on the associated loop
nest (such as actual depth or whether it is a perfect nest). Lowering
will emit a not-implemented-yet message.
[CIR][AArch64] Add CIR tests for predicated SVE svdup_m builtins (#182307)
This PR adds CIR lowering tests for the predicated SVE `svdup` builtins
on AArch64. The corresponding ACLE intrinsics are documented at:
https://developer.arm.com/architectures/instruction-sets/intrinsics
The tests cover the merging-predicated variants (suffix `_m`, e.g.
`svdup_n_f32_m`). These forms take an explicit inactive-lane value,
which is merged into the result for lanes where the predicate is false.
No functional changes are introduced. The existing lowering
infrastructure already handles these builtins; this change adds
test coverage only.
AMDGPU: Implement expansion for f64 exp
I asked AI to port the device libs reference implementation.
It mostly worked, though it got the compares wrong and also
missed a fold that happened in compiler. With that fixed I get
identical DAG output, and almost the same globalisel output (differing
by an inverted compare and select). Also adjusted some stylistic choices.
[DirectX] Mark `dx.resource.getpointer` as convergent (#182099)
By marking `dx.resource.getpointer` as convergent, we are able to
prevent unwanted code transforms that make resource access look illegal.
Namely, this prevents the creation of a ptr into a resource handle to be
moved throughout control flow (eg in `SimplifyCFG`), further preventing
sink/hoist optimizations on the returned ptr during `InstCombine`.
Previously, these transforms were undone by the `phiNodeReplacement`
function in `dxil-resource-access`. However, in general, we would like
to follow a policy of preventing these transforms from occurring rather
than having to undo the work. This change is aligned with this.
This is a pre-requisite to resolving
https://github.com/llvm/llvm-project/issues/165288.
[LifetimeSafety] Overhaul CFG and analysis to also work with trivially destructed temporary objects (#177985)
Change summary:
Modification to CFG:
1. Added `CFGFullExprCleanup` which has a pointer to `BumpVector<const
MaterializeTemporaryExpr *>` to track all MTE that **might** (in the
sense that we take union on branches) be spawned by an
`ExprWithCleanups`
2. Modified logic in `CFGBuilder` to appropriately insert this marker.
It inserts the marker primarily via `CFGBuilder::VisitExprWithCleanups`,
and also `CFGBuilder::addInitializer` and `CFGBuilder::VisitDeclSubExpr`
as these bypass visiting the `ExprWithCleanups`. The bump vector is
allocated appropriately using the bump allocator of the CFG to respect
its lifetime rules.
3. Visiting to track the temporaries is done in
`CFGBuilder::VisitForTemporaries`. Behaviour is modulated via the
`BuildOpts` so as to enable tracking only when necessary. The
encountered non-lifetime extended MTE are stored in a small vector
[12 lines not shown]
More etc-related code cleanups
* Remove support for unused dirfd in write_if_changed().
* Ensure that etc.py usage of write_if_changed is using the `/etc/` as
the path for temporary files to avoid writing accidentally to paths
like `/etc/pam.d` where the application in question may inadvertently
read / use the temporary file.
* Remove f-strings from logger messages.
* Make the renderers dict immutable through a mapping proxy
gre tests: Fix gcc warnings on gre netlink tests
Avoid using `snl_add_msg_attr_ip` for now and directly use
`snl_add_msg_attr_ip4` to silence gcc warnings.
Fixes: e1e18cc12e68
Differential Revision: https://reviews.freebsd.org/D54443
libsys/arm: include ARM EABI unwind bits into libsys
libsys required ARM EABI unwind symbols like __aeabi_unwind_cpp_pr0.
These symbols are normally provided by libc, but if a binary does
not link libc, the symbol ends up not being resolved.
Among other problems, this prevented gcc14 and newer from building
on arm.
Add the relevant symbols as hidden symbols into libsys to avoid this
problem.
(this patch was posted by jrtc27 who has asked me to move it along)
PR: 292539
Tested by: fuz, Mark Millard <marklmi26-fbsd at yahoo.com>
Reviewed by: mmel
Approved by: markj (mentor)
MFC after: 1 week
[3 lines not shown]
libc/arm: use __builtin_trap() instead of abort() in aeabi_unwind stubs
This avoids a dependency on the abort symbol in libsys.
PR: 292539
Reviewed by: mmel
Approved by: markj (mentor)
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D55255
(cherry picked from commit 1782bc9a0a8da2d6aca31b7790981e1980c9e4b9)
[clang-tidy][NFC] Work around vfs bug in tests (#182529)
Work around #182526 after #176420 by renaming virtual file from main.cpp
(which sometimes collides with a file in our build tree) to cqc-main.cpp
(which is hopefully unique).
[DA] Add test for RDIV misses dependency due to "minor algebra" (NFC) (#179653)
The function `testRDIV` contains the following comments:
```
// With minor algebra, this test can also be used for things like
// [c1 + a1*i + a2*j][c2].
```
```
// we have 3 possible situations here:
// 1) [a*i + b] and [c*j + d]
// 2) [a*i + c*j + b] and [d]
// 3) [b] and [a*i + c*j + d]
// We need to find what we've got and get organized
```
In case `2)`, it moves `c*j` from `Src` to `Dst` and performs dependence
testing between `[a*i + b]` and `[-c*j + d]`. Similar algebraic
[2 lines not shown]
[flang-rt] Add sysroot to test (#182508)
This fixes the test on MacOS. Without this change the SDK sysroot is not
set and so the library path is incorrect and the 'System' library cannot
be found.
Test with https://github.com/llvm/llvm-project/pull/182501 so that the
sysroot variable is correctly set.
Assisted-by: Codex