[mlir][sparse] refactoring: move genAffine to loopEmitter
authorPeiming Liu <peiming@google.com>
Wed, 16 Nov 2022 23:18:16 +0000 (23:18 +0000)
committerPeiming Liu <peiming@google.com>
Fri, 18 Nov 2022 21:39:04 +0000 (21:39 +0000)
commitd083dc63bbaaf9c966d7796881a4f210c1b5c024
tree2ae4e0ed8391f98801e7980e4a7e62e7609db1a7
parent91deae999a1ab3c195c2a464e1cdf9707e5365b6
[mlir][sparse] refactoring: move genAffine to loopEmitter

This is the beginning patch of a sequence of dependent patches that in together provide the affine expression on matched indexing mapping for sparse tensors.

This patch itself simply move `genAffine` into loop emitter to be prepared for upcoming patches.

D138169 provides support for affine expression on dense dimensions only (except for constant affine expression)
D138170 provides support for constant affine expressions on dense dimensions
D138171 provides **merger** support for affine expression on sparse dimension (without codegen)
D138172 provides **codegen** support (by generating a "filter" loop) for affine expression on sparse dimensions.
D138173 fixes a crash on resolveCycle when dealing with affine expressions.

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D138168
mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.cpp
mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.h
mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp