This change goes not impact any semantics yet, but it
is in preparation for implementing the unordered and not-unique
properties. Changing lex_insert to insert is a first step.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td | ||
---|---|---|
208–218 | Is it still the case if out-of-order insertion is allowed? | |
228 | I think memref for array of indices make sense when we are using library. Would an array<rank x index> (or even variadic inputs) be more straight forwards for codegen purpose? |
mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td | ||
---|---|---|
208–218 |
Or even more aggressively, if user can guarantee two insert sessions happen in lex order, which prevents them from being able to append value to an already materialized tensor? |
mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td | ||
---|---|---|
208–218 |
Sorry, I mean what prevents them from being able to append value to an already materialized tensor... |
mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td | ||
---|---|---|
228 | Say sparse_tensor.insert %t[%1, %2], %v : tensor<2x2xf64>, f64 |
mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td | ||
---|---|---|
208–218 | Agreed we may relax to allow such in-place "fill-in" at some point, but for now I like to conservatively keep the "fresh output" behavior that is inherent to TACO's index expressions and relax the requirements when the cross that bridge | |
228 | Yes, I was thinking of that too. We may benefit from the store i, memref[0] optimization in the codegen, but expressing this as SSA values will make this behavior much more clear |
mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td | ||
---|---|---|
228 | So, will it be in the next patch? I believe it would be more than just changing test cases. If so, the patch LGTM. |
mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td | ||
---|---|---|
228 | yeah that change will be much more involved; for now I really just wanted to remove the "lex" from "lex_insert". I changed the title to make that more clear. |
Is it still the case if out-of-order insertion is allowed?