[WebAssembly][FastISel] Fix sext i1 to i64 with +sign-ext (#213734) (#214007)
Fixes #213734
---
## Summary
At `-O0`, WebAssembly FastISel could miscompile programs that
sign-extend an i1 value to i64 when the `+sign-ext` target feature is
enabled. The bug was introduced in LLVM 23 by the FastISel sign-ext
optimization (#179855).
For `sext i1 to i64`, FastISel fell through its switch without emitting
any instruction and returned an undefined register. Code that uses this
pattern to adjust integer division results (such as floor division)
could then compute the wrong answer. The issue reporter saw `-1` instead
of the correct `-2`.
This patch restructures `signExtend()` so i8, i16, and i32 still use
[18 lines not shown]
Corrected the recursion block to have memory, preventing exponential blowup. I also tested this with an ad-hoc test and verified the problem and fix.
Added a couple of test cases to demonstrate that order does not prevent error detection.
[UTC] Support RUN lines with pre-processing for `update_analyze_test_checks` (#214046)
AI-disclaimer: created using AI, then reviewed/manually cleaned up.
[Reland][X86] Remove redundant `cmp` before `adc` after `lzcnt` or `tzcnt` (#210069)
fix #193178
relands PR #208392
`lzcnt rax, rdi`/`tzcnt rax, rdi` instruction only replaces `cmp rdi, 1`
when the next instructions are either `adc` `sbb` `rcl` or `rcr` (uses
and modifies the EFLAGS) because these use the CF Flag (same as when set
by `lzcnt` or `cmp` in this case)
www/bunkerweb: Update to 1.6.13
This covers the 1.6.12 and 1.6.13 releases.
Security: session fixation on login and an open redirect via the
post-login "next" parameter in the web UI, a second open redirect in
the antibot post-challenge flow, and cache deletion routes that
bypassed authorization. Biscuit token generation now binds the Host
header, client IP and username as typed terms, and adds an optional
API_ALLOWED_HOSTS allowlist. Reverse DNS results are forward-confirmed
before an IGNORE_RDNS or GREYLIST_RDNS suffix match is honored, so a
self-configured PTR record no longer bypasses blocking. ACME challenge
tokens are validated against the base64url character set, closing a
path traversal through the internal API. TOTP verification is enforced
on the exact validation endpoint instead of any path containing /totp.
New settings: REVERSE_PROXY_SSL_VERIFY and friends for upstream HTTPS
certificate verification, USE_LIMIT_REQ_GLOBAL and
LIMIT_REQ_GLOBAL_RATE for an aggregate per-service request rate,
[19 lines not shown]
[MC][DXContainer] Initialize SourceNames::Header scalar fields (#211751)
The previous constructor left these fields undefined. This updates it to
initialize the fields explicitly and switch to default constructor.
Making sure that on every use the fields are automatically initialized.
[LLVM] Unify atomic scope handling between LLVM and Clang (#213810)
Summary:
This PR attempts to unify the atomic scope handling between clang and
LLVM. The difficulty is that clang emits ABI-mandated integers for these
while the backends use arbitrary strings. We still want the flexibility
of these being arbitrary strings, but we should put this in a single
source of truth.
The main motivation is so IR passes can determine which scope clang used
when creating these, and so future additions all go in one place. This
was modeled after the AtomicOrdering.h file.
[SLP]Fix unscheduled-deps assert for operands of copyable user lanes
When every copyable model of an edge is skipped because the user is
itself a copyable lane, the instruction's own schedule data still
carries the def-use dependency counted by calculateDependencies. Release
it instead of returning early just because copyable data was found.
Fixes https://github.com/llvm/llvm-project/pull/213369#issuecomment-5189475412
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/214283
[AMDGPU][GlobalISel] Legalize BF16 fneg and fabs (#214050)
Restore the BF16 semantic types omitted by the extended LLT migration
and preserve packed vector legalization.
[OpenACC/OpenMP/Parser] Teach ParseCXXInlineMethods about pragmas (#214259)
Both OMP and OpenACC count on being able to reach their end-annotation
token in order to properly recover from errors/leave the parser in good
shape. This works well for 'free' functions.
However, when we do a pre-parse so we can delay-evaluate member
functions, a stray end-brace can end up matching the end of the
function. As a result, the examples in the test would have that brace
ending with an EOF, which confused both of the pragma languages.
This patch teaches the ParseCXXInlineMethods functionality to ignore any
braces/etc inside of a OpenACC/OpenMP pragma for the purposes of
matching, since these shouldn't count towards that scoping anyway.
Fixes: #214195
[libc] Skip the RPC doorbell interrupt when the mailbox is uninitialized (#214037)
## Overview
`rpc::Process::notify()` guards `doorbell->value` but then
unconditionally
dereferences `doorbell->mailbox`. The two are not initialized together.
The
AMDGPU offload plugin sets `value` to the address of a field in its HSA
signal,
so it is never null, while `mailbox` is that signal's
`event_mailbox_ptr`, which
is zero unless the signal is interrupt-backed:
```c++
Value = reinterpret_cast<uint64_t *>(&Doorbell->value);
Mailbox = reinterpret_cast<uint64_t *>(Doorbell->event_mailbox_ptr);
```
[28 lines not shown]
[AArch64] Lower fixed-length interleaved stores with SVE (#213692)
Allow uses of SVE instruction for fixed length vector interleave
intrinsic that can not be lowered through NEON.
[KnownFPClass] Do not propagate non-NaN through `asin` and `acos` (#213812)
`KnownFPClass` incorrectly assumed that a non-NaN input to `asin` or
`acos` implies a non-NaN result. However, both `asin` and `acos` can
return NaN from a finite input when `|x| > 1.0`, such as `asin(2.0)` or
`acos(2.0)`.
I have fixed this by removing the calls to
`Known.propagateNaN(KnownSrc)`, which incorrectly propagated that
`asin(non-NaN) == non-NaN`.
I discovered this while working on
https://github.com/llvm/llvm-project/issues/211686. The same issue was
previously noted in a post-merge review comment on
https://github.com/llvm/llvm-project/pull/190609#discussion_r3632814122
AI disclosure:
I used OpenAI Codex (GPT-5.6-sol) to help generate the test updates,
which I reviewed and tested locally.
HBSD: Update /etc/os-release and /var/run/os-release
Now that we have completed the migration to Radicle, we need to update
the URLs and other auxiliary data in the os-release files.
Signed-off-by: Shawn Webb <shawn.webb at hardenedbsd.org>
MFC-to: 15-STABLE
openssl/4.0: plug client-side memleak
Free bs when the OCSP basic response contains no single responses.
I have no idea why this utterly trivial change needed almost as many lines
of explanatory comment as it took weeks to merge it, plus a CVE on top, but
here we are. My time's already been wasted...
Free BS indeed: https://www.openwall.com/lists/oss-security/2026/08/05/8
[KnownFPClass] Mark cosh result as non-zero and non-subnormal (#213763)
`cosh(x)` is `>= 1.0` or NaN for all inputs. So I have marked `cosh` as
returning a value that is not-negative, not-subnormal, and not-zero.
This addresses the `cosh` portion of
https://github.com/llvm/llvm-project/issues/211686 (but not the `acos`
portion).
AI disclosure:
I used OpenAI Codex (GPT-5.6-sol) to help generate the test updates,
which I reviewed and tested locally.