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

LLVM/project 6658c53lldb/docs dil-expr-lang.ebnf, lldb/source/ValueObject DILLexer.cpp DILParser.cpp

[lldb] Change bitfield range character from '-' to ':' in DIL (#173410)

Change the bitfield extraction range character from '-' to a more common
':'.
Add a deprecation error when '-' is used and a release note about it.
DeltaFile
+22-17lldb/test/API/commands/frame/var-dil/basics/BitFieldExtraction/TestFrameVarDILBitFieldExtraction.py
+6-4lldb/source/ValueObject/DILLexer.cpp
+6-2lldb/source/ValueObject/DILParser.cpp
+2-2lldb/source/ValueObject/DILEval.cpp
+1-1lldb/docs/dil-expr-lang.ebnf
+1-1lldb/test/API/commands/frame/var-dil/basics/ArraySubscript/TestFrameVarDILArraySubscript.py
+38-272 files not shown
+41-278 files

LLVM/project 4fe4f23llvm/lib/TargetParser Host.cpp

[TargetParser] Fix fp16 feature name for ARM64 Windows feature detection (#176925)

The feature is called fullfp16, not fp16, see:
https://github.com/llvm/llvm-project/blob/979db00b9a2401b65725f44de8172aba79cacd38/llvm/lib/Target/AArch64/AArch64Features.td#L142
DeltaFile
+1-1llvm/lib/TargetParser/Host.cpp
+1-11 files

LLVM/project ac115a9llvm/docs ReleaseNotes.md

[BOLT][AArch64] Release notes for llvm 22

Add note on AArch64 Lite-mode support.

Co-authored-by: Maksim Panchenko <maks at fb.com>
DeltaFile
+4-0llvm/docs/ReleaseNotes.md
+4-01 files

LLVM/project 51a681allvm/utils/release merge-release-pr.py

[llvm][utils] Remove source owner check from merge-release-pr script (#176949)

This check prevents landing PRs from branches on llvm/llvm-project which
is a thing now.

(cherry picked from commit d9ca7371d663a75364010e4bd0d9032ddea8c1c0)
DeltaFile
+0-6llvm/utils/release/merge-release-pr.py
+0-61 files

LLVM/project cfc8769llvm/utils/TableGen DAGISelMatcher.cpp

[TableGen] Make sure ResNo is the same in CheckTypeMatcher::isContradictoryImpl. (#177312)

CheckType can only be contradictory if the same result is being checked.

Noticed while looking at the code. This doesn't affect the output on any
in tree targets.
DeltaFile
+7-1llvm/utils/TableGen/DAGISelMatcher.cpp
+7-11 files

LLVM/project a581cebclang CMakeLists.txt

[clang][cmake] Use llvm-libtool-darwin in clang multi-stage build (#177277)

We are seeing the build system uses the XCode's libtool when building
the 2nd stage of the clang on mac. We should use the llvm-libtool-darwin
from the previous stage clang build instead. This patch makes multi-stage
clang build to use llvm-libtool-darwin from the previous stage when targeting
mac.
DeltaFile
+2-0clang/CMakeLists.txt
+2-01 files

LLVM/project 1b37911compiler-rt/lib/orc elfnix_platform.cpp, compiler-rt/test/orc/TestCases/Linux/Generic ctor-dtor.cpp

[ORC] Fix missing support of deinitialize on ELF platform and execution order by priority (#175981)

This PR fixes
1. issue #175509 about missing support of deinitialize on ELF platform. 
2. missing support of execution order by proirity at both initialize and
deinitialize stage.

cc: @tqchen @joker-eph
DeltaFile
+210-27llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
+103-0compiler-rt/lib/orc/elfnix_platform.cpp
+86-0compiler-rt/test/orc/TestCases/Linux/Generic/ctor-dtor.cpp
+15-0llvm/lib/ExecutionEngine/Orc/Shared/ObjectFormats.cpp
+7-0llvm/include/llvm/ExecutionEngine/Orc/ELFNixPlatform.h
+2-0llvm/include/llvm/ExecutionEngine/Orc/Shared/ObjectFormats.h
+423-276 files

LLVM/project 30fba3cflang/lib/Optimizer/OpenMP MapInfoFinalization.cpp

[Flang][OpenMP][Offload] Modify MapInfoFinalization to handle attach mapping and 6.1's ref_* and attach map keywords

This PR is one of four required to implement the attach mapping semantics in Flang, alongside the
ref_ptr/ref_ptee/ref_ptr_ptee map modifiers and the attach(always/never/auto) modifiers.

This PR is the MapInfoFinalization changes required to support these features, it mainly deals with
applying the correct attach map type and manipulating the descriptor types maps for base address
and descriptor so that when we specify ref_ptr/ref_ptee we emit one of the two maps and when we
emit ref_ptr_ptee we emit our usual default maps. In all cases we add the "glue" of an new
attach map except in cases where a user has provided attach never. In cases where we are
provided an always, we apply the always map type to our attach maps.

It's important to note the runtime has a toggle for the auto map behaviour, which will flip the
attach behaviour to the newer semantics or the older semantics for backwards compatability (outside
the purview of this PR but good to mention).
DeltaFile
+491-246flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp
+491-2461 files

LLVM/project dfae932flang/test/Lower/OpenMP teams.f90

remove unrelated test changes
DeltaFile
+1-1flang/test/Lower/OpenMP/teams.f90
+1-11 files

LLVM/project 1ae4275flang/lib/Lower/OpenMP Clauses.cpp ClauseProcessor.cpp, flang/test/Lower/OpenMP thread-limit-dims.f90

Fix flang to mlir lowering for thread_limit
DeltaFile
+61-0flang/test/Lower/OpenMP/thread-limit-dims.f90
+10-3flang/lib/Lower/OpenMP/Clauses.cpp
+4-3flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+3-1llvm/include/llvm/Frontend/OpenMP/ClauseT.h
+78-74 files

LLVM/project 1b2f56ellvm/lib/Target/AMDGPU GCNSubtarget.h AMDGPU.td

[NFCI][AMDGPU] Remove more redundant code from `GCNSubtarget.h`
DeltaFile
+22-58llvm/lib/Target/AMDGPU/GCNSubtarget.h
+30-46llvm/lib/Target/AMDGPU/AMDGPU.td
+11-11llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+3-3llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+3-3llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+2-4llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
+71-1255 files not shown
+78-13311 files

LLVM/project aab3083flang/test/Lower/OpenMP num-threads-dims.f90

Add a test for flanf to mlir lowering for num_threads
DeltaFile
+61-0flang/test/Lower/OpenMP/num-threads-dims.f90
+61-01 files