Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Open access

An approach for exploring code improving transformations

Published: 01 November 1997 Publication History

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 not well understood. In this article we present a framework that enables the exploration, 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 results 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.

References

[1]
ALT, M. AND MARTIN, F. 1995. Generation of efficient interprocedural analyzers with PAG. In Lecture Notes in Computer Science, A. Mycroft, Ed. Vol. 983. Springer-Verlag, Berlin.]]
[2]
BURDEN, R. AND FAIRES, J. D. 1989. Numerical Analysis. Prindle, Weber and Schmidt, Boston, Mass.]]
[3]
CLICK, C. 1995. Global code motion global value numbering. In Proceedings of the SIGPLAN '95 Conference on Programming Language Design and Implementation. ACM, New York, 246-257.]]
[4]
DAVIDSON, J. W. AND FRASER, C.W. 1984. Automatic generation of peephole transformations. In Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction. ACM, New York, 111-115.]]
[5]
DWYER, M. AND CLARKE, L. 1996. A flexible architecture for building data flow analyzers. In Proceedings of the 18th International Conference on Software Engineering. 554-564.]]
[6]
FRASER, C. W. AND WENDT, A. L. 1988. Automatic generation of fast optimizing code generators. In Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation. ACM, New York, 79-84.]]
[7]
GIEGERICH, R. 1982. Automatic generation of machine specific code transformer. In Proceedings of the 9th Annual ACM Symposium on Principles of Programming Languages. ACM, New York, 75-81.]]
[8]
FREE SOFTWARE FOUNDATION. 1995. GNU C Compiler Manual. Version 2.7.2. Free Software Foundation, Inc., Boston, Mass.]]
[9]
KESSLER, R.R. 1984. Peep--An architectural description driven peephole transformer. In Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction. SIGPLAN Not. 19, 6 (June), 106-110.]]
[10]
PADUA, D. A. AND WOLFE, M.J. 1986. Advanced compiler transformations for supercomputers. Commun. ACM 29, 12 (Dec.), 1184-1201.]]
[11]
SARKAR, V. AND THEKKATH, R. 1992. A general framework for iteration-reordering loop transformations. In Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation. ACM, New York, 175-187.]]
[12]
STANFORD SUIF COMPILER GROUP. 1994. The SUIF Parallelizing Compiler Guide. Version 1.0. Stanford Univ., Stanford, Calif.]]
[13]
TJIANG, S. AND HENNESSY, J. 1992. Sharlit--A tool for building transformers. In Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation. ACM, New York, 82-93.]]
[14]
VENKATESH, G. A. AND FISCHER, C. N. 1992. SPARE: A development environment for program analysis algorithms. IEEE Trans. Softw. Eng. 18, 4 (Apr.), 304-318.]]
[15]
WATTS, T., SOFFA, M. L., AND GUPTA, R. 1992. Techniques for integrating parallelizing transformation and compiler based scheduling methods. In Proceedings of Supercomputing '92. IEEE, New York, 830-839.]]
[16]
WHITFIELD, D. AND SOFFA, M.L. 1990. An approach to ordering optimizing transformations. In Proceedings of the 2nd ACM SIGPLAN Symposium on Principles and Practices of Parallel Programming. ACM, New York, 137-146.]]
[17]
WHITFIELD, D. AND SOFFA, M. L. 1991. Automatic generation of global optimizers. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation. ACM, New York, 120-129.]]
[18]
WHITFIELD, D. AND SOFFA, M.L. 1993. Investigation of properties of code transformations. In Proceedings of the 1993 International Conference on Parallel Processing. 156-160.]]
[19]
WHITFIELD, D. AND SOFFA, M.L. 1994. The design and implementation of Genesis. IEEE J. Softw. Pract. Exper. 24, 3 (Mar.), 307-325.]]
[20]
WOLFE, M. 1989. A loop restructuring research tool. Oregon Graduate Inst. of Science and Technology.]]
[21]
WOLFE, M. 1996. High Performance Compilers for Parallel Computing. Addison-Wesley, Redwood, Calif.]]

Cited By

View all
  • (2024)Shoot Yourself in the Foot — Efficient Code Causes Inefficiency in Compiler OptimizationsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695548(1846-1857)Online publication date: 27-Oct-2024
  • (2024)Exponentially Expanding the Phase-Ordering Search Space via Dormant InformationProceedings of the 33rd ACM SIGPLAN International Conference on Compiler Construction10.1145/3640537.3641582(250-261)Online publication date: 17-Feb-2024
  • (2024)Application-level Validation of Accelerator Designs Using a Formal Software/Hardware InterfaceACM Transactions on Design Automation of Electronic Systems10.1145/363905129:2(1-25)Online publication date: 14-Feb-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 19, Issue 6
Nov. 1997
235 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/267959
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 November 1997
Published in TOPLAS Volume 19, Issue 6

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. automatic generation of optimizers
  2. code-improving transformations
  3. enabling and disabling of optimizations
  4. parallelizing transformations
  5. specification of program optimizations

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)120
  • Downloads (Last 6 weeks)13
Reflects downloads up to 01 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Shoot Yourself in the Foot — Efficient Code Causes Inefficiency in Compiler OptimizationsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695548(1846-1857)Online publication date: 27-Oct-2024
  • (2024)Exponentially Expanding the Phase-Ordering Search Space via Dormant InformationProceedings of the 33rd ACM SIGPLAN International Conference on Compiler Construction10.1145/3640537.3641582(250-261)Online publication date: 17-Feb-2024
  • (2024)Application-level Validation of Accelerator Designs Using a Formal Software/Hardware InterfaceACM Transactions on Design Automation of Electronic Systems10.1145/363905129:2(1-25)Online publication date: 14-Feb-2024
  • (2023)Pattern-Based Peephole Optimizations with Java JIT TestsProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598038(64-75)Online publication date: 12-Jul-2023
  • (2023)Semantic Transformation Framework for Rewriting RulesProceedings of the 2023 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation10.1145/3571786.3573016(1-13)Online publication date: 15-Jan-2023
  • (2023)Compiler Optimization for Quantum Computing Using Reinforcement Learning2023 60th ACM/IEEE Design Automation Conference (DAC)10.1109/DAC56929.2023.10248002(1-6)Online publication date: 9-Jul-2023
  • (2022)Don't DIY: Automatically transform legacy Python code to support structural pattern matching2022 IEEE 22nd International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM55253.2022.00024(164-169)Online publication date: Oct-2022
  • (2021)Rewrite rule inference using equality saturationProceedings of the ACM on Programming Languages10.1145/34854965:OOPSLA(1-28)Online publication date: 15-Oct-2021
  • (2021)Deriving efficient program transformations from rewrite rulesProceedings of the ACM on Programming Languages10.1145/34735795:ICFP(1-29)Online publication date: 19-Aug-2021
  • (2021)Pure tensor program rewriting via access patterns (representation pearl)Proceedings of the 5th ACM SIGPLAN International Symposium on Machine Programming10.1145/3460945.3464953(21-31)Online publication date: 21-Jun-2021
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media