Incremental compiler transformations for multiple instruction retry

Shyh‐Kwei ‐K Chen, Neal J. Alewine, W. Kent Fuchs, Wen‐Mei W. Hwu

Research output: Contribution to journalArticle

Abstract

Previous work on compiler‐based multiple instruction retry has utilized a series of compiler transformations, loop protection, node splitting, and loop expansion, to eliminate anti‐dependencies of length ≤ N in the pseudo register, the machine register, and the post‐pass resolver phases of compilation.1 The results have provided a means of rapidly recovering from transient processor failures by rolling back N instructions. This paper presents techniques for improving compilation and run‐time performance in compiler‐based multiple instruction retry. Incremental updating enhances compilation time when new instructions are added to the program. Post‐pass code rescheduling and spill register reassignment algorithms improve the run‐time performance and decrease the code growth across the application programs studied. Branch hazards are shown to be resolvable by simple modifications to the incremental updating schemes during the pseudo register phase and to the spill register reassignment algorithm during the post‐pass phase.

Original languageEnglish (US)
Pages (from-to)1179-1198
Number of pages20
JournalSoftware: Practice and Experience
Volume24
Issue number12
DOIs
StatePublished - Dec 1994

Fingerprint

Hazardous materials spills
Application programs
Hazards

Keywords

  • Fault‐tolerant computing
  • Instruction retry
  • Rollback recovery

ASJC Scopus subject areas

  • Software

Cite this

Incremental compiler transformations for multiple instruction retry. / Chen, Shyh‐Kwei ‐K; Alewine, Neal J.; Fuchs, W. Kent; Hwu, Wen‐Mei W.

In: Software: Practice and Experience, Vol. 24, No. 12, 12.1994, p. 1179-1198.

Research output: Contribution to journalArticle

Chen, Shyh‐Kwei ‐K ; Alewine, Neal J. ; Fuchs, W. Kent ; Hwu, Wen‐Mei W. / Incremental compiler transformations for multiple instruction retry. In: Software: Practice and Experience. 1994 ; Vol. 24, No. 12. pp. 1179-1198.
@article{9355cc4e0eb340008f22c6ad95f23885,
title = "Incremental compiler transformations for multiple instruction retry",
abstract = "Previous work on compiler‐based multiple instruction retry has utilized a series of compiler transformations, loop protection, node splitting, and loop expansion, to eliminate anti‐dependencies of length ≤ N in the pseudo register, the machine register, and the post‐pass resolver phases of compilation.1 The results have provided a means of rapidly recovering from transient processor failures by rolling back N instructions. This paper presents techniques for improving compilation and run‐time performance in compiler‐based multiple instruction retry. Incremental updating enhances compilation time when new instructions are added to the program. Post‐pass code rescheduling and spill register reassignment algorithms improve the run‐time performance and decrease the code growth across the application programs studied. Branch hazards are shown to be resolvable by simple modifications to the incremental updating schemes during the pseudo register phase and to the spill register reassignment algorithm during the post‐pass phase.",
keywords = "Fault‐tolerant computing, Instruction retry, Rollback recovery",
author = "Chen, {Shyh‐Kwei ‐K} and Alewine, {Neal J.} and Fuchs, {W. Kent} and Hwu, {Wen‐Mei W.}",
year = "1994",
month = "12",
doi = "10.1002/spe.4380241206",
language = "English (US)",
volume = "24",
pages = "1179--1198",
journal = "Software - Practice and Experience",
issn = "0038-0644",
publisher = "John Wiley and Sons Ltd",
number = "12",

}

TY - JOUR

T1 - Incremental compiler transformations for multiple instruction retry

AU - Chen, Shyh‐Kwei ‐K

AU - Alewine, Neal J.

AU - Fuchs, W. Kent

AU - Hwu, Wen‐Mei W.

PY - 1994/12

Y1 - 1994/12

N2 - Previous work on compiler‐based multiple instruction retry has utilized a series of compiler transformations, loop protection, node splitting, and loop expansion, to eliminate anti‐dependencies of length ≤ N in the pseudo register, the machine register, and the post‐pass resolver phases of compilation.1 The results have provided a means of rapidly recovering from transient processor failures by rolling back N instructions. This paper presents techniques for improving compilation and run‐time performance in compiler‐based multiple instruction retry. Incremental updating enhances compilation time when new instructions are added to the program. Post‐pass code rescheduling and spill register reassignment algorithms improve the run‐time performance and decrease the code growth across the application programs studied. Branch hazards are shown to be resolvable by simple modifications to the incremental updating schemes during the pseudo register phase and to the spill register reassignment algorithm during the post‐pass phase.

AB - Previous work on compiler‐based multiple instruction retry has utilized a series of compiler transformations, loop protection, node splitting, and loop expansion, to eliminate anti‐dependencies of length ≤ N in the pseudo register, the machine register, and the post‐pass resolver phases of compilation.1 The results have provided a means of rapidly recovering from transient processor failures by rolling back N instructions. This paper presents techniques for improving compilation and run‐time performance in compiler‐based multiple instruction retry. Incremental updating enhances compilation time when new instructions are added to the program. Post‐pass code rescheduling and spill register reassignment algorithms improve the run‐time performance and decrease the code growth across the application programs studied. Branch hazards are shown to be resolvable by simple modifications to the incremental updating schemes during the pseudo register phase and to the spill register reassignment algorithm during the post‐pass phase.

KW - Fault‐tolerant computing

KW - Instruction retry

KW - Rollback recovery

UR - http://www.scopus.com/inward/record.url?scp=84987246408&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84987246408&partnerID=8YFLogxK

U2 - 10.1002/spe.4380241206

DO - 10.1002/spe.4380241206

M3 - Article

AN - SCOPUS:84987246408

VL - 24

SP - 1179

EP - 1198

JO - Software - Practice and Experience

JF - Software - Practice and Experience

SN - 0038-0644

IS - 12

ER -