• DocumentCode
    1570491
  • Title

    Global predicate analysis and its application to register allocation

  • Author

    Gillies, David M. ; Ju, Dz-ching Roy ; Johnson, Richard ; Schlansker, Michael

  • Author_Institution
    Hewlett-Packard Co., Cupertino, CA, USA
  • fYear
    1996
  • Firstpage
    114
  • Lastpage
    125
  • Abstract
    To fully utilize the wide machine resources in modern high-performance microprocessors it is necessary to exploit parallelism beyond individual basic blocks. Architectural support for predicated execution increases the degree of instruction level parallelism by allowing instructions from different basic blocks to be converted to straight-line code guarded by boolean predicates. However predicated execution also presents significant challenges to an optimizing compiler. For example, in live range analysis, a predicated definition does not necessarily end the live range of a virtual register. This paper describes techniques to analyze the relations among predicates in order to improve the precision and effectiveness of various compiler analysis and transformation phases in the presence of predicated code. Our predicate analysis operates globally to obtain relations among predicates. Moreover, we analyze control flow and predication in a single unified framework. The result can be queried by subsequent optimization and analysis phases. Based on this framework, we extend a traditional method to a predicate-aware register allocator which takes global predicate relations into account. We have implemented the proposed algorithms to effectively reduce register pressure. Our experimental results show 24.6% of a large test suite obtain, on average, 20.71% and better register allocation due to the algorithms presented in this paper
  • Keywords
    instruction sets; optimising compilers; virtual storage; boolean predicates; global predicate analysis; high-performance microprocessors; instruction level parallelism; optimizing compiler; predicate-aware register allocator; register allocation; straight-line code; transformation phases; virtual register; Instruction sets; Laboratories; Microprocessors; Milling machines; Modems; Optimizing compilers; Performance analysis; Sun; Testing; VLIW;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Microarchitecture, 1996. MICRO-29.Proceedings of the 29th Annual IEEE/ACM International Symposium on
  • Conference_Location
    Paris
  • Print_ISBN
    0-8186-7641-8
  • Type

    conf

  • DOI
    10.1109/MICRO.1996.566455
  • Filename
    566455