[all-commits] [llvm/llvm-project] 86f91e: [mlir][sparse] Cleaning up the dim/lvl distinction...

wren romano via All-commits all-commits at lists.llvm.org
Mon Dec 5 16:59:57 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 86f91e45a22bbb981ede3439c7241ee92ea522ec
      https://github.com/llvm/llvm-project/commit/86f91e45a22bbb981ede3439c7241ee92ea522ec
  Author: wren romano <2998727+wrengr at users.noreply.github.com>
  Date:   2022-12-05 (Mon, 05 Dec 2022)

  Changed paths:
    M mlir/include/mlir/ExecutionEngine/SparseTensor/Storage.h
    M mlir/include/mlir/ExecutionEngine/SparseTensorRuntime.h
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
    M mlir/lib/ExecutionEngine/SparseTensorRuntime.cpp
    M mlir/test/Dialect/SparseTensor/conversion.mlir
    M mlir/test/Dialect/SparseTensor/convert_sparse2dense.mlir
    M mlir/test/Dialect/SparseTensor/sparse_expand.mlir
    M mlir/test/Dialect/SparseTensor/sparse_perm_lower.mlir

  Log Message:
  -----------
  [mlir][sparse] Cleaning up the dim/lvl distinction in SparseTensorConversion

This change cleans up the conversion pass re the "dim"-vs-"lvl" and "sizes"-vs-"shape" distinctions of the runtime. A quick synopsis includes:

* Adds new `SparseTensorStorageBase::getDimSize` method, with `sparseDimSize` wrapper in SparseTensorRuntime.h, and `genDimSizeCall` generator in SparseTensorConversion.cpp
* Changes `genLvlSizeCall` to perform no logic, just generate the function call.
* Adds `createOrFold{Dim,Lvl}Call` functions to handle the logic of replacing `gen{Dim,Lvl}SizeCall` with constants whenever possible. The `createOrFoldDimCall` function replaces the old `sizeFromPtrAtDim`.
* Adds `{get,fill}DimSizes` functions for iterating `createOrFoldDimCall` across the whole type. These functions replace the old `sizesFromPtr`.
* Adds `{get,fill}DimShape` functions for lowering a `ShapedType` into constants. These functions replace the old `sizesFromType`.
* Changes the `DimOp` rewrite to do the right thing.
* Changes the `ExpandOp` rewrite to compute the proper expansion size.

Depends On D138365

Reviewed By: aartbik

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




More information about the All-commits mailing list