Я попросил Google дать мне значение опции gcc
-fomit-frame-pointer
, которая перенаправляет меня на следующую инструкцию.
-fomit-frame-pointer Don't keep the frame pointer in a register for functions that don't need one. This avoids the instructions to save, set up and restore frame pointers; it also makes an extra register available in many functions. It also makes debugging impossible on some machines.
В соответствии с моими знаниями для каждой функции в стеке памяти процесса будет создана запись активации, чтобы сохранить все локальные переменные и некоторую дополнительную информацию. Я надеюсь, что этот указатель кадра означает адрес записи активации функции.
В этом случае, каков тип функций, для которых ему не нужно сохранять указатель рамки в регистре? Если я получу эту информацию, я попытаюсь создать новую функцию на основе этого (если это возможно), потому что если указатель фрейма не хранится в регистрах, некоторые инструкции будут опущены в двоичном формате. Это действительно улучшит производительность в приложении, где есть много функций.