Skip to main content
Log in

The Partial Reverse If-Conversion Framework for Balancing Control Flow and Predication

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Predicated execution is a promising architectural feature for exploiting instruction-level parallelism in the presence of control flow. Compiling for predicated execution involves converting program control flow into conditional, or predicated, instructions. This process is known as if-conversion. In order to apply ifconversion effectively, one must address two major issues: what should be ifconverted and when the if-conversion should be performed. A compiler's use of predication as a representation is most effective when large amounts of code are if-converted and when if-conversion is performed early in the compilation procedure. On the other hand, efficient execution of code generated for a processor with predicated execution requires a delicate balance between control flow and predication. The appropriate balance is tightly coupled with scheduling decisions and detailed processor characteristics. This paper presents a compilation framework based on partial reverse if-conversion that allows the compiler to maximize the benefits of predication as a compiler representation while delaying the final balancing of control flow and predication to schedule time.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

REFERENCES

  1. J. E. Smith, A Study of Branch Prediction Strategies, Proc. Eigth Int' l. Symp. Computer Architecture, pp. 135–148 (May 1981)

  2. T. Y. Yeh and Y. N. Patt, Two-Level Adaptive Training Branch Prediction, Proc. 24th Ann. Int'l. Symp. Microarchitecture, pp. 51–61 (November 1991).

  3. N. J. Warter, Modulo Scheduling with Isomorphic Control Transformation, Ph.D. thesis, Department of Electrical and Computer Engineering, University of Illinois, Urbana, Illinois (1993).

    Google Scholar 

  4. J. R. Allen, K. Kennedy, C. Porterfield, and J. Warren, Conversion of Control Dependence to Data Dependence, Proc. Tenth ACM Symp. Principles Progr. Lang., pp. 177–189 (January 1983).

  5. J. C. Park and M. S. Schlansker, On Predicated Execution, Technical Report HPL-91-58, Hewlett Packard Laboratories, Palo Alto, California (May 1991).

    Google Scholar 

  6. P. Y. Hsu and E. S. Davidson, Highly Concurrent Scalar Processing, Proc. 13th Int'l. Symp. Computer Architecture, pp. 386–395 (June 1986).

  7. B. R. Rau, D. W. L. Yen, W. Yen, and R. A. Towle, The Cydra 5 Departmental Supercomputer, IEEE Computer 22:12–35 (January 1989).

    Google Scholar 

  8. V. Kathail, M. S. Schlansker, and B. R. Rau, HPL PlayDoh Architecture Specification: Version 1.0, Technical Report HPL-93-80, Hewlett Packard Laboratories, Palo Alto, California (February 1994).

    Google Scholar 

  9. D. N. Pnevmatikatos and G. S. Sohi, Guarded Execution and Branch Prediction in Dynamic ILP Processors, Proc. 21th Int'l. Symp. Computer Architecture, pp. 120–129 (April 1994).

  10. S. A. Mahlke, R. E. Hank, R. A. Bringmann, J. C. Gyllenhaal, D. M. Gallagher, and W. W. Hwu, Characterizing the Impact of Predicated Execution on Branch Prediction, Proc. 27th Int'l. Symp. Microarchitecture, pp. 217–227 (December 1994).

  11. G. S. Tyson, The Effects of Predicated Execution on Branch Prediction, Proc. 27th Int'l. Symp. Microarchitecture, pp. 196–206 (December 1994)

  12. M. Schlansker, V. Kathail, and S. Anik, Height Reduction of Control Recurrences for ILP Processors, Proc. 27th Int'l. Symp. Microarchitecture, pp. 40–51 (December 1994)

  13. J. C. Dehnert, P. Y. Hsu, and J. P. Bratt, Overlapped Loop Support in the Cydra 5, Proc. Third Int'l. Conf. Architectural Support Progr. Lang. Operat. Syst., pp. 26–38 (April 1989).

  14. S. A. Mahlke, D. C. Lin, W. Y. Chen, R. E. Hank, R. A. Bringmann, and W. W. Hwu, Effective Compiler Support for Predicated Execution Using the Hyperblock, Proc. 25th Int'l. Symp. Microarchitecture, pp. 45–54 (December 1992)

  15. S. A. Mahlke, R. E. Hank, J. McCormick, D. I. August, and W. W. Hwu, A Comparison of Full and Partial Predicated Execution Support for ILP Processors, Proc. 22th Int'l. Symp. Computer Architecture, pp. 138–150 (June 1995).

  16. D. I. August, J. W. Sias, J. Puiatti, S. A. Mahlke, D. A. Connors, K. M. Crozier, and W. W. Hwu, The Program Decision Logic Approach to Predicated Execution, Proc. 26th Int'l. Symp. Computer Architecture, pp. 208–219 (May 1999).

  17. D. I. August, D. A. Connors, J. C. Gyllenhaal, and W. W. Hwu, Architectural Support for Compiler-Synthesized Dynamic Branch Prediction Strategies: Rationale and Initial Results, Third Int'l. Symp. High-Performance Computer Architecture, pp. 84–93 (February 1997).

  18. J. C. Gyllenhaal, An Efficient Framework for Performing Execution-Constraint-Sensitive Transformation that Increase Instruction-Level Parallelism, Ph.D. thesis, Department of Electrical and Computer Engineering, University of Illinois, Urbana, Illinois (1997).

    Google Scholar 

  19. D. I. August, W. W. Hwu, and S. A. Mahlke, A Framework for Balancing Control Flow and Predication, Proc. 30th Ann. Int'l. Symp. Microarchitecture, pp. 92–103 (December 1997).

  20. N. J. Warter, S. A. Mahlke, W. W. Hwu, and B. R. Rau, Reverse If-Conversion, Proc. ACM SIGPLAN Conf. Progr. Lang. Design and Implementation, pp. 290–299 (June 1993).

  21. R. Johnson and M. Schlansker, Analysis Techniques for Predicated Code, Proc. 29th Int'l. Symp. Microarchitecture, pp. 100–113 (December 1996)

  22. D. M. Gillies, D. R. Ju, R. Johnson, and M. Schlansker, Global Predicate Analysis and Its Application to Register Allocation, Proc. 29th Int' l. Symp. Microarchitecture, pp. 114–125 (December 1996).

  23. J. Knoop, O. Ruthing, and B. Steffen, Partial Dead Code Elimination, Proc. ACM SIGPLAN Conf. Progr. Lang. Design and Implementation, pp. 147–158 (June 1994).

  24. R. A. Bringmann, Compiler-Controlled Speculation, Ph.D. thesis, Department of Computer Science, University of Illinois, Urbana, Illinois (1995).

    Google Scholar 

  25. B. L. Deitrich and W. W. Hwu, Speculative Hedge: Regulating Compile-Time Speculation Against Profile Variations, Proc. 29th Int'l. Symp. Microarchitecture, pp. 70–79 (December 1996).

  26. Hewlett-Packard Company, Cupertino, California, PA-RISC 1.1 Architecture and Instruction Set Reference Manual (1990).

  27. W. W. Hwu, S. A. Mahlke, W. Y. Chen, P. P. Chang, N. J. Warter, R. A. Bringmann, R. G. Ouellette, R. E. Hank, T. Kiyohara, G. E. Haab, J. G. Holm, and D. M. Lavery, The Superblock: An Effective Technique for VLIW and Superscalar Compilation, J. Supercomputing 7:229–248 (January 1993).

    Google Scholar 

Download references

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

August, D.I., Hwu, WM.W. & Mahlke, S.A. The Partial Reverse If-Conversion Framework for Balancing Control Flow and Predication. International Journal of Parallel Programming 27, 381–423 (1999). https://doi.org/10.1023/A:1018787007582

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1018787007582

Navigation