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

Удаление мертвого кода


"Мертвым кодом" (dead code) называется код, никогда не получающий управления и впустую транжирящий дисковое пространство и оперативную память. В простейшем случае он представляет собой условие, ложность которых очевидна еще на стадии трансляции, или код, расположенный после безусловного возврата из функции.

Вот, например: if(0) n++; else n--; Это несложная задача и с нею успешно справляются все три рассматриваемых компилятора.

А вот в следующем случае бесполезность выражения "n++" уже не столь очевидна: for (a = 0; a < 6; a++) if (a < 0) n++;

Условие (a < 0) всегда ложно, поскольку цикл начинается с 0 и продолжается до 6. Из всех трех рассматриваемых компиляторов это по "зубам" только icl.



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