Language Extensions for Performance-Oriented Programming
Joel Stanley, M.S. Thesis

Abstract:

Modern software development practices lack portable, precise and powerful mechanisms for describing performance properties of application code. Traditional approaches rely almost solely on performance instrumentation libraries, which have significant drawbacks in certain types (e.g., adaptive) of applications, present the end user with integration challenges and complex APIs, and often pose portability problems of their own. This thesis proposes a small set of C-like language extensions that facilitate the treatment of performance properties as intrinsic properties of application code. The proposed language extensions allow the application developer to encode performance expectations, gather and aggregate various types of performance information, and more, all at the language level. Furthermore, this thesis demonstrates many novel compiler implementation techniques that make the the presented approach possible with an arbitrary (third-party) compiler, and that minimize performance perturbation by enabling compiler optimizations that are commonly inhibited by traditional approaches. This thesis describes the fundamental contribution of language-level performance properties, the language extensions themselves, the implementation of the compilation and runtime system, together with a standard library of widely-used metrics, and demonstrates the role that the extensions and compilation system can play in describing the performance-oriented aspects of both a production-quality raytracing application and a long-running adaptive server code.

Published:

"Language Extensions for Performance-Oriented Programming", Joel Stanley.
Masters Thesis, Computer Science Dept., University of Illinois at Urbana-Champaign, July 2003.

Download:

BibTeX Entry:

  @MastersThesis{Stanley:MSThesis03,
    author  = {Joel Stanley},
    title   = "{Language Extensions for Performance-Oriented Programming}",
    school  = "{Computer Science Dept., University of Illinois at Urbana-Champaign}",
    year    = {2003},
    address = {Urbana, IL},
    month   = {July},
    note    = {{\em See {\tt http://llvm.cs.uiuc.edu}.}}
  }