Техника оптимизации под линуха

Удаление копий переменных


Для экономии памяти компиляторы обычно сокращают количество используемых переменных, выполняя алгебраический разворот выражений и удаляя лишние копии. В англоязычной литературе за данной техникой оптимизации закреплен термин "copy propagation", суть которого поясняется в следующем примере:

main(int n, char** v)

{

       int a,b;

       a

= n+1;

       b

= 1-a;      // избавляется от переменной a: (1 – (n + 1));

       return a-b;   // избавляется от переменной b: ((n + 1) – (1 – (n + 1)));

}



Содержание раздела