[libc++] Use constant initialization for the random_shuffle engine (#234815)
The default engine used by std::random_shuffle currently uses a function
local static. However, we can skip the function local static and perform
constant initialization instead by marking a few functions constexpr,
only when building the dylib.
These functions will eventually be made constexpr in the Standard.
feat(gisel): Mirror trunc/xor/select demanded bits
Extend scalar demanded-bits simplification to G_TRUNC, G_XOR, and
G_SELECT, following SelectionDAG traversal, known-bit propagation,
shared-use handling, and final folds. Honor GISel legality and target
profitability when rewriting or narrowing operations.
Adapt XOR/shift profitability queries for both selectors.
Validate TRUNC(LSHR) shift amounts with the existing
GISelValueTracking::getValidShiftAmountRange.
Preserve recursive constant bypasses and use-specific rewrites of shared
producers. Recognize constants at the analysis depth limit, matching
SelectionDAG, and retain KnownBits-based bypasses as a fallback.
Keep G_ASHR of G_SEXT_INREG arithmetic unless the top C + BW - W bits are
undemanded, matching SelectionDAG's folded sra amount, so AArch64 keeps
selecting SBFX.
[3 lines not shown]
[AMDGPU] Unwrap and align counter field features
Change-Id: I61bcb5cc2e40e4df1822483fcc88dae636e3a873
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[MLIR][XeGPU] Hoist i4 extensions above lane shuffles (#234760)
Hoist the i4-to-i8 portion of integer extensions through single-use
lane-shuffle and vector data-movement chains before XeGPU-to-XeVM
conversion. Legalize narrow casts into byte-level operations in a
separate preprocessing stage so the existing bitcast-shuffle lowering
can handle the widened fragments without repacking.
Cover signed and unsigned extensions, supported fragment widths,
layout-distribution shuffles, and unsupported consumers. Scope
preprocessing to casts and generated operations to preserve existing
conversion diagnostics.
converters/simdutf: update to 9.2.2
This is a backport, fixing a bug preventing use in C++23 projects.
The same issue will be fixed with an update to 9.3.3 in the main branch
shortly.
Changelog: https://github.com/simdutf/simdutf/releases/tag/v9.2.2
Reported by: mi
PR: 299350
[AMDGPU] Move wait counter layout to TargetParser (NFC)
Wait counter, HoldCnt and barrier member count field widths were derived
from IsaVersion comparisons, and callers parsed the CPU name to get the
version. Each new generation meant new C++ checks.
Describe each field shift/width that differs from the SI layout as a
numeric subtarget feature, and move the encode/decode logic to
TargetParser, keyed on the resulting CounterLayout. The backend builds
the same layout from feature bits. New hardware with known field values
now needs TableGen only. Pseudo and unknown targets keep the SI layout.
Change-Id: Id7dc2a50445eee45c5511ba4c0b68dcf2f547f98
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
contrib/kyua: update to 0.15.1
This new release contains multiple bugfixes. Please see the release
notes mentioned in the merge commit for more details.
MFC after: 2 weeks
Merge commit '3e05143b80d1537cdd51a5dcf742da31f400507e'
p5-MIME-tools: update to 5.522.
5.522 2026-10-27 Dianne Skoll <dianne at skoll.ca>
* VERSION 5.522 RELEASED
* Many security issues were addressed (see the following ten CVEs)
Issues were brought to my attention, and patches supplied, by the
CPANSec security group.
* parse_params: flag a parameter list that could not be parsed
Detect additional ambiguous parse situations when parameter
names contain illegal characters. Fixes:
CVE-2026-116264 invalid parameter hides boundary/filename
* parse_params: check the boundary after RFC 2231 reassembly
Another ambiguous-parse case was missed (trailing space after
boundary was not detected for RFC-2231-encoded boundaries.) Fixes:
CVE-2026-116265 RFC 2231 boundary skips ambiguity checks
[106 lines not shown]
p5-HTTP-Body: update to 1.24.
1.24 2026-10-26 18:28:01+01:00 Europe/Berlin
- SECURITY, CVE-2026-116131: urlencoded bodies are limited to
$HTTP::Body::UrlEncoded::max_params fields and multipart bodies to
$HTTP::Body::MultiPart::max_parts parts (1000 each); reported and
patched by CPANSec
- SECURITY, CVE-2026-116132: the temporary file of an upload that is
still incomplete at DESTROY-time is now always deleted; reported and
patched by CPANSec (also fixes RT#84004)
- SECURITY, CVE-2026-116133: a multipart body without a boundary or with
a malformed delimiter line no longer takes quadratic time; a malformed
delimiter line now croaks, and padding or an epilogue after the close
delimiter is accepted; reported and patched by CPANSec
- SECURITY, CVE-2026-116134: a multipart part's header block is limited
to $HTTP::Body::MultiPart::max_header_size bytes (32768) and
$HTTP::Body::MultiPart::max_header_lines lines (100); reported and
patched by CPANSec
- SECURITY, CVE-2026-116135: mixed-case percent escapes (e.g. %aB) in
[22 lines not shown]
[RISCV][P-ext] Promote i32 sati/usati intrinsics to i64 on RV64. (#234346)
Instead of using p(u)sati.w. The trade off here is that p(u)sati.w
sometimes requires its output to be sign extended for ABI or compares.
While sati/usati sometimes requires its input to be sign extended
if it isn't a W instruction or an argument/return with the signext
attribute.
The sign extended input is what we would get a from a manually
written clamp pattern in C code. So there's an argument for
consistency.
It might be possible to have RISCVOptWInstrs convert to p(u)sati.w
if we aren't able to remove the sext.w from the input and only
the lower 32 bits of the result are used.
[ci] Add a workflow to run the LLVM test-suite
This adds a reusable workflow that builds and installs Clang at a given
commit, builds and runs the LLVM test-suite and creates a LNT v5 report.
The pipeline workflow can be dispatched manually or through the GitHub
API -- in the future we can trigger it via a cron job or a fancier system
like libc++'s.
Assisted by Claude