Какова причина отказа от указателя фрейма на 64-битных архитектурах по умолчанию? Я хорошо знаю, что он может быть включен, но почему GCC отключает его в первую очередь, если он включен для 32-битного? В конце концов, у 64-битного процессора больше регистров, чем у 32-разрядных ЦП.
Edit: Похоже, что указатель фрейма также будет удален для x86 при использовании более новой версии GCC. Из руководства:
"Начиная с версии GCC 4.6, значение по умолчанию (если оно не оптимизировано для размера) для 32-разрядных x86 и 32-разрядных целей Darwin x86 для Linux было изменено на -fomit-frame-pointer. Значение по умолчанию может быть отменено до -fno-omit-frame-pointer, настроив GCC с параметром configure -enable-frame-pointer configure.
Но почему?