The program decision logic approach to predicated execution
- 1 May 1999
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGARCH Computer Architecture News
- Vol. 27 (2) , 208-219
- https://doi.org/10.1145/307338.300997
Abstract
Modern compilers must expose sufficient amounts of Instruction-Level Parallelism (ILP) to achieve the promised performance increases of superscalar and VLIW processors. One of the major impediments to achieving this goal has been inefficient programmatic control flow. Historically, the compiler has translated the programmer's original control structure directly into assembly code with conditional branch instructions. Eliminating inefficiencies in handling branch instructions and exploiting ILP has been the subject of much research. However, traditional branch handling techniques cannot significantly alter the program's inherent control structure. The advent of predication as a program control representation has enabled compilers to manipulate control in a form more closely related to the underlying program logic. This work takes full advantage of the predication paradigm by abstracting the program control flow into a logical form referred to as a program decision logic network. This network is modeled as a Boolean equation and minimized using modified versions of logic synthesis techniques. After minimization, the more efficient version of the program's original control flow is re-expressed in predicated code. Furthermore, this paper proposes extensions to the HPL PlayDoh predication model in support of more effective predicate decision logic network minimization. Finally, this paper shows the ability of the mechanisms presented to overcome limits on ILP previously imposed by rigid program control structure.Keywords
This publication has 11 references indexed in Scilit:
- Interprocedural conditional branch eliminationPublished by Association for Computing Machinery (ACM) ,1997
- Avoiding conditional branches by code replicationPublished by Association for Computing Machinery (ACM) ,1995
- A comparison of full and partial predicated execution support for ILP processorsPublished by Association for Computing Machinery (ACM) ,1995
- Reverse If-ConversionPublished by Association for Computing Machinery (ACM) ,1993
- The multiflow trace scheduling compilerThe Journal of Supercomputing, 1993
- Two-level adaptive training branch predictionPublished by Association for Computing Machinery (ACM) ,1991
- The Cydra 5 departmental supercomputer: design philosophies, decisions, and trade-offsComputer, 1989
- Graph-Based Algorithms for Boolean Function ManipulationIEEE Transactions on Computers, 1986
- Conversion of control dependence to data dependencePublished by Association for Computing Machinery (ACM) ,1983
- Binary Decision DiagramsIEEE Transactions on Computers, 1978