Abstract
Although code transformations are routinely applied to improve the performance of programs for both scalar and parallel machines, the properties of code-improving transformations are n not well understood. In this article we present a framework that enables the explorations, both analytically and experimentally, of properties of code-improving transformations. The major component of the framework is a specification language, Gospel, for expressing the conditions needed to safely apply a transformation and the actions required to change the code to implement the transformation. The framework includes a technique that facilitates an analytical investigation of code-improving transformations using the Gospel specifications. It also contains a tool Genesis, that automatically produces a transformer that implements the transformations specified in Gospel. We demonstrate the usefulness of the framework by exploring the enabling and disabling properties of transformations. We first present analytical result on the enabling and disabling properties of a set of code transformations, including both traditional and parallelizing transformations, and then describe experimental results showing the types of transformations and the enabling and disabling interactions actually found in a set of programs.
Author supplied keywords
Cite
CITATION STYLE
Whitfield, D. L., & Soffa, M. L. (1997). An Approach for Exploring Code-Improving Transformations. ACM Transactions on Programming Languages and Systems, 19(6), 1053–1084. https://doi.org/10.1145/267959.267960
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.