O. S. Bagge, K. T. Kalleberg, M. Haveraaen and E. Visser.
Design of the CodeBoost transformation system for domain-specific optimisation of C++ programs. In D. Binkley and P. Tonella, editors, Third IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'03), Amsterdam, September 2003. IEEE Computer Society Press. To appear.
Abstract
The use of a high-level, abstract coding style can greatly increase
developer productivity. For numerical software, this can result in
drastically reduced run-time performance. High-level, domain-specific
optimisations can eliminate much of the overhead caused by an abstract
coding style, but current compilers have poor support for domain-specific
optimisation.
In this paper we present
CodeBoost, a source-to-source transformation
tool for domain-specific optimisation of C++ programs.
CodeBoost
performs parsing, semantic analysis and pretty-printing, and
transformations can be implemented either in the Stratego program
transformation language, or as user-defined rewrite rules embedded within
the C++ program.
CodeBoost has been used with great success to optimise
numerical applications written in the Sophus high-level coding style.
We discuss the overall design of the
CodeBoost transformation framework,
and take a closer look at two important features of
CodeBoost:
user-defined rules and totem annotations. We also show briefly how
CodeBoost is used to optimise Sophus code, resulting in applications that
run twice as fast, or more.
Links