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.