TY - GEN
T1 - Framework for balancing control flow and predication
AU - August, David I.
AU - Hwu, Wen mei W.
AU - Mahlke, Scott A.
PY - 1997
Y1 - 1997
N2 - 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 effectively apply if-conversion, one must address two major issues: what should be if-converted and when the if-conversion should be applied. A compiler's use of predication as a representation is most effective when large amounts of code are if-converted and if-conversion is performed early in the compilation procedure. On the other hand, the final code generated for a processor with predicated execution requires a delicate balance between control flow and predication to achieve efficient execution. The appropriate balance is tightly coupled with scheduling decisions and detailed processor characteristics. This paper presents an effective compilation framework 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.
AB - 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 effectively apply if-conversion, one must address two major issues: what should be if-converted and when the if-conversion should be applied. A compiler's use of predication as a representation is most effective when large amounts of code are if-converted and if-conversion is performed early in the compilation procedure. On the other hand, the final code generated for a processor with predicated execution requires a delicate balance between control flow and predication to achieve efficient execution. The appropriate balance is tightly coupled with scheduling decisions and detailed processor characteristics. This paper presents an effective compilation framework 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.
UR - http://www.scopus.com/inward/record.url?scp=0031359056&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0031359056&partnerID=8YFLogxK
U2 - 10.1109/MICRO.1997.645801
DO - 10.1109/MICRO.1997.645801
M3 - Conference contribution
AN - SCOPUS:0031359056
SN - 0818679778
T3 - Proceedings of the Annual International Symposium on Microarchitecture
SP - 92
EP - 103
BT - Proceedings of the Annual International Symposium on Microarchitecture
T2 - Proceedings of the 1997 30th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO-30
Y2 - 1 December 1997 through 3 December 1997
ER -