Course Description:

Compilation is ordinarily a one-shot deal: you compile your program, and then execute it. What then, is adaptive compilation, and why is it interesting?

Compilation is adaptive if the normal compilation strategy (compile, then execute) is changed, based on information obtained outside of compile-time. Much more information about the program may be available after compile-time, and so using this information may lead to much greater performance.

Adaptive compilation can be:

We will read papers that cover all these aspects of adaptive compilation, particularly as they relate to performance issues. Another theme we will examine in the course is the need for adaptation of the compiler structure itself. Adaptive compilation may require anything from simple, small changes, as in profile-based compilation, to total reorganization which makes the compiler just one component in a suite of highly interactive tools.