[all-commits] [llvm/llvm-project] a55a0a: [mlir] Remove over specified memory effects

Andrew Young via All-commits all-commits at lists.llvm.org
Thu Jan 14 14:50:59 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a55a0a3056b8163d9e709b534bd737730fbb5d44
      https://github.com/llvm/llvm-project/commit/a55a0a3056b8163d9e709b534bd737730fbb5d44
  Author: Andrew Young <youngar17 at gmail.com>
  Date:   2021-01-14 (Thu, 14 Jan 2021)

  Changed paths:
    M mlir/docs/Interfaces.md
    M mlir/include/mlir/Dialect/GPU/GPUOps.td
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
    M mlir/test/Dialect/Linalg/sparse_1d.mlir
    M mlir/test/Dialect/Linalg/sparse_2d.mlir
    M mlir/test/Dialect/Linalg/sparse_3d.mlir
    M mlir/test/Transforms/canonicalize.mlir

  Log Message:
  -----------
  [mlir] Remove over specified memory effects

The standard and gpu dialect both have `alloc` operations which use the
memory effect `MemAlloc`.  In both cases, it is specified on both  the
operation itself and on the result.  This results in two memory effects
being created for these operations.  When `MemAlloc` is defined on an
operation, it represents some background effect which the compiler
cannot reason about, and  inhibits the ability of the compiler to
remove dead `std.alloc` operations.  This change removes the uneeded
`MemAlloc` effect from these operations and leaves the effect on the
result, which allows dead allocs to be erased.

There is the same problem, but to a lesser extent, with MemFree, MemRead
and MemWrite. Over-specifying these traits is not currently inhibiting
any optimization.

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




More information about the All-commits mailing list