Loop-invariant code motion: Difference between revisions

Content deleted Content added
MathsPoetry (talk | contribs)
opposite in the sense of functional composition is an inverse
Line 33:
Loop-invariant code which has been hoisted out of a loop is executed less often, providing a speedup. Another effect of this transformation is allowing constants to be stored in registers and not having to calculate the address and access the memory (or cache line) at each iteration.
 
However, if too many variables are created, there will be high [[register pressure]], especially on processors with few registers, like the 32-bit [[x86]]. If the compiler runs out of registers, some variables will be [[register spilling|spilled]]. To counteract this, the “opposite”inverse optimization can be performed, [[rematerialization]].
 
==Further Reading==