• DocumentCode
    3354996
  • Title

    Phi-predication for light-weight if-conversion

  • Author

    Chuang, Weihaw ; Calder, Brad ; Ferrante, Jeanne

  • Author_Institution
    Dept. of Comput. Sci. & Eng., Univ. of California, San Diego, CA, USA
  • fYear
    2003
  • fDate
    23-26 March 2003
  • Firstpage
    179
  • Lastpage
    190
  • Abstract
    Predicated execution can eliminate hard to predict branches and help to enable instruction level parallelism. Many current predication variants exist where the result update is conditional based upon the outcome of the guarding predicate. However conditional writing of a register creates a naming problem for an out-of-order processor and can stall the issuing of instructions. This problem arises from potential multiple predicated definitions reaching a use, which is unresolved until the prior predicate values are computed. We focus on a light-weight form of predication, phi-predication, where all predicated instructions write a result value to their register regardless of the predicate value (i.e. even if it is false). Therefore, the predicate does not guard the writing of the result register; it instead acts as a form of selection between two input registers. This eliminates the naming problem for an out-of-order processor. Our phi-predicated ISA is derived from the predicated features of the Multiflow ISA, with extensions to efficiently predicate complex control flow. Our compiler modifications also expand upon prior techniques to provide efficient code generation. We examine the use of phi-predication for an in-order and out-of-order architecture and compare its performance to using select-op and IA64 ISA predication.
  • Keywords
    parallel programming; pipeline processing; program compilers; IA64 ISA predication; compiler modifications; conditional register writing; efficient code generation; guarding predicate; in-order architecture; instruction level parallelism; light-weight if-conversion; multiflow ISA; multiple predicated definitions; naming problem; out-of-order architecture; out-of-order processor; phi-predication; predicated execution; predicated instructions; select-op; Computer science; Electric breakdown; Instruction sets; Out of order; Parallel processing; Pipelines; Processor scheduling; Registers; Throughput; Writing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Code Generation and Optimization, 2003. CGO 2003. International Symposium on
  • Print_ISBN
    0-7695-1913-X
  • Type

    conf

  • DOI
    10.1109/CGO.2003.1191544
  • Filename
    1191544