Apply the "for loop peeling" pattern from SCF dialect transforms. This pattern splits scf.for loops into full and partial iterations. In the full iteration, all masked loads/stores are canonicalized to unmasked loads/stores.
Depends On D107222
| Paths 
 |  Differential  D107733  
[mlir][SparseTensor] Split scf.for loop into masked/unmasked parts ClosedPublic Authored by springerm on Aug 9 2021, 12:26 AM. 
Details Summary Apply the "for loop peeling" pattern from SCF dialect transforms. This pattern splits scf.for loops into full and partial iterations. In the full iteration, all masked loads/stores are canonicalized to unmasked loads/stores. Depends On D107222 
Diff Detail 
 Event TimelineHerald added subscribers: wrengr, Chia-hungDuan, dcaballe and 17 others.  ·  View Herald TranscriptAug 9 2021, 12:26 AM 
 springerm marked an inline comment as done.Comment Actions address comments 
 
 springerm marked 2 inline comments as done.Comment Actions address comments 
 springerm added inline comments. 
 
 Comment Actions I will stop the bikeshedding and LG this revision. But please still have a look if you can keep the -LABEL. This revision is now accepted and ready to land.Aug 16 2021, 9:32 PM 
 
 This revision was landed with ongoing or failed builds.Aug 19 2021, 5:53 AM Closed by commit rG76a186181634: [mlir][SparseTensor] Split scf.for loop into masked/unmasked parts (authored by springerm).  ·  Explain Why This revision was automatically updated to reflect the committed changes. springerm marked an inline comment as done. 
Revision Contents 
 
 
Diff 367473 mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.td
 mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
 mlir/test/Dialect/SparseTensor/sparse_vector.mlir
 mlir/test/Dialect/SparseTensor/sparse_vector_peeled.mlir
 
 utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
you are running all the tests in this file now for VEC-2-PEELED
shall we test the peeling in a separate test that does just that?
e.g. sparse_vector_peeled.mlir with just that one function, the one RUN, and the one CHECK?