Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/36206.36194acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
Article
Free access

Superoptimizer: a look at the smallest program

Published: 01 October 1987 Publication History

Abstract

Given an instruction set, the superoptimizer finds the shortest program to compute a function. Startling programs have been generated, many of them engaging in convoluted bit-fiddling bearing little resemblance to the source programs which defined the functions. The key idea in the superoptimizer is a probabilistic test that makes exhaustive searches practical for programs of useful size. The search space is defined by the processor's instruction set, which may include the whole set, but it is typically restricted to a subset. By constraining the instructions and observing the effect on the output program, one can gain insight into the design of instruction sets. In addition, superoptimized programs may be used by peephole optimizers to improve the quality of generated code, or by assembly language programmers to improve manually written code.

References

[1]
Aho, A. V., Sethi, R, Ullman, J. D. Compilers Principles, Techniques, and Tools. Addison Wesley, 1986.
[2]
Davidson, J. W. and Fraser, C. W. Automatic Generation of Peephole Optimizations. In Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction, pages 111--116. ACM/SIGPLAN, June, 1984.
[3]
Kessler, P. B. Discovering Machine-Specific Code Improvements. In Proceedings of the ACM/SIGPLAN '86 Symposium on Compiler Construction, pages 249--254. ACM/SIGPLAN, June, 1986.
[4]
Krumme, D. W. and Ackley, D. H. A Practical Method for Code Generation Based On Exhaustive Search. In Proceedings of the ACM SIGPLAN '82 Symposium on Compiler Construction, pages 185--196. ACM/SIGPLAN, June, 1982.

Cited By

View all
  • (2024)SuperStack: Superoptimization of Stack-Bytecode via Greedy, Constraint-Based, and SAT TechniquesProceedings of the ACM on Programming Languages10.1145/36564358:PLDI(1437-1462)Online publication date: 20-Jun-2024
  • (2024)Hydra: Generalizing Peephole Optimizations with Program SynthesisProceedings of the ACM on Programming Languages10.1145/36498378:OOPSLA1(725-753)Online publication date: 29-Apr-2024
  • (2024)Parallel Assembly SynthesisLogic-Based Program Synthesis and Transformation10.1007/978-3-031-71294-4_1(3-26)Online publication date: 9-Sep-2024
  • Show More Cited By

Index Terms

  1. Superoptimizer: a look at the smallest program

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ASPLOS II: Proceedings of the second international conference on Architectual support for programming languages and operating systems
    October 1987
    205 pages
    ISBN:0818608056
    DOI:10.1145/36206
    Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 October 1987

    Check for updates

    Qualifiers

    • Article

    Conference

    ASPLOS II
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 535 of 2,713 submissions, 20%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)553
    • Downloads (Last 6 weeks)82
    Reflects downloads up to 17 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)SuperStack: Superoptimization of Stack-Bytecode via Greedy, Constraint-Based, and SAT TechniquesProceedings of the ACM on Programming Languages10.1145/36564358:PLDI(1437-1462)Online publication date: 20-Jun-2024
    • (2024)Hydra: Generalizing Peephole Optimizations with Program SynthesisProceedings of the ACM on Programming Languages10.1145/36498378:OOPSLA1(725-753)Online publication date: 29-Apr-2024
    • (2024)Parallel Assembly SynthesisLogic-Based Program Synthesis and Transformation10.1007/978-3-031-71294-4_1(3-26)Online publication date: 9-Sep-2024
    • (2023)Linker Code Size Optimization for Native Mobile ApplicationsProceedings of the 32nd ACM SIGPLAN International Conference on Compiler Construction10.1145/3578360.3580256(168-179)Online publication date: 17-Feb-2023
    • (2023)Towards Porting Operating Systems with Program SynthesisACM Transactions on Programming Languages and Systems10.1145/356394345:1(1-70)Online publication date: 3-Mar-2023
    • (2023)Formally Verified EVM Block-OptimizationsComputer Aided Verification10.1007/978-3-031-37709-9_9(176-189)Online publication date: 17-Jul-2023
    • (2023)Verifying the Verifier: eBPF Range Analysis VerificationComputer Aided Verification10.1007/978-3-031-37709-9_12(226-251)Online publication date: 17-Jul-2023
    • (2022)WeTune: Automatic Discovery and Verification of Query Rewrite RulesProceedings of the 2022 International Conference on Management of Data10.1145/3514221.3526125(94-107)Online publication date: 10-Jun-2022
    • (2022)Vector instruction selection for digital signal processors using program synthesisProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507714(1004-1016)Online publication date: 28-Feb-2022
    • (2022)Automatic generation of debug headers through BlackBox equivalence checkingProceedings of the 20th IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO53902.2022.9741273(144-154)Online publication date: 2-Apr-2022
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Login options

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media