Loop-invariant code motion

This is an old revision of this page, as edited by Dcoetzee (talk | contribs) at 22:06, 20 April 2005 (cat, link, detail). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Loop-invariant code in an imperative programming language consists of statements which could be moved to before the loop (if the loop always terminates), or after the loop, without affecting the semantics of the program. As a result it is executed less often, providing a speedup. Loop-invariant code motion is a compiler optimization which performs this movement automatically.