Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/800168.811537acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

Code generation for expressions with common subexpressions (Extended Abstract)

Published: 01 January 1976 Publication History
  • Get Citation Alerts
  • Abstract

    Easy as the task may seem, many compilers generate rather inefficient code. Some of the difficulty of generating good code may arise from the lack of realistic models for programming language and machine semantics. In this paper we show that the computational complexity of generating efficient code in realistic situations may also be a major cause of difficulty in the design of good compilers.
    We consider the problem of generating optimal code for a set of expressions. If the set of expressions has no common sub-expressions, then a number of efficient optimal code generation algorithms are known for wide classes of machines [SU, AJ, BL].

    References

    [1]
    A. V. Aho, J. E. Hopcroft and J. D. Ullman, The Design and Analysis of Computer Algorithms, Addison Wesley, 1974.
    [2]
    A. V. Aho and S. C. Johnson, "Optimal Code Generation for Expression Trees," Proc. Seventh Annual ACM Symposium on Theory of Computing, May 1975, pp. 207-217.
    [3]
    A. V. Aho and J. D. Ullman, The Theory of Parsing, Translation and Compiling, Vol. II, Compiling, Prentice Hall, 1973.
    [4]
    J. C. Beatty, "A Register Assignment Algorithm for Generation of Highly Optimised Object Code," IBM J. Res. Dev. 18,1 (January 1974), 20-39.
    [5]
    L. A. Belady, "A Study of Replacement Algorithms for Virtual Storage Computers," IBM Syst. J., 5:2 (1966) 78-101.
    [6]
    M. A. Breuer, "Generation of Optimal Code for Expressions via Factorization," Comm. ACM 12,6 (June 1969), 333-340.
    [7]
    J. L. Bruno and T. Lassagne, "The Generation of Optimal Code for Stack Machines," J. ACM 22,3 (July 1975), 382-397.
    [8]
    J. L. Bruno and R. Sethi, "Register Allocation for a One-Register Machine," TR-157, Computer Science Dept., Penn State Univ., University Park, Pa., Oct., 1974.
    [9]
    S. Chen, "On the Sethi-Ullman Algoport #11, Bell Laboratories, Holmdel, N. J., May, 1973.
    [10]
    J. Cocke and J. T. Schwartz, Programming Languages and their Compilers (second edition) Courant Institute, NYU, New York, 1970.
    [11]
    A. Demers, private communication.
    [12]
    R. J. Fateman, "Optimal Code for Serial and Parallel Computation," Comm. ACM 12,12 (December 1969), 694-695.
    [13]
    R. A. Freiburghouse, "Register Allocation Via Usage Counts," Comm. ACM 17,11 (November 1974), 638-642.
    [14]
    L. P. Horowitz, R. M. Karp, R. E. Miller and S. Winograd, "Index Register Al-location," J ACM 13,1 (January 1966), 43-61.
    [15]
    R. Sethi, "Complete Register Allocation Problems," SIAM J. Computing 4,3 (September 1975), 226-248.
    [16]
    R. Sethi, private communication.
    [17]
    R. Sethi and J. D. Ullman, "The Generation of Optimal Code for Arithmetic Expressions," J. ACM 17,4 (October 1970), 715-728.
    [18]
    W. M. Waite, "Optimization," In Compiler Construction: An Advanced Course, F. L. Bauer and J. Eickel, eds., Springer-Verlag,
    [19]
    S. G. Wasilew, "A Compiler Writing System with Optimization Capabilities for Complex Order Structures," Ph. D. Thesis, Northwestern Univ., Evanston, Ill., 1971.
    [20]
    W. A. Wulf, R. K. Johnsson, C. B. Weinstock, S. O. Hobbs and C. M. Geschke, The Design of an Optimizing Compiler, Elsevier, 1975.

    Cited By

    View all
    • (2024)Methodology for Code Synthesis Evaluation of LLMs Presented by a Case Study of ChatGPT and CopilotIEEE Access10.1109/ACCESS.2024.340385812(72303-72316)Online publication date: 2024
    • (2023)Multiplication by ConstantsApplication-Specific Arithmetic10.1007/978-3-031-42808-1_12(365-426)Online publication date: 23-Aug-2023
    • (2021)Reducing redundancy in data organization and arithmetic calculation for stencil computationsProceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis10.1145/3458817.3476154(1-15)Online publication date: 14-Nov-2021
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    POPL '76: Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
    January 1976
    224 pages
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 January 1976

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    POPL '76 Paper Acceptance Rate 20 of 90 submissions, 22%;
    Overall Acceptance Rate 824 of 4,130 submissions, 20%

    Upcoming Conference

    POPL '25

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)147
    • Downloads (Last 6 weeks)25
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Methodology for Code Synthesis Evaluation of LLMs Presented by a Case Study of ChatGPT and CopilotIEEE Access10.1109/ACCESS.2024.340385812(72303-72316)Online publication date: 2024
    • (2023)Multiplication by ConstantsApplication-Specific Arithmetic10.1007/978-3-031-42808-1_12(365-426)Online publication date: 23-Aug-2023
    • (2021)Reducing redundancy in data organization and arithmetic calculation for stencil computationsProceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis10.1145/3458817.3476154(1-15)Online publication date: 14-Nov-2021
    • (2014)Non-volatile registers aware instruction selection for embedded systems2014 IEEE 20th International Conference on Embedded and Real-Time Computing Systems and Applications10.1109/RTCSA.2014.6910508(1-9)Online publication date: Aug-2014
    • (2008)Comprehensive isomorphic subtree enumerationProceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems10.1145/1450095.1450122(177-186)Online publication date: 19-Oct-2008
    • (2004)Automatic storage optimizationACM SIGPLAN Notices10.1145/989393.98939839:4(28-37)Online publication date: 1-Apr-2004
    • (2003)Stack inspectionACM Transactions on Programming Languages and Systems10.1145/641909.64191225:3(360-399)Online publication date: 1-May-2003
    • (2003)Eliminating synchronization bottlenecks using adaptive replicationACM Transactions on Programming Languages and Systems10.1145/641909.64191125:3(316-359)Online publication date: 1-May-2003
    • (2002)System-level exploration of association table implementations in telecom network applicationsACM Transactions on Embedded Computing Systems10.1145/581888.5818951:1(106-140)Online publication date: 1-Nov-2002
    • (2002)Linear combination of transformationsACM Transactions on Graphics10.1145/566654.56659221:3(380-387)Online publication date: 1-Jul-2002
    • 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

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media