fssconfig(8): some minor improvements
Try to clarify snapstore a bit more with more explicit language.
The proverbial desperate sysadmin at 3am doesn't need an exegetic
exercise.
[BoundsSafety][NFC] Add the count-refill logic for late-parsed bounds attributes
Introduce the machinery that fills in a late-parsed bounds attribute's
argument once the enclosing record is complete, without wiring it up yet.
Nothing creates an incomplete CountAttributedType or records one for
completion at this point, so this is inert -- the functions are unused and
behavior is unchanged. Activation follows in the next commit.
[HLSL] Add `InterlockedCompareStore` function and resource methods (#222164)
This PR adds the `InterlockedCompareStore` standalone function and
resource
methods. The operation lowers to `cmpxchg monotonic`.
`InterlockedCompareStore` reports nothing, so the `cmpxchg` result stays
unused. The PR adds a compare overload shape to `HLSLExternalSemaSource`
and a
matching resource method helper, which the `InterlockedCompareExchange`
PR
above it reuses.
The PR also adds the 64-bit `InterlockedCompareStore64` methods, which
DXIL
gates on shader model 6.6.
Fixes: https://github.com/llvm/llvm-project/issues/99128
Assisted by: Github Copilot
[clang][WebAssembly] Don't register this-returning destructors of reference temporaries directly with `__cxa_atexit` (#226619)
Under ABIs whose destructors return `this` (ARM, WebAssembly), a
destructor can only be registered directly (with `__cxa_atexit` etc.) if
the target tolerates the resulting function type mismatch. Clang already
checks this for global variables and registers a helper function
instead, but temporaries that are lifetime-extended by a reference with
static or thread storage duration always had their destructor registered
directly. On WebAssembly, which does not tolerate the mismatch, this
traps with "function signature mismatch" when the exit-time destructors
run. This PR changes the if condition to use the destroy helper that is
already used for arrays if the destructor cannot be registered directly.
Previously the following code would result in this:
```cpp
#include <cstdio>
struct B { B() {} ~B() { std::puts("~B"); } };
const B& b = B();
[13 lines not shown]
[flang][OpenMP] Select depend and affinity iterators per locator
Expand each depend and affinity locator over only the iterator identifiers
referenced by that locator. Previously, every iterator-dependent locator
used all ranges in the clause, so an unused empty range could suppress
required dependences or affinity entries.
Sharing range selection keeps depend and affinity consistent when locators
in the same clause reference different iterator subsets. The LLVM IR
regression checks the dependence count passed to the runtime, where an
unused range previously caused required task ordering to be lost.
Addresses the prerequisite fix requested for #197757:
https://github.com/llvm/llvm-project/pull/197757#discussion_r4079319531
Fixes https://github.com/llvm/llvm-project/issues/227443.
Assisted with codex.
[NFC][AMDGPU] Add cost tests for narrow integer to fp casts (#225341)
Covers integer sources from a byte to 31 bits converted to half, float,
bfloat and double, as vector lanes and as scalars, over the subtarget
combinations that change the expansion. The existing cast tests get the
same subtarget coverage and the cases they were missing. The costs
recorded here are the ones the model reports today.