LLVM/project d927768flang/lib/Lower/OpenMP OpenMP.cpp

fix adding numThreadsNumDims to ParallelOperands apply method
DeltaFile
+1-0flang/lib/Lower/OpenMP/OpenMP.cpp
+1-01 files

LLVM/project fc81a66mlir/include/mlir/Dialect/Linalg/Utils Utils.h, mlir/lib/Dialect/Linalg/Transforms Specialize.cpp

[NFC][Linalg] Add `matchConvolutionOpOfType` API and make `isaConvolutionOpOfType` API a wrapper (#174722)

-- This commit involves the following updates pertaining to
`isaConvolutionOpOfType` API :-
1. We don't want dilations/strides of convolution op to be returned as
pointer arguments to the API function - to tackle this we create a new
API `matchConvolutionOpOfType` which would return an optional struct of
dilations/stride.
2. To not break the original API's use case as a simple querying
functionality with true/false return - we keep `isaConvolutionOpOfType`
as a wrapper API which will invoke `matchConvolutionOpOfType` API and
return true/false depending on whether `matchConvolutionOpOfType` API
returned any value or not.
3. Dilations/strides of named convolution op are also populated now (it
was missed in the previous PRs while creating `isaConvolutionOpOfType`).
4. [Max/Min]UnsignedPool ops' body matcher now only matches unsigned int
ops (refer: https://github.com/llvm/llvm-project/pull/166070)

-- No tests are being added as all the above are NFC changes around the

    [2 lines not shown]
DeltaFile
+956-617mlir/lib/Dialect/Linalg/Utils/Utils.cpp
+19-5mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
+4-4mlir/lib/Dialect/Linalg/Transforms/Specialize.cpp
+979-6263 files

LLVM/project d186277mlir/lib/Dialect/Bufferization/IR BufferizationOps.cpp, mlir/test/Dialect/Bufferization canonicalize.mlir

[MLIR][Bufferization] Fold LoadOp only when the buffer is read only (#172595)

When we `memref.load` from a buffer, it folded to `tensor.extract` even
when the buffer was writable, causing unexpected results. For example:

```mlir
func.func @load_after_write_from_buffer_cast(%arg0: index, %arg1: index,
                            %arg2: tensor<?x?xf32>) -> f32 {
  %0 = bufferization.to_buffer %arg2 : tensor<?x?xf32> to memref<?x?xf32>
  linalg.ceil ins(%0 : memref<?x?xf32>) outs(%0 : memref<?x?xf32>)
  %1 = memref.load %0[%arg0, %arg1] : memref<?x?xf32>
  return %1 : f32
}
```
would fold into
```mlir
module {
  func.func @load_after_write_from_buffer_cast(%arg0: index, %arg1: index, %arg2: tensor<?x?xf32>) -> f32 {
    %0 = bufferization.to_buffer %arg2 : tensor<?x?xf32> to memref<?x?xf32>

    [5 lines not shown]
DeltaFile
+19-1mlir/test/Dialect/Bufferization/canonicalize.mlir
+2-2mlir/test/Dialect/SparseTensor/sparse_perm_lower.mlir
+2-1mlir/test/Dialect/SparseTensor/fuse_sparse_pad_with_consumer.mlir
+1-1mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp
+1-1mlir/test/Dialect/SparseTensor/sparse_conv_2d_slice_based.mlir
+1-1mlir/test/Dialect/SparseTensor/sparse_pack.mlir
+26-76 files

LLVM/project 84c19e7clang/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
DeltaFile
+76-71clang/lib/Interpreter/IncrementalExecutor.cpp
+76-711 files

LLVM/project c7e4350llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV rvp-ext-rv64.ll rvp-ext-rv32.ll

[RISCV][llvm] Support select codegen for P extension (#175741)

This is scalar condition with fixed vector true/false value, we can just
handle it same as scalars.
DeltaFile
+55-0llvm/test/CodeGen/RISCV/rvp-ext-rv64.ll
+37-0llvm/test/CodeGen/RISCV/rvp-ext-rv32.ll
+24-0llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+116-03 files

LLVM/project 2f2ec93llvm/lib/Target/RISCV RISCVInstrInfoP.td, llvm/test/CodeGen/RISCV rvp-ext-rv64.ll rvp-ext-rv32.ll

[RISCV][llvm] Support vselect codegen for P extension (#175744)

The only difference between vselect vs. select is condition value(a.k.a.
mask), we can select by using bitwise operation:
vselect(mask, true, false) = (mask & true) | (~mask & false)
DeltaFile
+58-0llvm/test/CodeGen/RISCV/rvp-ext-rv64.ll
+39-0llvm/test/CodeGen/RISCV/rvp-ext-rv32.ll
+10-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+107-03 files

LLVM/project 0e6ef95llvm/lib/Target/RISCV RISCVInstrInfoVVLPatterns.td RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV/rvv vfclass-sdnode.ll fixed-vectors-vfclass.ll

[RISCV][llvm] Support IS_FPCLASS codegen for zvfbfa (#175758)

DeltaFile
+203-13llvm/test/CodeGen/RISCV/rvv/vfclass-sdnode.ll
+206-4llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfclass.ll
+6-0llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
+2-2llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+417-194 files

LLVM/project 9ced34dflang/lib/Lower/OpenMP ClauseProcessor.cpp Clauses.cpp, flang/test/Lower/OpenMP num-teams-dims.f90

[FLANG] Add flang to mlir lowering for num_teams
DeltaFile
+52-0flang/test/Lower/OpenMP/num-teams-dims.f90
+27-10flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+23-4flang/lib/Lower/OpenMP/Clauses.cpp
+15-3flang/lib/Lower/OpenMP/OpenMP.cpp
+117-174 files

LLVM/project 7cc013allvm/include/llvm/Passes CodeGenPassBuilder.h, llvm/include/llvm/Target CGPassBuilderOption.h

[CodeGen][NPM] Add support for -print-regusage in New Pass Manager (#169761)

Support `-print-regusage` flag in NPM for printing register usage information
DeltaFile
+3-4llvm/lib/CodeGen/RegisterUsageInfo.cpp
+5-0llvm/include/llvm/Passes/CodeGenPassBuilder.h
+4-0llvm/lib/CodeGen/TargetPassConfig.cpp
+1-0llvm/test/CodeGen/AMDGPU/ipra-regmask.ll
+1-0llvm/include/llvm/Target/CGPassBuilderOption.h
+14-45 files

LLVM/project aefccacllvm/lib/Target/AMDGPU AMDGPURegBankLegalizeHelper.cpp AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU vector-reduce-mul.ll integer-mad-patterns.ll

[AMDGPU][GlobalISel] Add RegBankLegalize support for S64 G_MUL

Patch 4 of 4 patches to implement full G_MUL support in regbanklegalize.
DeltaFile
+195-203llvm/test/CodeGen/AMDGPU/vector-reduce-mul.ll
+106-101llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
+98-49llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
+21-21llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mul.mir
+23-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
+5-1llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+448-3752 files not shown
+450-3758 files

LLVM/project fcdae37llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeHelper.cpp AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel regbankselect-smul.mir

[AMDGPU][GlobalISel] Add RegBankLegalize support for G_AMDGPU_S_MUL_*

Patch 3 of 4 patches to implement full G_MUL support in regbanklegalize.

Current mul.ll test is only partially updated and expected to fail.
It will be updated in the fourth patch.
DeltaFile
+92-0llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-smul.mir
+19-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
+4-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+2-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
+117-04 files

LLVM/project de7c7f7llvm/lib/Target/AMDGPU VOP3PInstructions.td, llvm/test/MC/AMDGPU gfx1250_asm_wmma_w32.s

[AMDGPU] Fix the encoding of VOP3PX2 instructions

ISA spec says `SCALE_OPSEL[0:1]` determines which parts of S3 and S4 are used, and `SCALE_OPSEL_HI[0:1]` should be zero.
DeltaFile
+40-40llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_wmma_w32.txt
+20-20llvm/test/MC/AMDGPU/gfx1250_asm_wmma_w32.s
+2-2llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+62-623 files

LLVM/project 0b3d001llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeHelper.cpp AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel regbankselect-mad_64_32.mir

[AMDGPU][GlobalISel] Add RegBankLegalize support for G_AMDGPU_MAD_*

Patch 2 of 4 patches to implement full G_MUL support in regbanklegalize.

Current mul.ll test is only partially updated and expected to fail.
It will be updated in the fourth patch.
DeltaFile
+47-162llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-mad_64_32.mir
+131-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
+4-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+2-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
+1-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.h
+185-1625 files

LLVM/project 58f9bdallvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel mul.ll

[AMDGPU][GlobalISel] Add partial RegBankLegalize support for G_MUL

Implement S16, S32, V2S16 support for G_MUL.

Part 1 of 4 patches to implement full G_MUL support in regbanklegalize.
Current mul.ll test is only partially updated due to missing S64 support that
will be implemented in the fourth patch thus mul.ll test will fail if it is run
without the fourth patch.
DeltaFile
+238-43llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
+7-1llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+245-442 files

LLVM/project 07538acllvm/test/MC/Disassembler/AMDGPU gfx1250_dasm_wmma_w32.txt

[NFC][AMDGPU] Generate dasm tests from asm tests
DeltaFile
+894-840llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_wmma_w32.txt
+894-8401 files

LLVM/project c6e03c7llvm/lib/Target/AMDGPU VOP3PInstructions.td, llvm/test/MC/AMDGPU gfx1250_asm_wmma_w32.s

[AMDGPU] Fix the encoding of VOP3PX2 instructions

ISA spec says `SCALE_OPSEL[0:1]` determines which parts of S3 and S4 are used, and `SCALE_OPSEL_HI[0:1]` should be zero.
DeltaFile
+157-157llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_wmma_w32.txt
+20-20llvm/test/MC/AMDGPU/gfx1250_asm_wmma_w32.s
+2-2llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+179-1793 files

LLVM/project 57a153allvm/test/MC/Disassembler/AMDGPU gfx1250_dasm_wmma_w32.txt

[NFC][AMDGPU] Generate dasm tests from asm tests
DeltaFile
+923-869llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_wmma_w32.txt
+923-8691 files

LLVM/project 6e62d40flang/lib/Semantics check-omp-loop.cpp, flang/test/Semantics/OpenMP linear-clause01.f90

[flang][OpenMP] Fix LINEAR clause validation and test expectations (#175707)

Fixes #175688

After #175383 was merged, the test
`Semantics/OpenMP/linear-clause01.f90` was failing because it had an
early return that prevented multiple errors from being reported.

This PR fixes two issues:

1. **Removes the early return** after detecting a modifier error on
DO/SIMD directives. Previously, when a modifier error was found, the
function would return immediately without checking other restrictions
like the scalar requirement. Now all applicable errors are reported.

2. **Updates test expectations** to expect both the modifier error AND
the scalar error for Case 1, where `arg(:)` is an array used with `uval`
modifier on a DO directive.


    [2 lines not shown]
DeltaFile
+3-5flang/test/Semantics/OpenMP/linear-clause01.f90
+1-1flang/lib/Semantics/check-omp-loop.cpp
+4-62 files

LLVM/project 6df63dcllvm/lib/Target/LoongArch LoongArchExpandPseudoInsts.cpp LoongArchMergeBaseOffset.cpp, llvm/lib/Target/LoongArch/AsmParser LoongArchAsmParser.cpp

[llvm][LoongArch] Add PC-relative address materialization using pcadd instructions

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
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 f7b943elibcxx/test/libcxx/ranges/range.adaptors/range.join.with nodiscard.verify.cpp, libcxx/test/libcxx/ranges/range.adaptors/range.join.with/range.join.with.iterator eq.nodiscard.verify.cpp

[libc++][ranges][NFC] Merge  `join_with_view`s `[[nodiscard]]` tests (#175734)

This just merges all tests in a single `nodiscard.verify.cpp` as is the
common practice.
DeltaFile
+99-0libcxx/test/libcxx/ranges/range.adaptors/range.join.with/nodiscard.verify.cpp
+0-35libcxx/test/libcxx/ranges/range.adaptors/range.join.with/range.join.with.sentinel/eq.nodiscard.verify.cpp
+0-33libcxx/test/libcxx/ranges/range.adaptors/range.join.with/range.join.with.overview/adaptor.nodiscard.verify.cpp
+0-30libcxx/test/libcxx/ranges/range.adaptors/range.join.with/range.join.with.view/base.nodiscard.verify.cpp
+0-30libcxx/test/libcxx/ranges/range.adaptors/range.join.with/range.join.with.iterator/eq.nodiscard.verify.cpp
+0-28libcxx/test/libcxx/ranges/range.adaptors/range.join.with/range.join.with.view/begin.nodiscard.verify.cpp
+99-1563 files not shown
+99-2409 files

LLVM/project 309ca6dclang/lib/Headers opencl-c.h

[Clang][OpenCL] Add cl_intel_split_work_group_barrier extension (#175878)

The extension adds support for split work group barriers in OpenCL C.
The spec is available at:

https://registry.khronos.org/OpenCL/extensions/intel/cl_intel_split_work_group_barrier.html
DeltaFile
+12-0clang/lib/Headers/opencl-c.h
+12-01 files

LLVM/project 57e19ddclang/lib/AST ExprConstant.cpp, clang/lib/Sema SemaExprCXX.cpp

Use more restrictive condition for adding ExprWithCleanups
DeltaFile
+1-4clang/lib/AST/ExprConstant.cpp
+2-1clang/lib/Sema/SemaExprCXX.cpp
+3-52 files

LLVM/project c560f1cclang/lib/Serialization ASTReaderDecl.cpp, clang/test/Modules pr149404-02.cppm pr172241.cppm

[Serialization] Stop demote var definition as declaration (#172430)

Close https://github.com/llvm/llvm-project/issues/172241
Close https://github.com/llvm/llvm-project/issues/64034
Close https://github.com/llvm/llvm-project/issues/149404
Close https://github.com/llvm/llvm-project/issues/174858

After this patch, we (the clang dev) no longer assumes there are at
most one definition in a redeclaration chain.

See

https://discourse.llvm.org/t/rfc-clang-not-assuming-there-is-at-most-one-definition-in-a-redeclaration-chain/89360
for details.
DeltaFile
+104-0clang/test/Modules/pr149404-02.cppm
+47-0clang/test/Modules/pr172241.cppm
+0-14clang/lib/Serialization/ASTReaderDecl.cpp
+151-143 files

LLVM/project be89247clang/lib/CodeGen CGDebugInfo.cpp CGDebugInfo.h, clang/test/DebugInfo/CXX simple-template-names.cpp

[DebugInfo] Set the DI flag for the simplified name of a template function/type (2/3). (#175708)

Set the `NameIsSimplified` flag for a template function/type that is
treated as having simplified names. Previous patch: #175130 .
Based on:
[RFC](https://discourse.llvm.org/t/rfc-debuginfo-selectively-generate-template-parameters-in-the-skeleton-cu/89395).
DeltaFile
+14-13clang/test/DebugInfo/CXX/simple-template-names.cpp
+19-6clang/lib/CodeGen/CGDebugInfo.cpp
+6-3clang/lib/CodeGen/CGDebugInfo.h
+39-223 files

LLVM/project c0edf78.github/workflows/containers/github-action-ci-tooling Dockerfile

[Github] Bump clang-format version to 21.1.8 for formatting job (#175850)

In line with the current de-facto support policy of bumping to the
first/last versions of a release.
DeltaFile
+1-1.github/workflows/containers/github-action-ci-tooling/Dockerfile
+1-11 files

LLVM/project 95da135libc/config/windows config.json, libc/src/stdio/printf_core char_converter.h parser.h

Revert "[libc] Support %lc in printf (#169983)"

This reverts commit 1327c50ef199b481f5326cf6ca3710fc111b70b1.

The printf headers are intended to be header-only, this introduces
external symbol dependencies.
DeltaFile
+1-97libc/test/src/stdio/sprintf_test.cpp
+6-44libc/src/stdio/printf_core/char_converter.h
+5-27libc/src/stdio/printf_core/parser.h
+0-19libc/src/stdio/printf_core/CMakeLists.txt
+0-10libc/test/src/stdio/CMakeLists.txt
+0-8libc/config/windows/config.json
+12-2056 files not shown
+12-22612 files

LLVM/project b1e4f26bolt/test/AArch64 epilogue-determination.s

[BOLT][AArch64] Fix epilogue-determination test (#175668)

Define jump table for each function, for conformance and better clarity.
DeltaFile
+6-1bolt/test/AArch64/epilogue-determination.s
+6-11 files

LLVM/project d1aaa49clang/lib/AST ExprConstant.cpp, clang/lib/Sema SemaExprCXX.cpp

Use setExprNeedsCleanups in BuildCXXNew and avoid breaking c++98

This approach is much cleaner, but broke checkICE reporting in c++98.
Stepping through a debugger shows that this happend because the
static_assert test didn not recognize ExprWithCleanups as transparent to
constant evaluation. To addresse this, we update CheckICE to recurse
into the sub-expression, and keep the old behavior.
DeltaFile
+4-15clang/lib/Sema/SemaExprCXX.cpp
+4-1clang/lib/AST/ExprConstant.cpp
+8-162 files

LLVM/project 0b783f5clang/lib/CodeGen CoverageMappingGen.cpp

[MC/DC] Refactor MCDCCoverageBuilder. NFC. (#125409)

- Get rid of the old `DecisionStack` and dissolve it into push/pop
`CurCondIDs` in `VisitBin`, since `VisitBin` is recursive.

- Introduce the new `DecisionStack` with `DecisionState` to handle the
current `Decision` in nested `Decision`s.
  - The stack has the sentinel that has `DecisionExpr = nullptr`.
- Split out `checkDecisionRootOrPush` from `pushAndAssignIDs` for
non-BinOp. It assigns `CondID` to `E` (instead of assignment LHS in
`pushAndAssignIDs`).
  - The stack is manupilated at the top Decision operator in `VisitBin`.
- The stack grows at the entrance of the Decision with the initial
state.
- In the same level in `VisitBin`, the stack is popped and the
`Decision` record is emitted.
- Introduce `DecisionEndToSince` to sweep `MCDCBranch`es partially in
`cancelDecision`.
DeltaFile
+185-126clang/lib/CodeGen/CoverageMappingGen.cpp
+185-1261 files

LLVM/project 34cec75llvm/include/llvm/IR GlobalObject.h

LLVM_ABI

Created using spr 1.3.6-beta.1
DeltaFile
+1-1llvm/include/llvm/IR/GlobalObject.h
+1-11 files