[flang][cuda] Defer on_device() folding in host copies of OpenACC routines (#208125)
Add a `defer-acc-routines` option to `cuf-function-rewrite`. When set,
`on_device()` is not folded in the host copy of an OpenACC routine (has
`acc.routine_info`, not in a `gpu.module`), because that body is later
cloned into the device routine and would otherwise bake in the host
value (`.false.`). A later run folds each copy in its own context. Calls
already in a `gpu.module` are still folded.
BPF: Remove unnecessary isReg check on phi operand (#208243)
These must be a register. This pass has quite a lot of
defensive code against invalid MIR that should be deleted.
[mlir][linalg] Fix mask rank for masked contiguous `tensor.extract` (#206207)
### Summary
Note: This fix was made mostly by Claude based on a failure case in
IREE. It addresses issue
https://github.com/llvm/llvm-project/issues/206209
When `vectorizeTensorExtract` lowers a `tensor.extract` recognized as a
*contiguous load*, it builds a `vector.transfer_read` whose permutation
map broadcasts the leading iteration dims and only reads the trailing
`min(dstRank, srcRank)` dims of the source. Until now this read was
returned unmasked and masked later by the generic path, which applies a
**full iteration-space identity mask**. When the source rank is smaller
than the loop nest, that mask is over-ranked relative to the
(rank-reduced) read — e.g. a `vector<1x4xi1>` mask on a read whose
inferred mask type is `vector<4xi1>` — and the op fails verification:
```
[65 lines not shown]
[offload][OpenMP] Improve cross-team reduction grid selection
The default cross-team reduction algorithm benefits from larger and
fewer teams. Implement that by using 2 x the default number of threads
and 1/2 x the default number of teams for reduction kernels. This
doesn't change the default total number of threads, it just
redistributes them.
This is a first, rather simple heuristic, derived from (a subset of)
what AOMP does.
The performance benefits I observed for the reduction tests in
https://github.com/ro-i/xteam-test on a gfx942
(c71339705091500f731e2a39f247d2660bacbdce) are up to a few percent, with
no regressions.
Claude assisted with this patch.
[flang] add some missing stackrestore with -fstack-arrays (#208161)
In the StackArray pass that moves array temporaries from the heap to the
stack under -fstack-arrays, when visiting FreeMemOp to insert
stackrestore, the code was not unwrapping converts as done in other
parts of the code leading to the allocation conversion and stacksave
insertion to happen without the emission of the stackrestore.
Reuse the same utility as in the rest of the pass to get consistent
behavior and fix the memory leak.
bhyve: allow overriding snapshot socket directory
By default bhyve(8) creates a snapshot socket in
"/var/run/bhyve/" (BHYVE_RUN_DIR).
As this is a system directory not writable by users,
this does not work when bhyve(8) is being started
as a non-root user.
Address that by allowing to override this directory.
In bhyve(8) it is done by setting 'rundir' option
with '-o rundir=<path>'.
In bhyvectl(8) it is done with '--rundir=<path>'.
MFC after: 1 month
Reviewed by: bcr (manpages), bnovkov
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57494
carburetta: Update to 0.8.28
0.8.28 - 2026-01-11
- Will now emit #line so C/C++ compilation errors on generated code
will be located at the corresponding snippet code in the .cbrt input
file, where appropatiate. Use --nolinedir to disable.
- Can now emit a symbol_names[] table for all ordinal constants, this
can be useful when writing code that uses Carburetta's internal
structures more dynamically and you wish to emit debug information.
Only generated when --sym-names is specified.
- Instead of specifying a filename, you can now pass - (a dash) for
the filename and the grammar input will be read from stdin.
0.8.25 - 2025-04-14
- New 'visit' feature. When specifying either %visit or %visit_params
[87 lines not shown]
Add NIC pci_address slot validation
Override VMNICDelegate.validate_middleware() to enforce machine-topology slot
rules using pci_slot_error_for_machine(): PCIe machines (q35 / aarch64 virt)
require slot == 0 on point-to-point ports; i440fx PCI bridges reserve slot 0
for the SHPC controller so usable slots start at 1. Machine type is read from
the VM instance, which is already in hand at create/update time.
Add ISCSI_DISK device type to VM API and PCI slot conflict detection
Adds VMISCSIDiskDevice and VMISCSIDiskTarget to the v27 API model,
wires the ISCSI_DISK dtype through factory_utils, and calls
check_pci_slot_conflicts() from _validate_device() so PCI slot
collisions are caught at vm.device.create/update time rather than
failing silently at VM start.
games/ajbsp: Update to 1.05
* support UDMF maps, creating XGL3 nodes
* better ability to embed as a library
* lots of code improvements, require C++11 now
* a facility for source ports: XWA files