Profile-guided meta-programming

William J. Bowman, Swaha Miller, Vincent St Amour, R. Kent Dybvig

Research output: Contribution to journalArticlepeer-review

4 Scopus citations


Contemporary compiler systems such as GCC,.NET, and LLVM incorporate profile-guided optimizations (PGOs) on low-level intermediate code and basic blocks, with impressive results over purely static heuristics. Recent work shows that profile information is also useful for performing source-to-source optimizations via meta-programming. For example, using profiling information to inform decisions about data structures and algorithms can potentially lead to asymptotic improvements in performance. We present a design for profile-guided meta-programming in a general-purpose meta-programming system. Our design is parametric over the particular profiler and meta-programming system. We implement this design in two different meta-programming systems-the syntactic extensions systems of Chez Scheme and Racket-and provide several profile-guided meta-programs as usability case studies.

Original languageEnglish (US)
Pages (from-to)403-412
Number of pages10
JournalACM SIGPLAN Notices
Issue number6
StatePublished - Jun 2015


  • Meta-programming
  • Optimization
  • PGO
  • Profile-guided optimization
  • Profiling

ASJC Scopus subject areas

  • Computer Science(all)


Dive into the research topics of 'Profile-guided meta-programming'. Together they form a unique fingerprint.

Cite this