Section
Author's Guide | Reviewer's Guide

ST Journal of Research
Processor Architecture and Compilation
for Embedded Systems

Vol. 1, No. 2, September 2004 - Art. 7
 
Optimizing the Translation Out-of-SSA with Renaming Constraints

by
François de Ferriére, Christophe Guillon (STMicroelectronics); Fabrice Rastello (ENS Lyon)

Copyright
© IEEE, 2004 - Reprinted, with permission, from Optimizing translation out of SSA using renaming constraints, by François de Ferrière, Christophe Guillon (STMicroelectronics); Fabrice Rastello (ENS Lyon), Proceedings of the CGO Conference
 
Abstract
Static Single Assignment form is an intermediate representation that uses instructions to merge values at each confluent point of the control flow graph. F instructions are not machine instructions and must be renamed back to move instructions when translating out of SSA form. Without a coalescing algorithm, the out-of-SSA translation generates many move instructions.
Leung and George [8] use an SSA form for programs represented as native machine instructions, including the use of machine dedicated registers. For this purpose, they handle renaming constraints via a pinning mechanism. Pinning F arguments and their corresponding definition to a common resource is also a very attractive technique for coalescing variables. In this paper, extending this idea, we propose a method to reduce the F related copies during the out-of-SSA translation, thanks to a pinning-based coalescing algorithm that is aware of renaming constraints.
We implemented our algorithm in the STMicroelectronics Linear Assembly Optimizer [5]. Our experiments show interesting results when compared to the existing approaches of Leung and George [8] Sreedhar et al. [11] and Appel and George for register coalescing [7].
 

Download Art 7 (PDF Format) Size 186 KB page 81