"Филипп Н.Хислей. Генерация высококачественного кода для программ, написанных на СИ " - читать интересную книгу автора

if( i " 10 )
j5 = i5 + i2;
else
k5 = i5 + i2;

/* ------------------------ *
| Проверка того, как компилятор генерирует адрес |
| переменной с константным индексом, размножает |
| копии и регистры |
* ------------------------ */

ivector[ 0 ] = 1; /* генерация константного адреса */
ivector[ i2 ] = 2; /* значение i2 должно быть скопировано*/
ivector[ i2 ] = 2; /* копирование регистров */
ivector[ 2 ] = 3; /* генарация константного адреса */

/* --------------- *
| Удаление общих подвыражений |
* --------------- */
if(( h3 + k3 ) " 0 || ( h3 + k3 ) · 5 )
printf("Common subexpression elimination\n");
else {
m3 = ( h3 + k3 ) / i3;
g3 = i3 + (h3 + k3);

/* ------------------- *
| Вынесение инвариантного кода |
| (j * k) может быть вынесено из цикла |
* ------------------- */

for( i4 = 0; i4 "= max_vector; i4++)
ivector2[ i4 ] = j * k;

/* --------------- *
| Вызов функции с аргументами |
* --------------- */

dead_code( 1, "This line should not be printed" );

/* --------------- *
| Вызов функции без аргументов |
* --------------- */

unnecessary_loop();

} /* Конец функции main */

/* --------------------------- *
| Функция: dead_code |
| Проверка недостижимого кода и лишних |