Re: Eliminating SSA variables

Jeremy Singer <jsinger@cs.man.ac.uk>
31 Jul 2005 00:39:48 -0400

          From comp.compilers

Related articles
Eliminating SSA variables richard@imagecraft.com (Richard M.) (2005-07-28)
Re: Eliminating SSA variables jsinger@cs.man.ac.uk (Jeremy Singer) (2005-07-31)
Re: Eliminating SSA variables drizzle76@gmail.com (dz) (2005-07-31)
Re: Eliminating SSA variables ali@olympe.ch (Ali Al-Shabibi) (2005-07-31)
| List of all articles for this month |

From: Jeremy Singer <jsinger@cs.man.ac.uk>
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" -
http://www.info.uni-karlsruhe.de/publications.php/id=382
He advocates performing register allocation directly from SSA, rather
than undoing the SSA renaming.


Cheers,
Jeremy


Post a followup to this message

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