Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

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

Published: 01 October 1999 Publication History

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.

References

[1]
1. J. E. Smith, A Study of Branch Prediction Strategies, Proc. Eigth Int'l. Symp. Computer Architecture, pp. 135-148 (May 1981).
[2]
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]
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).
[4]
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]
5. J. C. Park and M. S. Schlansker, On Predicated Execution, Technical Report HPL-91-58, Hewlett Packard Laboratories, Palo Alto, California (May 1991).
[6]
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]
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).
[8]
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).
[9]
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]
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]
11. G. S. Tyson, The Effects of Predicated Execution on Branch Prediction, Proc. 27th Int'l. Symp. Microarchitecture, pp. 196-206 (December 1994).
[12]
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]
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]
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]
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]
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]
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]
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).
[19]
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]
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]
21. R. Johnson and M. Schlansker, Analysis Techniques for Predicated Code, Proc. 29th Int'l. Symp. Microarchitecture, pp. 100-113 (December 1996).
[22]
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]
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]
24. R. A. Bringmann, Compiler-Controlled Speculation, Ph.D. thesis, Department of Computer Science, University of Illinois, Urbana, Illinois (1995).
[25]
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]
26. Hewlett-Packard Company, Cupertino, California, PA-RISC 1.1 Architecture and Instruction Set Reference Manual (1990).
[27]
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).

Cited By

View all
  • (2024)If-Convert as Early as You MustProceedings of the 33rd ACM SIGPLAN International Conference on Compiler Construction10.1145/3640537.3641562(26-38)Online publication date: 17-Feb-2024
  • (2013)IR-level versus machine-level if-conversion for predicated architecturesProceedings of the 10th Workshop on Optimizations for DSP and Embedded Systems10.1145/2443608.2443611(3-10)Online publication date: 24-Feb-2013
  • (2013)Exploring alternative flexible OpenCL (FlexCL) core designs in FPGA-based MPSoC systemsProceedings of the 2013 Workshop on Rapid Simulation and Performance Evaluation: Methods and Tools10.1145/2432516.2432519(1-8)Online publication date: 21-Jan-2013
  • Show More Cited By

Index Terms

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

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image International Journal of Parallel Programming
      International Journal of Parallel Programming  Volume 27, Issue 5
      Oct. 1999
      99 pages
      ISSN:0885-7458
      Issue’s Table of Contents

      Publisher

      Kluwer Academic Publishers

      United States

      Publication History

      Published: 01 October 1999

      Author Tags

      1. CONTROL FLOW
      2. IF-CONVERSION
      3. INSTRUCTION SCHEDULING
      4. PREDICATED EXECUTION
      5. REVERSE IF-CONVERSION

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 25 Dec 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)If-Convert as Early as You MustProceedings of the 33rd ACM SIGPLAN International Conference on Compiler Construction10.1145/3640537.3641562(26-38)Online publication date: 17-Feb-2024
      • (2013)IR-level versus machine-level if-conversion for predicated architecturesProceedings of the 10th Workshop on Optimizations for DSP and Embedded Systems10.1145/2443608.2443611(3-10)Online publication date: 24-Feb-2013
      • (2013)Exploring alternative flexible OpenCL (FlexCL) core designs in FPGA-based MPSoC systemsProceedings of the 2013 Workshop on Rapid Simulation and Performance Evaluation: Methods and Tools10.1145/2432516.2432519(1-8)Online publication date: 21-Jan-2013
      • (2006)Merging Head and Tail Duplication for Convergent Hyperblock FormationProceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture10.1109/MICRO.2006.34(65-76)Online publication date: 9-Dec-2006

      View Options

      View options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media