В комментарий, отвечающий на "Не подскажете, как мне исследовать возможности компилятора(особенности, которые заложили его авторы)?(книжку, статью) как все это делается") не помещается, поэтому пишу в ответе.
Честно говоря, литературу посвященную именно исследованиям возможностей компилятора, не знаю, но вот что в принципе могу посоветовать по теме компиляторов.
Для общего знакомства с языками на мой взгляд хороша книга -- "Языки программирования: разработка и реализация" Т. Пратт, М. Зелковиц.
Говоря непосредственно о компиляторах, безусловно, следует отметить классический труд, называемый "Книгой дракона" (в сети легко можно найти ее текст). Вероятно, для практического вхождения в тему стоит почитать Креншоу Д. "Пишем компилятор".
Для знакомства с устройством процессора (системой команд, а также немного с ассемблером) посмотрите, например, "Цифровая схемотехника и архитектура компьютера". Понятно, что для каждой конкретной реализации потребуется проштудировать Programmer Rererence Manual по его ISA (instruction set architecture).
И несомненно, надо рекомендовать практику компиляции примеров в ассемблерный код (например, запуская gcc -S -O2 t.c; less t.s) с различными ключами оптимизации (см., скажем man gcc), а также непосредственного экспериментирования с измерением времени работы своих примеров.