English

Optimal Software Pipelining using an SMT-Solver

Programming Languages 2026-02-02 v2

Abstract

Software Pipelining is a classic and important loop-optimization for VLIW processors. It improves instruction-level parallelism by overlapping multiple iterations of a loop and executing them in parallel. Typically, it is implemented using heuristics. In this paper, we present an optimal software pipeliner based on a Satisfiability Modulo Theories (SMT) Solver. We show that our approach significantly outperforms heuristic algorithms and hand-optimization. Furthermore, we show how the solver can be used to give feedback to programmers and processor designers on why a software pipelined schedule of a certain initiation interval is not feasible.

Keywords

Cite

@article{arxiv.2601.21842,
  title  = {Optimal Software Pipelining using an SMT-Solver},
  author = {Jan-Willem Roorda},
  journal= {arXiv preprint arXiv:2601.21842},
  year   = {2026}
}