LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

На Хабре как-то промелькивало исследование, сколько процентов инструкций поддерживают современные компиляторы. Оказалось, около 30%.

Т.е. 30% от всего того, что может процессор.

Эта цифра ничего не говорит. В процессоре куча бесполезных инструкций, которые использовать просто ненужно ни в каком случае, т.к. они там нужны только для обратной совместимости с кодом 40-летней давности. Правильно писать «сколько процентов инструкций используют современные компиляторы». И сколько из неиспользуемых инструкций стоило бы использовать.

Лично я знаю только один случай, когда ассемблер оправдан. Это векторные инструкции. И то не потому, что компилятор их не поддерживает, а потому, что он их поддерживает очень неявно, порой нифига не понятно, чего оптимизатору не хватает, чтобы заюзать их. И вместо того, чтобы вкуривать исходники компилятора или заниматься экспериментами с кодом, переписывая его в разные виды, проще просто взять и написать на асме нужный кусочек.

Исходная версия Legioner, :

На Хабре как-то промелькивало исследование, сколько процентов инструкций поддерживают современные компиляторы. Оказалось, около 30%.

Т.е. 30% от всего того, что может процессор.

Эта цифра ничего не говорит. В процессоре куча бесполезных инструкций, которые использовать просто ненужно ни в каком случае, т.к. они там нужны только для обратной совместимости с кодом 40-летней давности. Правильно писать «сколько процентов инструкций используют современные компиляторы».