An Efficient Technique to Remove Transformations

Although the application of code transformations is critical to exploit parallelism in pro- gram code, few guidelines or tools are provided to deter- mine what transformations should be applied and where they should be applied. In this paper, we approach this problem by fist providing a taxonomy of code transfor- mations to assist the user in parallelizing programs. We then present an eficient technique to remove transforma- tionsfrom the code when it is determined that they are ineffective or prevent more beneficial transformations from being applied. The technique to remove transforma- tions employs inverse primitive actions, making it transformation independent. The technique uses the pro- gram dependence graph as the intermediate representa- tion, making it language independent.

[1]  Yiya Yang,et al.  Anatomy of the Design of an Undo Support Facility , 1992, Int. J. Man Mach. Stud..

[2]  Dan R. Olsen,et al.  Macros by example in a graphical UIMS , 1988, IEEE Computer Graphics and Applications.

[3]  Mary Lou Soffa,et al.  Automatic generation of global optimizers , 1991, PLDI '91.

[4]  Craig Chambers,et al.  Debugging optimized code with dynamic deoptimization , 1992, PLDI '92.

[5]  Rajiv Gupta,et al.  Techniques for integrating parallelizing transformations and compiler based scheduling methods , 1992, Proceedings Supercomputing '92.

[6]  Mary Lou Soffa,et al.  An approach to ordering optimizing transformations , 1990, PPOPP '90.

[7]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[8]  Barbara M. Chapman,et al.  Knowledge-Based Parallelization for Distributed Memory Systems , 1991, ACPC.

[9]  George B. Leeman A formal approach to undo operations in programming languages , 1986, TOPL.

[10]  Warren Harrison Tools for multiple-CPU environments , 1990, IEEE Software.

[11]  Ken Kennedy,et al.  The parascope editor: an interactive parallel programming tool , 1993, Proceedings of the 1989 ACM/IEEE Conference on Supercomputing (Supercomputing '89).

[12]  Mary Lou Soffa,et al.  Incremental global reoptimization of programs , 1992, TOPL.

[13]  Mary Lou Soffa,et al.  Undoing Code Transformations in an Independent Order , 1994, 1994 Internatonal Conference on Parallel Processing Vol. 2.

[14]  Chyi-Ren Dow Pivot: a program parallelization and visualization environment , 1994 .