|Unrolling and spilling linuxkaffee_@_gmx.net (Stephan Ceram) (2009-01-28)|
|Re: Unrolling and spilling SidTouati@inria.fr (Sid Touati) (2009-01-29)|
|Re: Unrolling and spilling email@example.com (Harold Aptroot) (2009-01-29)|
|Re: Unrolling and spilling firstname.lastname@example.org (cr88192) (2009-01-30)|
|Re: Unrolling and spilling email@example.com (Carlie Coats) (2009-05-23)|
|From:||Stephan Ceram <linuxkaffee_@_gmx.net>|
|Date:||28 Jan 2009 23:24:40 GMT|
|Posted-Date:||29 Jan 2009 05:28:26 EST|
In many compiler books and papers you read that loop unrolling
possibly increases register pressure that leads to extra spill code. I
don't see the reason how this can happen. When you perform unrolling
at assembly level, the loop bodies are just replicated, so the
register life ranges are not really increased. Also, when unrolling is
done at the source code, I don't really see a reason why the register
allocation should add more spill instructions. More spilling would
mean that you have a change in the life ranges of the variables that
adversely influenced the interference graph. But why should I get
more conflicting life ranges after unrolling?
The only reason I see are instruction scheduling techniques that might
mix up life ranges but the literature does not mention these
optimizations in context of spilling and unrolling.
Return to the
Search the comp.compilers archives again.