HyperLink   Incremental Compiler Transformations for Multiple Instruction Retry.
Publication Year:
  Shyh-Kwei Chen, Neal J. Alewine, W. Kent Fuchs, Wen-mei Hwu
  Software, Practice & Experience, John Wiley & Sons Ltd., Vol. 24(9), pp. 1-20, Sept. 1994

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. 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 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 curing the pseudo register phase and to the spill register reassignment algorithm during the post-pass phase.