LLVM/project 39a2c6alibcxx/test/libcxx/atomics builtin_clear_padding.pass.cpp, libcxx/test/std/numerics/numeric.ops/numeric.ops.sat saturating.bitint.pass.cpp

[libc++][test][NFC] Removed unsupported compilers from tests (#210413)
DeltaFile
+2-4libcxx/test/std/numerics/numeric.ops/numeric.ops.sat/saturating.bitint.pass.cpp
+1-1libcxx/test/libcxx/atomics/builtin_clear_padding.pass.cpp
+3-52 files

LLVM/project eec2f09libcxx/include/__configuration availability.h

[libc++][NFC] Removed duplicated `_LIBCPP_INTRODUCED_IN_LLVM_23` macros (#210602)

Removed the redundant macros, which apparently were added by two
different patches.
DeltaFile
+0-2libcxx/include/__configuration/availability.h
+0-21 files

LLVM/project ead8fd8libcxx/include/__ranges lazy_split_view.h

[libc++][ranges][NFC] Format `lazy_split_view` (#210644)

Pre-requisite for: https://github.com/llvm/llvm-project/pull/193891
DeltaFile
+7-7libcxx/include/__ranges/lazy_split_view.h
+7-71 files

LLVM/project 1c1c065llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination lshr.ll

[ConstraintElim] LSHR x, n <=  x  when n< bitwidth (#209583)

A logical right shift never increases an unsigned value:
   for %r = lshr %x, %n, add the fact %r u<= %x when LSHR is not poison.

This extends the existing udiv/urem fact modeling to lshr.


https://alive2.llvm.org/ce/z/RUTMwe proof shown with constant value <
bit size
DeltaFile
+87-0llvm/test/Transforms/ConstraintElimination/lshr.ll
+9-2llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+96-22 files

LLVM/project 975c8f5lldb/source/Breakpoint Breakpoint.cpp, lldb/source/Core DumpDataExtractor.cpp

[lldb][NFC] Remove various Stream::Printf calls with constants (#210294)

`Stream::Printf` needs to call various other (variadic) functions, needs
to parse the input string and potentially handle too-long format
outputs. Calling in with a constant string is wasting a lot of
instruction on doing nothing.

assisted-by: claude
DeltaFile
+21-21lldb/source/Expression/Materializer.cpp
+14-14lldb/source/Symbol/UnwindPlan.cpp
+14-14lldb/source/Core/DumpDataExtractor.cpp
+7-7lldb/source/Symbol/SymbolContext.cpp
+7-7lldb/source/DataFormatters/StringPrinter.cpp
+5-5lldb/source/Breakpoint/Breakpoint.cpp
+68-6830 files not shown
+121-12136 files

LLVM/project 192cb1allvm/test/TableGen RuntimeLibcallEmitter-predicate-dag.td, llvm/utils/TableGen/Basic PredicateExpanderDag.cpp PredicateExpanderDag.h

Only apply parens to not
DeltaFile
+4-4llvm/test/TableGen/RuntimeLibcallEmitter-predicate-dag.td
+5-3llvm/utils/TableGen/Basic/PredicateExpanderDag.cpp
+2-3llvm/utils/TableGen/Basic/PredicateExpanderDag.h
+1-1llvm/utils/TableGen/Basic/RuntimeLibcalls.cpp
+12-114 files

LLVM/project b6cd875llvm/test/TableGen RuntimeLibcallEmitter-predicate-dag.td, llvm/utils/TableGen/Basic PredicateExpanderDag.h RuntimeLibcalls.cpp

TableGen: Parenthesize negated predicate-dag leaves with operators

Allows writing more general expressions in the predicate code. Previously
not ("a == b") would be emitted as !a == b.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+18-6llvm/test/TableGen/RuntimeLibcallEmitter-predicate-dag.td
+3-1llvm/utils/TableGen/Basic/PredicateExpanderDag.h
+1-1llvm/utils/TableGen/Basic/RuntimeLibcalls.cpp
+22-83 files

LLVM/project e5c014cllvm/include/llvm/IR RuntimeLibcalls.td RuntimeLibcallsImpl.td, llvm/test/TableGen RuntimeLibcallEmitter.td RuntimeLibcallEmitter-calling-conv.td

RuntimeLibcalls: Rename RuntimeLibcallPredicate to RuntimeLibcallAvailability

Rename to avoid confusing partial name collisions in future changes.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+79-79llvm/include/llvm/IR/RuntimeLibcalls.td
+10-10llvm/test/TableGen/RuntimeLibcallEmitter.td
+11-9llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+8-8llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+5-5llvm/test/TableGen/RuntimeLibcallEmitter-calling-conv.td
+3-3llvm/test/TableGen/RuntimeLibcallEmitter-conflict-warning.td
+116-1143 files not shown
+121-1199 files

LLVM/project 87febc4llvm/include/llvm/IR RuntimeLibcallsImpl.td, llvm/test/TableGen RuntimeLibcallEmitter-predicate-dag.td RuntimeLibcallEmitter-predicate-dag-errors.td

RuntimeLibcalls: Reuse AssemblerPredicate's operators for libcalls

Allow specifying RuntimeLibcall's availability in terms of individual
triple properties composed with logical operators.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+60-0llvm/test/TableGen/RuntimeLibcallEmitter-predicate-dag.td
+24-35llvm/utils/TableGen/Common/SubtargetFeatureInfo.cpp
+56-0llvm/utils/TableGen/Basic/PredicateExpanderDag.cpp
+42-0llvm/test/TableGen/RuntimeLibcallEmitter-predicate-dag-errors.td
+41-0llvm/utils/TableGen/Basic/PredicateExpanderDag.h
+29-2llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+252-373 files not shown
+291-409 files

LLVM/project f557f80llvm/include/llvm/Transforms/Scalar GVN.h, llvm/lib/Transforms/Scalar GVN.cpp

Revert "[GVN] Remove the "private" `llvm::gvn` namespace (NFC) (#210323)"

This reverts commit b8300a76659d65fd9738de1c1e4bf5b71e9ef72b.
DeltaFile
+13-6llvm/include/llvm/Transforms/Scalar/GVN.h
+4-6llvm/lib/Transforms/Scalar/GVN.cpp
+17-122 files

LLVM/project 023361flldb/source/Plugins/Process/Linux NativeRegisterContextLinux_arm64.cpp NativeRegisterContextLinux_arm64.h

[lldb][AArch64][Linux][NFC] Move RegisterSetType enum into header (#207145)

I will be using this later to replace all the register specific
functions this class has (WriteSVE/ReadSVE and so on) with single
functions that use RegisterSetType to decide what to do.

While I'm here, I've made some sizeof and casts use RegisterSetType in
case the underlying type changes later.
DeltaFile
+6-22lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+20-0lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+26-222 files

LLVM/project b9b4541cross-project-tests/intrinsic-header-tests riscv_packed_simd.c, llvm/lib/Target/RISCV RISCVISelLowering.cpp

[RISCV][P-ext] Generalize lowerVECTOR_SHUFFLEAsRV32PNarrowingShift (#210522)

The previous implementation only matches
`shuffle(extract_subvector(src), extract_subvector(src), mask)`.
This patch generalizes it to `shuffle(a, b, mask)`, so we can now lower
it to `PNSRL(concat(a,b), element_bits)` if it is a deinterleave
shuffle. And we use `foldConcatVector` to handle the original pattern
with `extract_subvector`.
DeltaFile
+68-0cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
+64-0llvm/test/CodeGen/RISCV/rvp-zip.ll
+10-31llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+142-313 files

LLVM/project b8300a7llvm/include/llvm/Transforms/Scalar GVN.h, llvm/lib/Transforms/Scalar GVN.cpp

[GVN] Remove the "private" `llvm::gvn` namespace (NFC) (#210323)

Move `AvailableValue` and `AvailableValueInBlock` into GVNPass, similar
to other helper types.

Retain `llvm::gvn::GVNLegacyPass` as just `llvm::GVNLegacyPass` -
"legacy" is already a sufficent hint and it is not going to become more
"private" by stacking "gvn" prefixes to the name.

Ideally, `GVNLegacyPass` should be defined in an anonymous namespace,
but that is not possible because it is declared as a friend of GVNPass.
DeltaFile
+6-13llvm/include/llvm/Transforms/Scalar/GVN.h
+6-4llvm/lib/Transforms/Scalar/GVN.cpp
+12-172 files

LLVM/project 03b5c52llvm/lib/Transforms/Scalar LogicalSROA.cpp, llvm/test/Transforms/LSROA basictest.ll escaping.ll

[LSROA] Add logical SROA pass (#192058)

This commit adds a logical-pointer compatible SROA pass. As-is, the pass
does not optimizes nested structs, arrays, or usages of structured
alloca with non-structured GEP instructions.

Adding support for both is not complex, but increase the size of the PR,
hence we can start with this.

Next step will be to allow mem2reg to apply on logical alloca/ptr, and
to add support for nesting/arrays.

---------

Co-authored-by: Nikita Popov <npopov at redhat.com>
DeltaFile
+228-0llvm/lib/Transforms/Scalar/LogicalSROA.cpp
+147-0llvm/test/Transforms/LSROA/basictest.ll
+100-0llvm/test/Transforms/LSROA/escaping.ll
+78-0llvm/test/Transforms/LSROA/array.ll
+54-0llvm/test/Transforms/LSROA/phi.ll
+39-0llvm/test/Transforms/LSROA/nesting.ll
+646-09 files not shown
+769-015 files

LLVM/project 6fb8d5flldb/source/Plugins/TraceExporter/docs htr.md

[lldb][docs] Remove image links from trace doc (#210664)

The document was first added in https://reviews.llvm.org/D105741 but
that did not include the images (they were not in the RFC or discussions
either).
DeltaFile
+0-10lldb/source/Plugins/TraceExporter/docs/htr.md
+0-101 files

LLVM/project 37a2803llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 vector-deinterleave-load.ll fixed-vector-interleave.ll

[AArch64] Add combine for interleave deinterleave (#208414)

These combines now can emit ldN/stN without interleaved access pass.
DeltaFile
+158-66llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+133-0llvm/test/CodeGen/AArch64/vector-deinterleave-load.ll
+9-65llvm/test/CodeGen/AArch64/fixed-vector-interleave.ll
+68-0llvm/test/CodeGen/AArch64/vector-interleave-store.ll
+5-4llvm/test/CodeGen/AArch64/scalable_masked_interleaved_stores.ll
+3-3llvm/test/CodeGen/AArch64/sve-ldst-sext.ll
+376-1382 files not shown
+381-1418 files

LLVM/project 1ad0e69clang/lib/Driver/ToolChains FreeBSD.cpp Serenity.cpp, clang/test/Driver freebsd.c

[Driver,FreeBSD] Fix -pie for -r and -no-pie links (#210663)

Port Gnu.cpp changes ae623d16d50c and cac82e26c642 to FreeBSD and
Serenity: -r should suppress -pie. -nopie, OpenBSD specific, should not
be used by other OSes.

Group the options selecting the link mode and place them after -m, as
gnutools::Linker does, so that -r suppresses -export-dynamic and
--hash-style as well, and -no-pie overrides the -fsanitize PIE default.

Drop --enable-new-dtags: default in modern linkers.

Change -Bstatic to -static to follow Gnu.cpp (identical in lld and older
GNU ld).
DeltaFile
+21-21clang/lib/Driver/ToolChains/FreeBSD.cpp
+10-6clang/test/Driver/freebsd.c
+1-2clang/lib/Driver/ToolChains/Serenity.cpp
+32-293 files

LLVM/project 4234ff6libcxx/include/__functional function.h

Reapply "[libc++][NFC] Inline std::function members into the class body" (#209555) (#210260)

This caused LLDB to fail, which has been fixed now.

This reverts commit 7618426138aae95561da676a1d1e10ee0392bf78.
DeltaFile
+38-105libcxx/include/__functional/function.h
+38-1051 files

LLVM/project 72e0b55llvm/include/llvm/Analysis ConstraintSystem.h, llvm/lib/Analysis ConstraintSystem.cpp

[ConstraintSys] Solve sub-system with variables needed for query (#210432)

Update ConstraintSystem to only solve the sub-system containing all
variables relevant to a given query.

The sub-system contains the transitive closure of all variables in rows
involving the variables in the constraint to prove.

The iterative collection loop only needs very few iterations to
complete. The pruned system can significantly speed up Fourier–Motzkin
elimination and reduce the cost of copying the system.

This helps to notably decrease compile-time in cases when there are
larger numbers of variables & rows (especially during (Thin)LTO).

Highlights include
 * stage1-ReleaseThinLTO: -0.16%
 * stage1-ReleaseLTO-g: -0.19%
 * stage1-aarch64-O3: -0.04%

    [7 lines not shown]
DeltaFile
+85-4llvm/lib/Analysis/ConstraintSystem.cpp
+13-11llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+7-0llvm/include/llvm/Analysis/ConstraintSystem.h
+2-1llvm/test/Transforms/ConstraintElimination/gep-arithmetic-signed-predicates.ll
+107-164 files

LLVM/project f214ce6utils/bazel/llvm-project-overlay/libc BUILD.bazel, utils/bazel/llvm-project-overlay/libc/test/src/arpa/inet BUILD.bazel

[libc][bazel] Add missing arpa/inet functions and tests (#210310)

Add bazel build targets for the remaining arpa/inet functions
(inet_addr, inet_aton, inet_ntoa, and inet_ntop) along with their unit
tests and supporting targets (__support_net_address, headers, and proxy
types).

Assisted by Gemini.
DeltaFile
+110-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+43-0utils/bazel/llvm-project-overlay/libc/test/src/arpa/inet/BUILD.bazel
+153-02 files

LLVM/project a4ca7f3libc/hdr CMakeLists.txt

[libc][cmake] Remove proxy header XXX_macros -> XXX.h deps (#210008)

In the full build mode, these headers do not include the main XXX.h
header, which makes sense, because they exist to allow us only to expose
a part of it. They do include it in the overlay mode, but in this case,
they are referring to the header from the libc being overlaid, which
exists outside of the build system.

Also fix float_macros by moving
libc.include.llvm-libc-macros.float_macros from DEPENDS to
FULL_BUILD_DEPENDS, as llvm-libc-macros/float-macros.h is only included
under LIBC_FULL_BUILD.
DeltaFile
+1-37libc/hdr/CMakeLists.txt
+1-371 files

LLVM/project 751fca6clang/test/Driver freebsd-mips-as.c freebsd.c

[Driver][test] Unwrap freebsd-mips-as.c RUN lines (#210658)

Collapse 3-line RUN blocks to 2 lines and move -### immediately after
%clang, matching the prevailing style for new tests.
DeltaFile
+34-51clang/test/Driver/freebsd-mips-as.c
+14-23clang/test/Driver/freebsd.c
+48-742 files

LLVM/project f9a440bllvm/test/TableGen RuntimeLibcallEmitter-predicate-dag.td, llvm/utils/TableGen/Basic PredicateExpanderDag.cpp PredicateExpanderDag.h

Only apply parens to not
DeltaFile
+4-4llvm/test/TableGen/RuntimeLibcallEmitter-predicate-dag.td
+5-3llvm/utils/TableGen/Basic/PredicateExpanderDag.cpp
+2-3llvm/utils/TableGen/Basic/PredicateExpanderDag.h
+1-1llvm/utils/TableGen/Basic/RuntimeLibcalls.cpp
+12-114 files

LLVM/project 92aded9flang/lib/Lower PFTBuilder.cpp Bridge.cpp, flang/test/Lower do_loop_execute_region_wrap.f90 do_loop_unstructured.f90

[flang][PFT-to-MLIR] Wrap unstructured Fortran constructs in scf.execute_region (#208635)

Extend the PFT-to-MLIR (HLFIR/FIR) lowering so unstructured DO and IF
constructs are emitted inside scf.execute_region, hiding their
multi-block CFG behind a single op. OpenACC lowerings that reject
multi-block content (e.g. the "unstructured do loop in combined acc
construct" TODO in OpenACC.cpp) now see a structured op instead.

The main goal is to prevent propagating the "unstructured" property up
the evaluation tree just because one nested evaluation is unstructured;
which is the current behavior.

Flag: -mmlir --wrap-unstructured-constructs-in-execute-region (default
on).

An evaluation is wrappable iff all of the following hold:

  * wrap flag on
  * eval is parser::DoConstruct or parser::IfConstruct

    [37 lines not shown]
DeltaFile
+227-4flang/lib/Lower/PFTBuilder.cpp
+103-102flang/test/Lower/OpenMP/unstructured.f90
+177-24flang/test/Lower/OpenACC/acc-unstructured.f90
+171-0flang/test/Lower/do_loop_execute_region_wrap.f90
+144-4flang/lib/Lower/Bridge.cpp
+38-87flang/test/Lower/do_loop_unstructured.f90
+860-22122 files not shown
+1,181-52128 files

LLVM/project ba9a115llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 vselect-masked-shift.ll

[AArch64] Fold vector shifts guarded against oversized amounts into USHL (#207628)

`select(icmp ult(amt, EltSize), shl(x, amt), 0)`, where EltSize is the
{8, 16, 32, 64} lane size, is the usual way to guard a variable vector
shift against shl poison. On AArch64 the guard is unnecessary because
USHL already returns zero once the shift amount reaches the lane size.

For v4i32:

Before:
```
        movi    v2.4s, #63
        movi    v3.4s, #32
        and     v1.16b, v1.16b, v2.16b
        ushl    v0.4s, v0.4s, v1.4s
        cmhi    v1.4s, v3.4s, v1.4s
        and     v0.16b, v1.16b, v0.16b
```
After:

    [22 lines not shown]
DeltaFile
+277-0llvm/test/CodeGen/AArch64/vselect-masked-shift.ll
+81-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+358-02 files

LLVM/project 9e2e9b3libc/cmake/modules LLVMLibCTestRules.cmake, libc/test/UnitTest ExecuteFunctionUnix.cpp HermeticTestUtils.cpp

[libc] Port process utilities to hermetic mode and enable some tests (#209999)

This is achieved by calling internal libc functions in hermetic mode. In
the overlay mode I keep calling the system functions so that the tests
work even on systems which don't have these implemented.

I also needed to implement the delete operators as both the libc proper
and the test framework uses them nowadays.

This is sufficient to enable all stdlib tests in hermetic mode, except
for one, which actually exposes a bug in the implementation. I'll deal
with that in a separate patch.
DeltaFile
+41-13libc/test/UnitTest/ExecuteFunctionUnix.cpp
+5-14libc/test/UnitTest/HermeticTestUtils.cpp
+13-2libc/test/UnitTest/CMakeLists.txt
+13-0libc/cmake/modules/LLVMLibCTestRules.cmake
+1-11libc/test/src/stdlib/CMakeLists.txt
+2-3libc/test/UnitTest/LibcDeathTestExecutors.cpp
+75-431 files not shown
+76-437 files

LLVM/project 56e13dcllvm/docs LangRef.md

Explicitly restrict the atomic ordering constraints to perfectly overlapping accesses.
DeltaFile
+29-18llvm/docs/LangRef.md
+29-181 files

LLVM/project 99789calibcxx/docs/Status Cxx23Issues.csv, libcxx/test/std/ranges/range.adaptors/range.adjacent.transform helpers.h

[libc++] Add tests for LWG3798 and mark it as Complete (#210640)
DeltaFile
+5-0libcxx/test/std/ranges/range.adaptors/range.adjacent.transform/helpers.h
+4-0libcxx/test/std/ranges/range.adaptors/range.adjacent.transform/iterator/member_types.compile.pass.cpp
+1-1libcxx/docs/Status/Cxx23Issues.csv
+10-13 files

LLVM/project 21d537ellvm/test/Transforms/LoopVectorize iv_outside_user.ll

[LV][Test] Rename conflicting IR values to avoid FileCheck conflicts. nfc (#210293)
DeltaFile
+50-50llvm/test/Transforms/LoopVectorize/iv_outside_user.ll
+50-501 files

LLVM/project e2572b8lld/ELF/Arch RISCV.cpp, lld/test/ELF riscv-feature-zicfilp-unlabeled.s

[LLD][RISCV][Zicfilp] Generate unlabeled landing pad-style PLT (#145461)

To support dynamic linking when Zicfilp is enabled, lpad insns are
inserted into PLTs. This patch generates the unlabeled landing pad-style
PLT, in which all the lpads have label `0`, when ZICFILP-unlabeled is
enabled:

--- PLT Header:

```
1:  auipc  t3, %pcrel_hi(.got.plt)
    sub    t1, t1, t2
    l[w|d] t2, %pcrel_lo(1b)(t3)
    addi   t1, t1, -(hdr size + 16)
    addi   t0, t3, %pcrel_lo(1b)
    srli   t1, t1, log2(16/PTRSIZE)
    l[w|d] t0, PTRSIZE(t0)
    jr     t2
```

    [16 lines not shown]
DeltaFile
+59-23lld/ELF/Arch/RISCV.cpp
+32-0lld/test/ELF/riscv-feature-zicfilp-unlabeled.s
+91-232 files