Related articles |
---|
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 harold.aptroot@gmail.com (Harold Aptroot) (2009-01-29) |
Re: Unrolling and spilling cr88192@hotmail.com (cr88192) (2009-01-30) |
Re: Unrolling and spilling carlie@jyarborough.com (Carlie Coats) (2009-05-23) |
From: | Stephan Ceram <linuxkaffee_@_gmx.net> |
Newsgroups: | comp.compilers |
Date: | 28 Jan 2009 23:24:40 GMT |
Organization: | Compilers Central |
Keywords: | optimize, question |
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.
Best,
Tim
Return to the
comp.compilers page.
Search the
comp.compilers archives again.