Я считаю, вопрос весьма и весьма спорный. Когда я еще только начинал работать с ассемблером, я бы тут полностью с вами солгасился, на все 100%. Однако ! Когда я открыл ассемблерный листинг скомилированного с нулевой оптимизацией кода, я просто дико разочаровался. Я, конечно, не сравнивал еще с листингами других компиляторов, возможно, где-то еще хуже, но это не умалило бы моей абсолютной оценки - тихий ужас. Простейшее присваивание значения регистру вылилось в целое жонглирование значением между несколькими регистрами. То есть он воспринял отсутствие оптимизации уж слишком вольно, позволив себе ну просто возмутительные злоупотребления ресурсами. Желаемого я добился только с оптимизацией -O3 и -Os, но вот ведь беда: первое приводит к таким диким оптимизациям, что уследить за тем, чтобы получить ожидаемое вместо противоположного, становится дико трудно; а второе, например, приводит к отказу от инлайновых функций (вроде как можно форсировать инлайн-аттрибут, но черт знает, какие сюрпризы еще впереди). Если же изучать все многочисленные индивидуальные опции оптимизации, то вся работа встанет. Да, GCC мощный инструмент, и даже черезчур, я считаю. С ним управиться сложно.
Сообщение отредактировал artymen - Nov 8 2010, 19:06
--------------------
"Сознание своего несовершенства приближает к совершенству" Гёте
|