
Re: GCC MIPS как да изключа една оптимизация...
нищо нестава!

какви ли не комбинации не съм пробвал!
накарах компилатора да листне кои оптимизации са включени при О1 и го сложих ръчно всичките!
кода стана по-голям отколкото при О0!?
явно степента на оптиомизация с -Ox не е просто съвкупност от отделни оптиимизации (което си го и пише в документацията).
Има и друг странен ефект който можеби има нещо общо със същата оптомизация. Имам една локална инициализирана структира с доста голям размер (няколко К). Стария компилатор както си му е реда и има копие в кодовата памет и при влизане във функцията я копира с memcpy(). Новия компилатор обаче решава да инициализира всеки елемент по отделнои с код! т.е. слага в регистър стойността и го записва на даден адрес. Даже го прави "оптимално"! т.е. ако има една и съща стойност я записва един пут в регъстъра и после я слага на колкото места трябва. Естественно резултата е няколко десетки пъти нарастване на кода!!!!
Абе, странно нещо е GCC!
Иначе О0 естественно няма проблем.
Аз разбирасе имам решения за моя приоблем. Или ползвам по-стар компилатор, или права констанитте volatile и после добавям сумати каствания че ме засипва с warning-i.
Крайната цел е че при компилация на даден адрес са записани някакви константи които после в бинарния файл подманям с други!