10.1145/36206.36194acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedings
ARTICLE

Superoptimizer: a look at the smallest program

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. Google ScholarGoogle Scholar
  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. Google ScholarGoogle Scholar
  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. Google ScholarGoogle Scholar
  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. Google ScholarGoogle Scholar

Index Terms

  1. Superoptimizer: a look at the smallest program

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      ACM Conferences cover image
      ASPLOS II: Proceedings of the second international conference on Architectual support for programming languages and operating systems
      October 1987
      205 pages
      ISBN:0818608056
      • Editor:
      • Randy Katz,
      • General Chair:
      • Martin Freeman

      Publisher

      IEEE Computer Society Press

      Washington, DC, United States

      Publication History

      • Published: 1 October 1987

      Permissions

      Request permissions about this article.

      Request Permissions

      Qualifiers

      • ARTICLE

      Acceptance Rates

      Overall Acceptance Rate 686 of 3,465 submissions, 20%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!