[all-commits] [llvm/llvm-project] d6abdf: [mlir][AMDGPU] Remove buffer ops that are statical...

Krzysztof Drewniak via All-commits all-commits at lists.llvm.org
Mon Nov 21 08:47:33 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d6abdf46bc4d305f6046a8134316dd19cc6b5598
      https://github.com/llvm/llvm-project/commit/d6abdf46bc4d305f6046a8134316dd19cc6b5598
  Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
  Date:   2022-11-21 (Mon, 21 Nov 2022)

  Changed paths:
    M mlir/include/mlir/Dialect/AMDGPU/AMDGPU.td
    M mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
    M mlir/lib/Dialect/AMDGPU/IR/CMakeLists.txt
    A mlir/test/Dialect/AMDGPU/canonicalize.mlir

  Log Message:
  -----------
  [mlir][AMDGPU] Remove buffer ops that are statically out of bounds

When the bounds check attribute is true, the raw buffer load, store,
and atomic operations have well-defined behavior (returning 0 for
loads and ignoring stores) when the buffer access exceeds the bounds
of the memory being accessed.

Because of how LLVM currently implements these buffer operations (as
opaque intrinsics), the backend cannot optimize out this known
behavior and eliminate the memory operations. Therefore, use MLIR's
canonicalization system to eliminate these operations.

Reviewed By: nirvedhmeshram

Differential Revision: https://reviews.llvm.org/D138146




More information about the All-commits mailing list