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