[mlir][sparse] start a sparse codegen conversion pass
authorAart Bik <ajcbik@google.com>
Fri, 26 Aug 2022 20:49:07 +0000 (13:49 -0700)
committerAart Bik <ajcbik@google.com>
Mon, 29 Aug 2022 16:39:33 +0000 (09:39 -0700)
commit86b22d312053f38c7ea94af49dd0e93c660ffec8
tree918f49adc1b456c313fa89c789745a8100e1844d
parent2f811a6c7f43bf8d71e49388e0e82c924fb7a00c
[mlir][sparse] start a sparse codegen conversion pass

This new pass provides an alternative to the current conversion pass
that converts sparse tensor types and sparse primitives to opaque pointers
and calls into a runtime support library. This pass will map sparse tensor
types to actual data structures and primitives to actual code. In the long
run, this new pass will remove our dependence on the support library, avoid
the need to link in fully templated and expanded code, and provide much better
opportunities for optimization on the generated code.

Reviewed By: Peiming

Differential Revision: https://reviews.llvm.org/D132766
mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.h
mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.td
mlir/lib/Dialect/SparseTensor/Transforms/CMakeLists.txt
mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp [new file with mode: 0644]
mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorPasses.cpp
mlir/test/Dialect/SparseTensor/codegen.mlir [new file with mode: 0644]
mlir/test/Dialect/SparseTensor/conversion.mlir