LLVM/project ec39bcc — llvm/lib/Target/RISCV/MCTargetDesc RISCVBaseInfo.h RISCVELFStreamer.cpp

[RISCV] Add ABI_IL32PC64E and ABI_CHERIOT to RISCVABI::isRVE. Use in RISCVTargetELFStreamer::finish. NFC

The isRVE function is used in codegen, but as far as I know we don't support
codegen with these ABIs yet so that code isn't reachable.
DeltaFile
+8-6llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
+2-1llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
+10-72 files

LLVM/project eba0d17 — llvm/lib/Target/RISCV RISCVRegisterInfo.cpp RISCVSubtarget.h, llvm/lib/Target/RISCV/MCTargetDesc RISCVTargetStreamer.cpp RISCVBaseInfo.h

[RISCV] Add helper functions to RISCVABI namespace to categorize properties of ABIs. NFC

Initially isRVE, isSoftFP, and getStackAlignment.
DeltaFile
+22-0llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
+5-12llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
+8-9llvm/lib/Target/RISCV/RISCVCallingConv.cpp
+3-10llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp
+1-6llvm/lib/Target/RISCV/RISCVSubtarget.h
+1-1llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
+40-386 files

LLVM/project 8f2f5ea — clang/test/Modules class-instantiate-no-change.cppm lsv-debuginfo.cpp, clang/test/PCH gch-probe.c debug-info-pch-path.c

[SystemZ][Clang] Update Modules and PCH lit tests for z/OS (#238624)

Mark the modules & pch lit tests that are failing on z/OS as xfail or
unsupported.
DeltaFile
+3-3clang/test/PCH/gch-probe.c
+3-3clang/test/PCH/debug-info-pch-path.c
+1-1clang/test/Modules/lsv-debuginfo.cpp
+1-1clang/test/Modules/DebugInfoSubmodules.c
+1-1clang/test/Modules/DebugInfoSubmoduleImport.c
+1-0clang/test/Modules/class-instantiate-no-change.cppm
+10-911 files not shown
+21-917 files

LLVM/project 908a14d — mlir/lib/Dialect/Vector/IR VectorOps.cpp, mlir/test/Dialect/Vector vector-transpose-lowering.mlir

[mlir][vector] handle empty permutation in transpose (#231940)

add an early check and return `success()` if transposing a 0D vector.

fixes #231817
DeltaFile
+11-0mlir/test/Dialect/Vector/vector-transpose-lowering.mlir
+4-0mlir/lib/Dialect/Vector/IR/VectorOps.cpp
+15-02 files

LLVM/project abdabcc — llvm/lib/Target/AArch64 AArch64SVEInstrInfo.td, llvm/test/CodeGen/AArch64 sve-intrinsics-and-xor.ll sve-intrinsics-xor-and.ll

[AArch64] Combine SVE AND and XOR to BIC for _m form

Add patterns to combine the expressions of the following type to BIC
when possible:

```
return svand_u32_m(svptrue_b32(), a, sveor_u32_x(svptrue_b32(), a, b));
```

Cover symmetric case where result of AND is used by EOR for the above
expression.

Cover cases where the inner node is of _u form like sveor_u32_u or
sveand_u32_u.

Cover cases where the inner node is of _m/_z form under matching
predicates or all-active predicates for the inner node.

Also, cover the case where the inner node is a normal LLVM AND(or XOR)

    [4 lines not shown]
DeltaFile
+82-0llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
+42-23llvm/test/CodeGen/AArch64/sve-intrinsics-xor-and.ll
+41-22llvm/test/CodeGen/AArch64/sve-intrinsics-and-xor.ll
+165-453 files

LLVM/project ed37935 — libcxx/include/__optional optional_ref.h optional.h, libcxx/test/libcxx/utilities/optional/optional.iterator assert.arithmetic.pass.cpp

[libc++] Provide `optional::iterator` a packed, bounded representation (#203782)

The current situation with `optional::iterator`:

If the ABI switch is on, then `optional`'s iterator type is
`__bounded_iter` as it is a bit stronger, since
`__static_packed_bounded_iter` can only guarantee that a dereference
isn't out of bounds `__bounded_iter` can guard against dereferencing an
uninitialized item in bounds.

Otherwise, if `T` fulfills the alignment requirements for
`__static_packed_bounded_iter`, then the iterator type is that.

Otherwise, it is `__capacity_aware_iterator`. 

Due to the implementation of `__static_packed_bounded_iter` which relies
on pointer tagging, `optional::iterator` cannot be constexpr.
DeltaFile
+73-2libcxx/test/libcxx/utilities/optional/optional.iterator/assert.arithmetic.pass.cpp
+51-21libcxx/include/__optional/optional.h
+23-11libcxx/include/__optional/optional_ref.h
+15-8libcxx/test/libcxx/utilities/optional/optional.object/optional.iterator/assert.bounded_iterator.pass.cpp
+6-2libcxx/test/std/utilities/optional/optional.iterator/end.pass.cpp
+6-1libcxx/test/std/utilities/optional/optional.iterator/begin.pass.cpp
+174-458 files not shown
+190-4714 files

LLVM/project 1136f8d — llvm/include/llvm/ADT ImmutableSet.h, llvm/include/llvm/IR Operator.h

[llvm] Remove forward and friend declarations of non-existent types (NFC) (#238694)

This patch removes forward and friend declarations of classes that have
no definitions in the codebase.

Note that llvm::TargetExtType exists in IR, whereas
llvm::sandboxir::TargetExtType has never been defined.

Assisted-by: Antigravity
DeltaFile
+0-2llvm/include/llvm/SandboxIR/Type.h
+0-2llvm/include/llvm/ADT/ImmutableSet.h
+0-1llvm/include/llvm/IR/Operator.h
+0-53 files

LLVM/project b331296 — clang/include/clang/AST CommentSema.h, clang/include/clang/Driver Tool.h

[clang] Remove forward declarations of non-existent types (NFC) (#238693)

This patch removes forward declarations of classes that have no
definitions in the codebase.

Assisted-by: Antigravity
DeltaFile
+0-1clang/include/clang/Driver/Tool.h
+0-1clang/include/clang/AST/CommentSema.h
+0-22 files

LLVM/project d474c7f — llvm/lib/Target/AMDGPU CMakeLists.txt GCNSchedStrategy.h, llvm/test/CodeGen/AMDGPU machine-scheduler-sink-trivial-remats-debug.mir

[AMDGPU][CodeGen] Move rematerialization strategy out of scheduler (NFC)

This un-ties the rematerialization strategy based on the
target-independent `Rematerializer` from the `PreRARematStage`, allowing
its use at different points in the pipeline and making future changes to
the strategy easier thanks to better separation of concerns. The
strategy is moved as-is with no functional changes at the moment.
DeltaFile
+64-562llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+567-0llvm/lib/Target/AMDGPU/GCNRematStrategy.cpp
+327-0llvm/lib/Target/AMDGPU/GCNRematStrategy.h
+9-196llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
+8-8llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-debug.mir
+1-0llvm/lib/Target/AMDGPU/CMakeLists.txt
+976-7666 files

LLVM/project f82b0cb — llvm/lib/Target/SPIRV SPIRVInstrInfo.td, llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_floating_point arbitrary_precision_floating_point_test_extended.ll

[SPIR-V] Fix ALTERA write pipe and float-to-int cast opcodes (#238729)

- OpWritePipeBlockingALTERA reused the read opcode, so objects encoded
writes as reads
- OpArbitraryFloatCastToIntALTERA used an invalid opcode
DeltaFile
+2-2llvm/lib/Target/SPIRV/SPIRVInstrInfo.td
+1-1llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_floating_point/arbitrary_precision_floating_point_test_extended.ll
+3-32 files

LLVM/project 5a35b52 — llvm/lib/Target/AMDGPU GCNSchedStrategy.h GCNSchedStrategy.cpp

[AMDGPU][CodeGen] Move rematerialization strategy out of scheduler (NFC)

This un-ties the rematerialization strategy based on the
target-independent `Rematerializer` from the `PreRARematStage`, allowing
its use at different points in the pipeline and making future changes to
the strategy easier thanks to better separation of concerns. The
strategy is moved as-is with no functional changes at the moment.
DeltaFile
+0-567llvm/lib/Target/AMDGPU/GCNRematerializationStrategy.cpp
+567-0llvm/lib/Target/AMDGPU/GCNRematStrategy.cpp
+0-327llvm/lib/Target/AMDGPU/GCNRematerializationStrategy.h
+327-0llvm/lib/Target/AMDGPU/GCNRematStrategy.h
+7-7llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+3-2llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
+904-9031 files not shown
+905-9047 files

LLVM/project bdc35d4 — llvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64SVEInstrInfo.td, llvm/test/CodeGen/AArch64 sve-intrinsics-xor-and.ll sve-intrinsics-and-xor.ll

[AArch64] Add patterns to combine SVE AND and XOR to BIC

Add ISel patterns to rewrite the following pattern to BIC:

```
return svand_u32_x(svptrue_b32(), a, sveor_u32_x(svptrue_b32(), a, b));
```

Cover cases where atleast one of AND and XOR node is of _u form or is a
normal LLVM AND/XOR node.

Also, combine sve.and.u and sve.eor(.z) when predicate for sve.and.u
matches that of sve.eor(.z) or the predicate of sve.eor(.z) is an
all-active predicate.

Cover all SVE integer widths and cover the following symmetric case:

```
return sveor_u32_x(svptrue_b32(), a, svand_u32_x(svptrue_b32(), a, b));
```
DeltaFile
+111-12llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
+28-17llvm/test/CodeGen/AArch64/sve-intrinsics-xor-and.ll
+28-17llvm/test/CodeGen/AArch64/sve-intrinsics-and-xor.ll
+2-2llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+169-484 files

LLVM/project 1ac17ec — clang/test/Sema aarch64-fpm-helpers-extern-cxx.cpp, clang/utils/TableGen NeonEmitter.cpp

[Clang][AArch64] Give FPM scale helper declarations C linkage in arm_vector_types.h (#238025)

Fixes 22287cb048390352d95d8a4925dfb9f96835444d.

#227722 defined `__arm_set_fpm_lscale`, `__arm_set_fpm_nscale`, and
`__arm_set_fpm_lscale2` as `TargetLibBuiltin` with `RequireDeclaration`
and replaced their `static __inline__` definitions in
`arm_vector_types.h` with plain declarations.
Because `TargetLibBuiltin` lazily creates an implicit declaration with C
language linkage in C++, including `<arm_neon.h>` inside an explicit
`extern "C++" { ... }` block (commonly hit on Windows ARM64 where UCRT's
`wchar.h` includes `<arm_neon.h>`) fails with `error: declaration of
'__arm_set_fpm_lscale' has a different language linkage`.

This PR wraps the three declarations in `extern "C"` under C++ to match
the builtin linkage (consistent with `arm_acle.h` and `arm_sve.h`). This
is a language linkage issue, separate from the `uint64_t` type mismatch
in #234780.
DeltaFile
+57-0clang/test/Sema/aarch64-fpm-helpers-extern-cxx.cpp
+7-1clang/utils/TableGen/NeonEmitter.cpp
+64-12 files

LLVM/project 06021cc — llvm/test/CodeGen/AArch64 sve-intrinsics-and-xor.ll sve-intrinsics-xor-and.ll

[AArch64] NFC: Add pre-commit tests for SVE AND-XOR/XOR-AND combining

Add tests for patterns like AND(a, XOR(a, b)) and XOR(a, AND(a, b))
that could be replaced by `BIC(a, b)`.

Cover various cases involving plain LLVM AND/XOR instructions and
sve.and/eor[.u/z] intrinsics.

Add negative test cases where the instruction sequence can't be replaced
by BIC.
DeltaFile
+224-0llvm/test/CodeGen/AArch64/sve-intrinsics-and-xor.ll
+224-0llvm/test/CodeGen/AArch64/sve-intrinsics-xor-and.ll
+448-02 files

LLVM/project 4cc4adb — mlir/lib/Dialect/Transform/IR TransformTypes.cpp TransformAttrs.cpp, mlir/lib/Dialect/UB/IR UBOps.cpp

[mlir][NFC] Remove includes provided by generated declarations and definitions

#236155 and #238735 made the generated declarations and definitions of
ops, attributes, types and interfaces include the core MLIR headers they
require. Includes that headers and source files only had for the
generated code are therefore redundant. This removes them in MLIR, Flang
and ClangIR.

Includes of headers that the hand-written code uses directly are kept,
even when the generated code includes them as well.

Co-authored-by: Claude <noreply at anthropic.com>
DeltaFile
+0-5mlir/lib/Dialect/Transform/IR/TransformAttrs.cpp
+0-4mlir/lib/Dialect/X86/IR/X86Dialect.cpp
+0-4mlir/lib/Dialect/WasmSSA/IR/WasmSSADialect.cpp
+0-4mlir/lib/Dialect/UB/IR/UBOps.cpp
+0-4mlir/lib/Dialect/Transform/IR/TransformTypes.cpp
+0-3mlir/test/lib/Dialect/Test/TestAttributes.cpp
+0-24173 files not shown
+0-295179 files

LLVM/project 6fcfbbb — llvm/lib/Target/SPIRV SPIRVPostLegalizer.cpp, llvm/test/CodeGen/SPIRV/legalization vector-legalization-kernel.ll

[SPIR-V] Preserve float type of undef operands in G_CONCAT_VECTORS (#238510)

Untyped undef padding fell back to an integer vector, which spirv-val
rejects
DeltaFile
+52-0llvm/test/CodeGen/SPIRV/legalization/vector-legalization-kernel.ll
+1-0llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
+53-02 files

LLVM/project bfac18e — . do_commit_mantissa_manip.py

clean helper scripts
DeltaFile
+0-31do_commit_mantissa_manip.py
+0-311 files

LLVM/project ae2073b — libc/src/math/generic modff80.cpp

nits
DeltaFile
+2-0libc/src/math/generic/modff80.cpp
+2-01 files

LLVM/project 9d4757c — libc/src/__support/math CMakeLists.txt modff80.h, libc/test/src/math/smoke CMakeLists.txt modff80_test.cpp

nits
DeltaFile
+2-2libc/src/__support/math/CMakeLists.txt
+3-1libc/src/__support/math/modff80.h
+3-0libc/test/src/math/smoke/modff80_test.cpp
+1-0libc/test/src/math/smoke/CMakeLists.txt
+9-34 files

LLVM/project cf5dacc — . do_commit_mantissa_manip.py, libc/shared/math modff80.h

adds modff80 function
DeltaFile
+31-0do_commit_mantissa_manip.py
+27-0libc/src/__support/math/modff80.h
+24-0libc/shared/math/modff80.h
+24-0libc/src/math/generic/modff80.cpp
+21-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+21-0libc/src/math/modff80.h
+148-025 files not shown
+229-131 files

LLVM/project 24e3d8d — libc/src/math scalbnf80.h, libc/src/math/generic scalbnf80.cpp scalblnf80.cpp

clang-format
DeltaFile
+1-2libc/src/math/generic/scalbnf80.cpp
+1-2libc/src/math/generic/scalblnf80.cpp
+2-1libc/test/src/math/smoke/scalbnf80_test.cpp
+2-1libc/test/src/math/smoke/scalblnf80_test.cpp
+2-1libc/test/shared/shared_math_test.cpp
+2-1libc/src/math/scalbnf80.h
+10-81 files not shown
+11-107 files

LLVM/project 0d210d2 — . do_commit_exp_scaling.py, libc/src/__support/math scalbnf80.h scalblnf80.h

nits
DeltaFile
+0-31do_commit_exp_scaling.py
+22-0utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
+6-6libc/src/__support/math/CMakeLists.txt
+3-3libc/src/__support/math/ldexpf80.h
+3-1libc/src/__support/math/scalbnf80.h
+3-1libc/src/__support/math/scalblnf80.h
+37-424 files not shown
+49-4210 files

LLVM/project f52e6b1 — libc/src/math/generic scalbnf80.cpp scalblnf80.cpp

nits
DeltaFile
+2-0libc/src/math/generic/scalbnf80.cpp
+2-0libc/src/math/generic/scalblnf80.cpp
+2-0libc/src/math/generic/ldexpf80.cpp
+6-03 files

LLVM/project 44a8d2a — libc/src/__support/math scalbnf80.h scalblnf80.h, libc/src/math/generic CMakeLists.txt

adds ldexpf80, scalbnf80, scalblnf80
DeltaFile
+65-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+36-0libc/test/src/math/smoke/CMakeLists.txt
+33-0libc/src/math/generic/CMakeLists.txt
+32-0libc/src/__support/math/CMakeLists.txt
+31-0libc/src/__support/math/scalbnf80.h
+31-0libc/src/__support/math/scalblnf80.h
+228-035 files not shown
+603-341 files

LLVM/project 60e1d92 — . do_commit_exp_decomp.py, libc/src/__support/math llogbf80.h logbf80.h

adds frexpf80, ilogbf80, llogbf80, logbf80
DeltaFile
+84-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+44-0libc/src/math/generic/CMakeLists.txt
+40-0libc/src/__support/math/CMakeLists.txt
+31-0do_commit_exp_decomp.py
+29-0libc/src/__support/math/llogbf80.h
+29-0libc/src/__support/math/logbf80.h
+257-040 files not shown
+743-446 files

LLVM/project 5f144cd — . do_commit_exp_decomp.py, libc/src/__support/math logbf80.h llogbf80.h

nits
DeltaFile
+40-0libc/test/src/math/smoke/CMakeLists.txt
+0-31do_commit_exp_decomp.py
+8-8libc/src/__support/math/CMakeLists.txt
+3-4libc/src/__support/math/logbf80.h
+3-4libc/src/__support/math/llogbf80.h
+3-4libc/src/__support/math/ilogbf80.h
+57-519 files not shown
+80-5915 files

LLVM/project 523f38b — libc/src/__support/math logbf80.h, libc/src/math/generic logbf80.cpp frexpf80.cpp

clang-format
DeltaFile
+1-3libc/src/__support/math/logbf80.h
+1-2libc/src/math/generic/logbf80.cpp
+1-2libc/src/math/generic/frexpf80.cpp
+3-73 files

LLVM/project 47fe785 — libc/src/__support/math CMakeLists.txt frexpf80.h, utils/bazel/llvm-project-overlay/libc BUILD.bazel

cast from f128
DeltaFile
+6-1libc/src/__support/math/frexpf80.h
+2-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+2-0libc/src/__support/math/CMakeLists.txt
+10-13 files

LLVM/project 158b50f — libc/src/__support/math iscanonicalf80.h CMakeLists.txt, libc/src/math/generic CMakeLists.txt

[libc][math] Adds classification functions for float80 (#238686)
DeltaFile
+76-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+55-0libc/test/src/math/smoke/CMakeLists.txt
+44-0libc/src/math/generic/CMakeLists.txt
+40-0libc/src/__support/math/CMakeLists.txt
+34-0libc/src/__support/math/iscanonicalf80.h
+33-0utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
+282-039 files not shown
+884-345 files

LLVM/project 4bb66dc — flang/lib/Lower/OpenMP OpenMP.cpp

[flang][OpenMP] Extract the declare-reduction op naming into helpers

genOpenMPDeclareReductionImpl computed the op name for each listed type with
an 88-line common::visit nested inside its per-type loop, with the inner
visit over the defined-operator alternatives reaching four levels deep.

Lift it out into three file-static helpers: getDeclareReductionOpName
dispatches on the reduction identifier, and getDefinedOperatorOpName and
getProcedureDesignatorOpName handle the two alternatives. The
named-reduction case is now plain straight-line code rather than a lambda
body, and the deepest statements move from roughly column 38 to column 12.

The bodies move verbatim; the comments move with them, re-wrapped to fill 80
columns now that they are no longer indented for a deeply nested lambda.

No functional change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+108-88flang/lib/Lower/OpenMP/OpenMP.cpp
+108-881 files