NAS-140335 / 27.0.0-BETA.1 / fix deadlock and resource leak in 3rd party module (#18483)
Cached D-Bus router for the SYSTEM bus.
Fixes upstream issues in jeepney's open_dbus_router:
1. `DBusRouter.__init__` eagerly fires a receiver task via
`asyncio.create_task` — we defer construction to first acquire.
2. `open_dbus_router.__aexit__` doesn't wrap `conn.close()` in
try/finally — a router teardown exception leaks the socket.
3. Every `open_dbus_router()` call opens a new connection + auth + Hello
handshake — we reuse a single connection.
4. Per-call routers produce orphaned background tasks that can trigger a
self-deadlock on CPython's `_global_shutdown_lock` when the GC finalizes
them inside `ThreadPoolExecutor.submit()`. A single long-lived router
eliminates this task churn.
Reconnects automatically when the receiver task dies or when any
unexpected error occurs during send (indicating a dead connection).
DBusErrorResponse is excluded from reconnect since it indicates a valid
[6 lines not shown]
NAS-140335 / 27.0.0-BETA.1 / fix deadlock and resource leak in 3rd party module (#18483)
Cached D-Bus router for the SYSTEM bus.
Fixes upstream issues in jeepney's open_dbus_router:
1. `DBusRouter.__init__` eagerly fires a receiver task via
`asyncio.create_task` — we defer construction to first acquire.
2. `open_dbus_router.__aexit__` doesn't wrap `conn.close()` in
try/finally — a router teardown exception leaks the socket.
3. Every `open_dbus_router()` call opens a new connection + auth + Hello
handshake — we reuse a single connection.
4. Per-call routers produce orphaned background tasks that can trigger a
self-deadlock on CPython's `_global_shutdown_lock` when the GC finalizes
them inside `ThreadPoolExecutor.submit()`. A single long-lived router
eliminates this task churn.
Reconnects automatically when the receiver task dies or when any
unexpected error occurs during send (indicating a dead connection).
DBusErrorResponse is excluded from reconnect since it indicates a valid
[3 lines not shown]
[Clang] Add __ob_trap support for implicit integer sign change (#185772)
The `__ob_trap` type specifier can be used to trap (or warn with sanitizers) when overflow or truncation occurs on the specified type.
There was a gap in coverage for this with the `-fsanitize=implicit-integer-sign-change` sanitizer. Fix this by carrying around `__ob_trap` information through `EmitIntegerSignChange()` which allows us to properly trap or warn.
[libc] Refactor core Linux syscalls to use syscall_wrappers (#185983)
This patch initiates the refactoring of Linux syscalls as described in
the RFC (https://discourse.llvm.org/t/rfc-linux-syscall-cleanup/87248/).
It introduces a new infrastructure in
`src/__support/OSUtil/linux/syscall_wrappers/` to house header-only
syscall wrappers. These wrappers utilize `ErrorOr` to provide a
consistent, type-safe interface for error handling across the library,
standardizing how syscall return values are converted into
errno-compatible Error objects.
Summary of changes:
- Created the `syscall_wrappers` directory and added `close.h`,
`read.h`, `write.h`, and `open.h`.
- Moved the existing `getrandom.h` into the new `syscall_wrappers`
directory and updated its callers (including HashTable/randomness.h).
- Refactored core entrypoints (`close`, `read`, `write`, `open`) to use
the new wrappers, removing direct `syscall_impl` logic and manual errno
[9 lines not shown]
[mlir][spirv] Fix struct.mlir for stricter spirv-val variable-pointer rules (#186974)
Update `mlir/test/Target/SPIRV/struct.mlir` so it remains valid under
current SPIR-V validator checks in Logical addressing mode.
The recursive struct cases were emitting pointer-allocating globals in
storage classes rejected by `spirv-val`. Adjust those globals to
`Private` while keeping recursive member pointers in `StorageBuffer`,
and update the expected roundtrip types accordingly.
Also add the missing variable-pointer requirements to the module VCE:
- capability: `VariablePointers`
- extension: `SPV_KHR_variable_pointers`
Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
Add hybrid function ordering support (#186003)
Allow `--function-order` to be combined with `--reorder-functions`
algorithms. Functions listed in the order file are pinned first
(indices 0..N-1), then the selected algorithm orders remaining
functions starting at index N.
Removed Hardcoded SM Number from Mlir Test (#186917)
This MR removes a hard-coded compute number in an MLIR test. This will
allow the test to not need to be updated in the future. The default
value will come from `NVVMOps.td`.
[MC] Introduce new base class MCAsmStreamer
The class MCAsmStreamer serves as the common base class for streamers
which emit assembly output. It has the same role as MCObjectStreamer
has for streams which emits object files.
It also renames the existing class MCAsmStreamer to MCGNUAsmStreamer,
to reflect the fact that this class emits output for GNU as.
[CIR] Split BinOpOverflowOp into separate overflow-checked ops (#186653)
Replace the monolithic cir.binop.overflow operation and its
BinOpOverflowKind enum with three individual operations:
cir.add.overflow, cir.sub.overflow, and cir.mul.overflow.
This follows the same pattern used when BinOp and UnaryOp were
previously split into per-operation ops (cir.add, cir.sub, etc.),
eliminating enum dispatch and enabling per-op traits like Commutative.
[X86] getMaskNode - perform pre-truncation of oversized scalar mask sources (#187063)
Allows us to use getMaskNode to canonicalize predicate masks in big shift lowering
[mlir][bytecode] Use getChecked<T>() in bytecode reading to avoid crashes (#186145)
When the bytecode type callback (test-kind=2) calls iface->readType()
for every builtin type, complex types like MemRefType could crash
because the generated reading code used get<T>() which asserts on
invalid parameters, rather than getChecked<T>() which returns null
gracefully.
This change:
- Adds a getChecked<T>() free function helper in
BytecodeImplementation.h that calls T::getChecked(emitError, params)
(no-context form) when a specific override exists, otherwise falls back
to get<T>(). The with-context second branch is intentionally omitted to
avoid instantiating StorageUserBase::getChecked<Args> for types that
only inherit the base template (e.g. ArrayAttr), which would require
complete storage types unavailable in the bytecode reading TU.
- Updates BytecodeBase.td default cBuilder for
DialectAttribute/DialectType to use getChecked<> instead of get<>.
- Updates all custom cBuilder strings in BuiltinDialectBytecode.td.
[5 lines not shown]
[AMDGPU] Add ML-oriented coexec scheduler selection and queue handling
This patch adds the initial coexec scheduler scaffold for machine
learning workloads on gfx1250.
It introduces function and module-level controls for selecting the
AMDGPU preRA and postRA schedulers, including an `amdgpu-workload-type`
module flag that maps ML workloads to coexec preRA scheduling and a nop
postRA scheduler by default.
It also updates the coexec scheduler to use a simplified top-down
candidate selection path that considers both available and pending
queues through a single flow, setting up follow-on heuristic work.
devel/esbuild: update to 0.27.4
- Fix a regression with CSS media queries.
- Fix an edge case with the 'inject' feature.
- Attempt to improve API handling of huge metafiles.
ok Maintainer (Igor Zornik)