O Que É Loop-Invariant Code Motion?
Loop-invariant code motion é uma otimização que identifica expressões dentro de um loop cujo valor é o mesmo em cada iteração e as move para rodar uma vez antes de o loop começar. O compilador verifica que os operandos não mudam dentro do loop antes de içá-las. O corpo do loop fica encarregado apenas do trabalho que realmente varia a cada iteração.
Por que isso importa
Içar trabalho invariante para fora de um loop quente pode cortar uma grande fração de computação repetida. É uma das otimizações de loop de maior alavancagem que um compilador realiza.
Guias relacionados
What Is Loop Unrolling?Loop unrolling replicates a loop body multiple times per iteration to cut loop overhead and expose more instr…
What Is Common Subexpression Elimination?Common subexpression elimination removes redundant computations by reusing a previously computed result inste…
What Is Strength Reduction?Strength reduction replaces expensive operations with cheaper equivalent ones, such as turning a multiplicati…