Dl. Whitfield et Ml. Soffa, AN APPROACH FOR EXPLORING CODE IMPROVING TRANSFORMATIONS, ACM transactions on programming languages and systems, 19(6), 1997, pp. 1053-1084
Although code transformations are routinely applied to improve the per
formance of programs for both scalar and parallel machines, the proper
ties of code-improving transformations are not well understood. In thi
s article we present a framework that enables the exploration, both an
alytically and experimentally, of properties of code-improving transfo
rmations. The major component of the framework is a specification lang
uage, Gospel, for expressing the conditions needed to safely apply a t
ransformation and the actions required to change the code to implement
the transformation. The framework includes a technique that facilitat
es an analytical investigation of code-improving transformations using
the Gospel specifications. It also contains a tool, Genesis, that aut
omatically 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. W
e first present analytical results on the enabling and disabling prope
rties 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 i
nteractions actually found in a set of programs.