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.
Wed 17 Jun
|09:15 - 09:40|
|09:40 - 10:05|
Yufei DingNorth Carolina State University, Jason AnselMassachusetts Institute of Technology, Kalyan VeeramachaneniMassachusetts Institute of Technology, Xipeng ShenNorth Carolina State University, Una-May O’ReillyMassachusetts Institute of Technology, Saman AmarasingheMITLink to publication Media Attached
|10:05 - 10:30|
Charith MendisMIT CSAIL, Jeffrey BosboomMIT CSAIL, Kevin WuMIT CSAIL, Shoaib KamilMIT CSAIL, USA, Jonathan Ragan-KelleyStanford, Sylvain ParisAdobe, Qin ZhaoGoogle, Saman AmarasingheMITMedia Attached
|10:30 - 10:55|
William J. BowmanNortheastern University, Swaha MillerCisco Systems, Inc, Vincent St-AmourNortheastern University, R. Kent DybvigCisco Systems, IncLink to publication Media Attached