Семантика GCC горячий атрибут
Предположим, у меня есть модуль компиляции, состоящий из трех функций, A, B и C. A вызывается один раз из функции, внешней по отношению к модулю компиляции (например, это точка входа или обратный вызов); B вызывается много раз A (например, он вызывается в узком цикле); C вызывается один раз при каждом вызове B (например, это библиотечная функция).
Весь путь через A (проходящий через B и C) критичен к производительности, хотя производительность самого A некритична (так как большая часть времени проводится в B и C).
Каков минимальный набор функций, с которыми нужно аннотировать__attribute__ ((hot))
провести более агрессивную оптимизацию этого пути? Предположим, мы не можем использовать-fprofile-generate
.
Эквивалентно: ли__attribute__ ((hot))
означает «оптимизировать тело этой функции», «оптимизировать вызовы этой функции», «оптимизировать все вызовы-потомки, выполняемые этой функцией», или какую-то их комбинацию?
Информационная страница GCC не дает четкого ответа на эти вопросы.