LLVM/project fe4580elibcxx/src/include overridable_function.h

[PAC][libc++] Fix build with `ptrauth_calls` feature (#211033)

After partial revert of #208330 in #209928, the libcxx build started
failing because of missing `<cstdint>` include required for `uintptr_t`
declaration used only by code behind `ptrauth_calls` feature check. See
https://lab.llvm.org/buildbot/#/builders/227/builds/3358

This patch adds the missing include.

(cherry picked from commit 12e1c7f70f34d59c023d05d0fe2c228a4e9aac11)
DeltaFile
+1-0libcxx/src/include/overridable_function.h
+1-01 files

LLVM/project 3eed3d7clang/lib/Sema SemaExpr.cpp, clang/test/CodeGenCXX gh196469-default-member-init-lambda-cleanup.cpp

Revert "[Clang] Rebuild lambda captures in default member initializers while skipping body (#196597)" (#211001)

This reverts commit 50f30bedaa81919915049474f4350ef19c36b7ca. The commit
causes a crash in clang:
https://github.com/llvm/llvm-project/pull/196597#issuecomment-4997866573

(cherry picked from commit 150aa53d48aa6fdde26e00ea118582eb949f0dca)
DeltaFile
+8-48clang/lib/Sema/SemaExpr.cpp
+0-37clang/test/CodeGenCXX/gh196469-default-member-init-lambda-cleanup.cpp
+0-22clang/test/SemaCXX/gh196469-default-member-init-lambda-capture.cpp
+12-0clang/test/SemaCXX/source_location.cpp
+20-1074 files

LLVM/project f7ae0ecclang-tools-extra/unittests/clang-change-namespace ChangeNamespaceTests.cpp, clang/test/Format dump-config-objc-stdin.m

[clang-format][clang-tools-extra] Fix leaking of host-level config into test environment (#206358)

These leaks were causing false test failures due to my global
.clang-format being in an ancestor directory of the build directory.
These changes prevent those issues when running the tests on my system.
I used MiMo v2.5 Pro agentically in Zed to find and fix the issue. But I
understand the changes and judge them to be safe and a clear improvement
over the status quo.
DeltaFile
+2-2clang/test/Format/dump-config-objc-stdin.m
+1-1clang-tools-extra/unittests/clang-change-namespace/ChangeNamespaceTests.cpp
+3-32 files

LLVM/project 32eed90lldb/source/Core DumpDataExtractor.cpp, lldb/test/API/functionalities/data-formatter/builtin-formats TestBuiltinFormats.py

[lldb] Fix Unicode code point formatting to use proper notation  (#211131)

- use uppercase hex digits

- only emit "U+" notation for valid code points (<= U+10FFFF),
zero-padded to a minimum of four digits.

rdar://173817553

Assisted-by: claude
(cherry picked from commit 0cd942fa1b6de94fd6d7fa7ba73f0233293115f8)
DeltaFile
+11-4lldb/source/Core/DumpDataExtractor.cpp
+10-1lldb/test/API/functionalities/data-formatter/builtin-formats/TestBuiltinFormats.py
+9-2lldb/unittests/Core/DumpDataExtractorTest.cpp
+5-5lldb/test/Shell/SymbolFile/NativePDB/globals-fundamental.cpp
+2-4lldb/test/API/lang/cpp/char1632_t/TestChar1632T.py
+37-165 files

LLVM/project da27aacllvm/include/llvm/IR IntrinsicsRISCV.td, llvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVInstrInfoP.td

[RISCV][P-ext] Add packed sign and zero extend intrinsics (#208685)

Add SelectionDAG and intrinsic support for the RISC-V P packed sign- and
zero-extend operations.

Sign-extend is matched through `sext_inreg` (folded from the `shl`/`ashr`
idiom by the generic combiner) and selects to `psext.*`. Zero-extend reuses
the existing `PPAIRE` node with a zero operand instead of a new target node,
since `pzext.* rd, rs` is an alias of `ppaire.* rd, rs, x0`: implementing
`isVectorClearMaskLegal` lets the generic `DAGCombiner::XformToShuffleWithZero`
rewrite the `(and vXi16, 0xff)` / `(and vXi32, 0xffff)` idiom into a shuffle
with a zero operand, which `lowerVECTOR_SHUFFLEAsPPair` folds to `PPAIRE`.

Also adds the LLVM IR intrinsics `llvm.riscv.psext.b`/`.h` and
`llvm.riscv.pzext.b`/`.h`. For RV64 32-bit packed results, the lowering widens
to the legal 64-bit type and extracts the low subvector.
DeltaFile
+144-0llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+117-9llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+39-0llvm/test/CodeGen/RISCV/rvp-simd-intrinsic-invalid.ll
+38-0llvm/test/CodeGen/RISCV/rvp-simd-32.ll
+16-5llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+10-0llvm/include/llvm/IR/IntrinsicsRISCV.td
+364-141 files not shown
+366-147 files

LLVM/project 5910053cross-project-tests/dtlto remote-options.test, llvm/lib/DTLTO DTLTO.cpp

[DTLTO] Forward loop interchange to DTLTO remote compilations (#208591)

Recent upstream LLVM changes enabled `LoopInterchangePass` by default
through `PipelineTuningOptions`. TLTO observes that state directly from
the LTO config, but DTLTO was not forwarding the equivalent Clang option
to the remote compiler. As a result, TLTO could run loop interchange
pass while DTLTO did not, producing codegen differences for
configurations that exposed profitable/legally interchangeable loops.
Note that this was a pre-existing issue, the change in default has
simply exposed it.

Forward `C.PTO.LoopInterchange` as `-floop-interchange` when
constructing the common DTLTO remote compiler options. Extend the
testing to check that the SN-DBS remote command line includes the
forwarded option.

The code for forwarding such options is only intended as a temporary
measure. A more comprehensive solution is in discussion here:
https://discourse.llvm.org/t/synchronizing-lto-code-generation-configuration-between-clang-and-lld-dtlto

    [2 lines not shown]
DeltaFile
+9-0cross-project-tests/dtlto/remote-options.test
+2-0llvm/lib/DTLTO/DTLTO.cpp
+1-0llvm/test/ThinLTO/X86/dtlto/json.ll
+12-03 files

LLVM/project bb709cbcross-project-tests CMakeLists.txt, cross-project-tests/dtlto remote-options.test

[DTLTO] Add remote compiler option forwarding coverage (#208589)

Add a cross-project DTLTO test that checks the existing LTO
configuration state serialized into the remote Clang command line. The
test uses the validate.py distributor to inspect the generated DTLTO
JSON.

Cover all the existing forwarded options.

Add paired negative checks for optional flags so the test also verifies
they are not emitted when the corresponding configuration state is not
set.

(cherry picked from commit c012610ab9924f465baea5e62397056ea9594567)
DeltaFile
+90-0cross-project-tests/dtlto/remote-options.test
+1-0cross-project-tests/CMakeLists.txt
+91-02 files

LLVM/project 280f362llvm/lib/Transforms/Scalar GVN.cpp, llvm/test/Transforms/GVN/PRE pre-loop-load.ll

fixup! [GVN] Support critical-edge splitting in loop-load PRE
DeltaFile
+59-0llvm/test/Transforms/GVN/PRE/pre-loop-load.ll
+7-11llvm/lib/Transforms/Scalar/GVN.cpp
+66-112 files

LLVM/project 4945145llvm/lib/Transforms/Scalar GVN.cpp, llvm/test/Transforms/GVN/PRE pre-loop-load.ll

fixup! [GVN] Support critical-edge splitting in loop-load PRE
DeltaFile
+80-12llvm/test/Transforms/GVN/PRE/pre-loop-load.ll
+29-20llvm/lib/Transforms/Scalar/GVN.cpp
+109-322 files

LLVM/project c2f59c0llvm/lib/Transforms/Scalar GVN.cpp, llvm/test/Transforms/GVN/PRE pre-loop-load.ll

[GVN] Support critical-edge splitting in loop-load PRE

When the only in-loop blocker of a loop-load PRE candidate has multiple successors, the reload was placed at the end of that block, so it also ran on the loop-exit edge. Split the critical edge to the unique in-loop successor and insert the reload there, so it runs only on the path back to the header. Bail out on indirectbr or multiple in-loop successors, and keep backedge splitting gated behind the existing flag. Also refresh the stale TODO comments on the freeable-pointer tests, which stay un-PRE'd because the pointer may be freed.
DeltaFile
+35-2llvm/lib/Transforms/Scalar/GVN.cpp
+21-13llvm/test/Transforms/GVN/PRE/pre-loop-load.ll
+56-152 files

LLVM/project fca423dllvm/test/Transforms/GVN/PRE pre-loop-load.ll

[GVN] Add tests for loop-load PRE into a multi-successor block

Precommit tests for loop-load PRE when the loaded pointer cannot be freed (a gc-managed address-space pointer and a nofree function). PRE currently fires but sinks the reload into a cold block with multiple successors, so it also runs on the loop-exit edge.
DeltaFile
+114-0llvm/test/Transforms/GVN/PRE/pre-loop-load.ll
+114-01 files

LLVM/project 8730451llvm/include/llvm/Transforms/Scalar Reassociate.h, llvm/lib/Transforms/Scalar Reassociate.cpp

[Reassociate] Use UniformityInfo to group uniform operands together (#198507)

On targets with branch divergence (TTI.hasBranchDivergence()), boost the
rank of divergent operands in ReassociateExpression() so they sort
towards the root of the expression tree. This clusters uniform operands
at the leaves, letting the backend lower the inner sub-expression to a
scalar ALU instruction (s_mul/s_or/s_and) instead of a vector.

Ref:
https://github.com/llvm/llvm-project/pull/175167#issuecomment-4476483692
DeltaFile
+113-0llvm/test/CodeGen/AMDGPU/reassoc-scalar.ll
+48-6llvm/lib/Transforms/Scalar/Reassociate.cpp
+5-1llvm/include/llvm/Transforms/Scalar/Reassociate.h
+1-0llvm/test/Other/new-pm-defaults.ll
+1-0llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
+1-0llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
+169-74 files not shown
+173-710 files

LLVM/project 22cb41cllvm/lib/Transforms/Scalar LoopIdiomRecognize.cpp, llvm/test/Transforms/LoopIdiom cyclic-redundancy-check.ll

[LoopIdiom] Use narrower bit widths where possible in `optimizeCRCLoopUsingClmul` (#210139)

The original implementation of `optimizeCRCLoopUsingClmul` (#203405)
uses a single conservative bit width for most operations, but this width
is not always necessary. Use more restrictive bit widths for each clmul
according to their inputs, and narrow the bit width for the initial
CRC/data setup.
DeltaFile
+131-119llvm/test/Transforms/LoopIdiom/cyclic-redundancy-check.ll
+74-75llvm/test/Transforms/LoopIdiom/AArch64/cyclic-redundancy-check.ll
+74-75llvm/test/Transforms/LoopIdiom/RISCV/cyclic-redundancy-check.ll
+74-75llvm/test/Transforms/LoopIdiom/X86/cyclic-redundancy-check.ll
+47-38llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
+400-3825 files

LLVM/project af1bc1fllvm/lib/Target/X86 X86InstrAVX512.td, llvm/test/CodeGen/X86 avx512-vpternlog-commute.ll

[X86] Fix swapped VPTERNLOG231_imm8/VPTERNLOG312_imm8 SDNodeXForm bodies (#209782)

Fixes #157929

VPTERNLOG231_imm8 and VPTERNLOG312_imm8 had their bodies swapped,
causing ISel to emit the wrong truth-table immediate whenever operand
reordering was needed (-O1+, not -O0).

Test changes:
- **avx512-vpternlog-commute.ll: regenerated with
update_llc_test_checks.py**
  (accounts for the large diff)
- Added 4 new cases: vpternlog231_rmik, vpternlog312_rmik,
  vpternlog231_rmbik, vpternlog312_rmbik

Tested: llvm-lit on llvm/test/CodeGen/X86 (no regressions), original
repro verified correct at -O0 through -O3, -Os, -Oz.

(cherry picked from commit bd38dd0ace19c3b9512da2b37bb9690ee6c9e97f)
DeltaFile
+144-88llvm/test/CodeGen/X86/avx512-vpternlog-commute.ll
+14-15llvm/lib/Target/X86/X86InstrAVX512.td
+158-1032 files

LLVM/project 450cf0allvm/tools/llvm-profgen PerfReader.cpp

[llvm-profgen] Formatting StringRef iteration in isLBRSample (#211462)

Follow up on https://github.com/llvm/llvm-project/pull/211182 Cleanup
the StringRef iteration.
DeltaFile
+1-1llvm/tools/llvm-profgen/PerfReader.cpp
+1-11 files

LLVM/project 5868a85llvm/lib/DWARFLinker/Parallel DependencyTracker.cpp DependencyTracker.h, llvm/test/tools/dsymutil/X86/DWARFLinkerParallel odr-deterministic-nested-type.test

[DWARFLinker] Fix RefTypeName crash and type-table non-determinism (#209033)

The parallel linker computes DIE placement (artificial type unit vs
plain DWARF) concurrently across compile units.

1. updateDependenciesCompleteness checked the placement of the enclosing
root type (getRootForSpecifiedEntry) instead of the actual referenced
DIE. A nested type can be demoted to plain DWARF while its root stays in
the type table, leaving a type-unit DIE that references a plain DIE and
tripping the RefTypeName assertion in
DIEAttributeCloner::cloneDieRefAttr. Carry the actual referenced DIE on
the worklist item and check its placement.

2. The completeness dependency set was recorded as a side effect of the
concurrent marking traversal, which short-circuits on already-marked
DIEs (isAlreadyMarked) before maybeAddReferencedRoots. When a shared
cross-CU DIE was already marked by a racing CU, the current referencing
root's outgoing dependencies were dropped, so the demotion fixpoint
missed demotions and whole type subtrees were left in the artificial

    [9 lines not shown]
DeltaFile
+298-0llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-deterministic-nested-type.test
+77-25llvm/lib/DWARFLinker/Parallel/DependencyTracker.cpp
+43-11llvm/lib/DWARFLinker/Parallel/DependencyTracker.h
+418-363 files

LLVM/project 5b6c4baclang/include/clang/Basic BuiltinsAMDGPU.td, clang/test/CodeGenOpenCL builtins-amdgcn-global-async-load-lds.cl

[AMDGPU] Add gfx13 support for global_load_async_to_lds
DeltaFile
+91-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.async.to.lds.ll
+50-0clang/test/CodeGenOpenCL/builtins-amdgcn-global-async-load-lds.cl
+48-0llvm/test/MC/AMDGPU/gfx13_asm_vflat.s
+6-2llvm/lib/Target/AMDGPU/FLATInstructions.td
+4-4clang/include/clang/Basic/BuiltinsAMDGPU.td
+2-1llvm/lib/Target/AMDGPU/AMDGPU.td
+201-71 files not shown
+202-77 files

LLVM/project 6aa4d5eclang/include/clang/Basic BuiltinsAMDGPU.td, clang/test/CodeGen amdgpu-builtin-processor-is.c amdgpu-builtin-is-invocable.c

[AMDGPU] Add FeatureSubtarget for global async load/store lds (#211247)
DeltaFile
+18-8llvm/lib/Target/AMDGPU/FLATInstructions.td
+8-8clang/include/clang/Basic/BuiltinsAMDGPU.td
+10-0llvm/lib/Target/AMDGPU/AMDGPU.td
+2-2clang/test/CodeGenCXX/dynamic-cast-address-space.cpp
+1-1clang/test/CodeGen/amdgpu-builtin-processor-is.c
+1-1clang/test/CodeGen/amdgpu-builtin-is-invocable.c
+40-201 files not shown
+42-207 files

LLVM/project a8f4b7fflang/docs ReleaseNotes.md

[flang][docs] Release notes: multi-image updates

Populate flang 23 release notes with multi-image feature updates.
DeltaFile
+5-0flang/docs/ReleaseNotes.md
+5-01 files

LLVM/project 21fb4bdllvm/test/CodeGen/M68k pipeline.ll

[M68k][CodeGen] pipeline failure fix (#211458)

Fixing pipeline mismatch on M68k (experimental target, failure shouldnt
have been reported).
Triggered upon merge of this PR:
https://github.com/llvm/llvm-project/pull/210826

Failure here:
https://lab.llvm.org/buildbot/#/builders/27/builds/2162/steps/5/logs/FAIL__LLVM__pipeline_ll
DeltaFile
+1-0llvm/test/CodeGen/M68k/pipeline.ll
+1-01 files

NetBSD/src kROzPG2external/gpl2/groff/tmac mdoc.local

   Welcome to 11.0 RC7
VersionDeltaFile
1.11.4.8+3-3external/gpl2/groff/tmac/mdoc.local
+3-31 files

LLVM/project e04cf35llvm/lib/Transforms/Vectorize VPlanPredicator.cpp VPlanDominatorTree.cpp, llvm/test/Transforms/LoopVectorize predicator.ll reduction-inloop.ll

[VPlan] Compute blend masks from minimum set of edge masks (#201783)

#201784 aims to preserve SSA in early exit loops, and in doing so insert
phi nodes. More phi nodes results in more VPBlendRecipes, so this PR
optimizes the edge masks generated for those blend recipes to prevent
regressions.

The idea is to compute a minimal set of edges that lead to each unique
incoming value in a phi. It does this by iterating up the edges in the
post dominance frontier till the outgoing edges no longer lead to the
same value.

This is a simpler, less general version of #184838 since this can't
optimize away edges that aren't postdominated by the phi. This is fine
the early exit use case though, since we only need to optimize phi nodes
inserted in the latch.

The big advantage over #184838 is that it doesn't require several
depth-first searches to compute the set of reachable nodes, and can be
done entirely by iterating the post-dominator frontier.
DeltaFile
+210-1llvm/test/Transforms/LoopVectorize/VPlan/predicator.ll
+127-3llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
+61-0llvm/test/Transforms/LoopVectorize/predicator.ll
+12-9llvm/test/Transforms/LoopVectorize/reduction-inloop.ll
+16-0llvm/lib/Transforms/Vectorize/VPlanDominatorTree.cpp
+4-6llvm/test/Transforms/LoopVectorize/reduction.ll
+430-195 files not shown
+445-3211 files

LLVM/project 2336574.github/workflows/test-suite configure-and-build.sh llvm.cmake

[GitHub] Collect statistics in test-suite workflow (#210316)

This allows comparing the statistic counters in the results.json
artifacts
DeltaFile
+2-1.github/workflows/test-suite/configure-and-build.sh
+1-0.github/workflows/test-suite/llvm.cmake
+3-12 files

LLVM/project 585c900libc/cmake/modules LLVMLibCTestRules.cmake, libc/test/UnitTest PlatformDefs.h LibcTest.h

[libc][cmake] Add LIBC_TEST_SUBPROCESS_TESTS (#211238)

This replaces the ENABLE_SUBPROCESS_TESTS preprocessor flag with a cmake
variable. By lifting the logic into cmake, we select which test
framework files to build, and also exclude whole tests, if they do not
make sense without subprocess support.

This enables us to fix failures from (now reverted) #209999 and
 #210889, as it will let us skip the *exit family of tests. The problem
there was that GPU targets support the *exit entry points (so the
auto-skipping logic does not kick in), but they do not have (and maybe
cannot have?) the functionality necessary to test them.

I convert two libgen tests (the only users of ENABLE_SUBPROCESS_TESTS)
to the new framework.
DeltaFile
+17-6libc/cmake/modules/LLVMLibCTestRules.cmake
+0-16libc/test/UnitTest/PlatformDefs.h
+4-2utils/bazel/llvm-project-overlay/libc/test/libc_test_rules.bzl
+2-4libc/test/UnitTest/LibcTest.h
+1-1libc/test/src/libgen/CMakeLists.txt
+1-1libc/test/UnitTest/CMakeLists.txt
+25-303 files not shown
+25-359 files

LLVM/project 73a7638compiler-rt/lib/sanitizer_common sanitizer_common_syscalls.inc, compiler-rt/test/msan/Linux syscalls_post_output_size.cpp

[compiler-rt][sanitizer_common] Size readlink/getsockopt post-hook unpoison by bytes written (#209209)

# About

`readlink`/`readlinkat` return the number of bytes placed in the buffer
in res and do not NUL-terminate it, and getsockopt writes *optlen bytes
of binary option data. The post-hooks instead sized their POST_WRITE
(MSan unpoison) with internal_strlen(buf) + 1, which reads past what the
kernel wrote -- over- unpoisoning the uninitialized tail (masking real
bugs) and, on a buffer with no NUL, reading out of bounds inside the
runtime. For binary option data an early zero byte instead
under-unpoisons.

Size the unpoison by the actual written length, matching the
corresponding libc interceptors (readlink unpoisons res bytes, and
getsockopt unpoisons *optlen bytes).

Seems to be present since the file's 2013 import.
DeltaFile
+57-0compiler-rt/test/msan/Linux/syscalls_post_output_size.cpp
+8-6compiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc
+65-62 files

OpenBSD/src zCdQ7G2gnu/usr.bin/perl/dist/Storable Storable.xs

   Fix signed integer overflow in Storable

   Storable for Perl has a signed integer overflow when deserializing
   a crafted SX_HOOK record

   CVE-2026-57433

   https://lists.security.metacpan.org/cve-announce/msg/41780100/
VersionDeltaFile
1.10+4-1gnu/usr.bin/perl/dist/Storable/Storable.xs
+4-11 files

OpenBSD/src 9XG8fqggnu/usr.bin/perl pp_pack.c, gnu/usr.bin/perl/pod perldiag.pod

   Fix integer overflow in perl pack and unpack

   Perl has an integer overflow in S_measure_struct leading to an
   out-of-bounds heap read in pack and unpack.

   CVE-2026-57432

   https://lists.security.metacpan.org/cve-announce/msg/41780102/
VersionDeltaFile
1.12+6-2gnu/usr.bin/perl/pp_pack.c
1.31+6-0gnu/usr.bin/perl/pod/perldiag.pod
+12-22 files

LLVM/project 55df598libclc/clc/lib/generic/math clc_sincospi.inc clc_sincospi.cl

libclc: Fix signed 0 handling in sincospi (#211260)
DeltaFile
+6-2libclc/clc/lib/generic/math/clc_sincospi.inc
+1-0libclc/clc/lib/generic/math/clc_sincospi.cl
+7-22 files

OpenBSD/src xFAZ61wgnu/usr.bin/perl regcomp_study.c

   Fix for incorrect regular expression matches

   Perl produce silently incorrect regular expression matches when an
   alternation of more than 65535 fixed string branches is compiled
   into a trie in Perl_study_chunk

   CVE-2026-13221

   https://lists.security.metacpan.org/cve-announce/msg/41780104/
VersionDeltaFile
1.3+10-0gnu/usr.bin/perl/regcomp_study.c
+10-01 files

OpenBSD/ports gDbEWpmnet/wstunnel distinfo crates.inc, net/wstunnel/patches patch-Cargo_lock

   Update to wstunnel-10.6.2

   Changes: https://github.com/erebe/wstunnel/releases/tag/v10.6.2

   From  Christoph Liebender (maintainer)
VersionDeltaFile
1.13+102-106net/wstunnel/distinfo
1.13+50-52net/wstunnel/crates.inc
1.7+2-2net/wstunnel/patches/patch-Cargo_lock
1.13+2-2net/wstunnel/Makefile
+156-1624 files