An Approach for Exploring Code-Improving Transformations

102Citations
Citations of this article
19Readers
Mendeley users who have this article in their library.

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.

Cite

CITATION STYLE

APA

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.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free