Удаление лишних присвоений
Операция присвоения одной переменной другой переменной (т.е. что-то вроде a=b) бессмысленна – от нее всегда можно избавиться, заменив копию переменной ее оригиналом. Например, пусть не оптимизированный код выглядел так:
int a=b;
printf("%x %x \n",a, b);
a=a+1;
printf("%x %x \n",a, b);
Очевидно: переменная 'a' не является копией 'b' и не может быть удалена, но вот присвоение a=b удалить можно, смотрите:
int a=b;
printf("%x %x \n",b, b);
a=b+1;
printf("%x %x \n",a, b);
Компиляторы Microsoft Visual C++ и WATCOM всегда избавляются от лишних присвоений, а Borland C++ делать этого не умеет.