  Sparse Matrices found in the real world often have some structure in how the
dense elements are organized. While the inspector-executor model inspects
matrices for structure, its generality can overlook further specialization. We
propose a system that - if the sparse matrix is stored in a blocked storage
format - can generate more efficient code by constructing regular loops over
these blocks. Our system performs a specified computation over every element of
the block instead of avoiding computing any sparse element at all and achieving
regularity in specialized code. The system is extensible, providing a dense
block iterator for the user to express any computation over these dense blocks.
We show that this approach can significantly speed up SpMV and SpMM operations
over the state-of-the-art systems Partially-Strided Codelets and Sparse
Register Tiling.
