• DocumentCode
    3305648
  • Title

    Procedural Abstraction with Reverse Prefix Trees

  • Author

    Schaeckeler, Stefan ; Shang, Weijia

  • Author_Institution
    Dept. of Comput. Eng., Santa Clara Univ., Santa Clara, CA
  • fYear
    2009
  • fDate
    22-25 March 2009
  • Firstpage
    243
  • Lastpage
    253
  • Abstract
    For memory constrained environments like embedded systems, optimization for size is often as important as, if not more important than, optimization for execution speed. A common technique for compacting code is procedural abstraction. Equivalent code fragments are identified and abstracted into a procedure. The standard algorithm for identifying these fragments is based on suffix trees. We propose in this paper the calculation of suffix trees over the program text not in the common top-down fashion, but reversed, i.e. bottom-up. With this simple modification, not only equivalent fragments can be identified, but also fragments equivalent to (possibly often differently long) suffixes of the longest fragments. A longest fragment is then abstracted, and all fragments are replaced by procedure calls to their corresponding start instruction somewhere in the abstracted procedure. This allows us to harvest more and longer fragments than with standard suffix trees, improving code size reductions on average by 8.277% over standard suffix trees.
  • Keywords
    embedded systems; optimising compilers; tree data structures; code compaction; code execution speed optimization; code size optimization; embedded system; memory constrained environment; post-pass optimization; procedural abstraction; procedure call; reverse prefix tree; suffix tree; Assembly; Code standards; Compaction; Constraint optimization; Costs; Embedded computing; Embedded system; Personal digital assistants; Random access memory; Visualization; code compaction; code size reduction; embedded systems; post-pass optimization; procedural abstraction; program visualization; reverse prefix tree; suffix tree;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Code Generation and Optimization, 2009. CGO 2009. International Symposium on
  • Conference_Location
    Seattle, WA
  • Print_ISBN
    978-0-7695-3576-0
  • Type

    conf

  • DOI
    10.1109/CGO.2009.25
  • Filename
    4907668