Framework for balancing control flow and predication

David I. August, Wen-Mei W Hwu, Scott A. Mahlke

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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 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.

Original languageEnglish (US)
Title of host publicationProceedings of the Annual International Symposium on Microarchitecture
Pages92-103
Number of pages12
DOIs
StatePublished - Dec 1 1997
EventProceedings of the 1997 30th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO-30 - Triangle Park, NC, USA
Duration: Dec 1 1997Dec 3 1997

Publication series

NameProceedings of the Annual International Symposium on Microarchitecture
ISSN (Print)1072-4451

Other

OtherProceedings of the 1997 30th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO-30
CityTriangle Park, NC, USA
Period12/1/9712/3/97

Fingerprint

Flow control
Scheduling

ASJC Scopus subject areas

  • Hardware and Architecture
  • Software

Cite this

August, D. I., Hwu, W-M. W., & Mahlke, S. A. (1997). Framework for balancing control flow and predication. In Proceedings of the Annual International Symposium on Microarchitecture (pp. 92-103). (Proceedings of the Annual International Symposium on Microarchitecture). https://doi.org/10.1109/MICRO.1997.645801

Framework for balancing control flow and predication. / August, David I.; Hwu, Wen-Mei W; Mahlke, Scott A.

Proceedings of the Annual International Symposium on Microarchitecture. 1997. p. 92-103 (Proceedings of the Annual International Symposium on Microarchitecture).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

August, DI, Hwu, W-MW & Mahlke, SA 1997, Framework for balancing control flow and predication. in Proceedings of the Annual International Symposium on Microarchitecture. Proceedings of the Annual International Symposium on Microarchitecture, pp. 92-103, Proceedings of the 1997 30th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO-30, Triangle Park, NC, USA, 12/1/97. https://doi.org/10.1109/MICRO.1997.645801
August DI, Hwu W-MW, Mahlke SA. Framework for balancing control flow and predication. In Proceedings of the Annual International Symposium on Microarchitecture. 1997. p. 92-103. (Proceedings of the Annual International Symposium on Microarchitecture). https://doi.org/10.1109/MICRO.1997.645801
August, David I. ; Hwu, Wen-Mei W ; Mahlke, Scott A. / Framework for balancing control flow and predication. Proceedings of the Annual International Symposium on Microarchitecture. 1997. pp. 92-103 (Proceedings of the Annual International Symposium on Microarchitecture).
@inproceedings{40fcefe08fed452e8dedc6a6ecd94438,
title = "Framework for balancing control flow and predication",
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 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.",
author = "August, {David I.} and Hwu, {Wen-Mei W} and Mahlke, {Scott A.}",
year = "1997",
month = "12",
day = "1",
doi = "10.1109/MICRO.1997.645801",
language = "English (US)",
isbn = "0818679778",
series = "Proceedings of the Annual International Symposium on Microarchitecture",
pages = "92--103",
booktitle = "Proceedings of the Annual International Symposium on Microarchitecture",

}

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/12/1

Y1 - 1997/12/1

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

ER -