• DocumentCode
    2202452
  • Title

    A fast algorithm for the elimination of common subexpressions

  • Author

    Ullman, J.D.

  • fYear
    1972
  • fDate
    25-27 Oct. 1972
  • Firstpage
    161
  • Lastpage
    176
  • Abstract
    There is a class of flow charts called "reducible" for which many global code optimization algorithms have been recently written. As a practical matter, one may expect the flow chart of a program appearing "in nature" to be reducible with a probability over 90% [3], and those that are not can be made reducible by "node splitting" [10]. Unfortunately, the algorithms written for reducible graphs do not really take advantage of reducibility, since they require O(n2) bit vecter steps in worst case, the same as for the obvious general algorithms of these types. In this paper we give an O(n log n) bit vecter step algorithm to determine "available expressions," [7]. This information is essential for global elimination of common subexpressions. However, the ideas discussed here carry over to other global code optimization problems such as "reaching definitions" [1], "live variables" [9] and "very busy variables" [6].
  • Keywords
    Flow graphs; Flowcharts; Program processors;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Switching and Automata Theory, 1972., IEEE Conference Record of 13th Annual Symposium on
  • Conference_Location
    USA
  • ISSN
    0272-4847
  • Type

    conf

  • DOI
    10.1109/SWAT.1972.1
  • Filename
    4569709