[Clang][RISCV] Record the LMUL and mask ratio in RVV fixed-length vector kinds (#237845)
A riscv_rvv_vector_bits typedef keeps only the element type and count,
and later stages re-derive the LMUL of a data type, or the ratio R of a
vbool<R>_t mask type, from VLEN. That breaks once typedefs may be
shorter than VLEN * LMUL, or VLEN / R for masks.
Split VectorKind::RVVFixedLengthData into RVVFixedLengthData_MF8 to _M8,
and RVVFixedLengthMask{,_1,_2,_4} into RVVFixedLengthMaskRatio<R> and
RVVFixedLengthMaskRatio<R>_{1,2,4}, and read the LMUL or the ratio from
the kind. VecKind grows to 6 bits.
This patch prepares to let riscv_rvv_vector_bits typedefs be shorter. It
does not change any behavior, except that the AST dump prints the LMUL
or the ratio.
Assisted-by: Claude
[libc] Find linux kernel headers in Debian multiarch directories (#224314)
On Debian/Ubuntu systems without gcc-multilib, architecture-specific
kernel headers are installed in /usr/include/<triple>/asm, while generic
headers are in /usr/include/linux. Because the symlink /usr/include/asm
does not exist, full host builds failed to find <asm/errno.h> and other
asm headers.
Instead of requiring root access to create a symlink in /usr, check if
/usr/include/<triple>/asm exists (using LIBC_TARGET_TRIPLE or
CMAKE_LIBRARY_ARCHITECTURE) and prepend it to LIBC_KERNEL_HEADERS.
Also update consumers of LIBC_KERNEL_HEADERS in runtimes and libc++ test
configs so they handle semicolon-separated lists properly.
Assisted-by: Gemini
[Offload][Omp] Add Backend specific OpenMP-only options (#235844)
There's a number growing of cases (as we decouple from liboffload) of
places where libomptarget needs to behave or use a different number
depending on the backend. Instead of start adding a bunuch of ` if
(Backend == XX) YY` this PR introduces
a simple ` BackendConfig` class to hide such behavior. It's a simple
class as I don't think we need a really complicated thing (for now at
least).
Ongoing PR's like #234165 or #234191 could make use of it. For now, I
just used to remove the ` isHostDevice` specific condition.
Assisted by Claude.
[LowerMemIntrinsics] Expand small variable-length memsets inline (#228420)
[LowerMemIntrinsics] Expand small variable-length memsets inline
Previously, a memset whose length is not a constant was always lowered to a call
to memset, even when the length is known to be small. Expand such a memset
inline instead when the upper bound of its length is at most a target-provided
threshold.
Motivating C code snippets:
void bar(void *dst, unsigned n) {
if (!(n <= 12)) __builtin_unreachable(); // __builtin_assume
memset(dst, 0xff, n);
}
void foo(int *dst, int n) {
for (unsigned i = n; i < 4; ++i)
dst[i] = -1;
[20 lines not shown]
Revert "[Mips] Fix MipsJmpLink and MipsTailCall to use compact branch instructions on MIPS32/64 R6" (#239049)
Reverts llvm/llvm-project#232578
I will resubmit again for a kernel compile error.
py-authlib: updated to 1.9.4
1.9.4 — 2026-11-04
Security
IDJAGGrant stores the verified claims of the ID-JAG in request.id_jag_claims. authenticate_user can use them to resolve the user with the iss and sub claims, and tenant for a multi-tenant IdP. The documentation used to resolve the user with sub alone. An IdP, or a tenant of an IdP, could then get access tokens for the users of another one. Update authenticate_user if your server trusts several IdPs or a multi-tenant IdP. GHSA-9qr6-8289-9j56
[NVPTX] Add default value to is_exclusive ImmArg in tcgen05.{de}alloc intrinsics (#236356)
This patch adds default value for the `is_exclusive` `ImmArg` in
`tcgen05.{de}alloc` intrinsics.
This helps to eliminate the AU code for enabling this manually.
---------
Signed-off-by: DharuniRAcharya <dharunira at nvidia.com>
ipfw: fix off-by-one error in bdel()
After deleting an item from a sorted array, bdel() moves the tail
following it, but the size of the data to move was calculated with
an off-by-one error, causing memmove() to read one element past the
end of the array. This can happen when the table is full for ifidx
or numarray algorithms.
Obtained from: Yandex LLC
Sponsored by: Yandex LLC
(cherry picked from commit c6b08de0e4c797929f4609d86395d494ac695c68)
harfbuzz: updated to 15.1.0
15.1.0
- Add buffer deserialization APIs that report progress as a byte offset, for
use from introspection bindings.
- Fix Indic shaping of the Unicode 18 Devanagari and Bengali additions.
- Fix Arabic fallback shaping: wrong ligatures when a component is missing from
the font, and disappearing marks in legacy fonts.
- Fix `COLR` glyph extents and mark positioning in fonts with empty layers.
- Fix AAT shaping: wrong `kerx` kerning (formats 1 and 2) and mark positioning
(format 4, a 14.3.0 regression), and ignored `kern` and `mort` tables with a
non-first initial state.
- Various fixes to the Graphite2 shaper.
- Report HarfRust shaping failures through `hb_buffer_allocation_successful()`.
- Fix wrong outlines in `gvar` fonts with intermediate tuples.
- Fix `hb_face_create_or_fail()` rejecting face indices with named-instance
bits set.
- Fix wrong fallback metrics: the vertical descender in fonts without `vhea`,
and the hanging baseline for some scripts.
[30 lines not shown]
[RISCV] Use a fully covered switch in RISCVABI::getStackAlignment.
This makes it more obvious the alignment has been chosen explicitly
for every ABI.
Not quite NFC because we no longer emit the stack align attribute for
an unknown ABI.
ipfw: fix off-by-one error in bdel()
After deleting an item from a sorted array, bdel() moves the tail
following it, but the size of the data to move was calculated with
an off-by-one error, causing memmove() to read one element past the
end of the array. This can happen when the table is full for ifidx
or numarray algorithms.
Obtained from: Yandex LLC
Sponsored by: Yandex LLC
(cherry picked from commit c6b08de0e4c797929f4609d86395d494ac695c68)
[RISCV] Use a fully covered switch in RISCVABI::getStackAlignment.
This makes it more obvious the alignment has been chosen explicitly
for every ABI.
Not quite NFC because we no longer emit the stack align attribute for
an unknown ABI.
[RISCV] Add RISCVABI helper functions for single/doubleFP and PureCap.
Use them to simplify code that checks for individual enum values.
I've lumped Cheriot in with the other pure cap ABIs, but maybe that's
wrong.
I've added the pure cap ABIs to the FP functions, but I've added
asserts that the ABI is not pure cap at the usage to allow someone
to review in the future.