[SCEV] Introduce loop-uniform SCEV classification. (#194304)
This patch extends `ScalarEvolution::LoopDisposition` with a new
`LoopUniform` state to describe SCEVs that are invariant across all
iterations of a given loop, but may still depend on inner-loop induction
variables.
Unlike `LoopInvariant`, which requires the value to be fully invariant
with respect to the loop, LoopUniform captures expressions that do not
depend on the loop’s own induction variables, yet may vary in nested
loops. This distinction is useful for analyses and optimizations that
reason about per-iteration stability at a specific loop level.
Example:
```
for (i)
for (j)
dep(j); // uniform w.r.t. i
dep(i, j); // not uniform w.r.t. i
[4 lines not shown]
py-apsw: updated to 3.53.1.0
3.53.1.0
Async cursor iteration: Cursor attributes like bindings_names, sql, and is_readonly will always correctly reflect the current iterated row. Backwards incompatible change: description, get_description(), and description_full are now values - ie you can just use them directly and should not await them.
[mlir][spirv] Lower math.ctlz to OpenCL.std clz for Kernel targets (#195470)
Lower `math.ctlz` to `spirv.CL.Clz` for targets with Kernel capability.
Shader targets keep the existing GLSL-based fallback implemented via
`spirv.GL.FindUMsb`.
Previously, `math.ctlz` was lowered through the GLSL path using
`spirv.GL.FindUMsb` plus additional SPIR-V ops. That worked for Shader
targets, but failed legalization for OpenCL/Kernel targets where Shader
capability is not supported.
nodejs: updated to 26.0.0
26.0.0 (Current)
We're excited to announce the release of Node.js 26! Highlights include the Temporal API enabled by default,
updates to the V8 JavaScript engine to 14.6, Undici to 8.0, and several important deprecations and removals
as we continue to modernize the platform.
[clang][bytecode] Fix sized builtin operator delete handling (#195741)
**Problem:**
A crash happens with std::allocator triggered sized/aligned delete
operations with new constant evaluator.
`interp__builtin_operator_delete` currently consumes the top of the
interpreter stack as a `Pointer`.
This is correct for unsized delete:
```cpp
__builtin_operator_delete(p);
```
but not for sized/aligned delete reached through
`std::allocator<T>::deallocate`:
[64 lines not shown]
[AMDGPU][Doc] Move barrier documentation to a separate document (#194569)
Create a new "AMDGPU Execution Synchronization" document.
For now, it just documents barriers and their execution model.
Hopefully, over time, we can improve it to document the
programming model of most common methods of synchronizing execution
of threads (e.g. using memory/spinlock).
I kept the documentation mostly as-is, but I did do some minor changes
to make it flow a bit better as a standalone document. For example,
the fact that barriers work at a wavefront granularity has been moved
to the section about `s_barrier` specifically.
I also moved the note about barrier objects existing within a scope
in the main documentation. As a result, the "target-specific properties"
section has been eliminated.
[fir] Lower to llvm int constants with appropriately typed int attrs (#195861)
When we lower fir operations to llvm int constants, we used to always
generate `llvm.mlir.constant`s with a i64 integer attribute regardless
of the width of the constant type. This made some llvm dialect level
folding hit assertions in some cases.
Fix this by generating the appropriately typed integer attributes
matching the constant type.
games/cataclysm-dda: Unbreak on 16-CURRENT with Clang 21
- Add workaround for strict flow analysis introduced in LLVM 21.1.8
- Limit CXXFLAGS to FreeBSD >= 1600017 to preserve build integrity on older versions
- Fixes "function could be declared with attribute 'noreturn'" errors [1]
[1] https://github.com/llvm/llvm-project/issues/154493