[all-commits] [llvm/llvm-project] 107d85: [mlir] Add Repeated<T> constructors for TypeRange ...

Jakub Kuderski via All-commits all-commits at lists.llvm.org
Thu Mar 26 04:20:33 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 107d8539d0451c8b079814d23498aa23b2cde1f5
      https://github.com/llvm/llvm-project/commit/107d8539d0451c8b079814d23498aa23b2cde1f5
  Author: Jakub Kuderski <jakub at nod-labs.com>
  Date:   2026-03-26 (Thu, 26 Mar 2026)

  Changed paths:
    M llvm/include/llvm/ADT/Repeated.h
    M mlir/include/mlir/IR/TypeRange.h
    M mlir/include/mlir/IR/ValueRange.h
    M mlir/include/mlir/Support/LLVM.h
    M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp
    M mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
    M mlir/lib/Conversion/TosaToSCF/TosaToSCF.cpp
    M mlir/lib/Conversion/VectorToAMX/VectorToAMX.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp
    M mlir/lib/Dialect/Vector/Utils/VectorUtils.cpp
    M mlir/lib/IR/OperationSupport.cpp
    M mlir/lib/IR/TypeRange.cpp
    M mlir/unittests/IR/OperationSupportTest.cpp

  Log Message:
  -----------
  [mlir] Add Repeated<T> constructors for TypeRange and ValueRange (#186923)

Many MLIR APIs end up using a range of the same Type / Value repeated N
times, due to the (function of the) dimensionality of the problem.
Allocating a vector of N identical element is wasteful.

Add `Repeated<T>` as PointerUnion variants in TypeRange and ValueRange,
enabling O(1) storage for repeated elements. Size remains 2 pointers (16
bytes on 64-bit) for both range types. This required variable-width
`PointerUnion` encoding added in
https://github.com/llvm/llvm-project/pull/188167 on 32-bit systems.

Also update several MLIR dialects and conversions to exercise the new
code.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply at anthropic.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list