[Pl-seminar] 11/6: William J. Bowman, "Profile-directed (meta-)programming"
Vincent St-Amour
stamourv at ccs.neu.edu
Mon Nov 4 10:44:48 EST 2013
NUPRL Seminar presents
William J. Bowman
NUPRL
11:45 - 1:30
Wednesday, 11/6
Room 366 WVH (http://www.ccs.neu.edu/home/wand/directions.html)
Profile-directed (meta-)programming
Meta-programming is a technique for creating programs by defining
meta-language constructs that generate programs in a source language.
Meta-programming enables creating new, high-level constructs to express
the behavior of programs. Meta-programs are similar to compilers---they
enable reasoning in a higher-level language but produce code in a
lower-level language. To generate efficient source programs,
meta-programmers need the same tools and techniques as compiler writers.
Profile-directed optimization (PDO) is a compiler technique that uses
information such as execution counts, gathered from a sample run of a
program, to inform optimization decisions. This profile information can
be more precise than static heuristics. For instance, profile
information can say exactly how many times a loop body is executed,
while static heuristics can only estimate.
Until now, meta-programmers have not had access to profile information.
This work presents a technique for doing profile-directed optimizations
in meta-programs. We present a profiling system that gives per-source
expression profile information and provides a way to access this profile
information in the meta-language. This system is implemented in the
high-performance Chez Scheme compiler, and used in implementing an
internal Cisco project.
More information about the pl-seminar
mailing list