История изменений
Исправление jpegqs, (текущая версия) :
Именно такого я не говорил. Обесценивает кэш - да. Сталкивались с тем, что на -O3 код может работать медленнее, чем на -O2? Я сталкивался. Когда компилятор пытается оптимизировать каждое место - может выйти и во вред в целом. Потому что компилятор не знает в какую стороны чаще выполняются переходы. Какое количество итераций у циклов. В итоге оптимизирует каждый цикл, если у цикла мало итераций, а компилятор предположил что много - то это будет только во вред. И еще во вред, потому что всё это обилие кода забивает кэш.
Смешно когда я слышу утверждения что современные компиляторы умеют круто оптимизировать код. А профилирование делали? Этим почти никто не занимается. Если не делали, то компилятор оптимизирует в слепую и часто ошибается, путая где код горячий, а где холодный.
Тут главное количество инструкций, если процессору нужно больше инструкций, даже если они короткие - это обесценивает его частоту. Апелляции к суперскалярности не принимаются, её нет не только в микроконтроллерах, но и в средних чипах для разной электроники. Потому что за это нужно платить энергопотреблением и ценой. Так что ARM со своей упаковкой нескольких действий в одну команду выигрывает. Как если бы у него частота была в полтора раза выше.
Исходная версия jpegqs, :
Именно такого я не говорил. Обесценивает кэш - да. Сталкивались с тем, что на -O3 код может работать медленнее, чем на -O2? Я сталкивался. Когда компилятор пытается оптимизировать каждое место - может выйти и во вред в целом. Потому что компилятор не знает в какую стороны чаще выполняются переходы. Какое количество итераций у циклов. В итоге оптимизирует каждый цикл, если у цикла мало итераций, а компилятор предположил что много - то это будет только во вред. И еще во вред, потому что всё это обилие кода забивает кэш.
Тут главное количество инструкций, если процессору нужно больше инструкций, даже если они короткие - это обесценивает его частоту. Апелляции к суперскалярности не принимаются, её нет не только в микроконтроллерах, но и в средних чипах для разной электроники. Потому что за это нужно платить энергопотреблением и ценой. Так что ARM со своей упаковкой нескольких действий в одну команду выигрывает. Как если бы у него частота была в полтора раза выше.