Я так думаю, что компилятор ничего НЕ ДОЛЖЕН, дажет если он МОЖЕТ в принципе.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Bill 08 февраля 2005 г. 11:33
В ответ на: Уважаемый Bill, поправте меня, если я ошибаюсь(+) отправлено A_S_N 08 февраля 2005 г. 10:49

Конечно, все его возможности, его "ум" определяются разработчиками. Если говорить об оптимизации, то бывают машинно-независимые способы оптимизации (на уровне анализа потока программы, на уровне алгебры логики при упрощении логических условий, или законов арифметики). А бывают машинно-зависимые (использование специфический инструкций процессора, распределение регистров при выполнении различных операций и т.д.). Кроме того, всем известно, часто отимальность программы по размеру не совпадает с оптимальности по скорости. Эти критерии часто также должны учитываться при оптимизации программы. И последнее, часто бывает, что оптимизированные компилятором программы отлаживать становится затруднительно. Поэтому желательно при отладке программы оптимизацию отключать.
Исходя из всего сказанного, в компиляторах обычно имеется целый ряд опций для более тонкой настройки возможностей оптимизации в компиляторе. Как раз "разжевать" компилятору чего он может (ему разрешено) делать, а чего делать не должен. Хотя полностью всего не учтешь, и компилятор так или иначе имеет определенную свободу действий. Поэтому желательно хотя бы изредка просматривать генерируемый им код, чтобы понять логику его действий. Я называю это "прочувствовать" компилятор, сделать его для себя более предсказуемым и менее "глючным".

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru