LLVM/project 4cbc58amlir/lib/Dialect/Utils StaticValueUtils.cpp, mlir/test/Dialect/SCF for-loop-peeling.mlir canonicalize.mlir

[mlir][DialectUtils] Fix 0 step handling in `constantTripCount`
DeltaFile
+11-3mlir/lib/Dialect/Utils/StaticValueUtils.cpp
+8-2mlir/test/Dialect/SCF/for-loop-peeling.mlir
+4-3mlir/test/Dialect/SCF/canonicalize.mlir
+23-83 files

LLVM/project 8fd36f0llvm/test/Transforms/InstCombine simplify-demanded-fpclass-maxnum.ll simplify-demanded-fpclass-minnum.ll

InstCombine: Add minnum/maxnum SimplifyDemandedFPClass baseline tests

This is just the existing minimumnum/maximumnum tests copied with
find and replace.
DeltaFile
+2,232-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-maxnum.ll
+2,231-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-minnum.ll
+4,463-02 files

LLVM/project a43b55eclang/test/Driver riscv-arch.c, clang/test/Preprocessor riscv-target-features.c

[RISCV]Remove experimental from Zalasr (#177120)

Zalasr 1.0 was ratified in October 2025.

Documentation:https://docs.riscv.org/reference/isa/extensions/zalasr/_attachments/riscv-zalasr.pdf
DeltaFile
+17-18llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+15-9clang/test/Driver/riscv-arch.c
+9-9clang/test/Preprocessor/riscv-target-features.c
+6-6llvm/test/CodeGen/RISCV/attributes.ll
+6-6llvm/test/MC/RISCV/rvzalasr-valid.s
+4-4llvm/test/CodeGen/RISCV/GlobalISel/atomic-load-store-fp.ll
+57-5212 files not shown
+81-7818 files

LLVM/project 6880470clang/lib/Lex Lexer.cpp, llvm/include/llvm/Support Compiler.h

Revert "[Clang][Lexer] Reland "Detect SSE4.2 availability at runtime in fastParseASCIIIdentifier"" (#177322)

Reverts llvm/llvm-project#175452 because of buildbot failures reported.
DeltaFile
+9-27clang/lib/Lex/Lexer.cpp
+0-26llvm/include/llvm/Support/Compiler.h
+9-532 files

LLVM/project 59db71clldb/test/API/functionalities/ubsan/basic main.c Makefile

[lldb][test] Re-enable and fix TestUbsanBasic.py

UBSAN stopped reporting the misaligned load since https://github.com/llvm/llvm-project/commit/5569bf26f0097c2d8b088f0a7cf46451da752dea so this test started failing. We skipped it to unblock CI.

There's been discussion on making UBSAN stricter and still trigger on
the one-line version of this. But for now, to get the test running
again, change it to a form which *does* trigger UBSAN.

Fixes https://github.com/llvm/llvm-project/issues/177064
DeltaFile
+4-1lldb/test/API/functionalities/ubsan/basic/main.c
+1-1lldb/test/API/functionalities/ubsan/basic/Makefile
+0-1lldb/test/API/functionalities/ubsan/basic/TestUbsanBasic.py
+5-33 files

LLVM/project 01ccb40llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 fixed-length-bf16-arith.ll

[AArch64] Use +0.0 for accumulator for FMUL -> BFMLAL lowering in more cases (#174423)

Depending on the users of the FMUL we may not need to preserve the sign
of the multiplication result (when it is zero).

See: 29611f4cbea0e867a3e55516f8dfdeca595be436
DeltaFile
+30-0llvm/test/CodeGen/AArch64/fixed-length-bf16-arith.ll
+3-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+33-12 files

LLVM/project de99763llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sve-partial-reduce-dot-product.ll

[AArch64] Fix partial_reduce v16i8 -> v2i32 (#177119)

The lowering doesn't need to check for `ConvertToScalable`, because it
lowers to another `PARTIAL_REDUCE_*MLA` node, which is subsequently
lowered using either fixed-length or scalable types.

This fixes https://github.com/llvm/llvm-project/issues/176954
DeltaFile
+43-0llvm/test/CodeGen/AArch64/sve-partial-reduce-dot-product.ll
+5-5llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+48-52 files

LLVM/project 73616e3.github/workflows libcxx-build-and-test.yaml

[libc++][22.x] Target the release runners for the LLVM 22 release branch

This ensures that the CI on the release branch keeps working even as
we make changes to our CI setup on the main branch.
DeltaFile
+8-8.github/workflows/libcxx-build-and-test.yaml
+8-81 files

LLVM/project c8122e4lld/ELF MarkLive.cpp, lld/test/ELF why-live.test

[ELF] --why-live: Skip symbol at index 0 and section symbols, handle .eh_frame symbols (#177099)

Symbols of empty names can be matched by `--why-live='*'`, which are
generally not useful.

* The first entry in a symbol table (STB_LOCAL and undefined)
* `STT_SECTION` symbols (emitted by LLVM integrated assembler when
  needed by relocations). These input section symbols will be demoted by
  `demoteAndCopyLocalSymbols`, so technically not really live.
  In addition, such symbols of non-allocable sections currently lead to
  crashes: `whyLive` does not record the section, causing the second
  iteration of the `while (true)` loop in printWhyLive to call
  `std::get<Symbol *>(cur)` when `cur` is an `InputSectionBase *`.

In addition, handle GCC crtendS.o `__FRAME_END__`, which is defined
relative to a `.eh_frame` section created with
`__attribute__((used, section(".eh_frame")))`.

Fix #176890

    [2 lines not shown]
DeltaFile
+44-0lld/test/ELF/why-live.test
+8-1lld/ELF/MarkLive.cpp
+52-12 files

LLVM/project 1d2be35llvm/test/CodeGen fptoi-256.ll

[NFC] Add the require clause to a test

See https://github.com/llvm/llvm-project/pull/176851
DeltaFile
+1-1llvm/test/CodeGen/fptoi-256.ll
+1-11 files

LLVM/project 0e23e63clang/lib/Lex Lexer.cpp, llvm/include/llvm/Support Compiler.h

Revert "[Clang][Lexer] Reland "Detect SSE4.2 availability at runtime in fastP…"

This reverts commit 146a919360eb0e4f0ac012050ccc7c0f4593345e.
DeltaFile
+9-27clang/lib/Lex/Lexer.cpp
+0-26llvm/include/llvm/Support/Compiler.h
+9-532 files

LLVM/project 003a12eclang-tools-extra/docs ReleaseNotes.rst

[clangd] Add clangd 22 release notes

Co-authored-by: tcottin <timcottin at gmx.de>
DeltaFile
+63-16clang-tools-extra/docs/ReleaseNotes.rst
+63-161 files

LLVM/project 092c1fcllvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sme-new-za-zt0-no-tail-call.ll

[AArch64][SME] Disable tail calls in new ZA/ZT0 functions (#177152)

Allowing this can result in invalid tail calls to shared ZA functions.

It may be possible to limit this to the case where the caller is private
ZA and the callee shares ZA, but for now it is generally disabled.

(cherry picked from commit 10aca26ffffe6a9ee049f479ed7fee9e07421dad)
DeltaFile
+78-0llvm/test/CodeGen/AArch64/sme-new-za-zt0-no-tail-call.ll
+2-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+80-12 files

LLVM/project 5245891llvm/lib/CodeGen TargetLoweringBase.cpp, llvm/test/CodeGen fptoi-256.ll

[LLVM] Update the default value for MaxLargeFPConvertBitWidthSupported to 128 (#176851)

Previously, we can't compile the program which convert 256 bits to
floating points and vice versa(we'll crash). After this, we're able to
compile them.
DeltaFile
+12-0llvm/test/CodeGen/fptoi-256.ll
+1-1llvm/lib/CodeGen/TargetLoweringBase.cpp
+13-12 files

LLVM/project efe9b43llvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp, llvm/test/CodeGen/AMDGPU issue176966-extend-vector-inreg.ll

Fix EXTEND_VECTOR_INREG widening when input > result size (#177095)

This patch fixes an LLVM crash on AMDGPU that occurred when compiling
valid code involving non-power-of-two vector sizes. During type
legalization, LLVM widened an EXTEND_VECTOR_INREG operation by first
widening the input vector, which could make the input larger than the
result and trigger an assertion failure.

The fix changes the logic to widen the result first and then extract the
needed portion so there's no invalid size mismatch. I've added a test
that previously crashed but now doesn't.

fixes #176966.

---------

Co-authored-by: Natalia Kokoromyti <knatalia at yost-cm-01-imme.stanford.edu>
DeltaFile
+25-2llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+25-0llvm/test/CodeGen/AMDGPU/issue176966-extend-vector-inreg.ll
+50-22 files

LLVM/project 24367c9llvm/lib/Target/LoongArch LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch/lasx/ir-instruction extractelement.ll

[LoongArch] Remove DAG combination for extractelement (#177083)

Combination for `trunc+extend+extractelement` to a single
`extractelement` may occur error, because the high bits of the extract
index truncated by `trunc` operation are reserved after the combination.

This commit remove this combination and the issue
https://github.com/llvm/llvm-project/issues/176839 will never appear.

(cherry picked from commit f537408bc4fee1b7edc6b703e68792957f85f133)
DeltaFile
+0-43llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+26-12llvm/test/CodeGen/LoongArch/lasx/ir-instruction/extractelement.ll
+26-552 files

LLVM/project 6805185mlir/include/mlir/Interfaces ControlFlowInterfaces.h, mlir/lib/Dialect/SCF/IR SCF.cpp

[mlir][Interfaces] Add generic pattern for region inlining
DeltaFile
+233-0mlir/lib/Interfaces/ControlFlowInterfaces.cpp
+26-145mlir/lib/Dialect/SCF/IR/SCF.cpp
+39-0mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
+20-0mlir/test/Dialect/SCF/canonicalize.mlir
+4-2mlir/test/Dialect/Arith/int-range-interface.mlir
+4-2mlir/test/Dialect/SCF/one-shot-bufferize.mlir
+326-1496 files

LLVM/project fa0071bllvm/lib/CodeGen CodeGenPrepare.cpp, llvm/test/Transforms/CodeGenPrepare/X86 codegenprepare-hang-bitcast-phi.ll

[CodeGenPrepare] Fix infinite loop with same-type bitcasts (#176694)

OptimizeNoopCopyExpression was sinking same-type bitcasts (e.g. bitcast
i32 to i32) which would then be reintroduced by optimizePhiType, causing
an infinite loop.

Fix by adding a check (PhiTy == ConvertTy) in optimizePhiType to skip
the conversion when types are already identical.

Fixes #176688.
DeltaFile
+27-0llvm/test/Transforms/CodeGenPrepare/X86/codegenprepare-hang-bitcast-phi.ll
+1-1llvm/lib/CodeGen/CodeGenPrepare.cpp
+28-12 files

LLVM/project 21d0215clang/lib/Basic/Targets LoongArch.cpp, clang/lib/Driver/ToolChains Gnu.cpp

[clang][LoongArch] Add support for LoongArch32 (#172619)

This patch adds support for LoongArch32, as introduced in
la-toolchain-conventions v1.2.

Co-authored-by: Sun Haiyong <sunhaiyong at zdbr.net>
Link:
https://github.com/loongson/la-toolchain-conventions/releases/tag/releases%2Fv1.2
Link:
https://gcc.gnu.org/pipermail/gcc-patches/2025-December/703312.html
(cherry picked from commit 0a9d480fadf07aaaee8ccfa26a2a2afa3f621499)
DeltaFile
+0-89clang/test/CodeGen/LoongArch/targetattr.c
+89-0clang/test/CodeGen/LoongArch/targetattr-la64.c
+26-0clang/test/CodeGen/LoongArch/targetattr-la32.c
+23-0clang/test/Driver/loongarch-march.c
+16-2clang/lib/Basic/Targets/LoongArch.cpp
+16-2clang/lib/Driver/ToolChains/Gnu.cpp
+170-9311 files not shown
+224-10617 files

LLVM/project ea58f6bllvm/include/llvm/ExecutionEngine/JITLink loongarch.h, llvm/lib/ExecutionEngine/JITLink ELF_loongarch.cpp loongarch.cpp

[JITLink][LoongArch] Add reloc types for LA32R/LA32S (#175353)

(cherry picked from commit 9c7904bac281caf68be377daa4366c1f166c39f2)
DeltaFile
+88-18llvm/test/ExecutionEngine/JITLink/LoongArch/ELF_loongarch32_relocations.s
+84-1llvm/lib/ExecutionEngine/JITLink/ELF_loongarch.cpp
+72-1llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h
+4-0llvm/lib/ExecutionEngine/JITLink/loongarch.cpp
+248-204 files

LLVM/project 82a29d7lld/ELF/Arch LoongArch.cpp

[lld][LoongArch] Clean up CALL30 relocation with setK16 and checkInt (#176311)

(cherry picked from commit fe8447d00796bc4795b28b8036b0f49e5f118f1d)
DeltaFile
+3-9lld/ELF/Arch/LoongArch.cpp
+3-91 files

LLVM/project 5a73eb4lld/ELF InputSection.cpp, lld/ELF/Arch LoongArch.cpp

[lld][LoongArch] Support reloc types for LA32R/LA32S (#172618)

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
(cherry picked from commit 019bf036972f061ee42b1fa7d64bc3456689a664)
DeltaFile
+136-0lld/test/ELF/loongarch-relax-call30.s
+70-31lld/test/ELF/loongarch-relax-emit-relocs.s
+70-0lld/ELF/InputSection.cpp
+64-5lld/ELF/Arch/LoongArch.cpp
+65-0lld/test/ELF/loongarch-relax-call30-2.s
+64-0lld/test/ELF/loongarch-call30.s
+469-367 files not shown
+524-6513 files

LLVM/project 43299d5lld/ELF InputSection.cpp

[lld][ELF] Deduplicate PC-relative indirect relocation logic for RISC-V and LoongArch (#176312)

(cherry picked from commit 3af2e51eb91a96232efc4497059d5c6360cc094b)
DeltaFile
+42-77lld/ELF/InputSection.cpp
+42-771 files

LLVM/project 3dafa81llvm/include/llvm/ExecutionEngine/JITLink loongarch.h, llvm/lib/ExecutionEngine/JITLink loongarch.cpp

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

(cherry picked from commit 29419c48d518e6e9082ec9a3c5dbba309ec25ebe)
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 33c9430llvm/lib/Target/LoongArch LoongArchExpandPseudoInsts.cpp LoongArchMergeBaseOffset.cpp, llvm/lib/Target/LoongArch/AsmParser LoongArchAsmParser.cpp

[llvm][LoongArch] Add PC-relative address materialization using pcadd instructions (#175358)

This patch adds support for PC-relative address materialization using
pcadd-class relocations, covering the HI20/LO12 pair and their GOT and
TLS variants (IE, LD, GD, and DESC).

Link:
https://gcc.gnu.org/pipermail/gcc-patches/2025-December/703312.html
(cherry picked from commit c9cc782e0b5fddd22114cdf3c510ddea4959447f)
DeltaFile
+149-90llvm/test/CodeGen/LoongArch/code-models.ll
+132-89llvm/test/CodeGen/LoongArch/merge-base-offset.ll
+153-54llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp
+114-30llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
+42-28llvm/test/CodeGen/LoongArch/double-imm.ll
+39-16llvm/lib/Target/LoongArch/LoongArchMergeBaseOffset.cpp
+629-30726 files not shown
+949-44732 files

LLVM/project 51e92b2llvm/include/llvm/ExecutionEngine/JITLink loongarch.h

[JITLink][LoongArch][NFC] Fix Call30PCRel range docs

(cherry picked from commit 16f690e0ff97b8e0dece0e0237552208cafe1c7f)
DeltaFile
+1-1llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h
+1-11 files

LLVM/project cb16312llvm/lib/Target/LoongArch LoongArchInstrInfo.td LoongArchMCInstLower.cpp, llvm/lib/Target/LoongArch/AsmParser LoongArchAsmParser.cpp

[llvm][LoongArch] Add call30 and tail30 macro instruction support (#175356)

Link:
https://sourceware.org/pipermail/binutils/2025-December/146091.html
(cherry picked from commit c88cbaf2b204795c04596ee3071ce3484f0e610a)
DeltaFile
+52-12llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
+15-1llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
+14-1llvm/test/MC/LoongArch/Macros/macros-call.s
+2-2llvm/test/MC/LoongArch/Basic/Integer/invalid.s
+3-0llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp
+3-0llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.cpp
+89-163 files not shown
+92-169 files

LLVM/project e8c6fccllvm/lib/Target/LoongArch LoongArchInstrInfo.td LoongArchExpandPseudoInsts.cpp, llvm/lib/Target/LoongArch/AsmParser LoongArchAsmParser.cpp

[llvm][LoongArch] Add call and tail macro instruction support (#175357)

Link:
https://sourceware.org/pipermail/binutils/2025-December/146091.html
(cherry picked from commit 9f7af289728002487b032a8278bc2c540a02ff59)
DeltaFile
+43-14llvm/test/MC/LoongArch/Macros/macros-call.s
+21-15llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
+21-10llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp
+7-0llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
+2-2llvm/lib/Target/LoongArch/LoongArchTargetMachine.cpp
+1-2llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+95-432 files not shown
+97-458 files

LLVM/project aba17bbllvm/include/llvm/Analysis MemorySSA.h, llvm/include/llvm/IR User.h Instructions.h

[IR] Use alloc markers for operator delete variants (#138261)

Follow-up to https://github.com/llvm/llvm-project/pull/129914
This fixes the problem properly by using the data via the allocation
markers.

PS: Sorry for the long delay ;)
(cherry picked from commit 72d5925412522d01e48f8d6027e51c2dead11617)
DeltaFile
+8-34llvm/include/llvm/IR/User.h
+15-11llvm/include/llvm/IR/Instructions.h
+23-2llvm/lib/IR/User.cpp
+7-5llvm/lib/IR/ConstantsContext.h
+3-3llvm/include/llvm/IR/InstrTypes.h
+3-3llvm/include/llvm/Analysis/MemorySSA.h
+59-584 files not shown
+64-6310 files

LLVM/project 15e421dllvm/lib/MC MCObjectStreamer.cpp

[MC] Explicitly use memcpy in emitBytes() (NFC) (#177187)

We've observed a compile-time regression in LLVM 22 when including large
blobs. The root cause was that emitBytes() was copying bytes one-by-one,
which is much slower than using memcpy for large objects.

Optimization of std::copy to memmove is apparently much less reliable
than one might think. In particular, when using a non-bleeding-edge
libstdc++ (anything older than version 15), this does not happen if the
types of the input and output iterators do not match (like here, where
there is a signed/unsigned mismatch).

As this code is performance sensitive, I think it makes sense to
directly use memcpy.

Previously this code used SmallVector::append, which explicitly uses
memcpy.
DeltaFile
+3-1llvm/lib/MC/MCObjectStreamer.cpp
+3-11 files