Re: Eliminating SSA variables

Jeremy Singer <>
31 Jul 2005 00:39:48 -0400

          From comp.compilers

Related articles
Eliminating SSA variables (Richard M.) (2005-07-28)
Re: Eliminating SSA variables (Jeremy Singer) (2005-07-31)
Re: Eliminating SSA variables (dz) (2005-07-31)
Re: Eliminating SSA variables (Ali Al-Shabibi) (2005-07-31)
| List of all articles for this month |

From: Jeremy Singer <>
Newsgroups: comp.compilers
Date: 31 Jul 2005 00:39:48 -0400
Organization: Compilers Central
References: 05-07-114
Keywords: analysis, SSA
Posted-Date: 31 Jul 2005 00:39:48 EDT

> The problem now is that there are 2 variables inside the loop, i1 and i2
> with overlapping lifetimes, thus using more registers and causing extra
> register moves at code generation time. Is there something we can do to
> address this problem?

A register coalescing phase should combine i1 and i2 into the same
register. In this case, extra register moves are not necessary. SSA
\phi-functions can provide hints to the coalescing algorithm. The recent
paper "Optimizing Translation out of SSA Using Renaming Constraints" by
Rastello et al, CGO 2004, gives more details.

It may also be worth checking out Sebastian Hack's work on "Interference
Graphs of Programs in SSA-form" -
He advocates performing register allocation directly from SSA, rather
than undoing the SSA renaming.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.