[all-commits] [llvm/llvm-project] 0aa831: [mlir][GPU] Implement ValueBoundsOpInterface for G...

Krzysztof Drewniak via All-commits all-commits at lists.llvm.org
Thu Jan 9 11:42:45 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0aa831e0edb1c1deabb96ce2435667cc82bac79b
      https://github.com/llvm/llvm-project/commit/0aa831e0edb1c1deabb96ce2435667cc82bac79b
  Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
  Date:   2025-01-09 (Thu, 09 Jan 2025)

  Changed paths:
    A mlir/include/mlir/Dialect/GPU/IR/ValueBoundsOpInterfaceImpl.h
    M mlir/include/mlir/InitAllDialects.h
    M mlir/lib/Dialect/GPU/CMakeLists.txt
    M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
    A mlir/lib/Dialect/GPU/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/test/Dialect/Affine/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/Affine/value-bounds-reification.mlir
    M mlir/test/Dialect/Arith/value-bounds-op-interface-impl.mlir
    A mlir/test/Dialect/GPU/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/Linalg/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/MemRef/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/SCF/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/Tensor/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/Vector/test-scalable-bounds.mlir
    M mlir/test/Dialect/Vector/value-bounds-op-interface-impl.mlir
    M mlir/test/lib/Dialect/Affine/TestReifyValueBounds.cpp

  Log Message:
  -----------
  [mlir][GPU] Implement ValueBoundsOpInterface for GPU ID operations (#122190)

The GPU ID operations already implement InferIntRangeInterface, which
gives constant lower and upper bounds on those IDs when appropriate
metadata is prentent on the operations or in the surrounding context.

This commit uses that existing code to implement the
ValueBoundsOpInterface, which is used when analyzing affine operations
(unlike the integer range interface, which is used for arithmetic
optimization).

It also implements the interface for gpu.launch, where we can use it to
express the constraint that block/grid sizes are equal to their value
from outside the launch op and that the corresponding IDs are bounded
above by that size.

As a consequence, the test pass for this inference is updated to work on
a FunctionOpInterface and not a func.func, creating minor churn in other
tests.



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