Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td | ||
---|---|---|
322 | Can you also mention how the order of elements relates to elements in the tensor? | |
mlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp | ||
198 | Debugging leftover? | |
198–199 | Could this use the overload that just takes the values? | |
571 | Here, too. | |
571 | Could this use the overload that just takes extenTensor? | |
mlir/lib/Dialect/Tensor/IR/TensorOps.cpp | ||
413 | This needs to be the stride. So you can compute flatIndex *= tensorType.getDimSize(i) and then do flatIndex += index.getSExtValue. | |
mlir/lib/Dialect/Tensor/Transforms/Bufferize.cpp | ||
85 | Would it be easier to always allocate a 1d memref, write the values and then reshape it into the final shape? |
Address the comments.
mlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp | ||
---|---|---|
198–199 | only if we are absolutely sure that the elements are not empty. Unfortunately, there is this ugly use case: %0 = tensor.from_elements : tensor<0xindex> | |
571 | There is a builder that does it. But we have to be sure that extentValues are not empty. | |
mlir/lib/Dialect/Tensor/Transforms/Bufferize.cpp | ||
85 | It would be the same number of stores + additional reshape that might break some canonicalizations. I think the best variant would be to have a memref.from_elements and then we could lower it to llvm creating a necessary descriptor and linearly populating the underlying buffer. |
Can you also mention how the order of elements relates to elements in the tensor?