[RISCV] Fix crash when tryReduceVL tries to sink to the end of the basic block. (#194706)
tryReduceVL may need to move an instruction to make the VL dominate. If
there is no instruction after the VL instruction, getNextNode will
return a nullptr.
Rewrite the code to use iterators so we will get an end iterator
instead. Replace the call to MachineInstr::moveBefore with the
equivalent MachineBasicBlock::slice which works on iterators.
NAS-140855 / 27.0.0-BETA.1 / Make container uuid required on ContainerEntry (by sonicaj) (by bugclerk) (#18866)
This commit fixes a mypy strict-mode failure in container/nsenter.py
where container.uuid was being passed to
truenas_pylibvirt.nsexec.build_argv_for_shell which expects a
non-Optional str, while ContainerEntry declared uuid as UUIDv4String |
None. The optionality only ever made sense for the create input (the
server backfills uuid.uuid4() during validate() if the caller omits it),
but ContainerEntry doubles as the read/entry model returned by
get_instance/query, where uuid is always populated -- the database
column is NOT NULL, the validate() backfill runs on every create path,
and there is no direct datastore.create that bypasses validate. This was
confirmed against a live install where every container_container row has
a non-null uuid.
The fix mirrors the existing override pattern already used in
ContainerCreate for pool/image: tighten ContainerEntry.uuid to
UUIDv4String (required) and override it as UUIDv4String | None = None on
ContainerCreate so create callers can still omit it. The SQLAlchemy
[9 lines not shown]
NAS-140855 / 26.0.0-RC.1 / Make container uuid required on ContainerEntry (by sonicaj) (#18865)
This commit fixes a mypy strict-mode failure in container/nsenter.py
where container.uuid was being passed to
truenas_pylibvirt.nsexec.build_argv_for_shell which expects a
non-Optional str, while ContainerEntry declared uuid as UUIDv4String |
None. The optionality only ever made sense for the create input (the
server backfills uuid.uuid4() during validate() if the caller omits it),
but ContainerEntry doubles as the read/entry model returned by
get_instance/query, where uuid is always populated -- the database
column is NOT NULL, the validate() backfill runs on every create path,
and there is no direct datastore.create that bypasses validate. This was
confirmed against a live install where every container_container row has
a non-null uuid.
The fix mirrors the existing override pattern already used in
ContainerCreate for pool/image: tighten ContainerEntry.uuid to
UUIDv4String (required) and override it as UUIDv4String | None = None on
ContainerCreate so create callers can still omit it. The SQLAlchemy
[6 lines not shown]
[OpenMP][offload] Cross-team reductions with variable number of teams
This is the first patch in an upcoming series of patches that rework
OpenMP cross-team reductions.
This patch tries to be as minimal as possible and includes the following
changes:
1) Don't work through larger number of teams in chunks. Allocate a
suitable-sized global buffer for the team values and launch them all
at once. The last team that finishes uses a strided loop to reduce the
team values from the global buffer.
2) Inline the new functions to reduce register usage, get rid of spills,
and get rid of long switch-tables that codegen produced for the
indirect callbacks that are passed to the parallel/xteam reduction.*
The performance benefits in comparison to the previous state are often
up to 5x-10x. I did not observe any performance regressions. Can be
reproduced using my benchmark suite https://github.com/ro-i/xteam-test
(6854b7abc8848702b5a2d9ce2ea02849b5dc590b). Set compiler paths in
[14 lines not shown]
[flang][OpenMP] Remove deferredNonVariables_ from OmpStructureChecker, NFC
It was created to defer error messages about invalid argument types until
the end of the analysis of the construct. That is not necessary since
diagnostic messages are emitted in the order corresponding to their
location in the source, not the order they were generated.
Fix memcpy-operator= generation with restrict parameters. (#194906)
The below issue (and #63884) both report that we reject (and also
assert, because the memcpy failed) the memcpy we're generating for a
restrict field of a type with an implicit copy constructor.
First, we shouldn't be rejecting it this late, IF we wanted to reject it
(I contend we do not), we should do it at the same time we reject
const-members/make this a deleted operator. Second, of course we
shouldn't fail.
This patch NOW works by just having us skip the premature 'memcpy'
optimization here. In the end, the memcpy is generally skipped by
`CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr` in the example
(as this is a trivial type), but this reverts it to using a 'for' loop
for restrict, as it does for const, and volatile qualified values.
We perhaps might think about doing this for address-spaces/ptr-auth, but
at the moment, this fixes restrict version.
Fixes: #37979
NAS-140855 / 27.0.0-BETA.1 / Make container uuid required on ContainerEntry (#18855)
This commit fixes a mypy strict-mode failure in container/nsenter.py
where container.uuid was being passed to
truenas_pylibvirt.nsexec.build_argv_for_shell which expects a
non-Optional str, while ContainerEntry declared uuid as UUIDv4String |
None. The optionality only ever made sense for the create input (the
server backfills uuid.uuid4() during validate() if the caller omits it),
but ContainerEntry doubles as the read/entry model returned by
get_instance/query, where uuid is always populated -- the database
column is NOT NULL, the validate() backfill runs on every create path,
and there is no direct datastore.create that bypasses validate. This was
confirmed against a live install where every container_container row has
a non-null uuid.
The fix mirrors the existing override pattern already used in
ContainerCreate for pool/image: tighten ContainerEntry.uuid to
UUIDv4String (required) and override it as UUIDv4String | None = None on
ContainerCreate so create callers can still omit it. The SQLAlchemy
[2 lines not shown]
bhyve: add UNIX domain socket support to rfb
This commit adds support for a UNIX domain socket to bhyve's remote
framebuffer. It enables the use of the graphical console when the bhyve instance
is running in a jail with no networking, for instance. A VNC client running on
the host can then connect to the UNIX domain socket through the filesystem.
Signed-off-by: Quentin Thébault <quentin.thebault at defenso.fr>
Sponsored by: Defenso
Reviewed by: kevans, markj
MFC after: 2 weeks
(cherry picked from commit cbc6f7e941e42639a0314cd121b06493cce8e0e6)
[AArch64][GlobalISel] Use generic matchinfo. NFC (#195094)
This removes some of the simple AArch64 matchinfo's, using the generic
alternatives instead.