Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation (2003)
Amsterdam, The Netherlands
Sept. 26, 2003 to Sept. 27, 2003
Otto Skrove Bagge , Chr. Michelsen Research AS
Karl Trygve Kalleberg , University of Bergen
Magne Haveraaen , University of Bergen
Eelco Visser , Utrecht University
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.<div></div> 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.<div></div> 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.
K. T. Kalleberg, E. Visser, O. S. Bagge and M. Haveraaen, "Design of the CodeBoost Transformation System for Domain-Specific Optimisation of C++ Programs," Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation(SCAM), Amsterdam, The Netherlands, 2003, pp. 65.