Benefits
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 spilled. To counteract this, the inverse optimization can be performed, rematerialization.
Read more about this topic: Loop-invariant Code Motion
Famous quotes containing the word benefits:
“In America the young are always ready to give to those who are older than themselves the full benefits of their inexperience.”
—Oscar Wilde (18541900)
“It is too late in the century for women who have received the benefits of co-education in schools and colleges, and who bear their full share in the worlds work, not to care who make the laws, who expound and who administer them.”
—J. Ellen Foster (18401910)
“I do seriously believe that if we can measure among the States the benefits resulting from the preservation of the Union, the rebellious States have the larger share. It destroyed an institution that was their destruction. It opened the way for a commercial life that, if they will only embrace it and face the light, means to them a development that shall rival the best attainments of the greatest of our States.”
—Benjamin Harrison (18331901)