LLVM/project b153f17llvm/lib/Transforms/InstCombine InstructionCombining.cpp, llvm/test/Transforms/InstCombine gep-fold-chained-const-select.ll

[InstCombine] Fold chained GEP with constant base into single GEP (#170439)

Fixes https://github.com/llvm/llvm-project/issues/167014.
DeltaFile
+208-0llvm/test/Transforms/InstCombine/gep-fold-chained-const-select.ll
+41-0llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+249-02 files

LLVM/project 0f54961llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-maximum.ll simplify-demanded-fpclass-minimumnum.ll

InstCombine: Introduce nsz flag on minimum/maximum in SimplifyDemandedFPClass (#173898)

Alive isn't particularly happy with this in the case where
one of the inputs could be zero, but I think
it's wrong: https://alive2.llvm.org/ce/z/dF7V6k

nsz shouldn't permit introducing a -0 result where
there wasn't one in the input here.
DeltaFile
+49-49llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maximum.ll
+49-49llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-minimumnum.ll
+48-48llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maximumnum.ll
+48-48llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-minimum.ll
+24-7llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+218-2015 files

LLVM/project 007e81allvm/lib/ObjectYAML ELFYAML.cpp

[LLVM][NFC] Remove unused YAML strong typedefs (#172933)

DeltaFile
+0-6llvm/lib/ObjectYAML/ELFYAML.cpp
+0-61 files

LLVM/project 3342587.github/workflows release-lit.yml release-tasks.yml

worklows/release-tasks: Remove the release-lit workflow (#174644)

This hasn't been working for a while, and I think we should wait until
lit is part of the llvm organization on pypi before we start trying to
automate its release again.

(cherry picked from commit a331728c7a68a08c621070b9cab5cf1f72b425e2)
DeltaFile
+0-79.github/workflows/release-lit.yml
+0-10.github/workflows/release-tasks.yml
+0-892 files

LLVM/project 48ce1f6clang/lib/Serialization ASTReader.cpp

[Serialization] Complete only needed partial specializations

It is unclear (to me) why this needs to be done "for safety", but
this change significantly improves the effectiveness of lazy loading.

Reviewed as part of https://github.com/llvm/llvm-project/pull/133057
DeltaFile
+2-8clang/lib/Serialization/ASTReader.cpp
+2-81 files

LLVM/project 4304106libcxx/include module.modulemap.in, libcxx/include/__algorithm find_if.h

Reapply "[libc++] Optimize std::find_if" (#175903) (#175921)

#175913 removed that `__builtin_assume_dereferenceable(ptr, 0)` implies
`ptr != nullptr`, which should allow us to use the builtin with LLVM 23.

This reverts commit 776c09c212e945fdceeae240b42c38df3dd34727.
DeltaFile
+74-0libcxx/include/__memory/valid_range.h
+0-37libcxx/include/__utility/is_valid_range.h
+4-16libcxx/test/benchmarks/algorithms/nonmodifying/find.bench.cpp
+6-0libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp
+3-0libcxx/include/__algorithm/find_if.h
+1-1libcxx/include/module.modulemap.in
+88-544 files not shown
+92-5810 files

LLVM/project dbf61a8clang/docs ReleaseNotes.rst, llvm/docs ReleaseNotes.md

[FMV][AArch64] Release notes for clang/llvm 22

Clang (support level upgraded to Release in ACLE)

  - Resolver functions can use the PAC and BTI hardening settings.
  - Users can override function version priority.
  - Unreachable functions versions are diagnosed and ignored.

LLVM (bug fix and improvements in IPO/GlobalOpt)

  - Fixed static resolution of indirect calls to versioned functions,
    by separating unrelated caller versions which were mixed together.
  - Improved the accuracy of the algorithm for low version counts.
DeltaFile
+5-0clang/docs/ReleaseNotes.rst
+3-0llvm/docs/ReleaseNotes.md
+8-02 files

LLVM/project e72b61blld/ELF/Arch LoongArch.cpp

Address weining's comments
DeltaFile
+4-2lld/ELF/Arch/LoongArch.cpp
+4-21 files

LLVM/project 808a6ballvm/lib/Transforms/Vectorize VPlanConstruction.cpp, llvm/test/Transforms/LoopVectorize iv-select-cmp-fold-tail.ll

[VPlan] Bail out when rdx result cannot be found in handleFindLast.

Turn assertion from 2abd6d6d7ac
(https://github.com/llvm/llvm-project/pull/158088) into a bail
out to prevent crash when tail-folding.

Fixes https://github.com/llvm/llvm-project/issues/175990.
DeltaFile
+41-0llvm/test/Transforms/LoopVectorize/iv-select-cmp-fold-tail.ll
+3-1llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
+44-12 files

LLVM/project 445d626clang/lib/Interpreter IncrementalExecutor.cpp

[clang-repl] Use more precise search to find the orc runtime. (#175805)

The new mechanism relies on the path in the toolchain which should be
the autoritative answer. This patch tweaks the discovery of the orc
runtime from unittests where the resource directory is hard to deduce.

Should address the issue raised in #175435 and #175322

(cherry picked from commit 84c19e7cf303a0525fd6c7bf5d03053714402c91)
DeltaFile
+76-71clang/lib/Interpreter/IncrementalExecutor.cpp
+76-711 files

LLVM/project 2a15022llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-maximum.ll simplify-demanded-fpclass-minimumnum.ll

InstCombine: Introduce nsz flag on minimum/maximum in SimplifyDemandedFPClass

Alive isn't particularly happy with this in the case where
one of the inputs could be zero, but I think
it's wrong: https://alive2.llvm.org/ce/z/dF7V6k

nsz shouldn't permit introducing a -0 result where
there wasn't one in the input here.
DeltaFile
+49-49llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maximum.ll
+49-49llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-minimumnum.ll
+48-48llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maximumnum.ll
+48-48llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-minimum.ll
+24-7llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+218-2015 files

LLVM/project b84ffe0llvm/lib/Target/WebAssembly WebAssemblyInstrSIMD.td, llvm/test/CodeGen/WebAssembly simd-load-lane-offset.ll

[WebAssembly] LoadLane matching with offsets (#176005)

DeltaFile
+45-69llvm/test/CodeGen/WebAssembly/simd-load-lane-offset.ll
+14-15llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
+59-842 files

LLVM/project b0b1ab8flang/lib/Lower OpenACC.cpp, flang/lib/Optimizer/OpenACC/Support FIROpenACCTypeInterfaces.cpp

[flang][openacc] support array section privatization in lowering (#175184)

Add support array section in private, firstprivate, and reduction.

Key changes:
- Change the related data operation result type to return the same type
as the array base (same type as the acc variable input in the
operation), while it was the type of the section before. This allows
remapping the base the to result value (to use the data operation result
as the base when generating addressing inside the compute region).
- The generatePrivateInit implementation of FIROpenACCTypeInterfaces is
modified to allocate storage only for the section, and to return the
mock base address (that is the address of the allocation minus the
offset/lower bound of the privatized section).
- The code generating the copy and combiner region is moved from
OpenACC.cpp to FIROpenACCTypeInterfaces.cpp via the addition of new
generateCopy and generateCombiner interface in the
MappableTypeInterface. This allows sharing all the addressing helper
with generatePrivateInit, and will allow late generation of all recipes

    [7 lines not shown]
DeltaFile
+424-324flang/test/Lower/OpenACC/acc-reduction.f90
+498-135flang/lib/Optimizer/OpenACC/Support/FIROpenACCTypeInterfaces.cpp
+355-214flang/test/Lower/OpenACC/acc-private.f90
+138-373flang/lib/Lower/OpenACC.cpp
+6-65flang/test/Lower/OpenACC/acc-firstprivate-derived-pointer-component.f90
+15-32flang/test/Fir/OpenACC/recipe-populate-private.mlir
+1,436-1,14315 files not shown
+1,560-1,24521 files

LLVM/project 2789ad2llvm/lib/Target/X86 X86InstrCompiler.td, llvm/test/CodeGen/X86 replace-thunk-tail-win.ll

[X86] Fix TC_RETURN selection failure for Win+Thunk combination (#175977)

https://github.com/llvm/llvm-project/pull/158055 added a
IsNotWin64CCFunc predicate to these cases for reasons that are not super
clear to me, which causes selection failures as this combination is not
covered elsewhere.

Fixes https://github.com/llvm/llvm-project/issues/175965.
DeltaFile
+19-0llvm/test/CodeGen/X86/replace-thunk-tail-win.ll
+2-2llvm/lib/Target/X86/X86InstrCompiler.td
+21-22 files

LLVM/project e5999e8mlir/include/mlir/Dialect/Linalg/Transforms Transforms.h, mlir/lib/Dialect/Linalg/Transforms Transforms.cpp

[Linalg] Update Conv Decomposition patterns to work with generic convolution ops as well (#174196)

-- This commit updates Conv Decomposition patterns to work with both
named as
   well as generic convolution ops.
-- Since now a "generic" LinalgOp is being used as the root op in the
patterns
above the `assert` of the op implementing a ConvolutionOpInterface has
   been replaced with an early exit `if`.

Signed-off-by: Abhishek Varma <abhvarma at amd.com>
DeltaFile
+94-94mlir/lib/Dialect/Linalg/Utils/Utils.cpp
+62-51mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
+13-14mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
+3-0mlir/test/Dialect/Linalg/transform-op-decompose.mlir
+172-1594 files

LLVM/project cccfd01llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass.ll

InstCombine: Apply parameter nofpclass in SimplifyDemandedFPClass

Apply the use operand's nofpclass to the demanded mask.
DeltaFile
+11-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
+5-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+16-02 files

LLVM/project 3ad6d35llvm/test/Analysis/CostModel/RISCV scalable-scatter.ll scalable-gather.ll

[RISCV] Add tests for rv32 gather/scatter costs. NFC

There's a divergence with the rv32 costs that I plan on fixing in
another patch, so this precommits the tests for them.

The zve32f RUN lines were split off into another file so the check prefixes
are easier to reason about.

The -riscv-v-vector-bits-max RUN lines were also removed to simplify the
check prefixes since I'm not sure if they were intentionally testing any
specific logic.
DeltaFile
+133-112llvm/test/Analysis/CostModel/RISCV/scalable-scatter.ll
+130-113llvm/test/Analysis/CostModel/RISCV/scalable-gather.ll
+125-0llvm/test/Analysis/CostModel/RISCV/scalable-scatter-zve32f.ll
+112-0llvm/test/Analysis/CostModel/RISCV/scalable-gather-zve32f.ll
+500-2254 files

LLVM/project c5407e0clang/lib/Serialization TemplateArgumentHasher.cpp

[Serialization] Hash inner template arguments

The code is applied from ODRHash::AddDecl with the reasoning given
in the comment, to reduce collisions. This was particularly visible
with STL types templated on std::pair where its template arguments
were not taken into account.

Reviewed as part of https://github.com/llvm/llvm-project/pull/133057
DeltaFile
+15-0clang/lib/Serialization/TemplateArgumentHasher.cpp
+15-01 files

LLVM/project d023577llvm/test/Transforms/LoopVectorize/RISCV vplan-vp-intrinsics.ll

[VPlan] Explicitly test EVL recipe has "evl" name. NFC

Addresses the comment in
https://github.com/llvm/llvm-project/pull/175493#pullrequestreview-3651607778
DeltaFile
+6-6llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics.ll
+6-61 files

LLVM/project a9e852cllvm/lib/ExecutionEngine/Orc MachO.cpp

[ORC][MachO] Clean up incompatible-arch-in-object error message. (#176092)

Add missing spaces to error messages, use Triple::getArchName (gives
canonical arch name on Darwin, e.g. "arm64" rather than "aarch64").

No testcase for this one: the change is cosmetic, and the error message
format not relied upon anywhere.
DeltaFile
+6-5llvm/lib/ExecutionEngine/Orc/MachO.cpp
+6-51 files

LLVM/project ff0a975llvm/test lit.cfg.py

[profcheck] Reorder the FileCheck substitution.

In the profcheck build, FileCheck commands are substituted with cat > /dev/null to disable output verification. In a test/Transforms/SamplePrfile/remarks-hotness.ll we have both "FileCheck" and "not FileCheck" statements. Replacing the positive one first results in "not cat".
https://github.com/llvm/llvm-project/blob/main/llvm/test/Transforms/SampleProfile/remarks-hotness.ll#L18

Run the not substitution first to fix this.
DeltaFile
+1-1llvm/test/lit.cfg.py
+1-11 files

LLVM/project a6ada9eclang/test/AST/ByteCode c.c

[clang][bytecode] Fix wrong function call in test case (#176085)

This was supposed to call callReturnsComplex().
DeltaFile
+1-1clang/test/AST/ByteCode/c.c
+1-11 files

LLVM/project 9f68811llvm/lib/Target/RISCV RISCVRegisterInfo.td

[RISCV] Add helper classes to avoid repeating FPR allocation order multiple times. NFC (#176090)

DeltaFile
+23-44llvm/lib/Target/RISCV/RISCVRegisterInfo.td
+23-441 files

LLVM/project 39adbcfllvm/lib/CodeGen StackColoring.cpp

[StackColoring] Delete lifetime markers even when pass is disabled by -opt-bisect-limit (#176050)

Fixes #164336
DeltaFile
+7-8llvm/lib/CodeGen/StackColoring.cpp
+7-81 files

LLVM/project 2fa1ba6llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp, llvm/test/CodeGen/AArch64 aarch64-sve-setcc-promote-nxv8i8-crash.ll

[SelectionDAG] Fix zext assertion check for scalable vectors (#176064)

Use element type comparisons in getZeroExtendInReg to avoid comparing
scalable and fixed types.

Fixes #176037
DeltaFile
+19-0llvm/test/CodeGen/AArch64/aarch64-sve-setcc-promote-nxv8i8-crash.ll
+7-5llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+26-52 files

LLVM/project a975d2cllvm/lib/MC MCDwarf.cpp

[MC][NFC] Use appendLEB128 helper in MCDwarf.cpp (#175962)

This is a very minor simplification of the logic. We made a similar
change to RISC-V in #173198.
DeltaFile
+3-4llvm/lib/MC/MCDwarf.cpp
+3-41 files

LLVM/project 9afea76lld/ELF InputSection.cpp, lld/ELF/Arch LoongArch.cpp

[lld][LoongArch] Add reloc types for LA32R/LA32S

This patch adds support for processing the relocation types introduced
in la-abi-specs v2.50.

Link: https://github.com/loongson/la-abi-specs/pull/16
Link: https://sourceware.org/pipermail/binutils/2025-December/146091.html
DeltaFile
+136-0lld/test/ELF/loongarch-relax-call30.s
+70-31lld/test/ELF/loongarch-relax-emit-relocs.s
+62-5lld/ELF/Arch/LoongArch.cpp
+65-0lld/test/ELF/loongarch-relax-call30-2.s
+64-0lld/test/ELF/loongarch-call30.s
+63-0lld/ELF/InputSection.cpp
+460-367 files not shown
+515-6513 files

LLVM/project ba2eaa9clang/include/clang/CIR MissingFeatures.h, clang/lib/CIR/CodeGen CIRGenCoroutine.cpp CIRGenExprScalar.cpp

[CIR] Upstream support for coroutine co_yield expression (#173162)

This PR upstreams support for the co_yield expression by emitting a
cir.await op with the yield kind.
DeltaFile
+50-0clang/test/CIR/CodeGen/coro-task.cpp
+8-1clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
+3-2clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
+4-0clang/lib/CIR/CodeGen/CIRGenFunction.h
+0-1clang/include/clang/CIR/MissingFeatures.h
+65-45 files

LLVM/project 29419c4llvm/include/llvm/ExecutionEngine/JITLink loongarch.h, llvm/lib/ExecutionEngine/JITLink loongarch.cpp

[JITLink][LoongArch] Refactor jump stub to support LA32R (#175355)

DeltaFile
+8-8llvm/unittests/ExecutionEngine/JITLink/StubsTests.cpp
+8-3llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h
+2-2llvm/lib/ExecutionEngine/JITLink/loongarch.cpp
+18-133 files

LLVM/project 8610d35llvm/include/llvm/IR DebugInfoMetadata.h, llvm/lib/CodeGen/AsmPrinter DwarfUnit.cpp

[DebugInfo] Only generate template parameters in the skeleton CU for a template function/type with simplified name (3/3) (#175879)

Currently, when generating debug info for skeleton units, all template
parameters are emitted unconditionally. To optimize debug info size, the
emission should be conditional — providing parameters only for template
types/functions whose names have actually been simplified. As described
in [this
RFC](https://discourse.llvm.org/t/rfc-debuginfo-selectively-generate-template-parameters-in-the-skeleton-cu/89395).
Previous patches: #175130, #175708
DeltaFile
+79-0llvm/test/DebugInfo/X86/fission-simple-template-names.ll
+8-3llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+3-0llvm/include/llvm/IR/DebugInfoMetadata.h
+0-3llvm/test/DebugInfo/X86/fission-template.ll
+90-64 files