Отказ от branch-count-reg
Многие микропроцессоры имеют специальную команду: уменьши-регистр-на-единицу-и-ветвись-если-нуль (branch-count-reg). На x86-процессорах этим занимается LOOP, часто встречающаяся в ассемблерных вставках начинающих программистов, но практически никогда в коде, сгенерированном компилятором. И вовсе не потому, что компилятор "тупой", а потому, что эта инструкция медленная, хотя и компактная.
Компиляторы msvc и icl никогда ее не используют, а gcc предоставляет специальный ключ -fbranch-count-reg, предписывающий выбирать LOOP вместо DECreg/JNZ begin_loop, правда, до машинного когда она все равно не доживает и уничтожается оптимизатором.
* msvc: не использует branch-count-reg
* icl: не использует branch-count-reg
* gcc: не использует branch-count-reg