• DocumentCode
    3472172
  • Title

    Exhaustive optimization phase order space exploration

  • Author

    Kulkarni, Prasad A. ; Whalley, David B. ; Tyson, Gary S. ; Davidson, Jack W.

  • Author_Institution
    Dept. of Comput. Sci., Florida State Univ., Tallahassee, FL, USA
  • fYear
    2006
  • fDate
    26-29 March 2006
  • Abstract
    The phase-ordering problem is a long standing issue for compiler writers. Most optimizing compilers typically have numerous different code-improving phases, many of which can be applied in any order. These phases interact by enabling or disabling opportunities for other optimization phases to be applied. As a result, varying the order of applying optimization phases to a program can produce different code, with potentially significant performance variation amongst them. Complicating this problem further is the fact that there is no universal optimization phase order that will produce the best code, since the best phase order depends on the function being compiled, the compiler, and the target architecture characteristics. Moreover, finding the optimal optimization sequence for even a single function is hard as the space of attempted optimization phase sequences is huge and the interactions between different optimizations are poorly understood. Most previous studies performed to search for the most effective optimization phase sequence assume the optimization phase order search space to be extremely large, and hence consider exhaustive exploration of this space infeasible. In this paper we show that even though the attempted search space is extremely large, with careful and aggressive pruning it is possible to limit the actual search space with no loss of information so that it can be completely evaluated in a matter of minutes or a few hours for most functions. We were able to exhaustively enumerate all the possible function instances that can be produced by different phase orderings performed by our compiler for more than 98% of the functions in our benchmark suite. In this paper we describe the algorithm we used to make exhaustive search of the optimization phase order space possible. We then analyze this space to automatically calculate relationships between different phases. Finally, we show that the results of this analysis can be used to reduce the compilation time for a conventional batch compiler.
  • Keywords
    optimising compilers; benchmark suite; compiler writers; optimization phase order space exploration; phase sequence optimization; Computer science; Energy consumption; Lifting equipment; Optimizing compilers; Performance analysis; Program processors; Space exploration;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Code Generation and Optimization, 2006. CGO 2006. International Symposium on
  • Print_ISBN
    0-7695-2499-0
  • Type

    conf

  • DOI
    10.1109/CGO.2006.15
  • Filename
    1611550