Code motion
In computer science, code motion, which includes code hoisting, code sinking, loop-invariant code motion, and code factoring, is a blanket term for any process that moves code within a program. This is typically done for performance and size benefits, and it is a common optimization performed in most optimizing compilers.