Practical automatic loop specialization

Taewook Oh, Hanjun Kim, Nick P. Johnson, Jae W. Lee, David I. August

Research output: Contribution to journalArticlepeer-review

6 Scopus citations


Program specialization optimizes a program with respect to program invariants, including known, fixed inputs. These invariants can be used to enable optimizations that are otherwise unsound. In many applications, a program input induces predictable patterns of values across loop iterations, yet existing specializers cannot fully capitalize on this opportunity. To address this limitation, we present Invariant-induced Pattern based Loop Specialization (IPLS), the first fully-automatic specialization technique designed for everyday use on real applications. Using dynamic information-flow tracking, IPLS profiles the values of instructions that depend solely on invariants and recognizes repeating patterns across multiple iterations of hot loops. IPLS then specializes these loops, using those patterns to predict values across a large window of loop iterations. This enables aggressive optimization of the loop; conceptually, this optimization reconstructs recurring patterns induced by the input as concrete loops in the specialized binary. IPLS specializes realworld programs that prior techniques fail to specialize without requiring hints from the user. Experiments demonstrate a geomean speedup of 14.1% with a maximum speedup of 138% over the original codes when evaluated on three script interpreters and eleven scripts each.

Original languageEnglish (US)
Pages (from-to)419-430
Number of pages12
JournalACM SIGPLAN Notices
Issue number4
StatePublished - Apr 2013

All Science Journal Classification (ASJC) codes

  • General Computer Science


  • Loop specialization
  • Partial evaluation
  • Profile based optimization
  • Program specialization


Dive into the research topics of 'Practical automatic loop specialization'. Together they form a unique fingerprint.

Cite this