Интересная статья по поводу ассемблера и компиляторов С/C++

You can leave links to different KoOS-related sites and articles here
  • Ну, я под АРМ пишу недоось по работе. Основная её часть будет на Аде (компилятор GNAT, входящий в состав GCC), на асме только первичные обработчики прерываний и т.п. вещи (они уже написаны и даже типа работают). Так вот, выяснилось, что кодогенерация у GCC отнюдь не фонтан: транслятор переставляет блоки операторов, выполняемые по условию (т.е. тела if'ов), не помнит содержимое регистров и т.п. (оптимизация что -O2, что -O3). Для интереса перепроверил, переписав небольшую подпрограммку на Си -- с тем же результатом, т.е. здесь проблема не в фронт-энде компилятора, а именно в оптимизаторе-кодогенераторе. В общем, без всякого напряга извилин при ручном программировании под АРМ 5-10% инструкций можно благополучно выкинуть. Сдаётся мне, что и под ИА-32 написать более эффективно, чем делает компилятор, позиционируемый как очень эффективный, можно без особых проблем. Другое дело, что разработка на ассемблере более трудоёмка и занимает больше времени, но разница отнюдь не в разы. У меня, например, основное время уходит на документирование и т.п. вещи, а они вообще никак не связаны с используемым языком.
  • Who is online

    Users browsing this forum: No registered users and 4 guests