Open aartbik opened 2 years ago
assigned to @aartbik
Hi!
This issue may be a good introductory issue for people new to working on LLVM. If you would like to work on this issue, your first steps are:
1) Assign the issue to you.
2) Fix the issue locally.
3) Run the test suite locally.
3.1) Remember that the subdirectories under test/
create fine-grained testing targets, so you can
e.g. use make check-clang-ast
to only run Clang's AST tests.
4) Create a git
commit
5) Run git clang-format HEAD~1
to format your changes.
6) Submit the patch to Phabricator.
6.1) Detailed instructions can be found here
For more instructions on how to submit a patch to LLVM, see our documentation.
If you have any further questions about this issue, don't hesitate to ask via a comment on this Github issue.
@llvm/issue-subscribers-good-first-issue
Extended Description
Implement strided load/stores on dense arrays, so that vectorization does not need to be disabled when the access pattern is non-contiguous for the dense data structures.
Start by looking at denseUnitStrides() in https://github.com/llvm/llvm-project/blob/main/mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
This will require tensor loads and stores that have become non-unit stride to compute the proper strides and use this during vectorization.
This is a non-trivial starter, and requires adding vector dialect support first (for the non-unit stride load and stores) and then very careful engineering within the sparse compiler codegen).