[WebAssembly] Add funclet bundle to thread local wrapper calls (#213826)
When accessing a thread local variable, Clang generates a thread local
wrapper function that checks if the variable has been initialized, and
if it isn't, initializes it. This is a function call, so if this is
within a funclet (i.e., within a `catchpad` or `cleanuppad`), it needs
the funclet bundle argument, which was missing before. If it lacks a
funclet argument, it will be considered invalid and removed in
WinEHPrepare.
Fixes https://github.com/emscripten-core/emscripten/issues/27448.
[SimplifyCFG] Do not thread branches into uncontrolled convergent regions (#204958)
SimplifyCFG's foldCondBranchOnValueKnownInPredecessor redirects a
predecessor edge around a block whose branch condition is known on that
edge. When the bypassed block and the threading destination are on a
common cycle, this can change the cycle structure and with it the
dynamic instance of an uncontrolled convergent operation inside that
cycle.
On targets with branch divergence, this PR skips the candidate when the
destination can reach an uncontrolled convergent call on a path back to
the bypassed block. Operations using convergence control tokens are left
alone.
Fixes ROCM-26496.
workflows: Merge release-doxygen into release-documenation
These two workflows use the same script and have the same structure,
so it's easier just to have one job that builds both.
[mlir][xegpu] Lower 1D vector transfers to scattered load/store (#213469)
Both 1D vector.transfer_read / vector.transfer_write now lower to the
scattered xegpu.load / xegpu.store path instead of xegpu.load_nd /
xegpu.store_nd. We reserve the nd block path for rank ≥ 2 vectors.
Cleanup Test: Where both RUN configurations (with and without
--xevm-attach-target) produce identical IR for a function, the
duplicated LOAD-ND/LOAD-GATHER (and STORE-ND/STORE-SCATTER) check blocks
are collapsed into a single shared CHECK block.
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
Stop app metadata from overriding what we determined ourselves
## Problem
Every key of an app's metadata file lands in its query entry, and the file was splatted in last, so it won every conflict. A hand edited or corrupt file could name the app something else entirely - `get_instance` filters on `id`, so such an app became impossible to delete, which is the dead end this branch set out to remove. It could equally claim a state we know it is not in, or empty workloads, which hides the ports and volumes it is holding from conflict detection. With `retrieve_config` set it could also point the config read at another app's directory, and a `name` yaml parsed as a list took `app.query` down outright, since that lookup sits above the guard that would have caught it.
Separately, reporting an app as broken logged a warning on every single query. `app.query` is called by the attachment providers, the dataset details, the usage gather and every UI refresh, so one corrupt file grew the log without bound.
## Solution
- **Everything we determine ourselves is written last**, so metadata which was hand edited or written by a release we know nothing about cannot pass itself off as any of it. `action_required` stays ahead of the splat - unlike the rest, that one is the app's to set.
- **The warning is gone.** An app in this state is reported through the entry itself, which is where a consumer looks; the failure does not need repeating on a hot path once per query.
- The `error_reason` description now says what `METADATA_INCOMPLETE` actually covers, which is a key that cannot be interpreted as well as one that is absent.
biology/diamond: Update to 2.2.5 and fix deepclust crash
Initialize the seed_only member in the Hsp constructor that takes an
ApproxHsp. deepclust builds Hsps through this constructor for its
approximate alignments, so seed_only was left uninitialized. When it
evaluated to true, the SEED_ONLY flag was set on an otherwise
full-length intermediate output record. The multiblock join later
parsed that record as seed-only, stopped four bytes short, and aborted
with "Unexpected end of file", failing the deepclust-multiblock
regression test.
On Linux, the uninitialized member consistently evaluated to false,
masking the bug. On FreeBSD, it evaluated to true, and triggered the
crash.
Release notes: https://github.com/bbuchfink/diamond/releases/tag/v2.2.5
Sponsored by: The FreeBSD Foundation