Effective Compiler Support For Predicated Execution Using The Hyperblock

Predicated execution is an effective technique for dealing with conditional branches in application programs. However, there are several problems associated with conventional compiler support for predicated execution. First, all paths of control are combined into a single path regardless of their execution frequency and size with conventional if-conversion techniques. Second, speculative execution is difficult to combine with predicated execution. In this paper, we propose the use of a new structure, referred to as the hyperblock, to overcome these problems. The hyperblock is an efficient structure to utilize predicated execution for both compiletime optimization and scheduling. Preliminary experimental results show that the hyperblock is highly effective for a wide range of superscalar and VLIW processors.

[1]  Scott A. Mahlke,et al.  Superblock formation using static program analysis , 1993, Proceedings of the 26th Annual International Symposium on Microarchitecture.

[2]  Roger A. Bringmann,et al.  Sentinel scheduling: a model for compiler-controlled speculative execution , 1992, TOCS.

[3]  Scott A. Mahlke,et al.  IMPACT: an architectural framework for multiple-instruction-issue processors , 1991, ISCA '91.

[4]  M. Schlansker,et al.  On Predicated Execution , 1991 .

[5]  Mike Schlansker,et al.  Parallelization of loops with exits on pipelined architectures , 1990, Proceedings SUPERCOMPUTING '90.

[6]  Peter Y.-T. Hsu,et al.  Overlapped loop support in the Cydra 5 , 1989, ASPLOS III.

[7]  B. Ramakrishna Rau,et al.  The Cydra 5 departmental supercomputer: design philosophies, decisions, and trade-offs , 1989, Computer.

[8]  Alexander Aiken,et al.  Optimal loop parallelization , 1988, PLDI '88.

[9]  Monica S. Lam,et al.  RETROSPECTIVE : Software Pipelining : An Effective Scheduling Technique for VLIW Machines , 1998 .

[10]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1984, TOPL.

[11]  Peter Y.-T. Hsu,et al.  Highly concurrent scalar processing , 1986, ISCA '86.

[12]  Ken Kennedy,et al.  Conversion of control dependence to data dependence , 1983, POPL '83.

[13]  B. Ramakrishna Rau,et al.  Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing , 1981, MICRO 14.

[14]  Etienne Morel,et al.  Global optimization by suppression of partial redundancies , 1979, CACM.

[15]  R. A. Towle,et al.  Control and data dependence for program transformations. , 1976 .