Abstract
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 language | English (US) |
---|---|
Pages (from-to) | 403-412 |
Number of pages | 10 |
Journal | ACM SIGPLAN Notices |
Volume | 50 |
Issue number | 6 |
DOIs | |
State | Published - Jun 2015 |
Keywords
- Meta-programming
- Optimization
- PGO
- Profile-guided optimization
- Profiling
ASJC Scopus subject areas
- General Computer Science